protected BaseActionAIInfo(ShipStateChange cost)
 {
     if (cost != null)
     {
         this.cost         = new ShipStateChange(cost);
         this.cost.Health *= 3;
     }
 }
Exemple #2
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;
 }
Exemple #3
0
        public override void FilterEffects(float dt, List <IEffect> effects)
        {
            GeneralChange change = new GeneralChange();

            foreach (IEffect effect in effects)
            {
                change.Merge(effect.RemoveEffectTypes(filteredEffectTypes));
            }
            if (change.ShipStateChange != null && change.ShipStateChange.Health < 0)
            {
                ShipStateChange truechange = new ShipStateChange();
                truechange.Energy = MathHelper.Floor(-change.ShipStateChange.Health * absorptionRatio);
                truechange.Health = MathHelper.Ceiling(change.ShipStateChange.Health * (1 - absorptionRatio));
                this.attachie.ShipState.Change(truechange);
            }
        }
 public MyconShipStateEffect(TargetingInfo effectsWho, EffectTypes harmfulEffectTypes, EffectSounds effectSounds, ShipStateChange ssc)
     : base(effectsWho, harmfulEffectTypes, effectSounds, ssc)
 {
 }
 public CloakingActionAIInfo(ShipStateChange cost)
     : base(cost)
 {
 }
 public BuildUpGunActionAIInfo(ShipStateChange cost)
     : base(cost)
 {
 }
 public SpecificRangeActionAIInfo(ShipStateChange cost, float minRange, float maxRange) : base(cost)
 {
     this.minRange = minRange;
     this.maxRange = maxRange;
 }
 public RayActionAIInfo(ShipStateChange cost) : base(cost)
 {
 }
 protected BaseActionAIInfo(BaseActionAIInfo copy)
 {
     this.cost = copy.cost;
 }
 public ProximityActionAIInfo(ShipStateChange cost) : base(cost)
 {
 }
 public MultiGunActionAIInfo(ShipStateChange cost)
     : base(cost)
 {
 }
 public RechargeActionAIInfo(ShipStateChange cost) : base(cost)
 {
 }
 public OffensiveShieldActionAIInfo(ShipStateChange cost, float range)
     : base(cost)
 {
     this.range = range;
 }
Exemple #14
0
 protected ShipStateEffect(ShipStateEffect copy)
     : base(copy)
 {
     this.ssc = new ShipStateChange(copy.ssc);
 }