예제 #1
0
 public RoundStateFactory(IDeckShuffleService deckShuffleService,
                          IRoundFactory roundFactory,
                          ITurnStateFactory turnStateFactory,
                          IDeckRemovalService deckRemovalService,
                          ICardStateFactory cardStateFactory)
 {
     _deckShuffleService = deckShuffleService;
     _roundFactory       = roundFactory;
     _turnStateFactory   = turnStateFactory;
     _deckRemovalService = deckRemovalService;
     _cardStateFactory   = cardStateFactory;
 }
예제 #2
0
 private Dictionary <TurnStateEnum, ITurnState> InitStateMachine(ITurnStateFactory factory)
 {
     return(new Dictionary <TurnStateEnum, ITurnState>()
     {
         { TurnStateEnum.Start, factory.Get(TurnStateEnum.Start) },
         { TurnStateEnum.FirstTurnSpellBuff, factory.Get(TurnStateEnum.FirstTurnSpellBuff) },
         { TurnStateEnum.Action, factory.Get(TurnStateEnum.Action) },
         { TurnStateEnum.ActionSurge, factory.Get(TurnStateEnum.ActionSurge) },
         { TurnStateEnum.OffHandAttack, factory.Get(TurnStateEnum.OffHandAttack) },
         { TurnStateEnum.End, factory.Get(TurnStateEnum.End) },
         //TODO: error?
     });
 }
예제 #3
0
 public TurnStateMachine(ITurnStateFactory factory)
 {
     Assert.IsNotNull(factory);
     stateMachine = InitStateMachine(factory);
     currentState = stateMachine[TurnStateEnum.Start];
 }