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