Пример #1
0
 public DroneConstructionType(BroadcastingTypes broadcasting, DroneTypes droneType)
 {
     DroneType    = droneType;
     Broadcasting = broadcasting;
 }
 public PlayerDrone(IMyEntity entity, BroadcastingTypes broadcasting)
     : base(entity, broadcasting)
 {
     SentryLocation = entity.GetPosition();
     Type           = typeof(PlayerDrone);
 }
Пример #3
0
        public Drone(IMyEntity ent, BroadcastingTypes broadcasting)
        {
            var ship = (IMyCubeGrid)ent;
            double maxEngagementRange = ConquestMod.MaxEngagementRange;
            broadcastingType = broadcasting;

            Ship = ship;
            var lstSlimBlock = new List<IMySlimBlock>();

            GridTerminalSystem = MyAPIGateway.TerminalActionsHelper.GetTerminalSystemForGrid(ship);

            //If it has any type of cockipt
            ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyShipController);
            FindWeapons();

            //If no cockpit the ship is either no ship or is broken.
            if (lstSlimBlock.Count != 0)
            {
                //Make the controls be the cockpit
                ShipControls = lstSlimBlock[0].FatBlock as IMyControllableEntity;

                _ownerId = ((Sandbox.ModAPI.IMyTerminalBlock)ShipControls).OwnerId;

                #region Activate Beacons && Antennas

                //Maximise radius on antennas and beacons.
                lstSlimBlock.Clear();
                ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyRadioAntenna);
                foreach (var block in lstSlimBlock)
                {
                    IMyRadioAntenna antenna =
                        (IMyRadioAntenna)block.FatBlock;
                    if (antenna != null)
                    {
                        //antenna.GetActionWithName("SetCustomName").Apply(antenna, new ListReader<TerminalActionParameter>(new List<TerminalActionParameter>() { TerminalActionParameter.Get("Combat Drone " + _manualGats.Count) }));
                        antenna.SetValueFloat("Radius", 5000);//antenna.GetMaximum<float>("Radius"));
                        ITerminalAction act = antenna.GetActionWithName("OnOff_On");
                        act.Apply(antenna);
                    }
                }

                lstSlimBlock = new List<IMySlimBlock>();
                ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyBeacon);
                foreach (var block in lstSlimBlock)
                {
                    IMyBeacon beacon = (IMyBeacon)block.FatBlock;
                    if (beacon != null)
                    {
                        beacon.SetValueFloat("Radius", 5000);//beacon.GetMaximum<float>("Radius"));
                        ITerminalAction act = beacon.GetActionWithName("OnOff_On");
                        act.Apply(beacon);
                    }
                }

                #endregion

                //SetWeaponPower(true);
                //AmmoManager.ReloadReactors(_allReactors);
                //AmmoManager.ReloadGuns(_manualGats);
                ship.GetBlocks(lstSlimBlock, x => x is IMyEntity);

                List<IMyTerminalBlock> massBlocks =
                    new List<IMyTerminalBlock>();

                GridTerminalSystem.GetBlocksOfType<IMyVirtualMass>(massBlocks);

                List<IMyTerminalBlock> allTerminalBlocks = new List<IMyTerminalBlock>();
                GridTerminalSystem.GetBlocksOfType<IMyCubeBlock>(allTerminalBlocks);
                HealthBlockBase = allTerminalBlocks.Count;

                if (ShipControls != null)
                {

                    navigation = new DroneNavigation(ship, ShipControls, _nearbyFloatingObjects, maxEngagementRange);
                }

            }
            Ship.OnBlockAdded += RecalcMaxHp;
            myNumber = numDrones;
            numDrones++;
        }
Пример #4
0
 public PlayerDrone(IMyEntity entity, BroadcastingTypes broadcasting)
     : base(entity, broadcasting)
 {
     SentryLocation = entity.GetPosition();
     Type = typeof(PlayerDrone);
 }
 public DroneConstructionType(BroadcastingTypes broadcasting, DroneTypes droneType)
 {
     DroneType = droneType;
     Broadcasting = broadcasting;
 }
