宠物大乐斗流程
上一节
下一节
区块宠物大乐斗流程
我们的合约已经有了一些随机性的来源,可以用到我们的区块宠物大乐斗中去决定斗舞的结构。
我们的区块宠物大乐斗看起来将是这个流程:
你选择一个自己的区块宠物,然后选择一个对手的区块宠物去斗舞。
如果你是斗舞发起方(攻击方),你将有60%的几率获胜,防守方将有40%的几率获胜。
所有的区块宠物(攻守双方)都将有一个 winCount 和一个 lossCount,这两个值将根据斗舞局的结果增长。
所有的区块宠物(攻守双方)都将有一个体力值,strength,初始体力为10,体力值最大为10,最小为0,发起方的体力值会根据斗舞结果变化。
若发起方获胜,且发起方宠物体力值 > 0,这个区块宠物将升级并产生一个新区块宠物,新宠物体力值为10,防守方体力值将 -2。
如果发起方失败,除了失败次数将+1外,体力值将 -3。
无论输赢,当前区块宠物的间隔时间都将被激活。
这有一大堆的逻辑需要处理,我们将把这些步骤分解到接下来的课程中去。
实战演习
给我们合约一个 uint 类型的变量,命名为 battleVictoryProbability, 将其值设定为 60。
创建一个名为 battle的函数。它将传入两个参数: _petId (uint 类型) 以及 _targetId (也是 uint)。它将是一个 external 函数。
函数体先留空吧。


