多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
好吧,孙悟空不高兴了,赶紧进入下一环节吧,我们来研究一下体力恢复的事情…… </br>与造成伤害需要用伤害结构体来保存伤害信息一样,恢复体力也有一些信息需要保存,所以也是通过一个结构体来保存这些信息的。这个用来保存恢复体力的各方面信息的结构体,就是恢复结构体RecoverStruct了。 </br>RecoverStruct的具体情况是这样的: ![](https://img.kancloud.cn/f8/00/f8001ce5d4616fcd6938c9e87fd384cf_244x163.png) </br>看见没有?比伤害结构体DamageStruct简单多了! </br>RecoverStruct只有三个成员变量:`recover`、`who`和`card`。 </br>其中: 1. `recover`表示恢复体力的数目; 2. `who`表示造成本次恢复体力的角色,私下里称呼TA“恩人”比较好吧; 3. `card`表示引起体力恢复的卡牌。 </br>因此要恢复体力的话,先定义一个这样的恢复结构体吧,方法是: local 对象名 = sgs.RecoverStruct() </br>接下来就是填充那三个成员变量了。 </br>而在我们准备好这个恢复结构体之后,就可以着手进行体力恢复行为了。完成体力恢复工作的方法,还是Room的一个成员函数(Room管得可真多……),那就是:`recover`! </br>唉……名字又撞车了……虽然有些吃惊,但是考虑到刚才damage函数出场的时候的状况,还是可以理解的吧。 </br>recover函数的原型是: ``` recover(player, recover, set_emotion=false) ``` ![](https://img.kancloud.cn/04/04/0404c432bd986f3ebd20f8180a33d5b9_915x29.png) </br>噢、卖糕的…… </br>好吧,我们来认识一下这些参数: 1. `player`表示恢复体力的对象; 2. `recover`(这次是一个参数!)表示恢复结构体RecoverStruct的一个对象; 3. `set_emotion`表示约定是否显示表情,填true就会在武将头像上显示一个欣喜的表情,填false就没有表情,默认是false啦。 </br>现在我们为了照顾一下我们孙悟空的情绪,决定把技能改成: > 自满:锁定技:回合开始阶段,你须对自己造成的一点伤害,然后恢复一点体力。 </br>据此我们定义的恢复结构体是这样的: * 恢复一点体力,所以recover = 1; * 是我们自己要恢复体力的,所以who = player; * 没有恢复体力的卡牌,所以就忽略card吧。 </br>所以代码是这样的: ![](https://img.kancloud.cn/1a/af/1aaff7b28a321ca7b499e58b8d9a0d14_434x117.png) </br>效果如下: ![](https://img.kancloud.cn/69/8a/698ac92f0c88dfbc3d30e341b173cba4_253x221.png) </br>可以清楚地看到孙悟空在受到伤害后又恢复了一点体力。 </br>(孙悟空:这还差不多……编者:我会说这样更像自虐狂么?……)