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);
            }
        }
Example #2
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);
 }
Example #3
0
    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);
    }
Example #5
0
 public override void OnActionStatusEnter(ActionStatusEnterCmd cmd)
 {
     base.OnActionStatusEnter(cmd);
     EventDispatcher.BroadcastAsync <int, EntityMonster, string>("BattleDialogTrigger", 1, this.GetEntity() as EntityMonster, this.CurActionStatus);
 }
Example #6
0
        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);
        }