ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
心情好了,游山玩水的顺道打两盘太阳神三国杀,日子也很惬意吧…… </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>好了,我们的技能验证通过!可以向孙悟空炫耀了。关羽,剩下的交给你了哦~(大乔:矜持中……)