protected override EquipmentInstallationResult ActualMountEquipment(BoonBotBase targetBot, int equipmentIdentifier, MountPoint mountPoint) { EquipmentInstallationContext eic = new EquipmentInstallationContext(); eic.OwningBotIdentity = targetBot.PublicId; eic.EquipmentIdentifier = equipmentIdentifier; eic.MountPoint = mountPoint; var msg = new Message_BotPerformAction(MainMessageKind.Workshop, KnownSubkinds.InstallEquipment) { PublicBotId = eic.OwningBotIdentity, RequestContext = eic }; hub.Launch <Message_BotPerformAction>(msg); EquipmentInstallationResult eur = (EquipmentInstallationResult)msg.ResponseContext; // b.Assert.True(eur != null, "The return result is null, the wrong type of return is being done or no message was handled."); return(eur); }
private EquipmentInstallationResult PerformEquipmentInstallation(Message_BotPerformAction actionMessage) { EquipmentInstallationContext eic = (EquipmentInstallationContext)actionMessage.RequestContext; EquipmentInstallationResult result = new EquipmentInstallationResult(); var baseEquipment = equipment.GetEquipmentTypeById(eic.EquipmentIdentifier); ActiveEquipment ei = new ActiveEquipment(baseEquipment); result.InstanceId = ei.InstanceId = Guid.NewGuid(); result.EquipmentId = ei.EquipmentId = eic.EquipmentIdentifier; result.Result = InstallationResult.Installed; ei.OwningBotId = eic.OwningBotIdentity; ei.MountPoint = eic.MountPoint; ei.Classification = KnownEquipmentIds.GetClassificationFromId(eic.EquipmentIdentifier); if (ei.Classification == ItemClassification.OffsensiveWeapon) { var eq = equipment.GetWeaponEquipmentById(eic.EquipmentIdentifier); ei.RoundsRemaining = eq.InitialAmmunition; } installedEquipment.Add(ei); return(result); }