internal override bool Handle(GameEventCode eventCode, Dictionary <byte, object> parameters, out string errorMessage) { if (base.Handle(eventCode, parameters, out errorMessage)) { int fieldID = (int)parameters[(byte)FieldEventParameterCode.FieldID]; FieldEventCode resolvedEventCode = (FieldEventCode)parameters[(byte)FieldEventParameterCode.EventCode]; Dictionary <byte, object> resolvedParameters = (Dictionary <byte, object>)parameters[(byte)FieldEventParameterCode.Parameters]; if (fieldID == 1) { return(subject.Field1.EventManager.Operate(resolvedEventCode, resolvedParameters, out errorMessage)); } else if (fieldID == 2) { return(subject.Field2.EventManager.Operate(resolvedEventCode, resolvedParameters, out errorMessage)); } else { errorMessage = $"FiledEvent Error Field ID: {fieldID} Not in Game: {subject.GameID}"; return(false); } } else { return(false); } }
internal void SendFieldEvent(Field filed, FieldEventCode eventCode, Dictionary <byte, object> parameters) { Dictionary <byte, object> eventData = new Dictionary <byte, object> { { (byte)FieldEventParameterCode.FieldID, filed.FieldID }, { (byte)FieldEventParameterCode.EventCode, (byte)eventCode }, { (byte)FieldEventParameterCode.Parameters, parameters } }; SendEvent(GameEventCode.FieldEvent, eventData); }
internal bool Operate(FieldEventCode eventCode, Dictionary <byte, object> parameters, out string errorMessage) { if (eventTable.ContainsKey(eventCode)) { if (eventTable[eventCode].Handle(eventCode, parameters, out errorMessage)) { return(true); } else { errorMessage = $"Field Event Error: {eventCode} from FieldID: {field.FieldID}\nErrorMessage: {errorMessage}"; return(false); } } else { errorMessage = $"Unknow Field Event:{eventCode} from FieldID: {field.FieldID}"; return(false); } }
internal void SendEvent(FieldEventCode eventCode, Dictionary <byte, object> parameters) { field.Game.EventManager.SendFieldEvent(field, eventCode, parameters); }