| | |
| | |
|
| | | return layerMaxCnt
|
| | |
|
| | | ## 是否非叠加属性层级
|
| | | def IsLayerNoPlusAttr(effect): return effect.GetEffectValue(1)/10 == 1
|
| | | def IsLayerPlusAttr(curBuff):
|
| | | ## 是否叠加属性层级buff,可叠加时,属性=单层属性*层级,默认叠加
|
| | | hasEffect = SkillCommon.GetSkillEffectByEffectID(curBuff.GetSkill(), ChConfig.Def_Skill_Effect_LayerCnt)
|
| | | if not hasEffect:
|
| | | return False
|
| | | if hasEffect.GetEffectValue(1)/10 == 1:
|
| | | if IsLayerNoPlusAttr(hasEffect):
|
| | | # 配置不叠加,直接返回False
|
| | | return False
|
| | | return True
|
| | |
| | | # buff层级
|
| | | layerMaxCnt = 0
|
| | | layerCalc = 0
|
| | | layerPlusAttr = False # 层级是提升属性的
|
| | | hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_LayerCnt)
|
| | | if hasEffect:
|
| | | layerMaxCnt = hasEffect.GetEffectValue(0) # 能叠加的最大上限
|
| | | layerCalc = hasEffect.GetEffectValue(1)%10 # 增加层级还是减少层级 Def_BuffLayer_Add
|
| | |
|
| | | layerPlusAttr = not IsLayerNoPlusAttr(hasEffect)
|
| | | turnFightTimeline = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline)
|
| | |
|
| | | #1 检查是否有相同的BUFF,如果有相同的就刷新时间
|
| | | for i in range( 0, buffCount ):
|
| | |
| | | plusValueList[0] = min(buffValue + plusValueList[0], ChConfig.Def_UpperLimit_DWord)
|
| | |
|
| | | if buffSkillLV == curSkillLV:
|
| | | if layerMaxCnt and curBuff.GetLayer() >= layerMaxCnt and turnFightTimeline and layerPlusAttr:
|
| | | #GameWorld.DebugLog("回合制下属性层级达到最大层不再添加! curID=%s,skillID=%s,Layer=%s" % (curObj.GetID(), curSkillID, curBuff.GetLayer()))
|
| | | return False
|
| | | |
| | | changeLayer = False
|
| | | if layerMaxCnt and curBuff.GetLayer() < layerMaxCnt:
|
| | | if layerCalc == ChConfig.Def_BuffLayer_Add:
|