protected void PerformUIMessage(Message_Ui msg) { switch (msg.SubKind) { case KnownSubkinds.BotEnterWorld: BotEnterWorldContext ctxtBew = (BotEnterWorldContext)msg.RequestContext; contestantNames.Add(ctxtBew.ObjectId, ctxtBew.BotName); ActualPerformBotEnterWorld_UI(msg, ctxtBew); break; case KnownSubkinds.BotFanfareOccurred: SystemMessageContext smc = (SystemMessageContext)msg.RequestContext; ActualOnBotMessage_UI(msg.MessageKind, msg.SubKind, smc); break; case KnownSubkinds.BotEndOccured: BotEndContext bdc = (BotEndContext)msg.RequestContext; ActualBotEndEvent_UI(msg.MessageKind, msg.SubKind, bdc); break; case KnownSubkinds.WeaponFire: var ctxt = (UICombatContext)msg.RequestContext; ActualWeaponFire_UI(msg.MessageKind, msg.SubKind, ctxt); break; case KnownSubkinds.DirectionChange: case KnownSubkinds.ChangeSpeed: var nicspd = (NavigationInfoContext)msg.RequestContext; ActualNavitationEvent_UI(msg.MessageKind, msg.SubKind, nicspd); break; case KnownSubkinds.EndGameStatus: EndGameRequestContext egrc = (EndGameRequestContext)msg.RequestContext; ActualEndGame_UI(msg.MessageKind, msg.SubKind, egrc); break; case KnownSubkinds.BotStatus: ActualOutputBotStatusMessage_UI(msg); break; } }
protected abstract void ActualBotEndEvent_UI(MainMessageKind messageKind, KnownSubkinds subKind, BotEndContext bdc);
protected override void ActualBotEndEvent_UI(MainMessageKind messageKind, KnownSubkinds subKind, BotEndContext bdc) { string msgtxt; if (bdc.Reason == BotEndReason.Depleted) { msgtxt = GetContestantName(bdc.BotId) + " Is Depleted......"; } else { msgtxt = GetContestantName(bdc.BotId) + " DIES! "; } Console.WriteLine(msgtxt); }
protected override void ActualBotEndEvent_UI(MainMessageKind messageKind, KnownSubkinds subKind, BotEndContext bdc) { UIMessageCount++; }
protected override void ActualBotEndEvent_UI(MainMessageKind messageKind, KnownSubkinds subKind, BotEndContext bdc) { string msgtxt; if (bdc.Reason == BotEndReason.Depleted) { msgtxt = GetContestantName(bdc.BotId) + " Is Depleted......"; LogXmlBotCombatEvent("UI", subKind.ToString(), bdc.BotId); } else { msgtxt = GetContestantName(bdc.BotId) + " DIES! "; LogBotDeathEvent(messageKind, subKind, bdc); } }
private void LogBotDeathEvent(MainMessageKind mainMessageKind, KnownSubkinds uIMessageSubKind, BotEndContext bdc) { var el = GetEventElement(mainMessageKind.ToString(), uIMessageSubKind.ToString()); using (var w = el.CreateWriter()) { var sr = new DataContractSerializer(bdc.GetType()); sr.WriteObject(w, bdc); } eventsParentElement.Add(el); }