public void RecoverSkillSlot(SkillSlotType _slotType) { SkillSlot slot = null; if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out slot)) { if (this.changeSkillSlot[(int)_slotType].changeCount == 1) { int initSkillID = this.changeSkillSlot[(int)_slotType].initSkillID; int curSkillCD = (int)slot.CurSkillCD; int skillLevel = slot.GetSkillLevel(); slot.CancelUseSkill(); this.sourceActor.handle.SkillControl.InitSkillSlot((int)_slotType, initSkillID, 0); if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out slot)) { slot.SetSkillLevel(skillLevel); slot.CurSkillCD = curSkillCD; slot.IsCDReady = curSkillCD == 0; DefaultSkillEventParam param = new DefaultSkillEventParam(_slotType, 0); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_UpdateSkillUI, this.sourceActor, ref param, GameSkillEventChannel.Channel_HostCtrlActor); } this.changeSkillSlot[(int)_slotType].initSkillID = 0; this.changeSkillSlot[(int)_slotType].changeSkillID = 0; } this.changeSkillSlot[(int)_slotType].changeCount--; } }
public void RecoverSkillSlot(SkillSlotType _slotType) { SkillSlot skillSlot = null; if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out skillSlot)) { if (this.changeSkillSlot[(int)_slotType].changeCount == 1) { int initSkillID = this.changeSkillSlot[(int)_slotType].initSkillID; int initPassiveSkillID = this.changeSkillSlot[(int)_slotType].initPassiveSkillID; int num = skillSlot.CurSkillCD; int skillLevel = skillSlot.GetSkillLevel(); skillSlot.DestoryIndicatePrefab(); this.sourceActor.handle.SkillControl.InitSkillSlot((int)_slotType, initSkillID, initPassiveSkillID); if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out skillSlot)) { skillSlot.SetSkillLevel(skillLevel); skillSlot.CurSkillCD = num; skillSlot.IsCDReady = (num == 0); DefaultSkillEventParam defaultSkillEventParam = new DefaultSkillEventParam(_slotType, 0, this.sourceActor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_UpdateSkillUI, this.sourceActor, ref defaultSkillEventParam, GameSkillEventChannel.Channel_HostCtrlActor); } this.changeSkillSlot[(int)_slotType].initSkillID = 0; this.changeSkillSlot[(int)_slotType].changeSkillID = 0; this.changeSkillSlot[(int)_slotType].initPassiveSkillID = 0; } ChangeSkillSlot[] array = this.changeSkillSlot; array[(int)_slotType].changeCount = array[(int)_slotType].changeCount - 1; } }
private void UpdateSkillCD(int nDelta) { if (!this.IsCDReady) { this.CurSkillCD -= nDelta; this.eventTime += nDelta; if (this.CurSkillCD <= 0) { this.CurSkillCD = 0; this.IsCDReady = true; } if ((this.eventTime >= 200) || (this.CurSkillCD == 0)) { if (this.SlotType != SkillSlotType.SLOT_SKILL_0) { DefaultSkillEventParam param = new DefaultSkillEventParam(this.SlotType, (int)this.CurSkillCD, this.Actor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.AllEvent_ChangeSkillCD, this.Actor, ref param, GameSkillEventChannel.Channel_AllActor); if (this.IsCDReady) { Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_SkillCDEnd, this.Actor, ref param, GameSkillEventChannel.Channel_HostCtrlActor); } } this.eventTime -= 200; } } }
public void Leave() { this.bActive = false; if (this.recoverSkillID == 0) { return; } Skill skill = new Skill(this.recoverSkillID); if (this.curSkillSlot.SlotType != SkillSlotType.SLOT_SKILL_0) { this.curSkillSlot.skillIndicator.UnInitIndicatePrefab(true); this.curSkillSlot.skillIndicator.CreateIndicatePrefab(skill); } this.curSkillSlot.NextSkillObj = skill; if (this.bOvertimeCD) { this.curSkillSlot.StartSkillCD(); } if (this.bSendEvent) { DefaultSkillEventParam defaultSkillEventParam = new DefaultSkillEventParam(this.curSkillSlot.SlotType, this.recoverSkillID, this.curSkillSlot.Actor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_RecoverSkill, this.curSkillSlot.Actor, ref defaultSkillEventParam, GameSkillEventChannel.Channel_HostCtrlActor); } this.recoverSkillID = 0; }
public void CancelUseSkillSlot(SkillSlotType slot) { SkillSlot slot2; if (this.TryGetSkillSlot(slot, out slot2)) { slot2.CancelUseSkill(); DefaultSkillEventParam param = new DefaultSkillEventParam(slot, 0); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_UseCanceled, base.actorPtr, ref param, GameSkillEventChannel.Channel_HostCtrlActor); } }
private void OnActorChangeSkill(ref DefaultSkillEventParam prm) { if (!prm.actor || prm.actor.get_handle().SkillControl == null || prm.actor.get_handle().SkillControl.stSkillStat == null) { return; } if (prm.slot == SkillSlotType.SLOT_SKILL_7) { prm.actor.get_handle().SkillControl.stSkillStat.m_uiEyeSwitchTimes += 1u; } }
public void StartSkillCD() { this.CurSkillCD = this.GetSkillCDMax(); this.IsCDReady = false; this.eventTime = 0; DefaultSkillEventParam param = new DefaultSkillEventParam(this.SlotType, (int)this.CurSkillCD, this.Actor); if (this.SlotType != SkillSlotType.SLOT_SKILL_0) { Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_SkillCDStart, this.Actor, ref param, GameSkillEventChannel.Channel_HostCtrlActor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.AllEvent_ChangeSkillCD, this.Actor, ref param, GameSkillEventChannel.Channel_AllActor); } }
public void SetSkillLevel(int _level) { this.skillLevel = _level; if (this.skillLevel == 0) { DefaultSkillEventParam param = new DefaultSkillEventParam(this.SlotType, 0, this.Actor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_DisableSkill, this.Actor, ref param, GameSkillEventChannel.Channel_HostCtrlActor); } else if (this.skillLevel == 1) { DefaultSkillEventParam param2 = new DefaultSkillEventParam(this.SlotType, 0, this.Actor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_EnableSkill, this.Actor, ref param2, GameSkillEventChannel.Channel_HostCtrlActor); } }
public void HostCancelUseSkillSlot(SkillSlotType slot, enSkillJoystickMode mode) { SkillSlot slot2; if (this.TryGetSkillSlot(slot, out slot2)) { slot2.CancelUseSkill(); if (mode == enSkillJoystickMode.SelectTarget) { MonoSingleton <CameraSystem> .GetInstance().SetFocusActor(base.actorPtr); } DefaultSkillEventParam param = new DefaultSkillEventParam(slot, 0, base.actorPtr); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_UseCanceled, base.actorPtr, ref param, GameSkillEventChannel.Channel_HostCtrlActor); } }
public void ChangeSkillSlot(SkillSlotType _slotType, int _skillID, int _orgSkillID = 0) { int skillID = 0; SkillSlot slot = null; if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out slot)) { int ornamentSwitchCD = 0; if (_slotType == SkillSlotType.SLOT_SKILL_7) { SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext(); if (curLvelContext != null) { ornamentSwitchCD = curLvelContext.m_ornamentSwitchCD; } } else { ornamentSwitchCD = (int)slot.CurSkillCD; } int skillLevel = slot.GetSkillLevel(); if (slot.SkillObj != null) { skillID = slot.SkillObj.SkillID; } if ((_orgSkillID == 0) || (skillID == _orgSkillID)) { slot.DestoryIndicatePrefab(); this.sourceActor.handle.SkillControl.InitSkillSlot((int)_slotType, _skillID, 0); if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out slot)) { slot.CurSkillCD = ornamentSwitchCD; slot.IsCDReady = ornamentSwitchCD == 0; slot.SetSkillLevel(skillLevel); DefaultSkillEventParam param = new DefaultSkillEventParam(_slotType, 0, this.sourceActor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_UpdateSkillUI, this.sourceActor, ref param, GameSkillEventChannel.Channel_HostCtrlActor); if (this.changeSkillSlot[(int)_slotType].changeCount == 0) { this.changeSkillSlot[(int)_slotType].initSkillID = skillID; } this.changeSkillSlot[(int)_slotType].changeSkillID = _skillID; this.changeSkillSlot[(int)_slotType].changeCount++; } } } }
private void onUseSkillCanceled(ref DefaultSkillEventParam prm) { int length = this.TriggerMatches.Length; for (int i = 0; i < length; i++) { CTriggerMatch match = this.TriggerMatches[i]; if (match != null) { PoolObjHandle<ActorRoot> src = new PoolObjHandle<ActorRoot>(null); PoolObjHandle<ActorRoot> atker = new PoolObjHandle<ActorRoot>(null); if (this.FilterMatch(EGlobalGameEvent.SkillUseCanceled, match, src, atker, (DefaultSkillEventParam) prm, i)) { this.DoTriggering(match, src, atker, (DefaultSkillEventParam) prm); } } } }
public void ResetSkillCD() { if (!this.IsCDReady) { this.CurSkillCD = 0; this.IsCDReady = true; if (this.SlotType != SkillSlotType.SLOT_SKILL_0) { DefaultSkillEventParam param = new DefaultSkillEventParam(this.SlotType, (int)this.CurSkillCD, this.Actor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.AllEvent_ChangeSkillCD, this.Actor, ref param, GameSkillEventChannel.Channel_AllActor); if (this.IsCDReady) { Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_SkillCDEnd, this.Actor, ref param, GameSkillEventChannel.Channel_HostCtrlActor); } } } }
public void StartSkillCD() { this.CurSkillCD = this.GetSkillCDMax(); this.IsCDReady = false; this.eventTime = 0; if (this.SlotType == SkillSlotType.SLOT_SKILL_7) { this.Actor.handle.SkillControl.ornamentFirstSwitchCdEftTime = 0; } DefaultSkillEventParam defaultSkillEventParam = new DefaultSkillEventParam(this.SlotType, this.CurSkillCD, this.Actor); if (this.SlotType != SkillSlotType.SLOT_SKILL_0) { Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_SkillCDStart, this.Actor, ref defaultSkillEventParam, GameSkillEventChannel.Channel_HostCtrlActor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.AllEvent_ChangeSkillCD, this.Actor, ref defaultSkillEventParam, GameSkillEventChannel.Channel_AllActor); } }
private void onUseSkillCanceled(ref DefaultSkillEventParam prm) { int num = this.TriggerMatches.Length; SFilterMatchParam sFilterMatchParam = default(SFilterMatchParam); sFilterMatchParam.slot = prm.slot; for (int i = 0; i < num; i++) { CTriggerMatch cTriggerMatch = this.TriggerMatches[i]; if (cTriggerMatch != null) { PoolObjHandle <ActorRoot> src = new PoolObjHandle <ActorRoot>(null); PoolObjHandle <ActorRoot> atker = new PoolObjHandle <ActorRoot>(null); if (this.FilterMatch(EGlobalGameEvent.SkillUseCanceled, cTriggerMatch, src, atker, ref sFilterMatchParam, i)) { this.DoTriggering(cTriggerMatch, src, atker); } } } }
public override void RmvDisableSkillFlag(SkillSlotType _type) { base.RmvDisableSkillFlag(_type); if (_type == SkillSlotType.SLOT_SKILL_COUNT) { for (int i = 0; i < 7; i++) { if (base.actor.SkillControl.DisableSkill[i] == 0) { DefaultSkillEventParam param = new DefaultSkillEventParam((SkillSlotType)i, 0); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_CancelLimitSkill, base.GetActor(), ref param, GameSkillEventChannel.Channel_HostCtrlActor); } } } else if (base.actor.SkillControl.DisableSkill[(int)_type] == 0) { DefaultSkillEventParam param2 = new DefaultSkillEventParam(_type, 0); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_CancelLimitSkill, base.GetActor(), ref param2, GameSkillEventChannel.Channel_HostCtrlActor); } }
public override void RmvDisableSkillFlag(SkillSlotType _type, bool bForce = false) { base.RmvDisableSkillFlag(_type, false); if (_type == SkillSlotType.SLOT_SKILL_COUNT) { for (int i = 0; i < 10; i++) { if (this.actor.SkillControl.DisableSkill[i] == 0 && (!this.actor.SkillControl.IsIngnoreDisableSkill((SkillSlotType)i) || bForce)) { DefaultSkillEventParam defaultSkillEventParam = new DefaultSkillEventParam((SkillSlotType)i, 0, this.actorPtr); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_CancelLimitSkill, base.GetActor(), ref defaultSkillEventParam, GameSkillEventChannel.Channel_HostCtrlActor); } } } else if (this.actor.SkillControl.DisableSkill[(int)_type] == 0 && (!this.actor.SkillControl.IsIngnoreDisableSkill(_type) || bForce)) { DefaultSkillEventParam defaultSkillEventParam2 = new DefaultSkillEventParam(_type, 0, this.actorPtr); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_CancelLimitSkill, base.GetActor(), ref defaultSkillEventParam2, GameSkillEventChannel.Channel_HostCtrlActor); } if (bForce) { this.actor.SkillControl.SetForceDisableSkillSlot(_type, false); } }
public void ChangeSkillSlot(SkillSlotType _slotType, int _skillID, int _orgSkillID = 0) { int num = 0; int num2 = 0; SkillSlot skillSlot = null; if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out skillSlot)) { int num3 = 0; if (_slotType == SkillSlotType.SLOT_SKILL_7) { SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext(); if (curLvelContext != null) { if ((long)this.sourceActor.handle.SkillControl.ornamentFirstSwitchCdEftTime >= (long)Singleton <FrameSynchr> .instance.LogicFrameTick) { num3 = curLvelContext.m_ornamentFirstSwitchCd; } else { num3 = curLvelContext.m_ornamentSwitchCD; } this.sourceActor.handle.SkillControl.ornamentFirstSwitchCdEftTime = 0; } } else { num3 = skillSlot.CurSkillCD; } int skillLevel = skillSlot.GetSkillLevel(); if (skillSlot.SkillObj != null) { num = skillSlot.SkillObj.SkillID; } if (skillSlot.PassiveSkillObj != null) { num2 = skillSlot.PassiveSkillObj.SkillID; } if (_orgSkillID != 0 && num != _orgSkillID) { return; } skillSlot.DestoryIndicatePrefab(); this.sourceActor.handle.SkillControl.InitSkillSlot((int)_slotType, _skillID, num2); if (this.sourceActor.handle.SkillControl.TryGetSkillSlot(_slotType, out skillSlot)) { skillSlot.CurSkillCD = num3; skillSlot.IsCDReady = (num3 == 0); skillSlot.SetSkillLevel(skillLevel); DefaultSkillEventParam defaultSkillEventParam = new DefaultSkillEventParam(_slotType, 0, this.sourceActor); Singleton <GameSkillEventSys> .GetInstance().SendEvent <DefaultSkillEventParam>(GameSkillEventDef.Event_UpdateSkillUI, this.sourceActor, ref defaultSkillEventParam, GameSkillEventChannel.Channel_HostCtrlActor); if (this.changeSkillSlot[(int)_slotType].changeCount == 0) { this.changeSkillSlot[(int)_slotType].initSkillID = num; this.changeSkillSlot[(int)_slotType].initPassiveSkillID = num2; } this.changeSkillSlot[(int)_slotType].changeSkillID = _skillID; ChangeSkillSlot[] array = this.changeSkillSlot; array[(int)_slotType].changeCount = array[(int)_slotType].changeCount + 1; } } }
public bool FilterMatch(EGlobalGameEvent inEventType, PoolObjHandle <ActorRoot> src, PoolObjHandle <ActorRoot> atker, object param, CTriggerMatch match, int inMatchIndex) { if (!this.CheckDifficulty()) { return(false); } if (((this.GlobalVariable != 0) && (Singleton <BattleLogic> .instance.m_globalTrigger != null)) && (this.GlobalVariable != Singleton <BattleLogic> .instance.m_globalTrigger.CurGlobalVariable)) { return(false); } if (this.bCaptainSrc && ((src == 0) || (src != Singleton <GamePlayerCenter> .GetInstance().GetHostPlayer().Captain))) { return(false); } if (this.bCaptainAtker && ((atker == 0) || (atker != Singleton <GamePlayerCenter> .GetInstance().GetHostPlayer().Captain))) { return(false); } if (this.SrcActorCond != null) { foreach (STriggerCondActor actor in this.SrcActorCond) { if (!actor.FilterMatch(ref src)) { return(false); } } } if (this.AtkerActorCond != null) { foreach (STriggerCondActor actor2 in this.AtkerActorCond) { if (!actor2.FilterMatch(ref atker)) { return(false); } } } switch (inEventType) { case EGlobalGameEvent.SpawnGroupDead: { if (match.Originator == null) { break; } CommonSpawnGroup component = match.Originator.GetComponent <CommonSpawnGroup>(); SpawnGroup group2 = match.Originator.GetComponent <SpawnGroup>(); if ((component == null) || (component == (param as CommonSpawnGroup))) { if ((group2 == null) || (group2 == (param as SpawnGroup))) { break; } return(false); } return(false); } case EGlobalGameEvent.ActorDead: { PoolObjHandle <ActorRoot> actorRoot = ActorHelper.GetActorRoot(match.Originator); if ((actorRoot == 0) || !(actorRoot != src)) { break; } return(false); } case EGlobalGameEvent.ActorDamage: { HurtEventResultInfo inHurtInfo = (HurtEventResultInfo)param; if (this.FilterMatchDamage(ref inHurtInfo)) { break; } return(false); } case EGlobalGameEvent.UseSkill: { ActorSkillEventParam param2 = (ActorSkillEventParam)param; if (param2.slot == this.skillSlot) { break; } return(false); } case EGlobalGameEvent.TalentLevelChange: { TalentLevelChangeParam param4 = (TalentLevelChangeParam)param; if (match.Condition.TalentLevel == param4.TalentLevel) { break; } return(false); } case EGlobalGameEvent.BattleGoldChange: if ((src != 0) && ActorHelper.IsHostCtrlActor(ref src)) { int currentGold = (int)param; if (!this.FilterBattleGoldNum(currentGold)) { return(false); } break; } return(false); case EGlobalGameEvent.SkillUseCanceled: { DefaultSkillEventParam param3 = (DefaultSkillEventParam)param; if (param3.slot == this.skillSlot) { break; } return(false); } } return(true); }