Пример #1
0
 protected UpperStation(
     StationLocation stationLocation,
     ThreatController threatController,
     Gravolift gravolift,
     Doors bluewardDoors,
     Doors redwardDoors,
     SittingDuck sittingDuck) : base(stationLocation, threatController, gravolift, bluewardDoors, redwardDoors, sittingDuck)
 {
 }
 internal LowerWhiteStation(
     ThreatController threatController,
     Gravolift gravolift,
     Doors bluewardDoors,
     Doors redwardDoors,
     SittingDuck sittingDuck) : base(StationLocation.LowerWhite, threatController, gravolift, bluewardDoors, redwardDoors, sittingDuck)
 {
     CentralReactor = new CentralReactor();
     AlphaComponent = new PulseCannon(CentralReactor);
     VisualConfirmationComponent = new VisualConfirmationComponent();
 }
Пример #3
0
 internal UpperBlueStation(
     SideReactor redReactor,
     ThreatController threatController,
     Gravolift gravolift,
     Doors bluewardDoors,
     Doors redwardDoors,
     SittingDuck sittingDuck) : base(StationLocation.UpperBlue, threatController, gravolift, bluewardDoors, redwardDoors, sittingDuck)
 {
     AlphaComponent      = new SideHeavyLaserCannon(redReactor, ZoneLocation.Blue);
     Shield              = new SideShield(redReactor);
     BattleBotsComponent = new BattleBotsComponent();
 }
Пример #4
0
 internal UpperWhiteStation(
     CentralReactor whiteReactor,
     ThreatController threatController,
     Gravolift gravolift,
     Doors bluewardDoors,
     Doors redwardDoors,
     SittingDuck sittingDuck) : base(StationLocation.UpperWhite, threatController, gravolift, bluewardDoors, redwardDoors, sittingDuck)
 {
     AlphaComponent    = new CentralHeavyLaserCannon(whiteReactor, ZoneLocation.White);
     Shield            = new CentralShield(whiteReactor);
     ComputerComponent = new ComputerComponent();
 }
Пример #5
0
 internal LowerRedStation(
     CentralReactor whiteReactor,
     ThreatController threatController,
     Gravolift gravolift,
     Doors bluewardDoors,
     Doors redwardDoors,
     SittingDuck sittingDuck) : base(StationLocation.LowerRed, threatController, gravolift, bluewardDoors, redwardDoors, sittingDuck)
 {
     BatteryPack         = new BatteryPack();
     AlphaComponent      = new SideLightLaserCannon(BatteryPack, ZoneLocation.Red);
     BattleBotsComponent = new BattleBotsComponent();
     SideReactor         = new SideReactor(whiteReactor);
 }
Пример #6
0
        public bool TakeDamage(int damage)
        {
            var damageDone = DebuffsBySource.Values
                             .Where(debuff => debuff == ZoneDebuff.DoubleDamage)
                             .Aggregate(damage, (current, doubleDamageDebuff) => current * 2);
            var newDamageTokens = GetNewDamageTokens(damageDone);

            CurrentDamageTokens.AddRange(newDamageTokens);
            AllDamageTokensTaken.AddRange(newDamageTokens);
            TotalDamage += damageDone;
            var shipDestroyed = TotalDamage >= 7;

            if (!shipDestroyed)
            {
                foreach (var token in newDamageTokens)
                {
                    switch (token)
                    {
                    case DamageToken.BackCannon:
                        LowerStation.Cannon.SetDamaged();
                        break;

                    case DamageToken.FrontCannon:
                        UpperStation.Cannon.SetDamaged();
                        break;

                    case DamageToken.Gravolift:
                        Gravolift.SetDamaged();
                        break;

                    case DamageToken.Reactor:
                        LowerStation.EnergyContainer.SetDamaged();
                        break;

                    case DamageToken.Shield:
                        UpperStation.EnergyContainer.SetDamaged();
                        break;

                    case DamageToken.Structural:
                        break;
                    }
                }
            }
            return(shipDestroyed);
        }