Exemple #1
0
        static void Initialize()
        {
            initialized = true;

            InitShape();
            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(TimeWarp.ScaleVelocity(120)));
            DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(4));
            DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(20, 120));
            DefaultState    = new ShipState(new Bounded <float>(3), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));

            DefaultCost = new Costs(new ShipStateChange(0, 6, 0, 0), null, null);
            DefaultEffectCollection.Effects.Add(
                new ShipStateEffect(
                    TargetingInfo.All,
                    EffectTypes.None,
                    new EffectSounds("Boom23", null, null),
                    new ShipStateChange(-3, 0, 0, 0)));

            DefaultTargetingTypes = TargetingInfo.None;
            DefaultActionSounds   = new ActionSounds("Gun2", null, null);
        }
        static void Initialize()
        {
            initialized = true;

            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(TimeWarp.ScaleVelocity(120)));
            DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(20));
            DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(45, 120));
            DefaultState    = new ShipState(new Bounded <float>(99), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));
            DefaultCost     = new Costs(new ShipStateChange(0, 20, 0, 0), null, null);


            DefaultEffectCollection.ProlongedEffects.Add(
                new ControlerEffect(
                    TargetingInfo.All,
                    EffectTypes.Controls,
                    new EffectSounds(),
                    new LifeSpan(12),
                    new ConfusionControler(new LifeSpan(12))
                    ));
            DefaultTargetingTypes = TargetingInfo.None;
            DefaultActionSounds   = new ActionSounds("EnergyGun2", null, null);
        }
Exemple #3
0
 public AbsorptionSheild(TargetingInfo effectWho, EffectTypes harmfulEffectTypes, EffectSounds effectSounds,
                         LifeSpan lifeTime, EffectTypes filteredEffectTypes,
                         float absorptionRatio)
     : base(effectWho, harmfulEffectTypes, effectSounds, lifeTime, filteredEffectTypes)
 {
     this.absorptionRatio = absorptionRatio;
 }
Exemple #4
0
    void Awake()
    {
        targetInfo = Utilities.CheckComponent <TargetingInfo>(gameObject);
        var header = shipDetails.shipName + " - PILOTNAMEHERE";

        targetInfo.Init(header, health);
    }
Exemple #5
0
    public void AddIndicator(TargetingInfo info)
    {
        var newIndicator = Instantiate(indicatorPrefab, indicatorLayer);

        newIndicator.SetTarget(info);
        newIndicator.Selected += HandleIndicatorSelected;
    }
Exemple #6
0
 public BuildUpGunAction(
     Bounded <float> delay,
     TargetingInfo targetableTypes,
     Costs costs,
     bool needsTarget,
     ActionSounds actionSounds,
     Bounded <float> buildUpDelay,
     float velocityAngle,
     float offsetAngle,
     ISolidWeapon[] weapons)
     : base(delay, targetableTypes, costs, needsTarget, actionSounds)
 {
     this.buildUpDelay      = buildUpDelay;
     this.velocityAngle     = velocityAngle;
     this.offsetAngle       = offsetAngle;
     this.weapons           = weapons;
     this.maxBoundingRadius = 0;
     this.stage             = 0;
     this.stageCount        = weapons.Length;
     foreach (ISolidWeapon weapon in weapons)
     {
         maxBoundingRadius = MathHelper.Max(maxBoundingRadius, weapon.BoundingRadius);
     }
     this.aIInfo = new BuildUpGunActionAIInfo(null);
 }
