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);
        }