public void RunBatterySimulation() { // arrange var batterySim = new BatteryPackSimulator(); batterySim.With((args) => { var batteryArgs = args as BatteryArgs; _battery = batteryArgs.AddBattery(_battery); batteryArgs.UpdateDischargeCurrent(_battery.Uid, 150); }); var i = 0; var limit = 10000; var watch = new Stopwatch(); // act watch.Start(); while (!_battery.State.IsDepleted && watch.ElapsedMilliseconds < limit) { batterySim.Run(); i++; } watch.Stop(); _log.Trace($"Battery simulation ends after {i} iterations and {watch.ElapsedMilliseconds}ms with depleted battery: {_battery.State.IsDepleted}."); // assert var s = _battery.State; Assert.AreNotEqual(s.Initial.ElapsedTime, s.Now.ElapsedTime, "ElapsedTime should not be equal"); Assert.AreNotEqual(s.Initial.Charge, s.Now.Charge, "Charge should not be equal"); Assert.AreNotEqual(s.Initial.SoD, s.Now.SoD, "SoD should not be equal"); Assert.AreNotEqual(s.Initial.Voltage, s.Now.Voltage, "Voltage should not be equal"); Assert.IsTrue(s.IsDepleted, "battery should be empty"); }
public override void Arrange() { base.Arrange(); _battery = new BatteryPack(); }
public IActionResult GetBatteryPack(int id) { BatteryPack batteryPack = new BatteryPack(); batteryPack = db.BatteryPacks.Include(ad => ad.AddressByDate).ThenInclude(h => h.House).ThenInclude(s => s.Street) .Include(b => b.BatteryConditionBatteryPacks).ThenInclude(bcbp => bcbp.BatteryCondition).First(bp => bp.BatteryPackId == id); return(View(batteryPack)); }
public ActionResult BatteryPackDeleteConfirmed(int id) { BatteryPack batteryPack = db.BatteryPacks.Find(id); db.BatteryPacks.Remove(batteryPack); db.SaveChanges(); return(RedirectToAction("BatteryPacks")); }
public ActionResult BatteryPackEdit([Bind(Include = "BatteryId,BatteryType,InstallationId")] BatteryPack batteryPack) { if (ModelState.IsValid) { db.Entry(batteryPack).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("BatteryPacks")); } ViewBag.BatteryId = new SelectList(db.Batteries, "BatteryId", "BatteryType", batteryPack.BatteryId); ViewBag.InstallationId = new SelectList(db.Installations, "InstallationId", "ShortcutName", batteryPack.InstallationId); return(View(batteryPack)); }
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); }
public ActionResult BatteryPackCreate([Bind(Include = "BatteryPackId,ShortcutName,TechnologicalName,MonoblockNumber,StringNumber,DischargeCurrent1,DischargeCurrent2,DischargeCurrent3,ProductionYear,AssemblyDate,LastReviewDate,BatteryId,InstallationId")] BatteryPack batteryPack) { if (ModelState.IsValid) { db.BatteryPacks.Add(batteryPack); db.SaveChanges(); return(RedirectToAction("BatteryPacks")); } ViewBag.BatteryId = new SelectList(db.Batteries, "BatteryId", "BatteryType", batteryPack.BatteryId); ViewBag.InstallationId = new SelectList(db.Installations, "InstallationId", "ShortcutName", batteryPack.InstallationId); return(View(batteryPack)); }
public ActionResult BatteryPackDelete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BatteryPack batteryPack = db.BatteryPacks.Find(id); if (batteryPack == null) { return(HttpNotFound()); } return(View(batteryPack)); }
public ActionResult BatteryPackEdit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BatteryPack batteryPack = db.BatteryPacks.Find(id); if (batteryPack == null) { return(HttpNotFound()); } ViewBag.BatteryId = new SelectList(db.Batteries, "BatteryId", "BatteryType", batteryPack.BatteryId); ViewBag.InstallationId = new SelectList(db.Installations, "InstallationId", "ShortcutName", batteryPack.InstallationId); return(View(batteryPack)); }
public void Add(BatteryPack battery) { _items.Add(battery); }
public void HardDelete(BatteryPack batteryPack) { this.batteryPackRepository.HardDelete(batteryPack); this.batteryPackRepository.SaveChanges(); }
public void Update(BatteryPack batteryPack) { this.batteryPackRepository.Update(batteryPack); this.batteryPackRepository.SaveChanges(); }
public void Add(BatteryPack batteryPack) { this.batteryPackRepository.Add(batteryPack); this.batteryPackRepository.SaveChanges(); }
public static async Task SeedDatabase(ApplicationDbContext context, UserManager <ApplicationUser> userManager) { if (!context.Users.Any()) { var personsWithPasswords = new List <PersonWithPassword> { new PersonWithPassword ( new ApplicationUser { UserName = "******", Email = "*****@*****.**", Address = "45 Long Beach Blvd, Miami" }, new Person { FirstName = "John", LastName = "Doe" }, "NewPassword123$" ), new PersonWithPassword ( new ApplicationUser { UserName = "******", Email = "*****@*****.**", Address = "15 Square Ave, London" }, new Person { FirstName = "Michael", LastName = "Jordan" }, "FreshPassword123$" ) }; foreach (var personWithPassword in personsWithPasswords) { var applicationUser = personWithPassword.AppUser; IdentityResult result = await userManager.CreateAsync(applicationUser, personWithPassword.Password); if (result.Succeeded) { var person = personWithPassword.Person; person.ApplicationUserId = applicationUser.Id; context.Persons.Add(person); } } context.SaveChanges(); } if (!context.Manufacturers.Any()) { var manufacturers = new List <Manufacturer> { new Manufacturer() { Name = "Philips" }, new Manufacturer() { Name = "Siemens" }, new Manufacturer() { Name = "Samsung" }, new Manufacturer() { Name = "Asus" }, new Manufacturer() { Name = "IBM" }, new Manufacturer() { Name = "Whirlpool" }, new Manufacturer() { Name = "LG" }, new Manufacturer() { Name = "Solar City" }, new Manufacturer() { Name = "Tesla" }, new Manufacturer() { Name = "Teledyne Energy Systems" }, }; context.Manufacturers.AddRange(manufacturers); context.SaveChanges(); } if (!context.ElectricalDeviceTypes.Any()) { var electricalDeviceTypes = new List <ElectricalDeviceType> { new ElectricalDeviceType() { TypeName = "LED Light" }, new ElectricalDeviceType() { TypeName = "Washing Machine" }, new ElectricalDeviceType() { TypeName = "Air conditioner" }, new ElectricalDeviceType() { TypeName = "Computer" }, new ElectricalDeviceType() { TypeName = "Refridgerator" }, new ElectricalDeviceType() { TypeName = "Electronic Microscope" }, new ElectricalDeviceType() { TypeName = "Water Pump" }, new ElectricalDeviceType() { TypeName = "Water Heater" }, new ElectricalDeviceType() { TypeName = "Energy Generator" }, new ElectricalDeviceType() { TypeName = "Solar panel" }, new ElectricalDeviceType() { TypeName = "Radioisotope Thermoelectric Generator" }, new ElectricalDeviceType() { TypeName = "Battery Pack" } }; context.ElectricalDeviceTypes.AddRange(electricalDeviceTypes); context.SaveChanges(); } if (!context.ElectricalDeviceModels.Any()) { var philips = context.Manufacturers.FirstOrDefault(m => m.Name == "Philips"); var siemens = context.Manufacturers.FirstOrDefault(m => m.Name == "Siemens"); var samsung = context.Manufacturers.FirstOrDefault(m => m.Name == "Samsung"); var whirlpool = context.Manufacturers.FirstOrDefault(m => m.Name == "Whirlpool"); var lg = context.Manufacturers.FirstOrDefault(m => m.Name == "LG"); var solarCity = context.Manufacturers.FirstOrDefault(m => m.Name == "Solar City"); var tesla = context.Manufacturers.FirstOrDefault(m => m.Name == "Tesla"); var teledyne = context.Manufacturers.FirstOrDefault(m => m.Name == "Teledyne Energy Systems"); var electricalDeviceModels = new List <ElectricalDeviceModel> { new ElectricalDeviceModel() { ModelName = "Philips CH5 Air Conditioner", MeasuringUnit = "Degrees (C)", MinValue = 18.0d, MaxValue = 30.0d, Step = 1.0d, PowerPerStep = 5.6d, PowerAtLowestUnitLevel = 30.0d, ModelIdentifier = "KL54-PLPS", Manufacturer = philips, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Air conditioner") }, new ElectricalDeviceModel() { ModelName = "Siemens LED Light FC83H", MeasuringUnit = "Lumens", MinValue = 30.0d, MaxValue = 90.0d, Step = 5.0d, PowerPerStep = 0.6, PowerAtLowestUnitLevel = 4.0d, ModelIdentifier = "9DE4-SMNS", Manufacturer = siemens, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "LED Light") }, new ElectricalDeviceModel() { ModelName = "Samsung Fridge DL23M", MeasuringUnit = "Degrees (C)", MinValue = -15.0d, MaxValue = 6.0d, Step = 1.0d, PowerPerStep = 7.0d, PowerAtLowestUnitLevel = 35.0d, ModelIdentifier = "CV7J-SMSG", Manufacturer = samsung, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Refridgerator") }, new ElectricalDeviceModel() { ModelName = "Whirlpool Water Pump DH4F", MeasuringUnit = "LitresPerMin", MinValue = 0.5d, MaxValue = 20.0d, Step = 0.5d, PowerPerStep = 7.0d, PowerAtLowestUnitLevel = 45.0d, ModelIdentifier = "JE3C-WHPL", Manufacturer = whirlpool, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Water Pump") }, new ElectricalDeviceModel() { ModelName = "LG Water Heater KD25", MeasuringUnit = "Degrees (C)", MinValue = 20.0d, MaxValue = 80.0d, Step = 1.0d, PowerPerStep = 0.5d, PowerAtLowestUnitLevel = 22.0d, ModelIdentifier = "90QW-LGLG", Manufacturer = lg, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Water Heater") }, new ElectricalDeviceModel() { ModelName = "Solar City MX45 Panel", MeasuringUnit = "Watts", MinValue = 0.0d, MaxValue = 80.0d, Step = 1.0d, PowerPerStep = 0.5d, PowerAtLowestUnitLevel = 0.0d, ModelIdentifier = "34FD-SLCT", Manufacturer = solarCity, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Solar panel") }, new ElectricalDeviceModel() { ModelName = "Teledyne HJ24 MMRTG", MeasuringUnit = "Degrees (C)", MinValue = 0.0d, MaxValue = 120.0d, Step = 1.0d, PowerPerStep = 0.5d, PowerAtLowestUnitLevel = 0.0d, ModelIdentifier = "3F4F-TLDN", Manufacturer = teledyne, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Radioisotope Thermoelectric Generator") }, new ElectricalDeviceModel() { ModelName = "Tesla 24CF Power Pack", Capacity = 50000, MeasuringUnit = "Degrees (C)", MinValue = 0.0d, MaxValue = 250.0d, Step = 1.0d, PowerPerStep = 0.5d, PowerAtLowestUnitLevel = 0.0d, ModelIdentifier = "90QW-TSLA", Manufacturer = tesla, ElectricalDeviceType = context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Battery Pack") } }; context.ElectricalDeviceModels.AddRange(electricalDeviceModels); context.SaveChanges(); if (!context.EnergyGenerators.Any()) { var energyGenerators = new List <EnergyGenerator>(); var teledyneRadioisotopeGeneratorModel = context.ElectricalDeviceModels.FirstOrDefault(edm => edm.ModelName == "Teledyne HJ24 MMRTG"); var radioisotopeGenerator = new EnergyGenerator() { SerialNumber = "VC23-DF42-OK49-3F4F-TLDN", ElectricalDeviceModel = teledyneRadioisotopeGeneratorModel }; energyGenerators.Add(radioisotopeGenerator); var radioisotopeGeneratorSecond = new EnergyGenerator() { SerialNumber = "LQ21-CA30-SQ1P-3F4F-TLDN", ElectricalDeviceModel = teledyneRadioisotopeGeneratorModel }; energyGenerators.Add(radioisotopeGeneratorSecond); string[] setOfStrings = new string[] { "JFC9", "PO92", "CXO9", "AZ39", "PO9W", "QE31", "SXL4", "BA6G" }; var solarCityPanelModel = context.ElectricalDeviceModels.FirstOrDefault(edm => edm.ModelName == "Solar City MX45 Panel"); int setLength = setOfStrings.Length; Random randomGenerator = new Random(); for (int i = 0; i < 20; i++) { StringBuilder sb = new StringBuilder(); for (int j = 0; j < 3; j++) { string randomString = setOfStrings[randomGenerator.Next(0, setLength)]; sb.AppendFormat("{0}-", randomString); } var energyGenerator = new EnergyGenerator() { SerialNumber = sb.ToString(), ElectricalDeviceModel = solarCityPanelModel }; energyGenerators.Add(energyGenerator); } context.EnergyGenerators.AddRange(energyGenerators); context.SaveChanges(); } if (!context.BatteryPacks.Any()) { var battery = new BatteryPack() { SerialNumber = "D3AP-W24C-QW2X-90QW-TSLA", ElectricalDeviceModel = context.ElectricalDeviceModels.FirstOrDefault(edm => edm.ModelName == "Tesla 24CF Power Pack") }; context.BatteryPacks.Add(battery); context.SaveChanges(); } } if (!context.BaseUnits.Any()) { context.BaseUnits.AddRange ( new BaseUnit { Name = "Living Space" }, new BaseUnit { Name = "Green House" } ); context.SaveChanges(); } if (!context.ElectricalSystemTypes.Any()) { var electricalSystemTypes = new List <ElectricalSystemType> { new ElectricalSystemType { Name = "Air-Conditining System" }, new ElectricalSystemType { Name = "Lighting System" }, new ElectricalSystemType { Name = "Fridge System" }, new ElectricalSystemType { Name = "Water Pumping System" }, new ElectricalSystemType { Name = "Water Heating System" } }; context.ElectricalSystemTypes.AddRange(electricalSystemTypes); context.SaveChanges(); } if (!context.ElectricalSystems.Any()) { var livingSpaceBaseUnit = context.BaseUnits.FirstOrDefault(u => u.Name == "Living Space"); var greenHouseBaseUnit = context.BaseUnits.FirstOrDefault(bu => bu.Name == "Green House"); var airConditioningSystemType = context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Air-Conditining System"); var ligthingSystemType = context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Lighting System"); var fridgeSystemType = context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Fridge System"); var waterPumpingSystemType = context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Water Pumping System"); var waterHeatingSystemType = context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Water Heating System"); var airConditioningLivingSpace = new ElectricalSystem() { Name = "Air Conditioning System (Living Space)", BaseUnit = livingSpaceBaseUnit, ElectricalSystemType = airConditioningSystemType }; var airConditioningGreenHouse = new ElectricalSystem() { Name = "Air Conditioning System (Green House)", BaseUnit = greenHouseBaseUnit, ElectricalSystemType = airConditioningSystemType }; var lightsSystemLivingSpace = new ElectricalSystem() { Name = "LED Lights (Living Space)", BaseUnit = livingSpaceBaseUnit, ElectricalSystemType = ligthingSystemType }; var lightsSystemGreenHouse = new ElectricalSystem() { Name = "LED Lights (Green House)", BaseUnit = greenHouseBaseUnit, ElectricalSystemType = ligthingSystemType }; var fridgeSystemLivingSpace = new ElectricalSystem() { Name = "Fridge System (Living Space)", BaseUnit = livingSpaceBaseUnit, ElectricalSystemType = fridgeSystemType }; var fridgeSystemGreenHouse = new ElectricalSystem() { Name = "Fridge System (Green House)", BaseUnit = greenHouseBaseUnit, ElectricalSystemType = fridgeSystemType }; var waterPumpSystemLivingSpace = new ElectricalSystem() { Name = "Water Pumping System (Living Space)", BaseUnit = livingSpaceBaseUnit, ElectricalSystemType = waterPumpingSystemType }; var waterPumpSystemGreenHouse = new ElectricalSystem() { Name = "Water Pumping System (Green House)", BaseUnit = greenHouseBaseUnit, ElectricalSystemType = waterPumpingSystemType }; var waterHeatingSystemLivingSpace = new ElectricalSystem() { Name = "Water Heating System (Living Space)", BaseUnit = livingSpaceBaseUnit, ElectricalSystemType = waterHeatingSystemType }; var waterHeatingSystemGreenHouse = new ElectricalSystem() { Name = "Water Heating System (Green House)", BaseUnit = greenHouseBaseUnit, ElectricalSystemType = waterHeatingSystemType }; var electricalSystems = new List <ElectricalSystem> { airConditioningLivingSpace, airConditioningGreenHouse, lightsSystemLivingSpace, lightsSystemGreenHouse, fridgeSystemLivingSpace, fridgeSystemGreenHouse, waterPumpSystemLivingSpace, waterPumpSystemGreenHouse, waterHeatingSystemLivingSpace, waterHeatingSystemGreenHouse }; context.ElectricalSystems.AddRange(electricalSystems); context.SaveChanges(); } if (!context.ElectricalDevices.Any()) { var ledLightsLivingSpaceSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "LED Lights (Living Space)"); var ledLightsGreenHouseSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "LED Lights (Living Space)"); var philipsCH5AirConditioner = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Philips CH5 Air Conditioner"); var siemensLEDLightFC83H = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Siemens LED Light FC83H"); var samsungFridgeDL23M = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Samsung Fridge DL23M"); var whirlpoolWaterPumpDH4F = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Whirlpool Water Pump DH4F"); var lgWaterHeaterKD25 = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "LG Water Heater KD25"); var electricalDevices = new List <ElectricalDevice> { new ElectricalDevice() { SerialNumber = "4HDE-BHRU-98CH-KL54-PLPS", ElectricalDeviceModel = philipsCH5AirConditioner, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Air Conditioning System (Living Space)"), MeasuringUnitCurrentLevel = 21.0d }, new ElectricalDevice() { SerialNumber = "BNMV-RT65-AS9K-KL54-PLPS", ElectricalDeviceModel = philipsCH5AirConditioner, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Air Conditioning System (Green House)"), MeasuringUnitCurrentLevel = 21.0d }, new ElectricalDevice() { SerialNumber = "8XCD-GHJD-82WD-9DE4-SMNS", ElectricalDeviceModel = siemensLEDLightFC83H, ElectricalSystem = ledLightsLivingSpaceSystem, MeasuringUnitCurrentLevel = 30.0d }, new ElectricalDevice() { SerialNumber = "KERL-PKS1-DF9A-9DE4-SMNS", ElectricalDeviceModel = siemensLEDLightFC83H, ElectricalSystem = ledLightsLivingSpaceSystem, MeasuringUnitCurrentLevel = 30.0d }, new ElectricalDevice() { SerialNumber = "BCRE-MGHW-KSD3-9DE4-SMNS", ElectricalDeviceModel = siemensLEDLightFC83H, ElectricalSystem = ledLightsGreenHouseSystem, MeasuringUnitCurrentLevel = 45.0d }, new ElectricalDevice() { SerialNumber = "PA8G-LM2A-DF9A-9DE4-SMNS", ElectricalDeviceModel = siemensLEDLightFC83H, ElectricalSystem = ledLightsGreenHouseSystem, MeasuringUnitCurrentLevel = 45.0d }, new ElectricalDevice() { SerialNumber = "PKLC-WERP-CVBH-CV7J-SMSG", ElectricalDeviceModel = samsungFridgeDL23M, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Fridge System (Living Space)"), MeasuringUnitCurrentLevel = 4.0d }, new ElectricalDevice() { SerialNumber = "MVC8-KDKD-CD9K-CV7J-SMSG", ElectricalDeviceModel = samsungFridgeDL23M, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Fridge System (Green House)"), MeasuringUnitCurrentLevel = 4.0d }, new ElectricalDevice() { SerialNumber = "FH3S-DE4C-CF5D-JE3C-WHPL", ElectricalDeviceModel = whirlpoolWaterPumpDH4F, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Pumping System (Living Space)"), MeasuringUnitCurrentLevel = 14.0d }, new ElectricalDevice() { SerialNumber = "MVC8-KDKD-CD9K-JE3C-WHPL", ElectricalDeviceModel = whirlpoolWaterPumpDH4F, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Pumping System (Green House)"), MeasuringUnitCurrentLevel = 0.5d }, new ElectricalDevice() { SerialNumber = "8XCD-GHJD-82WD-90QW-LGLG", ElectricalDeviceModel = lgWaterHeaterKD25, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Heating System (Living Space)"), MeasuringUnitCurrentLevel = 70.0d }, new ElectricalDevice() { SerialNumber = "KL2W-AS2E-WE3C-90QW-LGLG", ElectricalDeviceModel = lgWaterHeaterKD25, ElectricalSystem = context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Heating System (Green House)"), MeasuringUnitCurrentLevel = 20.0d } }; context.ElectricalDevices.AddRange(electricalDevices); context.SaveChanges(); } }
//TODO: Wire up all 3 stations if variable range interceptors are allowed public SittingDuck() { CurrentThreatBuffs = new Dictionary <ExternalThreat, ExternalThreatBuff>(); CurrentInternalThreats = new List <InternalThreat>(); CurrentExternalThreats = new List <ExternalThreat>(); var whiteReactor = new CentralReactor(); var redReactor = new SideReactor(whiteReactor); var blueReactor = new SideReactor(whiteReactor); var redBatteryPack = new BatteryPack(); var blueBatteryPack = new BatteryPack(); var computerComponent = new ComputerComponent(); var visualConfirmationComponent = new VisualConfirmationComponent(); var rocketsComponent = new RocketsComponent(); Computer = computerComponent; VisualConfirmationComponent = visualConfirmationComponent; RocketsComponent = rocketsComponent; var interceptorStation = new InterceptorStation { StationLocation = StationLocation.Interceptor }; var upperRedStation = new StandardStation { Cannon = new SideHeavyLaserCannon(redReactor, ZoneLocation.Red), EnergyContainer = new SideShield(redReactor), StationLocation = StationLocation.UpperRed }; interceptorStation.InterceptorComponent = new InterceptorComponent(null, upperRedStation); upperRedStation.CComponent = new InterceptorComponent(interceptorStation, null); var upperWhiteStation = new StandardStation { Cannon = new CentralHeavyLaserCannon(whiteReactor, ZoneLocation.White), EnergyContainer = new CentralShield(whiteReactor), StationLocation = StationLocation.UpperWhite, CComponent = computerComponent }; var upperBlueStation = new StandardStation { Cannon = new SideHeavyLaserCannon(blueReactor, ZoneLocation.Blue), EnergyContainer = new SideShield(blueReactor), StationLocation = StationLocation.UpperBlue, CComponent = new BattleBotsComponent() }; var lowerRedStation = new StandardStation { Cannon = new SideLightLaserCannon(redBatteryPack, ZoneLocation.Red), EnergyContainer = redReactor, StationLocation = StationLocation.LowerRed, CComponent = new BattleBotsComponent() }; var lowerWhiteStation = new StandardStation { Cannon = new PulseCannon(whiteReactor), EnergyContainer = whiteReactor, StationLocation = StationLocation.LowerWhite, CComponent = visualConfirmationComponent }; var lowerBlueStation = new StandardStation { Cannon = new SideLightLaserCannon(blueBatteryPack, ZoneLocation.Blue), EnergyContainer = blueReactor, StationLocation = StationLocation.LowerBlue, CComponent = rocketsComponent }; upperRedStation.BluewardStation = upperWhiteStation; upperRedStation.OppositeDeckStation = lowerRedStation; upperWhiteStation.RedwardStation = upperRedStation; upperWhiteStation.BluewardStation = upperBlueStation; upperWhiteStation.OppositeDeckStation = lowerWhiteStation; upperBlueStation.RedwardStation = upperWhiteStation; upperBlueStation.OppositeDeckStation = lowerBlueStation; lowerRedStation.BluewardStation = lowerWhiteStation; lowerRedStation.OppositeDeckStation = upperRedStation; lowerWhiteStation.RedwardStation = lowerRedStation; lowerWhiteStation.BluewardStation = lowerBlueStation; lowerWhiteStation.OppositeDeckStation = upperWhiteStation; lowerBlueStation.RedwardStation = lowerWhiteStation; lowerBlueStation.OppositeDeckStation = upperBlueStation; RedZone = new Zone { LowerStation = lowerRedStation, UpperStation = upperRedStation, ZoneLocation = ZoneLocation.Red, Gravolift = new Gravolift() }; WhiteZone = new Zone { LowerStation = lowerWhiteStation, UpperStation = upperWhiteStation, ZoneLocation = ZoneLocation.White, Gravolift = new Gravolift() }; BlueZone = new Zone { LowerStation = lowerBlueStation, UpperStation = upperBlueStation, ZoneLocation = ZoneLocation.Blue, Gravolift = new Gravolift() }; ZonesByLocation = new[] { RedZone, WhiteZone, BlueZone }.ToDictionary(zone => zone.ZoneLocation); StationByLocation = Zones .SelectMany(zone => new[] { zone.LowerStation, zone.UpperStation }) .Concat(new Station[] { interceptorStation }) .ToDictionary(station => station.StationLocation); InterceptorStation = interceptorStation; }
internal SideLightLaserCannon(BatteryPack source, ZoneLocation currentZone) : base(source, currentZone) { }