Example #1
0
        public ThreatDamageResult TakeAttack(int amount, ThreatDamageType damageType)
        {
            var damageShielded = 0;
            var damageDone     = amount;

            if (damageType != ThreatDamageType.IgnoresShields)
            {
                damageShielded = UpperStation.ShieldThroughAttack(amount);
                damageDone    -= damageShielded;
            }
            if (damageType == ThreatDamageType.DoubleDamageThroughShields)
            {
                damageDone *= 2;
            }
            if (damageShielded == 0 && damageDone > 0 && damageType == ThreatDamageType.Plasmatic)
            {
                foreach (var player in Players)
                {
                    player.KnockOut();
                }
            }
            var damageResult = TakeDamage(damageDone);

            damageResult.DamageShielded = damageShielded;
            return(damageResult);
        }
Example #2
0
        private void UpdateOptics()
        {
            var opticsDisrupted = DebuffsBySource.Values.Contains(ZoneDebuff.DisruptedOptics);

            UpperStation.SetOpticsDisrupted(opticsDisrupted);
            LowerStation.SetOpticsDisrupted(opticsDisrupted);
        }
Example #3
0
 private void UpdateShields()
 {
     UpperStation.SetIneffectiveShields(DebuffsBySource.Values.Contains(ZoneDebuff.IneffectiveShields));
     UpperStation.SetReversedShields(DebuffsBySource.Values.Contains(ZoneDebuff.ReversedShields));
 }
Example #4
0
 public int DrainShield(int?amount)
 {
     return(UpperStation.DrainShield(amount));
 }