コード例 #1
0
ファイル: StateManager.cs プロジェクト: clk664251332/NewArad
    public void EnterState(EActionState eState, params object[] paramList)
    {
        if (m_currState != null)
        {
            if (m_currState.GetState() == eState)
            {
                return;
            }
        }

        EActionState eLastState = EActionState.None;

        if (m_currState != null)
        {
            eLastState = m_currState.GetState();
            m_currState.BreakState(eState);
        }

        for (int i = 0; i < m_lstState.Count; ++i)
        {
            if (m_lstState[i].GetState() == eState)
            {
                m_currState = m_lstState[i];
                m_lstState[i].EnterState(eLastState, paramList);
            }
        }
    }
コード例 #2
0
 public void Invoke(EActionState eventType, IAction action)
 {
     foreach (OnAction callback in GetList(eventType, action.GetIndex()))
     {
         callback.Invoke(action);
     }
 }
コード例 #3
0
ファイル: BeHitState.cs プロジェクト: clk664251332/NewArad
    public override void EnterState(EActionState eState)
    {
        base.EnterState(eState);
        int randomIndex = Random.Range(1, 3);

        m_tk2DSpriteAnimator.Play("Behit" + randomIndex.ToString());
    }
コード例 #4
0
            public virtual void Execute()
            {
                me.TriggerAction(this);
                timer.key = 0f;
                cooldown  = true;

                state = EActionState.RUNNING;
            }
コード例 #5
0
    public override void EnterState(EActionState eState)
    {
        base.EnterState(eState);
        m_owner.CanJumpAttack = true;

        m_fV0      = m_owner.GetAttr(EActorAttr.JumpSpeed).Value;
        m_fGravity = m_owner.GetAttr(EActorAttr.JumpGravity).Value;
        m_fOffset  = 0;
        m_tk2DSpriteAnimator.Play("Jump_Up");
    }
コード例 #6
0
    public override void EnterState(EActionState eState)
    {
        base.EnterState(eState);

        //这里先进行预设,后面最好根据配置表在具体的状态中来设置这些状态。
        m_owner.CanMove   = true;
        m_owner.CanJump   = true;
        m_owner.CanAttack = true;
        m_owner.CanSkill  = true;
    }
コード例 #7
0
    public BaseState(Actor actor, EActionState eState)
    {
        m_owner  = actor;
        m_eState = eState;

        if (m_inputAbility == null)
        {
            m_inputAbility = m_owner.GetAbility <HeroInputAbility>();
        }
    }
コード例 #8
0
ファイル: JumpFallState.cs プロジェクト: clk664251332/NewArad
 public override void EnterState(EActionState eState, params object[] paramList)
 {
     base.EnterState(eState, paramList);
     m_tk2DSpriteAnimator.Play("Jump_Fall");
     if (paramList.Length > 0)
     {
         m_fV0     = (float)paramList.GetValue(0);
         m_fOffset = (float)paramList.GetValue(1);
     }
     m_fGravity = m_owner.GetAttr(EActorAttr.JumpGravity).Value;
 }
コード例 #9
0
ファイル: StateManager.cs プロジェクト: clk664251332/NewArad
    public BaseState GetState(EActionState eState)
    {
        for (int i = 0; i < m_lstState.Count; ++i)
        {
            if (m_lstState[i].GetState() == eState)
            {
                return(m_lstState[i]);
            }
        }

        return(null);
    }
コード例 #10
0
        protected List <OnAction> GetList(EActionState eventType, int actionIndex)
        {
            if (callbacks.ContainsKey(actionIndex) == false)
            {
                callbacks[actionIndex] = new Dictionary <EActionState, List <OnAction> >();
            }

            if (callbacks[actionIndex].ContainsKey(eventType) == false)
            {
                callbacks[actionIndex][eventType] = new List <OnAction>();
            }

            return(callbacks[actionIndex][eventType]);
        }
コード例 #11
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="eState">进入新状态后上一个状态</param>
    public virtual void EnterState(EActionState eState)
    {
        if (m_tk2DSpriteAnimator == null)
        {
            m_tk2DSpriteAnimator = m_owner.GetAbility <AnimationAbility>().GetTk2dSpriteAnimator();
        }

        if (m_stateManager == null)
        {
            m_stateManager = m_owner.GetStateMgr();
        }

        m_tk2DSpriteAnimator.AnimationCompleted = OnAnimationComplete;
    }
コード例 #12
0
    public override void EnterState(EActionState eState)
    {
        base.EnterState(eState);

        m_owner.CanMove   = true;
        m_owner.CanJump   = false;
        m_owner.CanAttack = false;
        m_owner.CanSkill  = false;
        m_owner.IsJump    = true;

        if (m_animationTrans == null)
        {
            m_animationTrans = m_owner.GetAbility <AnimationAbility>().m_animationTrans;
        }
    }
