kvadrat4o

MineDraft

Mar 5th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.24 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. public class DraftManager
  7. {
  8.     private List<Harvester> harvesters = new List<Harvester>();
  9.     private List<Provider> providers = new List<Provider>();
  10.     private double TotalEnergyStored;
  11.     private double TotalMinedOre;
  12.     private string Modeparam;
  13.  
  14.     public DraftManager()
  15.     {
  16.         this.Modeparam = "Full";
  17.     }
  18.  
  19.     public string RegisterHarvester(List<string> arguments)
  20.     {
  21.         //RegisterHarvester {type} {id} {oreOutput} {energyRequirement}
  22.         //RegisterHarvester Sonic {id} {oreOutput} {energyRequirement} {sonicFactor}
  23.         try
  24.         {
  25.             string id = arguments[2];
  26.             double ore = double.Parse(arguments[3]);
  27.             double energy = double.Parse(arguments[4]);
  28.             if (arguments[1] == "Sonic")
  29.             {
  30.                 int sonic = int.Parse(arguments[5]);
  31.                 SonicHarvester sonicH = new SonicHarvester(id, ore, energy);
  32.                 harvesters.Add(sonicH);
  33.                 return $"Successfully registered Sonic Harvester – {sonicH.ID}";
  34.             }
  35.             else
  36.             {
  37.                 HammerHarvester hammer = new HammerHarvester(id, ore, energy);
  38.                 harvesters.Add(hammer);
  39.                 return $"Successfully registered Hammer Harvester – {hammer.ID}";
  40.             }
  41.         }
  42.         catch (ArgumentException ar)
  43.         {
  44.             return ar.Message;
  45.         }
  46.        
  47.     }
  48.     public string RegisterProvider(List<string> arguments)
  49.     {
  50.         //RegisterProvider {type} {id} {energyOutput}
  51.         try
  52.         {
  53.             string id = arguments[2];
  54.             double energy = double.Parse(arguments[3]);
  55.             if (arguments[1] == "Solar")
  56.             {
  57.                 Provider solar = new SolarProvider(id, energy);
  58.                 providers.Add(solar);
  59.                 return $"Successfully registered Solar Provider – {solar.ID}";
  60.             }
  61.             else
  62.             {
  63.                 Provider pressure = new PressureProvider(id, energy);
  64.                 providers.Add(pressure);
  65.                 return $"Successfully registered Pressure Provider – {pressure.ID}";
  66.  
  67.             }
  68.         }
  69.         catch (ArgumentException ar)
  70.         {
  71.             return ar.Message;
  72.         }
  73.     }
  74.     public string Day()
  75.     {
  76.         //Day
  77.         double EnergyProduced = providers.Sum(y => y.EnergyOutput);
  78.         this.TotalEnergyStored += EnergyProduced;
  79.         double MinedOre = 0;  
  80.         double RequiredEnergy = harvesters.Sum(x => x.EnergyRequirement);
  81.         if (this.Modeparam == "Full" && this.TotalEnergyStored >= RequiredEnergy)
  82.         {
  83.             TotalMinedOre = harvesters.Sum(x => x.OreOutput);
  84.             this.TotalMinedOre += MinedOre;
  85.             this.TotalEnergyStored -= RequiredEnergy;
  86.         }
  87.         else if (this.Modeparam == "Half" && this.TotalEnergyStored >= RequiredEnergy * 0.60)
  88.         {
  89.             MinedOre = harvesters.Sum(x => x.OreOutput) * 0.50;
  90.             this.TotalMinedOre += MinedOre * 0.50;
  91.             this.TotalEnergyStored -= RequiredEnergy * 0.60;
  92.         }
  93.  
  94.         return $"A day has passed.\nEnergy Provided: {EnergyProduced}.\nPlumbus Ore Mined: {MinedOre}.";
  95.     }
  96.     public string Mode(List<string> arguments)
  97.     {
  98.         //Mode {mode}
  99.         this.Modeparam = arguments[1];
  100.         return $"Successfully changed working mode to {arguments[1]} Mode";
  101.     }
  102.     public string Check(List<string> arguments)
  103.     {
  104.         //Check {id}
  105.         string id = arguments[1];
  106.         if (providers.Any(a => a.ID == id))
  107.         {
  108.             Provider provider = providers.FirstOrDefault(a => a.ID == id);
  109.             return provider.ToString();
  110.         }
  111.         else if (harvesters.Any(h => h.ID == id))
  112.         {
  113.             Harvester harvester = harvesters.FirstOrDefault(a => a.ID == id);
  114.             return harvester.ToString();
  115.         }
  116.         else
  117.         {
  118.             return $"No element found with id – {id}.";
  119.         }
  120.     }
  121.     public string ShutDown()
  122.     {
  123.         //Shutdown
  124.  
  125.         return $"System Shutdown\nTotal Energy Stored: {this.TotalEnergyStored}\nTotal Mined Plumbus Ore: {this.TotalMinedOre}";
  126.  
  127.     }
  128. }
Add Comment
Please, Sign In to add comment