Exemple #7
0
        static void Initialize()
        {
            initialized = true;

            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(TimeWarp.AngularAcceleration),
                new Bounded <float>(TimeWarp.ScaleTurning(4)),
                new Bounded <float>(TimeWarp.ScaleAcceleration(2, 1)),
                new Bounded <float>(TimeWarp.ScaleVelocity(28)));
            DefaultState = new ShipState(new Bounded <float>(1),
                                         new Bounded <float>(0),
                                         new Bounded <float>(0),
                                         new Bounded <float>(0));
            DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(2.8f, 28));


            DefaultCost           = new Costs(new ShipStateChange(0, 1, 0, 0), null, null);
            DefaultDelay          = new Bounded <float>(TimeWarp.RateToTime(0));
            DefaultTargetingTypes = new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Ship, TargetingTypes.None);

            DefaultInitialRadius = 3;
            DefaultExpansionRate = 5 + TimeWarp.ScaleRange(5);
            DefaultMass          = .1f;
            DefaultEffectCollection.Effects.Add(new ShipStateEffect(TargetingInfo.All, EffectTypes.None, new EffectSounds(), new ShipStateChange(-1, 0, 0, 0)));
            DefaultActionSounds = new ActionSounds("FlameThrower", null, "Uncloak");
        }
    public void Setup(TargetingInfo info, Color color, Camera cam)
    {
        targetRb = info.GetComponent <Rigidbody>();

        Ship = info.GetComponent <Ship>();
        if (Ship != null)
        {
            Ship.Died += (s) => { Destroy(gameObject); }
        }
        ;

        targetRb = info.GetComponent <Rigidbody>();

        name   = "T_IND: " + info.name;
        target = info;

        this.cam          = cam ?? Camera.main;
        buttonImage.color = color;

        ToggleHealthBars(false);
        ShowName(false);
        StartCoroutine(RefreshHeader(2));

        enabled = true;
    }
 public BackwardsTeleport(TargetingInfo effectWho,
                          EffectTypes harmfulEffectTypes,
                          EffectSounds effectSounds, float distance)
     : base(effectWho, harmfulEffectTypes, effectSounds)
 {
     this.distance = distance;
 }
Exemple #10
0
 static void Initialize()
 {
     initialized = true;
     InitShape();
     DefaultMovementInfo = new ShipMovementInfo(
         new Bounded <float>(100),
         new Bounded <float>(TimeWarp.ScaleTurning(0.9f)),
         new Bounded <float>(8000),
         new Bounded <float>(TimeWarp.ScaleVelocity(60)));
     DefaultState = new ShipState(new Bounded <float>(20),
                                  new Bounded <float>(10),
                                  new Bounded <float>(0),
                                  new Bounded <float>(TimeWarp.RechargeRateToPerSeconds(8, -1), TimeWarp.RechargeRateToPerSeconds(8, -1), TimeWarp.RechargeRateToPerSeconds(8, -1), false));
     DefaultTargetingTypes = TargetingInfo.All;
     DefaultActions.Add(new NullAction());
     DefaultActions.Add(new NullAction());
     DefaultActions.Add(new NullAction());
     DefaultActions.Add(new NullTransformAction());
     DefaultActions[3].Costs        = new Costs(new ShipStateChange(0, 0, 0, 0), null, null);
     DefaultActions[3].ActionSounds = new ActionSounds();
     DefaultEffectCollection.Effects.Add(new ShipStateEffect(
                                             DefaultTargetingTypes,
                                             EffectTypes.None,
                                             new EffectSounds(),
                                             new ShipStateChange(-3, 0, 0, 0)));
     DefaultEffectCollection.AttachmentFlags = EffectAttachmentFlags.ClonedAttachment;
     DefaultControlableSounds = new ControlableSounds(null, "ShipDies");
     DefaultShipSounds        = new ShipSounds("AndrosynthGuardianDitty");
 }
        static void Initialize()
        {
            initialized = true;

            DefaultTargetingTypes = new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Ship, TargetingTypes.None);
            DefaultEffectsWho     = new TargetingInfo(TargetingTypes.Enemy | TargetingTypes.Debris);
            InitShape();
            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(TimeWarp.ScaleVelocity(64)));
            DefaultDelay       = new Bounded <float>(TimeWarp.RateToTime(0));
            DefaultLifeTime    = new LifeSpan(20);
            SubDefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(9, 64));
            DefaultState       = new ShipState(new Bounded <float>(6), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));
            SubDefaultState    = new ShipState(new Bounded <float>(2), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));

            DefaultCost = new Costs(new ShipStateChange(0, 5, 0, 0), new ShipStateChange(), new ShipStateChange());

            DefaultEffectCollection.Effects.Add(new ShipStateEffect(DefaultEffectsWho, EffectTypes.None, new EffectSounds(), new ShipStateChange(-6, 0, 0, 0)));

            SubDefaultEffectCollection.Effects.Add(new ShipStateEffect(DefaultEffectsWho, EffectTypes.None, new EffectSounds(), new ShipStateChange(-2, 0, 0, 0)));


            DefaultActionSounds = new ActionSounds("Crystal", null, "GlassBreak");
        }
