public PlayerFsm(Game game, DungeonTiles.Player player) { Game = game; Player = player; IdlePlayerState = new PlayerState(this); // Let the game know the players state changed. OnNewState.AddListener((state) => { GameEvents.OnPlayerStateChange.Invoke(player, (PlayerState)state); }); GameEvents.OnNewTurnPhase.AddListener((newPlayer, turnPhase) => { // Check if this is the player we're managing. if (newPlayer != player) { SetState(IdlePlayerState); return; } if (turnPhase == TurnPhase.Hero) { SetState(new HeroPhaseState(this)); } else { SetState(IdlePlayerState); } }); }
public void OnEnable() { DungeonTiles.Player player = GetComponent <DungeonTiles.Player>(); Game game = Game.Instance; PlayerFsm = new PlayerFsm(game, player); }
public void Start() { Game = Game.Instance; Player = Game.LocalPlayer; PlayerFsm = Player.GetComponent <PlayerFsmBehaviour>().PlayerFsm; TurnStatusText = GameObject.Find("Text_TurnStatus").GetComponent <Text>(); CharacterNameText = GameObject.Find("Text_CharacterName").GetComponent <Text>(); }
public PlayerState(PlayerFsm fsm) : base(fsm) { Game = fsm.Game; Player = fsm.Player; }