| | |
| | | layer = max(curBuff.GetLayer(), 1)
|
| | | #单次伤害, 毒有层级的情况
|
| | | singleDecHP = curBuff.GetValue()*layer
|
| | | hurtPer = FindBuffPer(defender, curBuff) # 找到另外一个buff对中毒的伤害加成
|
| | | |
| | | singleDecHP = int((hurtPer + ChConfig.Def_MaxRateValue)*1.0/ChConfig.Def_MaxRateValue*singleDecHP)
|
| | | GameWorld.DebugLog("1033---------%s-%s-%s-%s"%(curBuff.GetValue(), layer, hurtPer, singleDecHP ) )
|
| | | #GameWorld.DebugLog("1033---------%s-%s-%s-%s"%(curBuff.GetValue(), layer, hurtPer, singleDecHP ) )
|
| | | #buff拥有者
|
| | | buffOwner = SkillCommon.GetBuffOwner(curBuff)
|
| | |
|
| | |
| | | hurtValue, hurtType = AttackCommon.CalcHurtHP(attacker, defender, curSkill,
|
| | | skillEnhance, skillPer, GameWorld.GetGameWorld().GetTick(),
|
| | | ChConfig.Def_Skill_HappenState_HitOn)
|
| | | addTime = PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(attacker, None, curSkill, ChConfig.TriggerType_BuffTime)
|
| | | buffTick = SkillShell.GetProcessBuffTick(curSkill, attacker)
|
| | | |
| | | # 单次伤害值,伤害类型,次数(配合效果ID9999的间隔)
|
| | | return [hurtValue, hurtType, int(addTime/buffTick + curEffect.GetEffectValue(2))]
|
| | |
|
| | | |
| | | # 单次伤害值,伤害类型
|
| | | return [hurtValue, hurtType]
|
| | |
|
| | | # 次数(配合效果ID9999的间隔)
|
| | | def DoAddBuffOver(curObj, curBuff, curEffect, tick, buffOwner):
|
| | | if not buffOwner:
|
| | | return
|
| | | buffTick = SkillShell.GetProcessBuffTick(curBuff.GetSkill(), buffOwner)
|
| | | |
| | | curBuff.SetValue2(curBuff.GetRemainTime()/buffTick)
|
| | | return
|
| | |
|
| | | # 消失前如有未执行次数则补上
|
| | | # @param defender 承受者
|
| | |
| | |
|
| | | boomSkill = skills[0]
|
| | | curEffect = curSkill.GetEffect(0)
|
| | | skillPer = curEffect.GetEffectValue(0)/float(ChConfig.Def_MaxRateValue)
|
| | | skillPer = curEffect.GetEffectValue(0)
|
| | | skillEnhance = curEffect.GetEffectValue(1)
|
| | |
|
| | | BaseAttack.AttackAreaDefenderNotify(attacker, defender, defender.GetPosX(), defender.GetPosY(), boomSkill,
|
| | |
| | | return
|
| | |
|
| | |
|
| | |
|
| | | # 找到对应加成伤害的毒
|
| | | def FindBuffPer(curObj, curBuff):
|
| | | ownerID = curBuff.GetOwnerID()
|
| | | ownerType = curBuff.GetOwnerType()
|
| | | |
| | | if not ownerType:
|
| | | return 0
|
| | | |
| | | buffManager = curObj.GetDeBuffState()
|
| | | curEffect, plusValue, skillID = BuffSkill.FindBuffEffectByOwnertID(buffManager, ChConfig.Def_Skill_Effect_ProBloodPer, ownerID, ownerType)
|
| | | if not curEffect:
|
| | | return 0
|
| | | |
| | | # buff相同归属者的指定buff才有伤害加成
|
| | | for i in range(buffManager.GetBuffCount()):
|
| | | findBuff = buffManager.GetBuff(i)
|
| | | if findBuff.GetBuffID() != skillID:
|
| | | continue
|
| | | if findBuff.GetOwnerID() != ownerID:
|
| | | continue
|
| | | |
| | | if curEffect.GetEffectValue(1) == curBuff.GetBuffID():
|
| | | return curEffect.GetEffectValue(0)
|
| | |
|
| | | return 0
|
| | |
|
| | |
|
| | |
|