Exemple #12
0
        static void Initialize()
        {
            initialized = true;

            DefaultTargetingTypes = TargetingInfo.None;
            DefaultEffectsWho     = DefaultTargetingTypes;

            InitShape();
            DefaultState        = new ShipState(new Bounded <float>(99), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));
            DefaultMovementInfo = new ShipMovementInfo(new Bounded <float>(0),
                                                       new Bounded <float>(0),
                                                       new Bounded <float>(0),
                                                       new Bounded <float>(TimeWarp.ScaleVelocity(20)));
            DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(5, 20));
            DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(9));
            DefaultCost     = new Costs(new ShipStateChange(0, 21, 0, 0), null, null);

            DefaultEffectCollection.Effects.Add(new ShipStateEffect(DefaultEffectsWho, EffectTypes.None, new EffectSounds(), new ShipStateChange(-3, 0, 0, 0)));
            DefaultActionSounds = new ActionSounds("FlameThrower2", null, null);

            DefaultOffsetAngles   = new float[anglecount];
            DefaultVelocityAngles = new float[anglecount];
            float da  = (2 * MathHelper.PI) / (float)anglecount;
            int   pos = 0;

            for (float angle = 0; angle < 2 * MathHelper.PI; angle += da, pos++)
            {
                DefaultOffsetAngles[pos]   = angle;
                DefaultVelocityAngles[pos] = angle;
            }
        }
        ISolidWeapon CreatePrimaryWeapon()
        {
            EffectCollection DefaultEffectCollection = new EffectCollection();

            DefaultEffectCollection.Effects.Add(new ShipStateEffect(TargetingInfo.All, EffectTypes.None, new EffectSounds(), new ShipStateChange(-4, 0, 0, 0)));

            ISolidWeapon w = new SpawningSolidWeapon(
                new LifeSpan(TimeWarp.RangeToTime(60, 80)),
                new PhysicsState(),
                BodyFlags.None,
                GetPrimaryWeaponShape(),
                new ShipMovementInfo(
                    new Bounded <float>(TimeWarp.AngularAcceleration),
                    new Bounded <float>(TimeWarp.ScaleTurning(3)),
                    new Bounded <float>(TimeWarp.ScaleAcceleration(80, 0)),
                    new Bounded <float>(TimeWarp.ScaleVelocity(80))),
                new ShipState(
                    new Bounded <float>(1),
                    new Bounded <float>(0),
                    new Bounded <float>(0),
                    new Bounded <float>(0)),
                new ControlableSounds(),
                new WeaponsLogic(
                    new TargetingInfo(TargetingTypes.All, TargetingTypes.None, TargetingTypes.None),
                    new EffectCollection(DefaultEffectCollection)),
                CreatePrimarySpawn(),
                true);

            w.ControlHandler = new DefaultControlHandler();
            w.AddControler(null, new MissileControler(TargetingInfo.FromRequireAll(TargetingTypes.Enemy | TargetingTypes.Ship)));
            return(w);
        }