コード例 #13
0
    public void Stop()
    {
        if (null != m_lstActionFrames)
        {
            foreach (AbstractActionFrame frame in m_lstActionFrames)
            {
                if (null == frame)
                {
                    continue;
                }

                frame.Stop();
            }
        }

        m_eActionState = EActionState.Stop;
        //Destory();
    }
コード例 #14
0
ファイル: Attack2State.cs プロジェクト: clk664251332/NewArad
    public override void EnterState(EActionState eState)
    {
        base.EnterState(eState);
        m_tk2DSpriteAnimator.ClipFps = m_owner.GetAttr(EActorAttr.AttackSpeed).Value;

        if (m_owner is Hero)
        {
            if (Input.GetAxisRaw("Horizontal") > 0)
            {
                m_owner.Direction   = 1;
                m_fAttackMoveSpeed *= 4f;
            }
            else if (Input.GetAxisRaw("Horizontal") < 0)
            {
                m_owner.Direction   = -1;
                m_fAttackMoveSpeed *= 4f;
            }
        }
    }
コード例 #15
0
    public override void EnterState(EActionState eState)
    {
        base.EnterState(eState);

        if (m_bHasInit)
        {
            return;
        }

        if (m_skillLoader == null)
        {
            m_skillLoader = ConfigManager.Instance.GetLoader <SkillLoader>();
        }

        if (m_lstFixedEffectId == null)
        {
            m_lstFixedEffectId = m_skillLoader.GetFixedEffectIdList(m_skillData.Id);
        }

        if (m_lstFixedEffectId != null && m_lstFixedEffectId.Count > 0)
        {
            for (int i = 0; i < m_lstFixedEffectId.Count; i++)
            {
                var fixedEffectLoaderData = ConfigManager.Instance.GetData <FixedEffectLoader, FixedEffectLoader.Data>(m_lstFixedEffectId[i]);

                GameObject m_effectObj = new GameObject("effect_" + m_skillData.ActionName + "_" + fixedEffectLoaderData.Id);
                m_effectObj.transform.parent        = m_tk2DSpriteAnimator.transform.Find("Effect");
                m_effectObj.transform.localPosition = Vector3.zero;
                tk2dSprite m_effectSprite = Common.GetOrAddComponent <tk2dSprite>(m_effectObj);
                tk2dSpriteCollectionData tk2DSpriteCollectionData = tk2dSystem.LoadResourceByName <tk2dSpriteCollectionData>(fixedEffectLoaderData.CollectionName);
                m_effectSprite.SetSprite(tk2DSpriteCollectionData, 0);
                m_effectSprite.SortingLevel = 3;
                m_effectObj.SetActive(false);
                m_lstEffectObj.Add(m_effectObj);
                m_lstEffectSprite.Add(m_effectSprite);
                m_lstStartFramName.Add(int.Parse(fixedEffectLoaderData.StartFrameName));
                m_lstEndFramName.Add(int.Parse(fixedEffectLoaderData.EndFrameName));
            }
        }
        m_bHasInit = true;
    }
コード例 #16
0
    public void Reset()
    {
        m_fStartTime   = TimeManager.Instance.GetTime();
        m_fRunTime     = 0f;
        m_eActionState = EActionState.Play;

        m_lstActionFrames.Clear();
        if (m_ActionFileData != null && m_ActionFileData.FrameDatalist != null)
        {
            for (int iIndex = m_ActionFileData.FrameDatalist.Count - 1; iIndex >= 0; --iIndex)
            {
                ActionFrameData     inputData  = m_ActionFileData.FrameDatalist[iIndex];
                AbstractActionFrame skillFrame = ActionFrameFactory.CreateActionFrame(this, inputData);
                m_lstActionFrames.Add(skillFrame);
            }
        }

        // Stop Char Move
        StopCharMove();
        //DisableAI();
    }
コード例 #17
0
    public override void EnterState(EActionState eLastState)
    {
        base.EnterState(eLastState);
        GetSkillData();
        m_eSkillType = ConfigManager.Instance.GetLoader <SkillLoader>().GetSKillType(m_nSkillId);

        m_fAttackMoveSpeed    = m_skillData.MoveSpeed;
        m_fAttackMoveFriction = m_skillData.MoveFriction;

        m_owner.CanMove   = false;
        m_owner.CanJump   = false;
        m_owner.CanAttack = false;
        m_owner.CanSkill  = false;

        m_inputAbility.MoveX(0);

        //播放动画
        m_tk2DSpriteAnimator.Play(m_skillData.ActionName);
        //暂时设定在Update中只造成一次伤害
        m_bCanHit          = true;
        m_bCanCreateEffect = true;
        m_lstSkillEffectId = ConfigManager.Instance.GetLoader <SkillLoader>().GetSkillEffectIdList(m_nSkillId);
    }
