Ability(Behavior) 套用行为的技能
Ability除了可以直接调用Effect,也可以直接调用Behavior
CAbilBehavior
属性
BehaviorArray : 从施法者身上添加或移除技能
CycleMode:假如当前技能等级有多个行为,这一设置会控制该技能循环行为的方案
XML定义
<CAbilBehavior default="1">
<CmdButtonArray index="On">
<Flags index="ShowInGlossary" value="1"/>
</CmdButtonArray>
</CAbilBehavior>
实体类
人族地堡回收
执行技能后,会出现一个进度条
进度条完成后,地堡回播放爆炸动画,并且返还Cost
技能 SalvageBunker
先看XML,属性设置比较少,但是多了一个parent字段。
<CAbilBehavior id="SalvageBunker" parent="Salvage">
<Name value="Abil/Name/SalvageBunker"/>
</CAbilBehavior>
模组里子挂载了一个验证器,验证地堡里是否有货物
当有机枪兵在地堡里,执行回收会收到Alert
parent字段在SalvageBunker技能里进行了调用,表示CmdOn的CButton调用’Salvage’的CmdOn
然后它的BehaviorArray里有个##id##,找到同ID的Behavior,是个Buff类的Behavior
行为 SalvageBunker
<CBehaviorBuff id="SalvageBunker" parent="Salvage">
<Name value="Behavior/Name/SalvageBunker"/>
</CBehaviorBuff>
再看它的详细属性设置
Duration:持续时间
ExpireEffect:如果该行为持续了整个时间则会发生效果
意思是地堡回收行为持续了5秒没有被中断则会执行”SalvageBunker”的效果
再看SalvageBunker效果
效果 SalvageBunker
<CEffectIssueOrder id="SalvageBunker" parent="Salvage"/>
这个效果又执行了##id##Refund的技能即SalvageBunkerRefund技能
技能 SalvageBunkerRefund
<CAbilEffectInstant id="SalvageBunkerRefund">
<OrderArray index="0" Model="Assets\UI\Cursors\WayPointAttack_Void\WayPointAttack_Void.m3"/>
</CAbilEffectInstant>
SalvageBunkerRefund 是个立即执行效果的技能
它执行的效果是SalvageDeath
CAbilEffectInstant有个属性是Cost,表示执行该效果所需要的花费,
这里是回收,所以花费为负数。
返还75的水晶矿。
效果 SalvageDeath
伤害效果
<CEffectDamage id="SalvageDeath">
<EditorCategories value="Race:Terran"/>
<ImpactLocation Value="SourceUnit"/>
<!--执行该效果让目标直接死亡-->
<Flags index="Kill" value="1"/>
<!--角色死亡播放的动画类型-->
<Death value="Salvage"/>
</CEffectDamage>
执行到这里,地堡已经爆炸了
地堡回收的逻辑顺序