Beispiel #1
0
 public AbsorptionSheild(TargetingInfo effectWho, EffectTypes harmfulEffectTypes, EffectSounds effectSounds,
                         LifeSpan lifeTime, EffectTypes filteredEffectTypes,
                         float absorptionRatio)
     : base(effectWho, harmfulEffectTypes, effectSounds, lifeTime, filteredEffectTypes)
 {
     this.absorptionRatio = absorptionRatio;
 }
        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);
        }
        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);
        }
Beispiel #4
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");
        }
Beispiel #5
0
 public Ship(
     LifeSpan lifeTime,
     PhysicsState physicsState,
     BodyFlags flags,
     RigidBodyTemplate template,
     ShipMovementInfo movementInfo,
     ShipState shipState,
     ControlableSounds controlableSounds,
     ShipSounds shipSounds,
     ActionList actions,
     IShip[] subShips)
     : base(
         lifeTime,
         physicsState,
         flags,
         template,
         movementInfo,
         shipState,
         controlableSounds)
 {
     this.UQMFlags       |= ContFlags.CanDoGravityWhip;
     this.shipSounds      = shipSounds;
     this.subShips        = subShips;
     this.actions         = actions;
     this.controlableType = ControlableType.Ship;
 }
Beispiel #6
0
 public Allele(Species species, Speed speed, LifeSpan lifeSpan, Fertility fertility)
 {
     this.species   = species;
     this.speed     = speed;
     this.lifeSpan  = lifeSpan;
     this.fertility = fertility;
 }
Beispiel #7
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;
            }
        }
Beispiel #8
0
 public ControlableWave(
     LifeSpan lifeTime,
     float mass,
     PhysicsState physicsState,
     float initialRadius,
     float expansionRate,
     int[] colors,
     int primaryColor,
     ShipMovementInfo movementInfo,
     ShipState shipState,
     ControlableSounds controlableSounds,
     IWeaponsLogic weaponInfo)
     : this(
         lifeTime,
         mass,
         physicsState, initialRadius,
         expansionRate,
         colors,
         primaryColor,
         movementInfo,
         shipState, null, controlableSounds)
 {
     this.weaponInfo = weaponInfo;
     this.CollisionState.GenerateCollisionEvents = true;
     this.CollisionState.GenerateContactEvents   = true;
     this.controlableType = ControlableType.Weapon;
 }
Beispiel #9
0
 public ControlableWave(
     LifeSpan lifeTime,
     float mass,
     PhysicsState physicsState, float initialRadius,
     float expansionRate,
     int[] colors,
     int primaryColor,
     ShipMovementInfo movementInfo,
     ShipState shipState,
     FactionInfo factionInfo,
     ControlableSounds controlableSounds)
     : base(
         lifeTime,
         mass,
         physicsState,
         initialRadius,
         expansionRate)
 {
     this.shipState                        = shipState;
     this.movementInfo                     = movementInfo;
     this.factionInfo                      = factionInfo;
     this.controlableSounds                = controlableSounds;
     this.attachedEffectCollection         = new EffectCollection();
     this.CollisionState.GenerateRayEvents = true;
     this.colors       = colors;
     this.primaryColor = primaryColor;
 }
Beispiel #10
0
        private void Update(float deltaTime, int i)
        {
            var particle = Particles[i];

            if (particle.IsAlive)
            {
                var life        = new LifeSpan(particle.Life.Maximum, particle.Life.Current - deltaTime);
                var newParticle = new Particle(particle.Position, particle.Velocity, particle.Color, particle.StartingColor, particle.EndingColor, particle.Size, life);

                foreach (var action in _config.Actions)
                {
                    newParticle = action.DoAction(newParticle, deltaTime);
                }

                Particles[i] = newParticle;
            }
            else
            {
                int lastParticleIndex = ParticleCount - 1;
                ParticleCount--;
                if (lastParticleIndex != i)
                {
                    Particles[i] = Particles[lastParticleIndex];
                    Update(deltaTime, i);
                }
            }
        }
Beispiel #11
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;
        }
Beispiel #12
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();
        }
Beispiel #14
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;

            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");
        }
Beispiel #16
0
 void Init()
 {
     wander             = true;
     reachedDestination = false;
     agent = GetComponent <NavMeshAgent>();
     //setup agent
     wanderMaxTime = UnityEngine.Random.Range(0f, 2f);
     wanderTimer   = 0f;
     #region SetTraits
     //set colour
     Colour colour = (Colour)genome.findGene("Colour");
     creatureGO.GetComponentInChildren <Renderer>().material.color = colour.value;
     //set movement speed
     movementSpeed = (MovementSpeed)genome.findGene("MovementSpeed");
     agent.speed   = movementSpeed.value;
     //set acceleration
     acceleration       = (Acceleration)genome.findGene("Acceleration");
     agent.acceleration = acceleration.value;
     //set view range
     viewRadius = (ViewRadius)genome.findGene("ViewRadius");
     creatureGO.GetComponent <SphereCollider>().radius = viewRadius.value;
     //set life span
     lifeSpan      = (LifeSpan)genome.findGene("LifeSpan");
     lifeSpanTimer = 0;
     #endregion
 }
