1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.TurnBuffs.BuffAtkType_1003
#
# @todo:³ÐÉË»¤¶Ü
# @author hxp
# @date 2025-08-25
# @version 1.0
#
# ÏêϸÃèÊö: ³ÐÉË»¤¶Ü
#
#-------------------------------------------------------------------------------
#"""Version = 2025-08-25 12:00"""
#-------------------------------------------------------------------------------
 
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()
    baseValue = TurnSkill.GetCalcBaseValue(calcType, attacker, defender, curSkill)
    
    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]