心情好了,游山玩水的顺道打两盘太阳神三国杀,日子也很惬意吧……
</br>想到一个省事儿的方法,让我们可以立即接触到远处的景色,那就是所谓的瞬间移动了。在太阳神三国杀中,我们叫它“交换座次”。
</br>一切只因为这次我们遇到了来自孙悟空的这样的一个技能设计需求:
> 筋斗:出牌阶段,你可以交换两名角色的位置。
</br>那么就来吧~
</br>按照套路,我们依然可以把它设计成一个视为技,创建一个可以交换两名角色座位的技能卡,然后视为使用了它,一切问题就解决了。
</br>技能卡部分:
![](https://img.kancloud.cn/8c/88/8c884eb21bb3072604c039260fa07dba_353x71.png)
</br>视为技部分:
![](https://img.kancloud.cn/54/89/54890eb449b6aae6b724f3c4dd89e9e9_418x199.png)
</br>考虑一下实际的操作吧。
</br>我们如果要交换两名角色的座位,肯定是要自己指定目标的,所以在技能卡的`target_fixed`那里就只能写false了。
</br>而且具体说来,应该是先选择其中一位,再选择另外的一位,总共要选择两名角色。在选择两名角色之前,所有的角色都是可以被选择作为目标的。这决定了我们在技能卡的filter部分应该填怎样的条件。
</br>此外,这个双目标“卡牌”只有当选择了两个目标时才能生效,因为毕竟我们有时会点到一半又不想发动技能了,所以比起以往的技能卡,这里的feasible部分也要稍微提一下才好。
</br>现在技能卡部分是这样的:
![](https://img.kancloud.cn/e1/6e/e16eb67f32a9a23be7ba3ce03f7d405b_527x307.png)
</br>下面就是我们技能的关键了——怎样交换两名角色的座位?
</br>强大的Room先生为我们提供了专门解决这个事情的成员函数:`swapSeat`!它的原型是:
```
swapSeat(a, b)
```
![](https://img.kancloud.cn/df/e8/dfe828e42c2ca66069c8d26fbb545d3b_480x23.png)
</br>其中:参数`a`和`b`表示参与交换座位的两名当事人。
</br>只需轻轻一语,事情摆平了~
</br>当然,事先我们要找到那两个当事人,而这也是一件简单的事情。
</br>技能卡的on_use函数中,最后一个参数`targets`就是使用目标列表的意思,现在这个列表里面有两个武将,那就是我们期待的两个当事人了!
</br>代码如下:
![](https://img.kancloud.cn/ba/90/ba90426bd485066f5a7b8ac8aa75bd7d_466x111.png)
</br>没啦,真没有啦,就是这样简单。不相信自己的眼睛?那么到游戏中证实一下吧~
</br>开一局八人身份局,好好地扰乱一下……
</br>刚开始,场上是这样的:
</br>主公曹丕,接下来是2号位黄忠,3号位张辽,4号位神关羽,5号位小乔,6号位徐晃,7号位我们孙悟空,8号位关兴张苞。
![](https://img.kancloud.cn/be/e9/bee946c31919b44c138bcf2fbc17ee0b_1280x770.png)
</br>黄忠上来跳反,却导致徐晃无故躺枪被翻面;张辽对黄忠使用乐不思蜀表忠,又被跳反的神关羽一阵猛拆;而神关羽并没有想到这种行为会惨遭身后的小乔的顺手牵羊;小乔装起黄忠的大爱又是一张雷杀……
</br>真是一场好戏呀,不过看样子这些人还不知道我们N双邪恶的眼睛正在笑眯眯地对他们深情凝望;鉴于大家都是反贼,还是让神关羽再进行一个额外的回合吧!汝等看好了~换!(周瑜:真不学好……)
![](https://img.kancloud.cn/2f/0b/2f0b28f795bce2d31948ad5ccdca2ac5_1280x770.png)
</br>于是场面变成了:
</br>主公曹丕,2号位黄忠,3号位张辽,4号位关兴张苞,5号位小乔,6号位徐晃,7号位咱们孙悟空,8号位神关羽。
</br>游戏记录里面是这样的:
![](https://img.kancloud.cn/9f/8e/9f8eefb9757ab8f8c251397b071c7f81_242x104.png)
</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 立即胜利