新元的无名杀扩展教程(一)技能_2触发器,任务,特殊技初步
写在前面
在前面我们已经了解trigger类技的基本结构:
trigger:{
},
content:function(){
}
接下来我们将讲一讲更多的关于trigger类技能的问题

1.触发器(trigger)
我们已经知道了trigger:{},里面就是技能的触发时机。
不仅player(你,技能拥有者)来触发技能,常用的如global,source,target也可来触发技能。
下面我们就举几个栗子,方便理解。

global就是全场的意思。如:
global:"damageEnd"
场上一有"damageEnd"这一时机就触发这个技能。即一有角色受到伤害后,此技能就触发。
source就是来源的意思。如:
source:"damageEnd"
你一旦作为"damageEnd"这一时机的来源就触发这个技能。即你造成伤害后,此技能就触发。
target就是目标的意思。如:
target:"useCardToTarget",
同上,你成为一张牌的目标时,此技能就触发。

trigger被触发,它就会向content中发送有关的信息。比如:
trigger:{global:"damageEnd"}
他就会向content发送谁受的伤害、谁是伤害的来源、伤害的属性、造成伤害的卡牌,等等。
2.任务执行者
从上面的内容我们已经知道trigger中的东西被触发后,就会向内容content传送有关信息。这些传过来的东西也可以写在内容content作为对象。
如果已有
trigger:{global:"damageEnd"}
你就可以在content:function(){}中写:
trigger.player.recover()
受到伤害的角色就恢复一点体力。

你也可以让触发该事件的伤害来源受到一点伤害。
trigger.source.damage()

除了trigger送过来的,可以执行任务,这里在介绍几种还可以执行任务的。
①_status.currentPhase
就是当前回合角色
②game.me
就是你玩的那个角色
③game.players[i]
game.players是一个场上存活角色的有序集合,可以通过改变i的值(i是个数字),改变不同的角色。一般来说,game.players[0]就是game.me。
注意一点,请确保你写的每一个内容content的对象都存在,不存在的将默认为undefined(未定义的)。undefined无法执行任务,会报错。
3.特殊技
我们知道,许多技能都是特殊的,如主公技,锁定技,限定技,觉醒技,转换技,使命技,charlotte技,等等。
我们怎么编辑一个特殊技能呢?
当然,基本的骨架是不变的。
比如,要设置成锁定技,只需要加上forced:true即可。
比如:锁定技,一名角色受到伤害后,当前回合角色摸一张牌。
trigger:{
global:"damageEnd"
},
forced:true,
content:function(){
_status.currentPhase.draw()
}
这样,该技能就成为一个锁定技,并且固定发动。就像贴标签一样。
同理,只要再贴上相应标签就可以将相应技能设定为一种特殊技了。
如:
限定技:limited:true,
觉醒技:juexingji:true,
转换技:zhuanhuanji:true,
主公技:zhuSkill:true,
使命技:dutySkill:true,
charlotte技:charlotte:true,
但是,除了charlotte技,确实不能被封印,因白板而失去,等等。其他的技能都没有对应的效果。
这是因为,这样只是声明这个技能是某种特殊技能,但是并没有特殊效果。关于特殊效果的制作,我们放在下一期。