private RedZone CreateRedZone(
            ThreatController threatController,
            ILookup <ZoneLocation, DamageToken> initialDamage,
            Doors redDoors,
            WhiteZone whiteZone,
            Interceptors interceptors)
        {
            var redZone = new RedZone(threatController, whiteZone.LowerWhiteStation.CentralReactor, redDoors, this, interceptors);

            DamageZone(initialDamage, ZoneLocation.Red, redZone);
            return(redZone);
        }
        private WhiteZone CreateWhiteZone(
            ThreatController threatController,
            ILookup <ZoneLocation, DamageToken> initialDamage,
            Doors redDoors,
            Doors blueDoors)
        {
            var whiteZone = new WhiteZone(threatController, redDoors, blueDoors, this);

            DamageZone(initialDamage, ZoneLocation.White, whiteZone);
            whiteZone.UpperWhiteStation.AlphaComponent.CannonFired += (sender, args) => CentralLaserCannonFired(this, EventArgs.Empty);
            return(whiteZone);
        }
        private BlueZone CreateBlueZone(
            ThreatController threatController,
            ILookup <ZoneLocation, DamageToken> initialDamage,
            WhiteZone whiteZone,
            Doors blueDoors)
        {
            var blueZone = new BlueZone(threatController, whiteZone.LowerWhiteStation.CentralReactor, blueDoors, this);

            DamageZone(initialDamage, ZoneLocation.Blue, blueZone);
            blueZone.LowerBlueStation.RocketsComponent.RocketsModified += (sender, args) => RocketsModified(sender, args);
            return(blueZone);
        }