public ConnectionStateMachine(MixedManager game) { _game = game; var startState = new GameStartState(this, _game); var connectingState = new GameConnectingState(this, _game); var connectedState = new GameConnectedState(this, _game); var disconnectedState = new GameDisconnectedState(this, _game); var roomState = new GameRoomState(this, _game); var stateList = new Dictionary <ConnectionFSMStateEnum.StateEnum, IFsmState> { { ConnectionFSMStateEnum.StateEnum.START, startState }, { ConnectionFSMStateEnum.StateEnum.CONNECTING, connectingState }, { ConnectionFSMStateEnum.StateEnum.CONNECTED, connectedState }, { ConnectionFSMStateEnum.StateEnum.DISCONNECTED, disconnectedState }, { ConnectionFSMStateEnum.StateEnum.ROOM, roomState }, }; SetStates(stateList); var allowedTransitions = new Dictionary <ConnectionFSMStateEnum.StateEnum, IList <ConnectionFSMStateEnum.StateEnum> >(); allowedTransitions.Add(ConnectionFSMStateEnum.StateEnum.START, new List <ConnectionFSMStateEnum.StateEnum> { ConnectionFSMStateEnum.StateEnum.CONNECTING, }); allowedTransitions.Add(ConnectionFSMStateEnum.StateEnum.CONNECTING, new List <ConnectionFSMStateEnum.StateEnum> { ConnectionFSMStateEnum.StateEnum.CONNECTED, }); allowedTransitions.Add(ConnectionFSMStateEnum.StateEnum.CONNECTED, new List <ConnectionFSMStateEnum.StateEnum> { ConnectionFSMStateEnum.StateEnum.ROOM, }); allowedTransitions.Add(ConnectionFSMStateEnum.StateEnum.DISCONNECTED, new List <ConnectionFSMStateEnum.StateEnum> { ConnectionFSMStateEnum.StateEnum.START, }); allowedTransitions.Add(ConnectionFSMStateEnum.StateEnum.ROOM, new List <ConnectionFSMStateEnum.StateEnum> { ConnectionFSMStateEnum.StateEnum.START, }); SetTransitions(allowedTransitions); }
public GameConnectingState(ConnectionStateMachine owner, MixedManager game) : base(owner) { _game = game; }