| | |
| | | self._batObj = batObj
|
| | | self._objID = batObj.GetID() if batObj else 0
|
| | | self._skillIDList = [] # 已有技能ID列表,获取被动中快速判断已学技能用
|
| | | self.noDeadSkill = None # 不死技能效果,暂时只支持最多1个这种技能
|
| | |
|
| | | # 技能
|
| | | self._AffectSkillDict = {} # 被动技能 {(触发方式, 有效来源):{技能ID:[effID, ...], ...}, ...}
|
| | |
| | | effDict[skillID].append(effectID)
|
| | | if triggerWay not in self._skillTriggerWayList:
|
| | | self._skillTriggerWayList.append(triggerWay)
|
| | | |
| | | # 加载不死技能效果
|
| | | if triggerWay == ChConfig.TriggerWay_NoDead:
|
| | | self.noDeadSkill = curSkill
|
| | | |
| | | return
|
| | |
|
| | | def RefreshBuffPassiveEffect(self):
|
| | |
| | | self._hurtListEx = [] # 额外伤血列表,如平摊、溅射 [HurtObj, ...]
|
| | | self._bySkill = None # 由哪个技能触发的
|
| | | self._byBuff = None # 由哪个buff触发的
|
| | | self._byBatObj = None # 由哪个战斗对象触发的
|
| | | self._byTriggerWay = 0 # 由哪个被动方式触发的
|
| | | self._afterLogicList = [] # 技能释放后需要处理逻辑 [[logicType, logicParams], ...]
|
| | | self._energy = 0 # 技能能量,一般用于累计能量达到某种条件后做逻辑
|
| | |
| | | self._effIgnoreObjIDList = []
|
| | | self._bySkill = None
|
| | | self._byBuff = None
|
| | | self._byBatObj = None
|
| | | self._byTriggerWay = 0
|
| | | self._afterLogicList = []
|
| | | self.ClearHurtObj()
|
| | |
| | | def SetBySkill(self, bySkill): self._bySkill = bySkill
|
| | | def GetByBuff(self): return self._byBuff
|
| | | def SetByBuff(self, byBuff): self._byBuff = byBuff
|
| | | def GetByBatObj(self): return self._byBatObj
|
| | | def SetByBatObj(self, byBatObj): self._byBatObj = byBatObj
|
| | | def GetByTriggerWay(self): return self._byTriggerWay
|
| | | def SetByTriggerWay(self, byTriggerWay): self._byTriggerWay = byTriggerWay
|
| | | def GetTagObjList(self): return self._tagObjList # 技能主要目标列表
|
| | |
| | | self.faction = 0 # 所属阵营,一般只有双方阵营, 1 或 2,发起方默认1
|
| | | self.lineupNum = 1 # 阵容位置编号,一般多V多时有用,通常默认1
|
| | | self.posNum = 0 # 所在阵容站位
|
| | | self._batLineup = None # 所属战斗阵容对象
|
| | | self._hp = 0 # 当前生命值
|
| | | self._xp = 0 # 当前怒气值
|
| | | self._isAlive = True # 是否活着
|
| | |
| | | def SetTFGUID(self, tfGUID): self.tfGUID = tfGUID
|
| | | def GetTurnFight(self): return TurnAttack.GetTurnFightMgr().getTurnFight(self.tfGUID)
|
| | | def GetBatLineup(self):
|
| | | turnFight = self.GetTurnFight()
|
| | | batFaction = turnFight.getBatFaction(self.faction)
|
| | | return batFaction.getBatlineup(self.lineupNum)
|
| | | if not self._batLineup:
|
| | | turnFight = self.GetTurnFight()
|
| | | batFaction = turnFight.getBatFaction(self.faction)
|
| | | self._batLineup = batFaction.getBatlineup(self.lineupNum)
|
| | | return self._batLineup
|
| | | def GetOwnerID(self): return self.ownerID # 如果是玩家战斗单位,则该值非0,为所属玩家ID
|
| | | def SetOwnerID(self, ownerID): self.ownerID = ownerID
|
| | | def GetID(self): return self.objID
|
| | |
| | | return False
|
| | | return True
|
| | |
|
| | | def CanNoDead(self):
|
| | | '''是否还可触发不死效果
|
| | | 暂定单个武将最多只支持配置1个不死效果,且单场战斗最多触发x次,即按技能cd判断即可
|
| | | '''
|
| | | noDeadSkill = self._passiveEffMgr.noDeadSkill # 固定有被动触发
|
| | | if not noDeadSkill:
|
| | | return
|
| | | if noDeadSkill.GetRemainTime():
|
| | | return
|
| | | return True
|
| | | |
| | | def GetSneerTagObj(self):
|
| | | ## 获取被嘲讽的目标,如果存在则一定是活着的目标
|
| | | buffIDList = self._buffMgr.GetStateBuffIDList(ChConfig.BatObjState_Sneer)
|