示例#1
0
        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);
        }
示例#2
0
        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);
        }