public void Initialize(BattleSystem system, BattleQueue queue, SetupParams parameters) { _system = system; _queue = queue; _stateStart = RegisterState <BattleStateStart>(); _stateInput = RegisterState <BattleStateInput>(); _stateExecute = RegisterState <BattleStateExecute>(); _statePostTurn = RegisterState <BattleStatePostTurn>(); _statePostTurnExecute = RegisterState <BattleStatePostTurnExecute>(); // Register players into battle. parameters.Players.ForEach(x => system.RegisterPlayer(x.Player, x.FieldSide)); SetState(BattleStateID.Start); }