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);
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
 internal void SendEvent(FieldEventCode eventCode, Dictionary <byte, object> parameters)
 {
     field.Game.EventManager.SendFieldEvent(field, eventCode, parameters);
 }