Пример #6
0
        public Drone(IMyEntity ent, BroadcastingTypes broadcasting)
        {
            var    ship = (IMyCubeGrid)ent;
            double maxEngagementRange = ConquestMod.MaxEngagementRange;

            broadcastingType = broadcasting;

            Ship = ship;
            var lstSlimBlock = new List <IMySlimBlock>();

            GridTerminalSystem = MyAPIGateway.TerminalActionsHelper.GetTerminalSystemForGrid(ship);

            //If it has any type of cockipt
            ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyShipController);
            FindWeapons();
            SetupActions();



            //If no cockpit the ship is either no ship or is broken.
            if (lstSlimBlock.Count != 0)
            {
                //Make the controls be the cockpit
                ShipControls = lstSlimBlock[0].FatBlock as IMyControllableEntity;

                _ownerId = ((Sandbox.ModAPI.IMyTerminalBlock)ShipControls).OwnerId;


                #region Activate Beacons && Antennas


                //Maximise radius on antennas and beacons.
                lstSlimBlock.Clear();
                ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyRadioAntenna);
                foreach (var block in lstSlimBlock)
                {
                    IMyRadioAntenna antenna =
                        (IMyRadioAntenna)block.FatBlock;
                    if (antenna != null)
                    {
                        //antenna.GetActionWithName("SetCustomName").Apply(antenna, new ListReader<TerminalActionParameter>(new List<TerminalActionParameter>() { TerminalActionParameter.Get("Combat Drone " + _manualGats.Count) }));
                        antenna.SetValueFloat("Radius", 10000);//antenna.GetMaximum<float>("Radius"));
                        _blockOn.Apply(antenna);
                    }
                }

                lstSlimBlock = new List <IMySlimBlock>();
                ship.GetBlocks(lstSlimBlock, (x) => x.FatBlock is IMyBeacon);
                foreach (var block in lstSlimBlock)
                {
                    IMyBeacon beacon = (IMyBeacon)block.FatBlock;
                    if (beacon != null)
                    {
                        beacon.SetValueFloat("Radius", 10000);//beacon.GetMaximum<float>("Radius"));
                        _blockOn.Apply(beacon);
                    }
                }

                #endregion

                //SetWeaponPower(true);
                //AmmoManager.ReloadReactors(_allReactors);
                //AmmoManager.ReloadGuns(_manualGats);
                ship.GetBlocks(lstSlimBlock, x => x is IMyEntity);

                List <IMyTerminalBlock> massBlocks =
                    new List <IMyTerminalBlock>();

                GridTerminalSystem.GetBlocksOfType <IMyVirtualMass>(massBlocks);

                List <IMyTerminalBlock> allTerminalBlocks = new List <IMyTerminalBlock>();
                GridTerminalSystem.GetBlocksOfType <IMyCubeBlock>(allTerminalBlocks);
                HealthBlockBase = allTerminalBlocks.Count;


                if (ShipControls != null)
                {
                    navigation = new DroneNavigation(ship, ShipControls, _nearbyFloatingObjects, maxEngagementRange);
                }
            }
            Ship.OnBlockAdded += RecalcMaxHp;
            myNumber           = numDrones;
            numDrones++;
        }
Пример #7
0
 public MothershipDrone(IMyEntity ent, BroadcastingTypes broadcasting) : base(ent, broadcasting)
 {
     ReloadWeaponsAndReactors();
     Type = typeof(MothershipDrone);
 }
Пример #8
0
 public ConquestDrone(IMyEntity ent, BroadcastingTypes broadcasting) : base(ent, broadcasting)
 {
     Type = typeof(ConquestDrone);
 }
 public ConquestDrone(IMyEntity ent, BroadcastingTypes broadcasting)
     : base(ent, broadcasting)
 {
     Type = typeof (ConquestDrone);
 }
 public MothershipDrone(IMyEntity ent, BroadcastingTypes broadcasting)
     : base(ent, broadcasting)
 {
     ReloadWeaponsAndReactors();
     Type = typeof (MothershipDrone);
 }