|
发表于 2016-1-25 16:28:03
|
显示全部楼层
鄙人的一个实现方式~供楼主参考一下。在产生伤害前执行一次攻击者身上所有的buff的onAttackToOther,接着执行一次所有被攻击者身上的buff的onAttackByOther。对于buff执行顺序如果有先后顺序的需要,就给BUFF配上一个优先级就好了。最后从damageContext中获取相关的信息来计算伤害结果。
高级驱鬼_buff.onAttackToOther(me, other, damageContext) = {
(通过j修改damageContext) 使鬼魂术失效, other带鬼魂术的,伤害加成
}
高级鬼魂术_buff.onAttackByOther(me, other, damageContext) = {
(通过检查damageContext) 效果是否被禁用。如果禁用,则不做任何操作。否则(通过j修改damageContext)死亡后N个回合复活。
}
高级必杀_buff.onAttackToOther(me, other, damageContext) = {
(通过修改damageContext) 在暴击概率字典中标记dict["必杀"]=N%
}
高级幸运_buff.onAttackByOther(me, other, damageContext) = {
(通过检查damageContext) 暴击概率字典中是否存在"必杀",如果存在,则删除。
}
// 最后结算的时候总的暴击概率是通过遍历暴击字典来算总的加成
|
|