好吧,孙悟空不高兴了,赶紧进入下一环节吧,我们来研究一下体力恢复的事情……
</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>(孙悟空:这还差不多……编者:我会说这样更像自虐狂么?……)
- 编写说明
- 第一章 创建一个新武将
- 1.1 开发环境准备
- 1.2 创建一个新的武将扩展包
- 1.3 创建我们的新武将
- 第二章 添加技能
- 第三章 武将美化
- 3.1 美化环境准备
- 3.2 添加武将卡牌
- 3.3 添加武将头像
- 3.4 添加武将标签
- 第四章 创建一个新技能
- 第五章 添加音效
- 5.1 打造自己的声音工作室
- 5.2 添加技能使用音效
- 5.3 添加武将阵亡音效
- 第六章 添加提示信息
- 6.1 添加代码注释
- 6.2 显示提示信息
- 6.3 启动全屏信息特效
- 第七章 武将变更
- 第八章 启用AI
- 8.1 创建我们的AI文件
- 8.2 真实的AI
- 8.3 动手写AI
- 第九章 修改距离
- 第十章 技能管理
- 10.1 技能判定
- 10.2 创建技能
- 10.3 获得技能
- 10.4 失去技能
- 第十一章 修改手牌上限
- 第十二章 体力变更
- 12.1 流失体力
- 12.2 制造伤害
- 13.3 恢复体力
- 12.4 流失体力上限
- 12.5 增长体力上限
- 第十三章 游戏进程的变更
- 13.1 创建阶段触发技能
- 13.2 跳过回合阶段
- 13.3 插入一个额外的回合阶段
- 13.4 启用翻面
- 13.5 获得一个额外的回合
- 第十四章 启用标记(Mark)
- 14.1 添加标记
- 14.2 获得标记
- 14.3 失去标记
- 14.4 查看标记数目
- 第十五章 卡牌转换
- 15.1 主动牌的转换
- 15.2 被动牌的转换
- 第十六章 卡牌传递
- 16.1 创建摸牌技能
- 16.2 游戏中摸牌
- 16.3 游戏中弃牌
- 16.4 从其他武将处获得牌
- 16.5 判断目标区域是否有牌
- 16.6 移动场上的牌
- 第十七章 用牌实现技能效果
- 第十八章 启用标志(Flag)
- 第十九章 涉足判定领域
- 19.1 启用判定
- 19.2 更改判定
- 19.3 获得判定牌
- 第二十章 私家牌堆
- 20.1 向牌堆中添加牌
- 20.2 查看牌堆中牌的数量
- 20.3 从牌堆中移除牌
- 第二十一章 牌的锁定
- 第二十二章 免疫牌
- 第二十三章 让房间提供牌
- 23.1 提供主动牌
- 23.2 提供被动牌
- 第二十四章 启用标签(Tag)
- 第二十五章 濒死结算
- 第二十六章 交换座次
- 第二十七章 创建主公技
- 27.1 创建由主公发起的主公技
- 27.2 创建由他人发起的主公技
- 第二十八章 强力技能
- 28.1 直接死亡
- 28.2 改换身份
- 28.3 原地复活
- 28.4 立即胜利