Beispiel #17
0
        public float GetDynamicSkillFactor(SkillNames skill)
        {
            float multiple = 1f;

            bool value;

            if (!mRelativeSkills.TryGetValue(skill, out value))
            {
                if (!mRelativeSkills.TryGetValue(SkillNames.None, out value))
                {
                    value = true;
                }
            }

            if (value)
            {
                multiple *= sRelativeFactor;
            }

            if (mApplyLifeSpanSkillFactor)
            {
                multiple *= (90f / LifeSpan.GetHumanAgeSpanLength());
            }

            if (multiple < 0)
            {
                multiple = 0;
            }

            return(multiple);
        }
        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");
        }
Beispiel #19
0
        public Controlable(
            LifeSpan lifeTime,
            MassInertia massInfo,
            PhysicsState physicsState,
            BodyFlags flags,
            ICollidableBodyPart[] collidableParts,
            ShipMovementInfo movementInfo,
            ShipState shipState,
            ControlableSounds controlableSounds,
            IWeaponsLogic weaponInfo)
            : this(
                lifeTime,
                massInfo,
                physicsState,
                flags, collidableParts,
                movementInfo,
                shipState,
                controlableSounds)
        {
            this.CollisionState.GenerateCollisionEvents = true;
            this.CollisionState.GenerateContactEvents   = true;
            this.weaponInfo = weaponInfo;

            this.controlableType = ControlableType.Weapon;
        }
Beispiel #20
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);
        }
Beispiel #21
0
 public Ship(
     LifeSpan lifeTime,
     MassInertia massInfo,
     PhysicsState physicsState,
     BodyFlags flags,
     ICollidableBodyPart[] collidableParts,
     ShipMovementInfo movementInfo,
     ShipState shipState,
     ControlableSounds controlableSounds,
     ShipSounds shipSounds,
     ActionList actions,
     IShip[] subShips)
     : base(
         lifeTime,
         massInfo,
         physicsState,
         flags,
         collidableParts,
         movementInfo,
         shipState,
         controlableSounds)
 {
     this.UQMFlags       |= ContFlags.CanDoGravityWhip;
     this.shipSounds      = shipSounds;
     this.subShips        = subShips;
     this.actions         = actions;
     this.controlableType = ControlableType.Ship;
 }
Beispiel #22
0
 public RayWeapon(
     LifeSpan lifeTime,
     IWeaponsLogic weaponInfo)
     : base(lifeTime, weaponInfo)
 {
     this.lifeTime = lifeTime;
 }
        public IIoCProvider Register(Type type, Type interfaceOfT, LifeSpan lifeSpan = LifeSpan.InstancePerLifetimeScope)
        {
            var x = _builder.RegisterType(type).As(interfaceOfT);

            ApplyLifeTime(x, lifeSpan);
            return(this);
        }
        /// <summary>
        /// Registers this instance.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="InterfaceOfT">The type of the interface of t.</typeparam>
        /// <returns>IIoCProvider.</returns>
        public IIoCProvider Register <T, InterfaceOfT>(LifeSpan lifeSpan = LifeSpan.InstancePerLifetimeScope)
        {
            var x = _builder.RegisterType <T>().As <InterfaceOfT>();

            ApplyLifeTime(x, lifeSpan);
            return(this);
        }
Beispiel #25
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;
 }
        public IIoCProvider RegisterNamed <T, InterfaceOfT>(string serviceName, LifeSpan lifeSpan = LifeSpan.InstancePerLifetimeScope)
        {
            var x = _builder
                    .RegisterType <T>()
                    .Named <InterfaceOfT>(serviceName);

            ApplyLifeTime(x, lifeSpan);
            return(this);
        }
        public IIoCProvider RegisterAll <T>(Assembly[] targetAssemblies, LifeSpan lifeSpan = LifeSpan.InstancePerLifetimeScope)
        {
            var temp = _builder.RegisterAssemblyTypes(targetAssemblies)
                       .Where(x => !x.IsAbstract && typeof(T).IsAssignableFrom(x))
                       .AsImplementedInterfaces();

            ApplyLifeTime(temp, lifeSpan);
            return(this);
        }
Beispiel #28
0
 public SelectiveImpulseRay(
     LifeSpan lifeTime,
     RaySegment2D raySegment,
     float impulse,
     BodyFlags ignoreFlags)
     : base(lifeTime, raySegment, impulse)
 {
     this.ignoreFlags = ignoreFlags;
 }
 public BaseProlongedEffect(TargetingInfo effectsWho,
                            EffectTypes harmfulEffectTypes,
                            EffectSounds effectSounds,
                            LifeSpan lifeTime)
     : base(effectsWho,
            harmfulEffectTypes,
            effectSounds)
 {
     this.lifeTime = lifeTime;
 }
 public MovementInfoEffect(TargetingInfo effectsWho,
                           EffectTypes effectTypes,
                           EffectSounds effectSounds,
                           LifeSpan lifeTime,
                           ShipMovementInfoChange smic)
     : base(effectsWho, effectTypes | smic.HarmfulEffectTypes, effectSounds, lifeTime)
 {
     this.smic      = smic;
     this.isHarmful = smic.MaxAngularAcceleration < 0 || smic.MaxAngularVelocity < 0 || smic.MaxLinearAcceleration < 0 || smic.MaxLinearVelocity < 0;
 }