| | |
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import TurnSkill
|
| | | import IpyGameDataPY
|
| | | import GameWorld
|
| | | import ChConfig
|
| | |
|
| | | def CalcBuffValue(turnFight, attacker, defender, curSkill):
|
| | | skillID = curSkill.GetSkillID()
|
| | | calcType = curSkill.GetCalcType()
|
| | | skillPer = curSkill.GetSkillPer()
|
| | | skillPer += TurnSkill.GetAddSkillPer(turnFight, attacker, defender, curSkill)
|
| | | skillValue = curSkill.GetSkillValue()
|
| | | #skillValue = curSkill.GetSkillValue()
|
| | | baseValue = TurnSkill.GetCalcBaseValue(calcType, attacker, defender, curSkill)
|
| | | shieldValue = int(baseValue * skillPer / 10000.0) + skillValue
|
| | | |
| | | relativeObj = TurnSkill.GetRelativeObj(turnFight, attacker)
|
| | | aShieldPer = attacker.GetBatAttrValue(ChConfig.AttrID_ShieldPer) # 强化护盾
|
| | | dShieldPerDef = relativeObj.GetBatAttrValue(ChConfig.AttrID_ShieldPerDef) # 弱化护盾
|
| | | |
| | | angerOverflow = attacker.GetAngerOverflow()
|
| | | |
| | | skillPer /= float(ChConfig.Def_MaxRateValue)
|
| | | aShieldPer /= float(ChConfig.Def_MaxRateValue)
|
| | | dShieldPerDef /= float(ChConfig.Def_MaxRateValue)
|
| | | |
| | | shieldValue = eval(IpyGameDataPY.GetFuncCompileCfg("ShieldFormula", 1))
|
| | | GameWorld.DebugLog("计算护盾值(%s):skillID=%s,calcType=%s,baseValue=%s,skillPer=%s,aShieldPer=%s,dShieldPerDef=%s,angerOverflow=%s" |
| | | % (shieldValue, skillID, calcType, baseValue, skillPer, aShieldPer, dShieldPerDef, angerOverflow))
|
| | | return [shieldValue % ChConfig.Def_PerPointValue, shieldValue / ChConfig.Def_PerPointValue]
|