| | |
| | | effEx2 = curEffect.GetEffectValue(1) # 支持多个属性
|
| | | calcRule = curEffect.GetEffectValue(2) # 附加计算规则,没配置默认增加固定值
|
| | |
|
| | | effExAdd = [0, 0, 0] # 某种条件下再额外效果值组 [buff效果ID/属性ID, 值, 计算方式]
|
| | | calcLayer = 1 # 没配置的默认1层,相当于固定值
|
| | | if calcRule:
|
| | | ruleType = calcRule[0]
|
| | |
| | | if tagObj.GetSex() != onlySex:
|
| | | GameWorld.DebugLogEx("5022额外buff对该性别无效: ruleType=%s,onlySex=%s,tagSex=%s,tagID=%s", ruleType, onlySex, tagObj.GetSex(), tagObj.GetID())
|
| | | return
|
| | | # 102 - 同国武将额外提升 参数1:额外提升值
|
| | | elif ruleType == 102:
|
| | | if batObj.GetCountry() == tagObj.GetCountry() and len(calcRule) == 4:
|
| | | effExAdd = calcRule[1:]
|
| | | GameWorld.DebugLogEx("同国武将再额外buff属性: ruleType=%s,country=%s,effExAdd=%s", ruleType, tagObj.GetCountry(), effExAdd)
|
| | |
|
| | | if calcLayer <= 0:
|
| | | return
|
| | |
|
| | | for effEX in [effEx1, effEx2]:
|
| | | for effEX in [effEx1, effEx2, effExAdd]:
|
| | | if not isinstance(effEX, list) or len(effEX) != 3:
|
| | | continue
|
| | | attrID, attrValue, calcType = effEX
|
| | | if not attrID or not attrValue:
|
| | | continue
|
| | | if calcLayer > 1:
|
| | | attrValue = int(attrValue * calcLayer)
|
| | | GameWorld.DebugLogEx("额外buff效果ID/属性ID值: attrID=%s,attrValue=%s,calcType=%s", attrID, attrValue, calcType)
|