Example #1
0
        protected virtual void ChangeStateFromAttackToIdle(Action pOnFXFinished)
        {
            if (pOnFXFinished != null)
            {
                pOnFXFinished();
            }
            Boolean flag = m_State.IsState(EState.ATTACK_RANGED);

            if (m_State.IsState(EState.ATTACK) || m_State.IsState(EState.ATTACK_RANGED))
            {
                m_State.ChangeState(EState.IDLE);
            }
            else
            {
                Debug.LogError("Current state is not ATTACK and not ATTACKRANGED!", this);
            }
            if (MyController != null)
            {
                MyController.AttackingDone.Trigger();
                if (MyController is Monster)
                {
                    CheckForReflectedDamage();
                    m_reflectedMagicDamage.Clear();
                    ((Monster)MyController).AbilityHandler.FlushActionLog(EExecutionPhase.END_OF_MONSTERS_TURN);
                    ((Monster)MyController).BuffHandler.FlushActionLog(MonsterBuffHandler.ELogEntryPhase.ON_END_TURN);
                    DelayedEventManager.InvokeEvent(EDelayType.ON_FX_FINISH, (!flag) ? EEventType.MONSTER_ATTACKS : EEventType.MONSTER_ATTACKS_RANGED, (Monster)MyController, EventArgs.Empty);
                }
            }
        }
Example #2
0
        private void Update()
        {
            Single stateOverrun = m_state.CurrentStateTime + Time.deltaTime - m_state.CurrentStateDuration;

            m_state.Update(Time.deltaTime);
            if (m_state.IsState(EState.MOVING))
            {
                Vector3 localPosition;
                Helper.Lerp(ref m_oldPosition, ref m_targetPosition, m_state.CurrentStateTimePer, out localPosition);
                transform.localPosition = localPosition;
                if (m_state.IsStateTimeout)
                {
                    m_stateOverrun = stateOverrun;
                    m_state.ChangeState(EState.IDLE);
                    FXMainCamera.Instance.StopWalkFX();
                    if (MyController != null)
                    {
                        ((MovingEntity)MyController).MovementDone.Trigger();
                    }
                }
            }
            else
            {
                m_stateOverrun = 0f;
                if (m_state.IsState(EState.ROTATING))
                {
                    transform.localRotation = Quaternion.Lerp(m_oldRotation, m_targetRotation, m_state.CurrentStateTimePer);
                    if (m_state.IsStateTimeout)
                    {
                        m_state.ChangeState(EState.IDLE);
                        FXMainCamera.Instance.StopWalkFX();
                        if (MyController != null)
                        {
                            ((MovingEntity)MyController).RotationDone.Trigger();
                        }
                    }
                }
            }
            HandleDelayedSound();
        }
Example #3
0
 private void OnCloseKeyPressed(Object p_sender, HotkeyEventArgs p_args)
 {
     if (p_args.KeyDown && m_state.IsState(EState.ACTIVE))
     {
         if (m_currentAudioRequest != null)
         {
             m_currentAudioRequest.AbortLoad();
         }
         if (m_currentAudio != null)
         {
             m_currentAudio.Stop();
         }
         m_state.ChangeState(EState.FADEOUT);
     }
 }
Example #4
0
 public virtual Boolean IsFinished()
 {
     return(m_stateMachine.IsState(EState.FINISHED));
 }