예제 #1
0
 private void OnEventOccured(IGameLogicsEvent i_Event)
 {
     if (EventOccured != null)
     {
         EventOccured.Invoke(i_Event);
     }
 }
예제 #2
0
        private void proceedEvent(IGameLogicsEvent i_Event)
        {
            SoldierMovedEvent   soldierMovedEvent   = i_Event as SoldierMovedEvent;
            BecameKingEvent     becameKingEvent     = i_Event as BecameKingEvent;
            SoldierRemovedEvent soldierRemovedEvent = i_Event as SoldierRemovedEvent;
            PlayerSwitchedEvent playerSwitchedEvent = i_Event as PlayerSwitchedEvent;
            GameEndedEvent      gameEndedEvent      = i_Event as GameEndedEvent;

            if (soldierMovedEvent != null)
            {
                moveSoldier(soldierMovedEvent.Move);
            }
            else if (becameKingEvent != null)
            {
                becomeKing(becameKingEvent.Coordinate);
            }
            else if (soldierRemovedEvent != null)
            {
                removeSoldier(soldierRemovedEvent.Coordinate);
            }
            else if (playerSwitchedEvent != null)
            {
                OnPlayerSwitched();
            }
            else if (gameEndedEvent != null)
            {
                OnGameEnded();
            }
        }
예제 #3
0
        private void gameEngine_EventOccured(IGameLogicsEvent i_Event)
        {
            bool queueWasEmpty = r_LogicsEventsQueue.Count == 0;

            r_LogicsEventsQueue.Enqueue(i_Event);
            if (queueWasEmpty)
            {
                proceedEvent(r_LogicsEventsQueue.Peek());
            }
        }
예제 #4
0
        private void proceedEvent(IGameLogicsEvent i_Event)
        {
            SoldierMovedEvent   soldierMovedEvent   = i_Event as SoldierMovedEvent;
            BecameKingEvent     becameKingEvent     = i_Event as BecameKingEvent;
            SoldierRemovedEvent soldierRemovedEvent = i_Event as SoldierRemovedEvent;

            if (soldierMovedEvent != null)
            {
                moveSoldier(soldierMovedEvent.Move);
            }
            else if (becameKingEvent != null)
            {
                becomeKing(becameKingEvent.Symbol, becameKingEvent.Coordinate);
            }
            else if (soldierRemovedEvent != null)
            {
                removeSoldier(soldierRemovedEvent.Coordinate);
            }
        }