コード例 #1
0
 private void Update()
 {
     if (!HasStarted)
     {
         if (Input.GetKeyDown(KeyCode.Return))
         {
             EventQueue.enqueueEvent(EventQueueContainer.TurnTimelineQueue, StartTurnEvent.alloc(TurnTimeline, EventQueueContainer.EntityActionQueue));
             HasStarted = true;
         }
     }
 }
コード例 #2
0
        public ITurnState Get(TurnStateEnum state)
        {
            Assert.ValidEnum(state);
            Assert.IsTrue(state != TurnStateEnum.Error);

            TurnState turnState = null;

            switch (state)
            {
            case TurnStateEnum.Start:
            {
                turnState = new StartTurnEvent();
                break;
            }

            case TurnStateEnum.FirstTurnSpellBuff:
            {
                turnState = new FirstTurnSpellBuffEvent();
                break;
            }

            case TurnStateEnum.ActionSurge:
            {
                turnState = new ActionSurgeEvent();
                break;
            }

            case TurnStateEnum.Action:
            {
                turnState = new ActionEvent();
                break;
            }

            case TurnStateEnum.OffHandAttack:
            {
                turnState = new OffHandAttackEvent();
                break;
            }

            case TurnStateEnum.End:
            {
                turnState = new EndTurnEvent();
                break;
            }

            default:
            {
                throw new ArgumentException($"Invalid turn state {state}.");
            }
            }

            return(turnState);
        }
コード例 #3
0
 public virtual void StartTurn()
 {
     currentAP = Mathf.Min(currentAP + ShipDefaults.BASE_AP, ShipDefaults.MAX_AP);
     StartTurnEvent?.Invoke();
 }
コード例 #4
0
 protected override void Setup()
 {
     base.Setup();
     turnEvent = new StartTurnEvent();
 }
コード例 #5
0
 void OnStartTurnEvent()
 {
     //Call all methods which subscribed to StartTurnEvent, if not null
     StartTurnEvent?.Invoke();
 }