Exemple #14
0
        static void Initialize()
        {
            initialized = true;

            InitShape();
            DefaultTargetingTypes = new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Ship, TargetingTypes.None);
            DefaultMovementInfo   = new ShipMovementInfo(
                new Bounded <float>(TimeWarp.AngularAcceleration),
                new Bounded <float>(TimeWarp.ScaleTurning(0)),
                new Bounded <float>(8000),
                new Bounded <float>(TimeWarp.ScaleVelocity(25)));
            DefaultState    = new ShipState(new Bounded <float>(1), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));
            DefaultCost     = new Costs(new ShipStateChange(0, 2, 0, 0), null, null);
            DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(7));
            DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(35, 25));
            DefaultEffectCollection.Effects.Add(
                new VuxSlowDownEffect(
                    DefaultTargetingTypes,
                    EffectTypes.None,
                    new EffectSounds("Bite", null, null),
                    new LifeSpan(),
                    new ShipMovementInfoChange(0, -.125f, -.125f, 0)));
            DefaultActionSounds = new ActionSounds("OrganicGun2", null, null);
            DefaultEffectCollection.AttachmentFlags |= EffectAttachmentFlags.WeaponExpires;
        }
Exemple #15
0
            static void Initialize()
            {
                initialized = true;

                InitShape();
                DefaultMovementInfo = new ShipMovementInfo(
                    new Bounded <float>(TimeWarp.AngularAcceleration),
                    new Bounded <float>(TimeWarp.ScaleTurning(9)),
                    new Bounded <float>(10000),
                    new Bounded <float>(TimeWarp.ScaleVelocity(80)));

                DefaultState = new ShipState(new Bounded <float>(1),
                                             new Bounded <float>(0),
                                             new Bounded <float>(0),
                                             new Bounded <float>(0));
                DefaultCost     = new Costs(new ShipStateChange(0, 1, 0, 0), null, null);
                DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(20));
                DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(50, 80));

                DefaultEffectCollection.Effects.Add(
                    new ShipStateEffect(
                        TargetingInfo.All,
                        EffectTypes.None,
                        new EffectSounds("Boom1", null, null),
                        new ShipStateChange(-1, 0, 0, 0)));
                DefaultTargetingTypes = new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Other | TargetingTypes.Ship, TargetingTypes.None);
                DefaultEffectsWho     = TargetingInfo.All;
                DefaultActionSounds   = new ActionSounds("MissileLaunch2", null, null);
            }
        static void Initialize()
        {
            initialized = true;

            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(0),
                new Bounded <float>(0),
                new Bounded <float>(TimeWarp.ScaleAcceleration(30, 0)),
                new Bounded <float>(TimeWarp.ScaleVelocity(80)));
            DefaultState = new ShipState(new Bounded <float>(2),
                                         new Bounded <float>(0),
                                         new Bounded <float>(0),
                                         new Bounded <float>(0));
            DefaultLifeTime = new LifeSpan(3);
            DefaultCost     = new Costs(new ShipStateChange(0, 1, 0, 0), null, null);
            DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(0));

            DefaultTargetingTypes = TargetingInfo.None;
            DefaultInitialRadius  = 20;
            DefaultExpansionRate  = 6;
            DefaultMass           = .8f;
            DefaultEffectCollection.Effects.Add(
                new ShipStateEffect(
                    TargetingInfo.All,
                    EffectTypes.None,
                    new EffectSounds("Boom23", null, null),
                    new ShipStateChange(-2, 0, 0, 0)));
            DefaultActionSounds = new ActionSounds("FlameThrower3", null, null);
        }
        static void Initialize()
        {
            initialized = true;

            DefaultEffectsWho = new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Ship, TargetingTypes.None);
            InitShape();
            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(TimeWarp.AngularAcceleration),
                new Bounded <float>(TimeWarp.ScaleTurning(0)),
                new Bounded <float>(TimeWarp.ScaleAcceleration(20, 0)),
                new Bounded <float>(TimeWarp.ScaleVelocity(33)));
            DefaultState = new ShipState(new Bounded <float>(3),
                                         new Bounded <float>(0),
                                         new Bounded <float>(0),
                                         new Bounded <float>(0));
            DefaultLifeTime       = new LifeSpan(60);
            DefaultTargetingTypes = new TargetingInfo(TargetingTypes.Ship);
            DefaultEffectCollection.Effects.Add(
                new ShipStateEffect(DefaultEffectsWho,
                                    EffectTypes.None,
                                    new EffectSounds("DogiBark", null, null),
                                    new ShipStateChange(0, -8, 0, 0)));
            DefaultEffectCollection.AttachmentFlags |= EffectAttachmentFlags.ClonedAttachment;
            DefaultControlableSounds = new ControlableSounds(null, "DogiDie");
        }
 public RandomTeleport(TargetingInfo effectWho,
                       EffectTypes harmfulEffectTypes,
                       EffectSounds effectSounds, float maxDistance)
     : base(effectWho, harmfulEffectTypes, effectSounds)
 {
     this.maxDistance = maxDistance;
 }
