private void PreNextTurnListener(CanNextTurnEvent canNextTurnEvent) { if (_onGoingActions.Count == 0) { return; } foreach (var action in _onGoingActions.Values) { canNextTurnEvent.AddTurnBlocker(new FinishActionBlocker(action)); } }
public void Update() { if (GameEnded) { return; } CanNextTurnEvent canNextTurnEvent = new CanNextTurnEvent(); JEventBus.GetDefault().Post(canNextTurnEvent); if (canNextTurnEvent.ActionBlockers.Count > 0) { Debug.WriteLine("Are Actions To Finish"); return; } TurnBeforeUpdateEvent turnBeforeUpdateEvent = new TurnBeforeUpdateEvent(GameCalendar.CurrentTurn); JEventBus.GetDefault().Post(turnBeforeUpdateEvent); EntityWorld.Update(1000); TurnAfterUpdateEvent turnAfterUpdateEvent = new TurnAfterUpdateEvent(GameCalendar.CurrentTurn++); JEventBus.GetDefault().Post(turnAfterUpdateEvent); }