新元的無名殺擴展教程(一)技能_2觸發(fā)器,任務(wù),特殊技初步
寫在前面
在前面我們已經(jīng)了解trigger類技的基本結(jié)構(gòu):
trigger:{
},
content:function(){
}
接下來我們將講一講更多的關(guān)于trigger類技能的問題

1.觸發(fā)器(trigger)
我們已經(jīng)知道了trigger:{},里面就是技能的觸發(fā)時機。
不僅player(你,技能擁有者)來觸發(fā)技能,常用的如global,source,target也可來觸發(fā)技能。
下面我們就舉幾個栗子,方便理解。

global就是全場的意思。如:
global:"damageEnd"
場上一有"damageEnd"這一時機就觸發(fā)這個技能。即一有角色受到傷害后,此技能就觸發(fā)。
source就是來源的意思。如:
source:"damageEnd"
你一旦作為"damageEnd"這一時機的來源就觸發(fā)這個技能。即你造成傷害后,此技能就觸發(fā)。
target就是目標的意思。如:
target:"useCardToTarget",
同上,你成為一張牌的目標時,此技能就觸發(fā)。

trigger被觸發(fā),它就會向content中發(fā)送有關(guān)的信息。比如:
trigger:{global:"damageEnd"}
他就會向content發(fā)送誰受的傷害、誰是傷害的來源、傷害的屬性、造成傷害的卡牌,等等。
2.任務(wù)執(zhí)行者
從上面的內(nèi)容我們已經(jīng)知道trigger中的東西被觸發(fā)后,就會向內(nèi)容content傳送有關(guān)信息。這些傳過來的東西也可以寫在內(nèi)容content作為對象。
如果已有
trigger:{global:"damageEnd"}
你就可以在content:function(){}中寫:
trigger.player.recover()
受到傷害的角色就恢復一點體力。

你也可以讓觸發(fā)該事件的傷害來源受到一點傷害。
trigger.source.damage()

除了trigger送過來的,可以執(zhí)行任務(wù),這里在介紹幾種還可以執(zhí)行任務(wù)的。
①_status.currentPhase
就是當前回合角色
②game.me
就是你玩的那個角色
③game.players[i]
game.players是一個場上存活角色的有序集合,可以通過改變i的值(i是個數(shù)字),改變不同的角色。一般來說,game.players[0]就是game.me。
注意一點,請確保你寫的每一個內(nèi)容content的對象都存在,不存在的將默認為undefined(未定義的)。undefined無法執(zhí)行任務(wù),會報錯。
3.特殊技
我們知道,許多技能都是特殊的,如主公技,鎖定技,限定技,覺醒技,轉(zhuǎn)換技,使命技,charlotte技,等等。
我們怎么編輯一個特殊技能呢?
當然,基本的骨架是不變的。
比如,要設(shè)置成鎖定技,只需要加上forced:true即可。
比如:鎖定技,一名角色受到傷害后,當前回合角色摸一張牌。
trigger:{
? ? ? global:"damageEnd"?
},
forced:true,
content:function(){
? ? ? _status.currentPhase.draw()
}
這樣,該技能就成為一個鎖定技,并且固定發(fā)動。就像貼標簽一樣。
同理,只要再貼上相應標簽就可以將相應技能設(shè)定為一種特殊技了。
如:
限定技:limited:true,
覺醒技:juexingji:true,
轉(zhuǎn)換技:zhuanhuanji:true,
主公技:zhuSkill:true,
使命技:dutySkill:true,
charlotte技:charlotte:true,
但是,除了charlotte技,確實不能被封印,因白板而失去,等等。其他的技能都沒有對應的效果。
這是因為,這樣只是聲明這個技能是某種特殊技能,但是并沒有特殊效果。關(guān)于特殊效果的制作,我們放在下一期。