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 ActualOutputBotStatusMessage_UI(Message_Ui msg);
protected override void ActualOutputBotStatusMessage_UI(Message_Ui msg) { //OutputBotStatusMessage(msg); }
protected abstract void ActualPerformBotEnterWorld_UI(Message_Ui msg, BotEnterWorldContext ctxtBew);
protected override void ActualPerformBotEnterWorld_UI(Message_Ui msg, BotEnterWorldContext ctxtBew) { string msgtxt = GetContestantName(ctxtBew.ObjectId) + " ...... arrives"; Console.WriteLine(msgtxt); }
protected override void ActualOutputBotStatusMessage_UI(Message_Ui msg) { UIMessageCount++; }
protected override void ActualPerformBotEnterWorld_UI(Message_Ui msg, BotEnterWorldContext ctxtBew) { UIMessageCount++; }
protected override void ActualPerformBotEnterWorld_UI(Message_Ui msg, BotEnterWorldContext ctxtBew) { LogBotEnterWorld(msg.MessageKind, msg.SubKind, ctxtBew); }
private void OutputBotStatusMessage(Message_Ui msg) { BotStatusRequestContext ctxt = (BotStatusRequestContext)msg.RequestContext; LogXmlBotStatusEvent2(msg.MessageKind, msg.SubKind, ctxt); }