Beispiel #1
0
        /// <summary>
        /// Start is called before the first frame update
        /// </summary>
        void Start()
        {
            popupDamageManager = new PopupTextManager(CanvasGameObject);

            // プレハブから Player を生成
            var playerPrefab = (GameObject)Resources.Load("Prefabs/Player/BattlePlayer");

            battlePlayer = Instantiate(playerPrefab, Vector3.zero, Quaternion.identity);
            battlePlayer.SetActive(false);
            var enemyPrefab = (GameObject)Resources.Load("Prefabs/Enemy/BattleEnemy");

            battleEnemy = Instantiate(enemyPrefab, Vector3.zero, Quaternion.identity);
            battleEnemy.SetActive(false);

            FadeManager.Blackout();
            FadeManager.FadeIn();

            stateMachine = new IceMilkTea.Core.ImtStateMachine <BattleScene>(this);
            stateMachine.AddTransition <WaitState, BattleState>((int)StateEventId.Start);
            stateMachine.AddTransition <BattleState, TurnChangeState>((int)StateEventId.TurnChange);
            stateMachine.AddTransition <TurnChangeState, BattleState>((int)StateEventId.Battle);
            stateMachine.AddTransition <TurnChangeState, WinState>((int)StateEventId.Win);
            stateMachine.AddTransition <TurnChangeState, LoseState>((int)StateEventId.Lose);
            stateMachine.AddTransition <WinState, LeaveState>((int)StateEventId.Leave);

            stateMachine.SetStartState <WaitState>();

            var playerBattlerScript = battlePlayer.GetComponent <Battler>();
            var enemyBattlerScript  = battleEnemy.GetComponent <Battler>();

            var param = (BattleSceneParam)SceneParam;

            playerBattlerScript.Status = param.PlayerStatus;
            enemyBattlerScript.Status  = Database.EnemyDatabase.GetStatus(param.EncountId);

            turnTypes = TurnTypes.Player;
        }