コード例 #1
0
 public static HunterFSMFactory GetInstance()
 {
     if (instance == null)
     {
         instance = new HunterFSMFactory();
         instance.Init();
     }
     return(instance);
 }
コード例 #2
0
    public void CharactorLeave(E_Charactor charactor)
    {
        QuestRoomSceneUIManager.GetInstance().OnlyShowMainUIOrigin();
        Stack <FSMState> stateStack = CharactorFrame.GetInstance().CharaController.GetStateStack();
        CharactorIdea    nowChara;

        //여기가 너무 안좋은데.
        switch (charactor)
        {
        case E_Charactor.CLIENT:
            nowChara = CharactorFrame.GetInstance().clientIdea;

            if (stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.COMMISSION_CANCEL)))
            {
                CharactorManager.GetInstance().RemoveCharactor(nowChara);
                break;
            }
            if (stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_00))
                ||
                stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_50))
                ||
                stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_80))
                ||
                stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_95))
                ||
                stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_PERFACT))
                )
            {
                ClientCommissionCheckCalculateLastincome();
                CharactorManager.GetInstance().RemoveCharactor(nowChara);
            }

            break;

        case E_Charactor.HUNTER:
            nowChara = CharactorFrame.GetInstance().hunterIdea;

            if (stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.INQUIRE_QUEST_CANCEL)))
            {
                CharactorManager.GetInstance().RemoveCharactor(nowChara);
                break;
            }
            if (stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.HUNT_REWARD_ALL_PAYMENT))
                ||
                stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.HUNT_REWARD_PARTIAL_PAYMENT))
                ||
                stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.HUNT_REWARD_DENIED))
                )
            {
                CharactorManager.GetInstance().RemoveCharactor(nowChara);
                break;
            }
            break;
        }
        CharactorFrame.GetInstance().LeaveAnim();
        Debug.Log("캐릭터 리브");
    }
コード例 #3
0
 public override void SetupAI(FSMController cont)
 {
     cont.Setup(HunterFSMFactory.GetInstance().GetState(E_HunterState.IDLE));
 }