コード例 #18
0
    public override void EnterState(EActionState eState, params object[] paramList)
    {
        base.EnterState(eState);
        m_owner.CanMove       = true;
        m_owner.CanJump       = false;
        m_owner.CanAttack     = false;
        m_owner.CanSkill      = false;
        m_owner.IsJump        = true;
        m_owner.CanJumpAttack = false;

        m_tk2DSpriteAnimator.Play("JumpAttack");

        if (paramList.Length > 0)
        {
            m_fV0     = (float)paramList.GetValue(0);
            m_fOffset = (float)paramList.GetValue(1);
        }
        m_fGravity = m_owner.GetAttr(EActorAttr.JumpGravity).Value;

        if (m_animationTrans == null)
        {
            m_animationTrans = m_owner.GetAbility <AnimationAbility>().m_animationTrans;
        }
    }
コード例 #19
0
 public override void EnterState(EActionState eState)
 {
     base.EnterState(eState);
     m_tk2DSpriteAnimator.ClipFps = m_owner.GetAttr(EActorAttr.AttackSpeed).Value;
 }
コード例 #20
0
 public override void EnterState(EActionState eState)
 {
     base.EnterState(eState);
 }
コード例 #21
0
ファイル: BattleUnit.cs プロジェクト: supertms/WolongYin
 public void Stop()
 {
     actionState = EActionState.stop;
     if (Model != null)
         Model.Stop();
 }
コード例 #22
0
ファイル: BattleUnit.cs プロジェクト: supertms/WolongYin
 public void Resume()
 {
     actionState = EActionState.playing;
     if (Model != null)
         Model.Resume();
 }
コード例 #23
0
ファイル: BattleUnit.cs プロジェクト: supertms/WolongYin
 public void Pause()
 {
     actionState = EActionState.pause;
     if (Model != null)
         Model.Pause();
 }
コード例 #24
0
 public void Pause()
 {
     actionState = EActionState.pause;
     Speed = 0f;
 }
コード例 #25
0
 public void Stop()
 {
     actionState = EActionState.stop;
 }
コード例 #26
0
 public void Pause()
 {
     m_eActionState = EActionState.Pause;
 }
コード例 #27
0
 public BaseJumpState(Actor actor, EActionState eState) : base(actor, eState)
 {
 }
コード例 #28
0
 public override void BreakState(EActionState eState)
 {
     base.BreakState(eState);
 }
コード例 #29
0
ファイル: JumpDownState.cs プロジェクト: clk664251332/NewArad
 public override void BreakState(EActionState eState)
 {
     base.BreakState(eState);
     m_animationTrans.localPosition = new Vector2(m_animationTrans.localPosition.x, 0);
 }
コード例 #30
0
 public virtual void EnterState(EActionState eState, params object[] paramList)
 {
     EnterState(eState);
 }
コード例 #31
0
 public void Pause()
 {
     m_eActionState = EActionState.Pause;
 }
コード例 #32
0
    public void Reset()
    {
        m_fStartTime = TimeManager.Instance.GetTime();
        m_fRunTime = 0f;
        m_eActionState = EActionState.Play;

        m_lstActionFrames.Clear();
        if (m_ActionFileData != null && m_ActionFileData.FrameDatalist != null)
        {
            for (int iIndex = m_ActionFileData.FrameDatalist.Count - 1; iIndex >= 0; --iIndex)
            {
                ActionFrameData inputData = m_ActionFileData.FrameDatalist[iIndex];
                AbstractActionFrame skillFrame = ActionFrameFactory.CreateActionFrame(this, inputData);
                m_lstActionFrames.Add(skillFrame);
            }
        }

        // Stop Char Move
        StopCharMove();
        //DisableAI();
    }
コード例 #33
0
ファイル: StateManager.cs プロジェクト: clk664251332/NewArad
    public void EnterState(string strStateName)
    {
        EActionState eState = (EActionState)Enum.Parse(typeof(EActionState), strStateName);

        EnterState(eState);
    }
コード例 #34
0
 public void Play()
 {
     m_eActionState = EActionState.Play;
 }
コード例 #35
0
 public BaseSkillState(Actor actor, EActionState eActionState) : base(actor, eActionState)
 {
 }
コード例 #36
0
 public void Resume()
 {
     actionState = EActionState.playing;
     Speed = 1f;
 }
コード例 #37
0
 public void Play()
 {
     m_eActionState = EActionState.Play;
 }
コード例 #38
0
ファイル: JumpDownState.cs プロジェクト: clk664251332/NewArad
 public override void EnterState(EActionState eState)
 {
     base.EnterState(eState);
     m_owner.CanJumpAttack = false;
     m_tk2DSpriteAnimator.Play("Jump_Down");
 }
コード例 #39
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="eState">退出后下一个状态</param>
 public virtual void BreakState(EActionState eState)
 {
 }
コード例 #40
0
    public void Stop()
    {
        if (null != m_lstActionFrames)
        {
            foreach (AbstractActionFrame frame in m_lstActionFrames)
            {
                if (null == frame)
                {
                    continue;
                }

                frame.Stop();
            }
        }

        m_eActionState = EActionState.Stop;
        //Destory();
    }