protected override void ServerHandleSkillByID(int skillID, int actionPriority, Vector3 dir, bool isClientHandle, int uniqueID) { base.ServerHandleSkillByID(skillID, actionPriority, dir, isClientHandle, uniqueID); EventDispatcher.BroadcastAsync <int, int>("GuideManager.MonsterCastSkill", this.owner.TypeID, skillID); EventDispatcher.BroadcastAsync <int, EntityMonster, string>("BattleDialogTrigger", 2, this.owner as EntityMonster, skillID.ToString()); Skill skill = DataReader <Skill> .Get(skillID); if (skill == null) { return; } if (this.owner.IsLogicBoss && skill.talk == 1) { BubbleDialogueManager.Instance.BubbleDialogueTrigger(4, 0); } }
public virtual bool ClientCastSkillByID(int skillID) { if (!this.CheckClientHandleSkillByID(skillID)) { if (this.owner.IsEntitySelfType && this.IsOpenLog) { Debug.LogError("return 5"); } return(false); } this.ClientHandleSkillByID(skillID); if (this.owner != null && this.owner.IsPlayerMate) { EventDispatcher.BroadcastAsync <int, int>("GuideManager.MateCastSkill", this.owner.TypeID, skillID); } return(true); }
public override void SetCommonLogic() { if (EntityWorld.Instance.EntSelf == null) { return; } bool flag = false; if (!this.HasEnteredCityBefore) { this.HasEnteredCityBefore = true; EventDispatcher.Broadcast("ReTriggerTaskOfLogin"); if (Application.get_isMobilePlatform() && EntityWorld.Instance.EntSelf.Lv == 1) { flag = true; } } Action action = delegate { FXSpineManager.Instance.ShowBattleStart2(delegate { LoadingUIView.Close(); TownUI.IsOpenAnimationOn = true; this.ShowTownUI(); if (EntityWorld.Instance.EntSelf.IsNavigating) { EventDispatcher.Broadcast(EventNames.BeginNav); } MySceneManager.Instance.PlayBGM(); EventDispatcher.BroadcastAsync(CityManagerEvent.EnteredCity); }); }; if (flag) { ClientApp.Instance.PlayCGMovie(action); } else { action.Invoke(); } }
public static void SendRelive(long targetID, int hp) { BattleAction_Relive arg = new BattleAction_Relive(); EventDispatcher.BroadcastAsync <BattleAction_Relive, bool>(BattleActionEvent.Relive, arg, false); }
public override void OnActionStatusEnter(ActionStatusEnterCmd cmd) { base.OnActionStatusEnter(cmd); EventDispatcher.BroadcastAsync <int, EntityMonster, string>("BattleDialogTrigger", 1, this.GetEntity() as EntityMonster, this.CurActionStatus); }
public virtual void ClientHandleSkillByID(int skillID) { Skill skill = DataReader <Skill> .Get(skillID); if (skill == null) { return; } this.CurSkillID = skillID; this.MarkCD(skill); this.ownerActor.IsRotating = false; if (skill.autoAim == 1 && this.owner.AITarget != null && this.owner.AITarget.Actor) { this.ownerActor.ForceSetDirection(new Vector3(this.owner.AITarget.Actor.FixTransform.get_position().x - this.ownerActor.FixTransform.get_position().x, 0f, this.owner.AITarget.Actor.FixTransform.get_position().z - this.ownerActor.FixTransform.get_position().z)); this.ownerActor.ApplyMovingDirAsForward(); } for (int i = 0; i < skill.effect.get_Count(); i++) { this.MarkStaticEffectMessage(skill.effect.get_Item(i), true); } if (!string.IsNullOrEmpty(skill.attAction)) { List <int> actionEffects = XUtility.GetActionEffects(this.ownerActor.FixAnimator.get_runtimeAnimatorController(), skill.attAction); for (int j = 0; j < actionEffects.get_Count(); j++) { this.MarkStaticEffectMessage(actionEffects.get_Item(j), true); } } if (skill.aiSkillMove == 1 && this.owner.AITarget != null) { SkillWarningMessage skillWarningMessage = new SkillWarningMessage(); skillWarningMessage.caster = this.owner; skillWarningMessage.target = this.owner.AITarget; skillWarningMessage.skillID = skillID; skillWarningMessage.effectMessage = new Dictionary <int, XPoint>(); if (skill.effect != null) { for (int k = 0; k < skill.effect.get_Count(); k++) { int num = skill.effect.get_Item(k); if (this.effectMessageCache.ContainsKey(num) && !skillWarningMessage.effectMessage.ContainsKey(num)) { skillWarningMessage.effectMessage.Add(num, this.effectMessageCache.get_Item(num).basePoint); } } } List <int> actionEffects2 = XUtility.GetActionEffects(this.ownerActor.FixAnimator.get_runtimeAnimatorController(), skill.attAction); for (int l = 0; l < actionEffects2.get_Count(); l++) { int num2 = actionEffects2.get_Item(l); if (this.effectMessageCache.ContainsKey(num2) && !skillWarningMessage.effectMessage.ContainsKey(num2)) { skillWarningMessage.effectMessage.Add(num2, this.effectMessageCache.get_Item(num2).basePoint); } } EventDispatcher.BroadcastAsync <SkillWarningMessage>(WarningManagerEvent.AddSkillWarningMessage, skillWarningMessage); } bool flag = this.CheckSkillTrustee(skill); if (flag) { this.owner.IsSkillInTrustee = true; this.serverTrusteeSkillActionStatusName.Add(new KeyValuePair <string, int>(skill.attAction, 0)); if (string.IsNullOrEmpty(skill.attAction)) { this.ServerTrusteeSkillActionEnd(string.Empty, this.owner.ID); } } if (skill.actionPriority != 0) { this.ownerActor.ActionPriorityTable[skill.attAction] = skill.actionPriority; } this.ownerActor.CastAction(skill.attAction, true, skill.changeSpeed, (!string.IsNullOrEmpty(skill.attAction)) ? skillID : 0, skill.combo, skill.eventTag); if (skill.superArmor == 1) { int fxID = FXManager.Instance.PlayFX(93, this.ownerActor.FixTransform, this.ownerActor.FixTransform.get_position(), this.ownerActor.FixTransform.get_rotation(), 1f, 1f, 0, false, 0, null, null, 1f, FXClassification.Normal); this.ownerActor.FixFXSystem.AddActionFX(fxID); } if (skill.skillWarningTime != 0 && this.owner.AITarget != null) { WarningGraghHandler.AddWarningGragh(new SkillWarningGraghMessage { casterActor = this.ownerActor, targetPoint = (!this.owner.AITarget.Actor) ? null : new XPoint { position = this.owner.AITarget.Actor.FixTransform.get_position(), rotation = this.owner.AITarget.Actor.FixTransform.get_rotation() }, skillID = skillID }); } GlobalBattleNetwork.Instance.SendUseSkill(this.owner.ID, skillID, (this.owner.AITarget != null) ? this.owner.AITarget.ID : 0L, flag, this.ownerActor.FixTransform.get_position(), this.ownerActor.FixTransform.get_forward()); this.ClientLogicTriggerEffect(skill); }