Exemple #19
0
        static void Initialize()
        {
            initialized = true;

            InitShape();
            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(TimeWarp.AngularAcceleration),
                new Bounded <float>(TimeWarp.ScaleTurning(3)),
                new Bounded <float>(TimeWarp.ScaleAcceleration(40, 4)),
                new Bounded <float>(TimeWarp.ScaleVelocity(40)));
            DefaultState    = new ShipState(new Bounded <float>(3), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0));
            DefaultCost     = new Costs(new ShipStateChange(1, 0, 0, 0), null, null);
            DefaultDelay    = new Bounded <float>(TimeWarp.RateToTime(12));
            DefaultLifeTime = new LifeSpan(TimeWarp.RangeToTime(600, 80));
            DefaultEffectCollection.Effects.Add(new MedKitEffect(new TargetingInfo(TargetingTypes.None, TargetingTypes.Ally | TargetingTypes.Ship, TargetingTypes.None), EffectTypes.None, new EffectSounds(), 1));

            DefaultEffectCollection.ProlongedEffects.Add(new BordingPartyEffect(
                                                             new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Ship, TargetingTypes.None),
                                                             EffectTypes.Health,
                                                             new EffectSounds("Intruder", "Zap", "Argh"),
                                                             new LifeSpan(),
                                                             new Bounded <float>(TimeWarp.RateToTime(7)), 1));
            DefaultTargetingTypes = new TargetingInfo(TargetingTypes.None, TargetingTypes.Enemy | TargetingTypes.Ship, TargetingTypes.None);
            DefaultActionSounds   = new ActionSounds("Go", null, null);
        }
        static void Initialize()
        {
            initialized = true;

            InitShape();
            DefaultLifeTime     = new LifeSpan(TimeWarp.RangeToTime(400, 35));
            DefaultMovementInfo = new ShipMovementInfo(
                new Bounded <float>(TimeWarp.AngularAcceleration),
                new Bounded <float>(20),
                new Bounded <float>(1000),
                new Bounded <float>(TimeWarp.ScaleVelocity(35)));
            DefaultState = new ShipState(
                new Bounded <float>(1),
                new Bounded <float>(1),
                new Bounded <float>(0),
                new Bounded <float>(1));

            DefaultEffectCollection.Effects.Add(new MedKitEffect(new TargetingInfo(TargetingTypes.None, TargetingTypes.Ally | TargetingTypes.Ship, TargetingTypes.None), EffectTypes.None, new EffectSounds(null, "FighterGet", null), 1));

            DefaultEffectsWho = new TargetingInfo(TargetingTypes.None, TargetingTypes.Ally | TargetingTypes.Ship, TargetingTypes.None);

            DefaultActions.Add(EarthlingFighterPrimary.Create());

            DefaultControlableSounds = new ControlableSounds();
            DefaultShipSounds        = new ShipSounds();
        }
        static ISolidWeapon CreateWeapon()
        {
            ISolidWeapon w = ChenjesuBroodhomeDogi.Create();

            w.ControlHandler = new DefaultControlHandler();
            w.AddControler(null, new SmartMissileControler(TargetingInfo.FromRequireAll(TargetingTypes.Enemy | TargetingTypes.Ship)));
            return(w);
        }
 public RemoteActionEffect(TargetingInfo effectsWho,
                           EffectTypes effectTypes,
                           EffectSounds effectSounds,
                           IAction action)
     : base(effectsWho, effectTypes, effectSounds)
 {
     this.action = action;
 }
 public JumpShipEffect(TargetingInfo effectsWho, int count, ActionSounds actionSounds)
     : base(
         effectsWho,
         EffectTypes.HealthSteal,
         new EffectSounds(),
         new JumpShipAction(count, actionSounds))
 {
 }
