| | |
| | | #
|
| | | # @todo: 灼烧(流派专用,额外公式), 持续过程中可能会被改变伤害或者持续时长,无法用次数控制,无层级概念
|
| | | # 若同类型buff存在不管等级高低,只给原buff充能只改变值或时间
|
| | | # 不同释放者可共存多个灼烧
|
| | | # @author: Alee
|
| | | # @date 2019-4-28 下午04:12:17
|
| | | # @version 1.0
|
| | |
| | | import AttackCommon
|
| | | import PlayerControl
|
| | | import PassiveBuffEffMng
|
| | | import GameObj
|
| | | import BuffSkill
|
| | | #---------------------------------------------------------------------
|
| | | #全局变量
|
| | | #---------------------------------------------------------------------
|
| | |
| | |
|
| | | curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
|
| | |
|
| | | SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
|
| | | SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
|
| | |
|
| | | if buffOwner and GameObj.GetHP(buffOwner) > 0:
|
| | | # 此处暂无法用被动效果实现
|
| | | buffManager = defender.GetProcessDeBuffState()
|
| | | burnToHPEffect, plusValue, skillID = BuffSkill.FindBuffEffectByOwnertID(buffManager, ChConfig.Def_Skill_Effect_BurnToAddHP, |
| | | buffOwner.GetID(), buffOwner.GetGameObjType())
|
| | | if burnToHPEffect:
|
| | | addHP = singleDecHP*burnToHPEffect.GetEffectValue(0)/ChConfig.Def_MaxRateValue
|
| | | SkillCommon.SkillAddHP(buffOwner, curBuffSkillID, buffOwner, addHP, tick, hurtType=ChConfig.Def_HurtTYpe_Recovery)
|
| | | return
|
| | |
|
| | | # 灼烧的特征为延长buff时间,重算伤害
|
| | |
| | | curEffect = curSkill.GetEffect(0)
|
| | | skillPer = curEffect.GetEffectValue(0)
|
| | | skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_BurnPer)
|
| | | skillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_BurnPer)
|
| | | |
| | | skillEnhance = curEffect.GetEffectValue(1) + PlayerControl.GetBurnValue(attacker)
|
| | | skillPer = skillPer*1.0/ChConfig.Def_MaxRateValue
|
| | | # 灼烧特殊公式
|
| | |
| | |
|
| | | return [hurtValue]
|
| | |
|
| | | def OnBuffDisappear(defender, curSkill, curBuff, curEffect, tick):
|
| | | #已经死亡不触发
|
| | | if GameObj.GetHP(defender) <= 0:
|
| | | return
|
| | | |
| | | # 在防御者身上同时取消同一个释放者的相关buff
|
| | | defender.SetDict(ChConfig.Def_PlayerKey_BurnOwnerID, curBuff.GetOwnerID())
|
| | | |
| | | PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defender, None, None, ChConfig.TriggerType_BurnDisappear)
|
| | | |
| | | defender.SetDict(ChConfig.Def_PlayerKey_BurnOwnerID, 0)
|
| | | return
|
| | |
|