コード例 #1
0
        private void ChangeObjectHeading(Message_BotPerformAction actionMessage, MappedBot bt)
        {
            bt.Heading = actionMessage.DParameter;
            NavigationInfoContext nic = new NavigationInfoContext();

            nic.SetBot(bt);
            nic.BotId      = bt.EngineId;
            nic.NewHeading = bt.Heading;


            //nic.Kind = MainMessageKind.MapObjectMovementChange;
            //nic.SubKind = KnownSubkinds.DirectionChange;

            hub.Launch <Message_Ui>(new Message_Ui(MainMessageKind.MapObjectMovementChange, KnownSubkinds.DirectionChange)
            {
                RequestContext = nic
            });
        }
コード例 #2
0
        protected override EquipmentUseResult ActualUseEquipmentItem(BoonBotBase targetBot, EquipmentUseDetails eud)
        {
            EquipmentUseRequestContext euc = new EquipmentUseRequestContext();

            euc.OwningBotIdentity          = targetBot.PublicId;
            euc.RequestedEquipmentInstance = eud.InstanceIdentity;
            euc.IParam = eud.IParam;

            var msg = new Message_BotPerformAction(MainMessageKind.BotActivity, KnownSubkinds.UseEquipment)
            {
                PublicBotId    = targetBot.PublicId,
                RequestContext = euc
            };

            hub.Launch <Message_BotPerformAction>(msg);

            EquipmentUseResult eur = (EquipmentUseResult)msg.ResponseContext;

            return(eur);
        }
コード例 #3
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);
        }
コード例 #4
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);
        }