Exemple #24
0
            static void Initialize()
            {
                initialized = true;

                DefaultDelay          = new Bounded <float>(TimeWarp.RateToTime(0));
                DefaultTargetingTypes = new TargetingInfo(TargetingTypes.Self);
                DefaultActionSounds   = new ActionSounds("Transform", null, null);
            }
Exemple #25
0
            static void Initialize()
            {
                initialized = true;

                DefaultCost           = new Costs(new ShipStateChange(0, 2, 0, 0), null, null);
                DefaultDelay          = new Bounded <float>(TimeWarp.RateToTime(0));
                DefaultTargetingTypes = new TargetingInfo(TargetingTypes.Self);
                DefaultActionSounds   = new ActionSounds("EchoBoom", null, null);
            }
Exemple #26
0
 public VuxSlowDownEffect(TargetingInfo effectsWho,
                          EffectTypes effectTypes,
                          EffectSounds effectSounds,
                          LifeSpan lifeTime,
                          ShipMovementInfoChange percents)
     : base(effectsWho, effectTypes, effectSounds, lifeTime, percents)
 {
     this.isHarmful = percents.MaxAngularAcceleration < 1 || percents.MaxAngularVelocity < 1 || percents.MaxLinearAcceleration < 1 || percents.MaxLinearVelocity < 1;
 }
        static void Initialize()
        {
            initialized = true;

            DefaultCost           = new Costs(new ShipStateChange(0, 0, 0, 0), null, null);
            DefaultDelay          = new Bounded <float>(0);
            DefaultTargetingTypes = TargetingInfo.None;
            DefaultActionSounds   = new ActionSounds();
        }
Exemple #28
0
 public ShipStateEffect(TargetingInfo effectsWho,
                        EffectTypes effectTypes,
                        EffectSounds effectSounds,
                        ShipStateChange ssc)
     : base(effectsWho, effectTypes | ssc.HarmfulEffectTypes, effectSounds)
 {
     this.ssc       = ssc;
     this.isHarmful = ssc.Energy < 0 || ssc.EnergyChangeRate < 0 || ssc.Health < 0 || ssc.HealthChangeRate < 0;
 }
        static void Initialize()
        {
            initialized = true;

            DefaultCost           = new Costs(new ShipStateChange(-4, 40, 0, 0), null, null);
            DefaultDelay          = new Bounded <float>(TimeWarp.RateToTime(30));
            DefaultTargetingTypes = TargetingInfo.None;
            DefaultActionSounds   = new ActionSounds("DeepBirdCall", null, null);
        }
        static ISolidWeapon CreateWeapon()
        {
            ISolidWeapon w = EarthlingFighter.Create();

            w.ControlHandler = new DefaultControlHandler();
            w.AddControler(null, new MannedOrbitControler(TargetingInfo.FromRequireAll(TargetingTypes.Enemy | TargetingTypes.Ship), TimeWarp.ScaleRange(2)));
            w.AddControler(null, new FireAllControler());
            return(w);
        }