New file |
| | |
| | | #!/usr/bin/python |
| | | # -*- coding: GBK -*- |
| | | |
| | | ##@package BuffProcess_1307 |
| | | # @todo: 持继回血触发的buff逻辑实现 按目标最大生命回血 |
| | | # |
| | | # @author Alee |
| | | # @date 2011-01-18 11:00 |
| | | # @version 1.2 |
| | | # |
| | | #--------------------------------------------------------------------- |
| | | """Version = 2013-10-31 14:45""" |
| | | |
| | | #导入 |
| | | import SkillCommon |
| | | import GameWorld |
| | | import ChConfig |
| | | import GameObj |
| | | #import PassiveBuffEffMng |
| | | #import SkillShell |
| | | #--------------------------------------------------------------------- |
| | | #全局变量 |
| | | #--------------------------------------------------------------------- |
| | | #逻辑实现 |
| | | ## 持续性Buff处理 |
| | | # @param defender 承受者 |
| | | # @param curBuff 当前Buff |
| | | # @param curEffect Buff效果 |
| | | # @param tick 当前时间 |
| | | # @return None |
| | | # @remarks 持续性Buff处理 |
| | | def ProcessBuff(defender, curBuff, curEffect, processBuffTick, tick): |
| | | if curBuff.GetValue1() == 0: |
| | | return |
| | | |
| | | curBuffSkillID = curBuff.GetSkill().GetSkillTypeID() |
| | | singleAddHP = curBuff.GetValue() |
| | | |
| | | curBuff.SetValue1(max(curBuff.GetValue1() - 1, 0)) |
| | | SkillCommon.SkillAddHP(defender, curBuffSkillID, singleAddHP) |
| | | return |
| | | |
| | | |
| | | # 消失前如有未执行次数则补上 |
| | | # @param defender 承受者 |
| | | def OnBuffDisappear(defender, curSkill, curBuff, curEffect, tick): |
| | | count = curBuff.GetValue1() |
| | | #无剩余 |
| | | if count <= 0: |
| | | return |
| | | |
| | | #已经死亡不触发 |
| | | if GameObj.GetHP(defender) <= 0: |
| | | return |
| | | SkillCommon.SkillAddHP(defender, curSkill.GetSkillTypeID(), curBuff.GetValue()*count) |
| | | return |
| | | |
| | | |
| | | |
| | | ##持续治疗Buff,根据攻击者最大血量计算 |
| | | # @param attacker 攻击者实例 |
| | | # @param curSkill 技能实例 |
| | | # @param curEffect 当前技能效果1 |
| | | # @return 总值 |
| | | def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict): |
| | | curEffect = curSkill.GetEffect(0) |
| | | # 被动增强 |
| | | # addTime = PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(attacker, None, curSkill, ChConfig.TriggerType_BuffTime) |
| | | # buffTick = SkillShell.GetProcessBuffTick(curSkill, attacker) |
| | | # |
| | | # count = int(addTime/buffTick + curEffect.GetEffectValue(2)) |
| | | |
| | | count = curEffect.GetEffectValue(2) |
| | | return [SkillCommon.GetCureHP(attacker, defender, curSkill, ChConfig.Def_Cure_TagMaxHP), |
| | | count] |
| | | |