ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
当我们知道怎样创建技能的时候,忽然发现了一个很诱人的技能类型:手牌上限技。要知道手牌上限对于一个武将来说那实在是太重要了,它直接影响了武将的存关键牌能力以及回合外防御能力。居然有这样的好技能,我们神通广大的孙悟空怎么能不拥有一个呢? </br>前面我们已经知道,创建一个手牌上限技需要用到的函数是: ``` sgs.CreateMaxCardsSkill{name, extra_func} ``` </br>其中,`name`表示技能的名字,而`extra_func`是一个规定了如何修改手牌上限的函数,它的原型是: ``` function(self, target) ``` </br>这里,`self`自然就是技能本身了,`target`则表示被修改了手牌上限的那个角色。这两个参数的存在有了让我们动态改变手牌上限的可能。当然,如果上限的改变量始终是一个常数,比如手牌上限始终+3之类的,直接返回那个数值3就可以啦。 </br>现在我们打算设计这样的一个技能: > 神通:锁定技,你的手牌上限为当前体力值的2倍。 </br>获取体力值的方法是调用Player的成员函数`getHp()`。 </br>悄悄地告诉自己:获取体力上限的方法则是它的成员函数`getMaxHp()`。 </br>由于手牌上限是体力值的2倍,也就是在原来的基础上加上体力值,因此我们可以先获取到当前的体力值,然后返回这个体力值就好了。 </br>不过需要注意的一点是,在手牌上限修改之前应当先进行技能判定,只有对拥有这个技能的角色才可以产生修改的效果。否则的话,全场所有人的手牌上限就都被改掉喽~那样我们的小空空同学可是会哭的啦…… </br>代码如下: ![](https://img.kancloud.cn/81/33/81338b7d1eeb5bcd378529a07166755e_486x198.png) </br>好了,赶紧去游戏中体验一下回合外也能满手都是牌的快乐吧! ![](https://img.kancloud.cn/dd/02/dd020cb7eeabea071337a36ec083969b_1117x377.png) </br>5体力的时候,上限为10,11张手牌的情形,只需要弃掉1张牌。 成功!