对于孙悟空的主公技,还有一个方案,是这样描述的:
> 扬名:其他群雄角色每回复1点体力,可以让你摸一张牌。
</br>由于美猴王的保护,花果山的群众们才过上了幸福的生活,当然要感恩啦。
</br>对于这个技能,首先可以确认,这是一个以sgs.HpRecover(恢复体力时)为触发时机的触发技。如果当前恢复体力的角色是群雄,那么TA就可以发动这个技能让孙悟空摸一张牌。
</br>于是触发条件也就确定了:存在恢复体力的角色,而且是群雄势力的。
</br>目前来看,代码应该是这样的:
![](https://img.kancloud.cn/73/f2/73f22809930689d8bbdf347691b95e45_562x332.png)
</br>甚至可以先从`on_trigger`函数的`data`参数中找到需要摸多少张牌:
![](https://img.kancloud.cn/1a/2e/1a2e0e4e2c506f14a9a55c7e28306ba4_488x108.png)
</br>现在就有一个问题了。让谁摸牌?
</br>原则上当然应该是让主公摸牌,不过考虑到场上有可能有袁术(拥有伪帝技能)等人的存在,实际摸牌的对象可能不止一个,所以要对全场所有其他角色进行检查,找到所有拥有这个主公技的角色,而不单单是对主公发动技能。
</br>(孙悟空:他是假的!这不公平!编者:睁一只眼闭一只眼……)
</br>但是怎样知道一名角色是否拥有主公技?
</br>或许我们会想到使用熟悉的hasSkill进行判断,不过这里我们用了一种更为高贵的方法:主公技专有的hasLordSkill!
</br>这个方法其实也是Player的一个成员函数,原型是:
```
hasLordSkill(skill_name, include_lose=false)
```
![](https://img.kancloud.cn/8c/67/8c67a467800d54eaeb7104147e315cd9_781x24.png)
</br>其中:
1. `skill_name`就是主公技的名字了;
2. `include_lose`表示是否包括已经失去的主公技,填true就是包括,填false就是不包括。有时一个武将“曾经”拥有过一个主公技,但是检查的时候却已经失去了(比如被断肠),这个参数就是用来区分这些情况的。默认是false,表示只考虑当前是否拥有的情形。
</br>所以接下来的代码是这样的:
![](https://img.kancloud.cn/b2/57/b25766609dd5523b6de7013224f9c14b_673x262.png)
</br>这样代码就写好了。到游戏中应用一下吧!
</br>开一局三人身份局,主公选择孙悟空,另外两人选择袁术和华佗。
</br>这是孙悟空向袁术发动技能的情况:
![](https://img.kancloud.cn/dd/74/dd74eba6b2a7bd1b34a373dd5543cbf7_252x197.png)
</br>这是袁术向孙悟空发动技能的情况:
![](https://img.kancloud.cn/7e/2f/7e2f46304ee2e8ef16760e6396dc6224_246x111.png)
</br>而轮到华佗的时候,他可以对孙悟空和袁术两名武将发动技能:
</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 立即胜利