Example #1
0
    void OnEndMove()
    {
        m_role.View.Idle();       //idle动画
        m_role.Pos = m_targetPos; //设置逻辑位置
        var enemy = AIManager.Instance.GetNearestEnemy(m_role);

        if (enemy != null)
        {
            //面向最近的敌人
            m_role.View.LookAtWorldPosInBattle(enemy.View.transform.position);
        }
        if (m_role.isAI)
        {
            //ai不能放招式 休息 下一步
            if (BattleStateMechine.Instance.CurrentZhaoshi == null && BattleStateMechine.Instance.CurrentUseItem == null)
            {
                //m_role.Reset();应该是OnRest
                m_role.OnRest();
                BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.WaitingForNextActiveBattleRole);
                return;
            }
            //ai用道具
            else if (BattleStateMechine.Instance.CurrentUseItem != null)
            {
                BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.UseItem);
                return;
            }
            BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.PlayingAction);
        }
        else
        {
            BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.SelectSkill);
        }
    }
Example #2
0
 void DoAIAction(BattleBlockVector MoveTo, BattleBlockVector SkillTo, BattleZhaoshiInstance Skill, Jyx2Item Item)
 {
     //将ai行为储存
     BattleStateMechine.Instance.BindBattleAction(Skill, SkillTo);
     BattleStateMechine.Instance.BindItem(Item);
     if (MoveTo != null)
     {
         BattleStateMechine.Instance.CurrentToPos = MoveTo;
         BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.Move);
     }
     else
     {
         m_currentRole.View.Idle();
         m_currentRole.OnRest();
         BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.WaitingForNextActiveBattleRole);
     }
 }
Example #3
0
 void OnRestClick()
 {
     m_currentRole.OnRest();
     BattleStateMechine.Instance.SwitchState(BattleManager.BattleViewStates.WaitingForNextActiveBattleRole);
 }