Ejemplo n.º 1
0
 /// <summary>
 /// Adds harvesting device
 /// </summary>
 /// <param name="weapon">Harvesting device</param>
 /// <param name="weaponObjectBuilder">Harvesting device's object builder</param>
 private void AddHarvestingDevice(MyHarvestingDevice harvestingDevice, MyMwcObjectBuilder_SmallShip_Weapon harsvestingDeviceObjectBuilder)
 {
     if (HarvestingDeviceSlot.IsMounted())
     {
         RemoveWeaponFromSlotAndFromShip(HarvestingDeviceSlot);
     }
     AddWeaponToSlot(HarvestingDeviceSlot, harvestingDevice, harsvestingDeviceObjectBuilder);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds harvesting device to harvesting device's slot
        /// </summary>
        /// <param name="harvestingDeviceObjectBuilder">Harvesting device's object builder</param>
        public void AddHarvestingDevice(MyMwcObjectBuilder_SmallShip_Weapon harvestingDeviceObjectBuilder)
        {
            MyHarvestingDevice newHarvestingDevice = MySmallShipWeaponFactory.GenerateWeapon(harvestingDeviceObjectBuilder.WeaponType) as MyHarvestingDevice;

            if (newHarvestingDevice == null)
            {
                throw new ArgumentException("Object builder is not harvesting device object builder");
            }
            AddHarvestingDevice(newHarvestingDevice, harvestingDeviceObjectBuilder);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Shots from harvester
        /// </summary>
        public void FireHarvester()
        {
            var drill = GetMountedDrill();

            if (drill != null && drill.CurrentState != MyDrillStateEnum.InsideShip)
            {
                return;
            }

            MyHarvestingDevice harvester = GetMountedHarvestingDevice();

            if (harvester != null)
            {
                if (MyMultiplayerGameplay.IsRunning && !harvester.IsDummy)
                {
                    MyMultiplayerGameplay.Static.SpeacialWeaponEvent(MySpecialWeaponEventEnum.HARVESTER_FIRE, MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Harvesting_Device);
                }

                this.m_ship.InitGroupMaskIfNeeded();
                harvester.Shot(null);
            }
        }
Ejemplo n.º 4
0
            /// <summary>
            /// Returns new instance of weapon
            /// </summary>
            /// <param name="weaponType">Weapon type</param>
            /// <returns></returns>
            public static MySmallShipGunBase GenerateWeapon(MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum weaponType)
            {
                MySmallShipGunBase newGun;

                switch (weaponType)
                {
                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Autocanon:
                    newGun = new MyAutocanonGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Automatic_Rifle_With_Silencer:
                    newGun = new MyAutomaticRifleSilencerGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Drilling_Device_Crusher:
                    newGun = new MyCrusherDrill();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Drilling_Device_Laser:
                    newGun = new MyLaserDrill();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Drilling_Device_Nuclear:
                    newGun = new MyNuclearDrill();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Drilling_Device_Saw:
                    newGun = new MySawDrill();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Drilling_Device_Thermal:
                    newGun = new MyThermalDrill();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Drilling_Device_Pressure:
                    newGun = new MyPressureDrill();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Missile_Launcher:
                    newGun = new MyMissileLauncherGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Harvesting_Device:
                    newGun = new MyHarvestingDevice();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Machine_Gun:
                    newGun = new MyMachineGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Cannon:
                    newGun = new MyCannonGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Shotgun:
                    newGun = new MyShotGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Sniper:
                    newGun = new MySniperGun();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Universal_Launcher_Back:
                    newGun = new MyUniversalLauncher();
                    break;

                case MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum.Universal_Launcher_Front:
                    newGun = new MyUniversalLauncher();
                    break;

                default:
                    throw new MyMwcExceptionApplicationShouldNotGetHere();
                    break;
                }
                return(newGun);
            }