internal override bool Handle(GameEventCode eventCode, Dictionary <byte, object> parameters, out string errorMessage)
        {
            if (base.Handle(eventCode, parameters, out errorMessage))
            {
                int gamePlayerID = (int)parameters[(byte)GamePlayerEventParameterCode.GamePlayerID];
                GamePlayerEventCode       resolvedEventCode  = (GamePlayerEventCode)parameters[(byte)GamePlayerEventParameterCode.EventCode];
                Dictionary <byte, object> resolvedParameters = (Dictionary <byte, object>)parameters[(byte)GamePlayerEventParameterCode.Parameters];

                if (gamePlayerID == 1)
                {
                    return(subject.GamePlayer1.EventManager.Operate(resolvedEventCode, resolvedParameters, out errorMessage));
                }
                else if (gamePlayerID == 2)
                {
                    return(subject.GamePlayer2.EventManager.Operate(resolvedEventCode, resolvedParameters, out errorMessage));
                }
                else
                {
                    errorMessage = $"GamePlayerEvent Error GamePlayer ID: {gamePlayerID} Not in Game: {subject.GameID}";
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Beispiel #2
0
        internal void SendGamePlayerEvent(GamePlayer gamePlayer, GamePlayerEventCode eventCode, Dictionary <byte, object> parameters)
        {
            Dictionary <byte, object> eventData = new Dictionary <byte, object>
            {
                { (byte)GamePlayerEventParameterCode.GamePlayerID, gamePlayer.GamePlayerID },
                { (byte)GamePlayerEventParameterCode.EventCode, (byte)eventCode },
                { (byte)GamePlayerEventParameterCode.Parameters, parameters }
            };

            SendEvent(GameEventCode.GamePlayerEvent, eventData);
        }
 internal bool Operate(GamePlayerEventCode eventCode, Dictionary <byte, object> parameters, out string errorMessage)
 {
     if (eventTable.ContainsKey(eventCode))
     {
         if (eventTable[eventCode].Handle(eventCode, parameters, out errorMessage))
         {
             return(true);
         }
         else
         {
             errorMessage = $"GamePlayer Event Error: {eventCode} from GamePlayerID: {gamePlayer.GamePlayerID}\nErrorMessage: {errorMessage}";
             return(false);
         }
     }
     else
     {
         errorMessage = $"Unknow GamePlayer Event:{eventCode} from GamePlayerID: {gamePlayer.GamePlayerID}";
         return(false);
     }
 }
 internal void SendEvent(GamePlayerEventCode eventCode, Dictionary <byte, object> parameters)
 {
     gamePlayer.Game.EventManager.SendGamePlayerEvent(gamePlayer, eventCode, parameters);
 }