void init(int TurnsBeforeGame) { int RT = TurnsBeforeGame; SideWriter.Write("Tienes " + TurnsBeforeGame.ToString() + " turnos sin usar antes del inicio del juego"); SideWriter.Write("A Continuacion se preguntara como esos turnos fueron aprovechados en cuanto a construccion de instalaciones"); SideWriter.Write("Algunas instalaciones tienen capacidad quasi exponencial con respecto al tiempo usado en su produccion, dado que se usa MetaFactoria para hacer la instalacion en si"); SideWriter.Write("Turnos a asignar " + RT.ToString()); List <int> l = Reader.ReadIntList(conf.ExtensionNames); int i = 0; SideWriter.WriteFromFile("AGIunitsexplanation.txt"); while (RT > 0) { RT -= l[i]; if (RT >= 0) { Build(l[i], conf.ExtensionNames[i]); expan.Add(iteminprod.Clone()); iteminprod = null; TTC = 0; selfimprove(); i++; } if (i >= conf.ExtensionNames.Count) { i = 0; } } }
public void DO() { string r = " "; while (!((r == "a" && lv < conf.AGIMaxLevel) || r == "u")) { Sidewriter.write("Elige a:automejora, u: construir unidad"); r = Console.ReadLine(); if (r == "a") { if (lv < conf.AGIMaxLevel) { selfimprove(); } else { Sidewriter.write("AGI ya esta en su maximo nivel"); r = "u"; } } if (r == "u") { SideWriter.Write("AGI: Menu de Produccion"); SideWriter.WriteFromFile("AGIunitsexplanation.txt"); string t = Reader.TakeAChoice(conf.ShortExtensionNames); SideWriter.Write("Elige el multiplo de tiempo de produccion como double, a mayor tiempo," + " mayor el nivel (En algunos casos el tiempo de produccion real puede ser muy largo)"); double ttc = Reader.ReadDouble(); Build(ttc, t); } } }
void InitEnrichment() { if (target == "U" || target == "Li") { SideWriter.Write("seleciona la Fraccion del Total de Recurso bruto a usar para enriquecimiento, si esta va a ser la unica planta de enriquecimiento para ese recurso puedes poner 1.0, " + "si no elige numero menor que 1, si varias plantas compiten por el mismo recurso se distribuira segun el valor dado"); double InputRatio = Reader.ReadDouble(); } }
void Teleport(ref double MP, ref double px, ref double py, ref double pz) { SideWriter.Write("introduce x , y, z; coordenadas de teletransporte"); px = Reader.ReadDouble(); py = Reader.ReadDouble(); pz = Reader.ReadDouble(); BK.inrange(px, B.BZ); BK.inrange(py, B.BZ); BK.inrange(pz, B.BZ); MP -= conf.SpellMPCost["Teleport"]; }
void InformPlayer() { SideWriter.Write("A mayor desecho genere la planta mayor la cantidad que se puede separar, " + "a menos enriquecimiento mayor cantidad de salida, usa grandes cantidades de material para enriquecer mas rapido"); if (target == "U") { SideWriter.Write("Enriquecedora de Uranio, Enriquece al >80% para primarios de Uranio, >50% para Sparkplugs, cualquier enriquecimiento para Fusion Tamper"); } else if (target == "D") { SideWriter.Write("Enriquecedora de Hidrogeno, Enriquece al >90% para usarlo como combustible termonuclear y moderador de neutrones"); } else if (target == "Li") { SideWriter.Write("Enriquecidora de Litio, Enriquece a menos del 97% para usarlo como combustible termonuclear (requiere deuterio para ese proposito)"); } }
new public void timestep() { Sidewriter.write(name); string i = " "; while (!(i == "m" || i == "g")) { SideWriter.write("elige m: para colocar mina, g: para crecer"); i = Console.ReadLine(); if (i == "m") { placelandmine(); } else if (i == "g") { grow(); } } base.timestep(); }
new public void timestep() { Sidewriter.write(name); string i = " "; while (!(i == "m" || i == "g" || i == "f")) { SideWriter.write("elige m: para colocar mina de baja calidad, g para crecer, f para usar mortero"); i = Console.ReadLine(); if (i == "m") { placelandmine(); } else if (i == "g") { grow(); } else if (i == "f") { mortarfire(); } } base.timestep(); }
void Produce(int ammount) { SideWriter.Write("Seleciona numero de unidades a producir en el Lote"); int lotSize = Reader.ReadInt(); Sidewriter.write(name + " " + specialization); if (specialization == "DeathOverlord") { for (int i = 0; i < lotSize; i++) { inProd.Add(new DeathOverlord()); } } else if (specialization == "Missile" || specializacion == "NuclearMissile") { SideWriter.Write("Seleciona masa que puede ser lanzada por el cohete"); double trowmass = Reader.ReadDouble(); SideWriter.Write("Seleciona alcanze en KM (cada casilla es 1 KM)"); double range = Reader.ReadDouble(); SideWriter.Write("Elige Balistico o de crucero (balistico es mas rapido, pero el de crucero se maneja como una unidad mas)"); bool b = Reader.ReadBool(); for (int i = 0; i < lotSize; i++) { bool n = false; if (specialization == "NuclearMissile") { n = true; } if (b) { inProd.Add(new BallisticMissile(trowmass, range, n)); } else { inProd.Add(new CruiseMissile(trowmass, range, n)); } } } else if (specialization == "NuclearBomb") { bool addStage = true; List <string> FiF = new List <string>(); List <string> FuF = new List <string>(); List <string> T = new List <string>(); bool PB = true; while (addStage) { SideWriter.Write("Elige Combustible de fision a usar(si no tienes suficientes materiales las bombas no se completaran)"); List <string> c = new List <string> { "HEU", "U233", "Pu239" }; FiF.Add(Reader.TakeAChoice(c)); if (FiF.Count > 1) { SideWriter.Write("Elige Combustible principal de fusion a usar (HELi usara Litio lo mas enriquecido posible)"); List <string> c = new List <string> { "HELi", "LEli", "D", "1P_9D" }; FuF.Add(Reader.TakeAChoice(c)); SideWriter.Write("Elige Material usado para el tamper para contener el combustible nuclear (IM es material inerte, no aumenta la potencia de detonacion de forma sustancial)"); List <string> c = new List <string> { "LEU", "HEU", "IM", "Th" }; T.Add(Reader.TakeAChoice(c)); } else { SideWriter.Write("Elige Material usado para contener el combustible nuclear y reflejar neutrones de vuelta al primario (Be es el mejor para bombas con multiple etapa)"); List <string> c = new List <string> { "LEU", "HEU", "Be" }; T.Add(Reader.TakeAChoice(c)); SideWriter.Write("Elige si usar DTboosting en el primario" + " (aumenta eficiencia y reduce masa en el primario aunmentado la multiplicacion posible en la siguiente etapa, consume 1 a 3 gramos de tritio)"); PB = Reader.ReadBool(); } SideWriter.Write("¿Añadir etapa nuclear?"); addStage = Reader.ReadBool(); } for (int i = 0; i < lotSize; i++) { inProd.Add(new Nuclearbomb(FiF, FuF, T, PB)); } } else if (specialization == "SMR") { SideWriter.Write("Seleciona el tipo de reactor de Fision"); List <string> c = new List <string> { "Heavy Water Rector (Requiere Uranio Natural)", "Light Water Reactor (Requiere Uranio a mas del 2.5%)", "Sodium Cooled Fast Breeder Reactor (Requiere Uranio al 20% o Pu239 o U233 Crea su propio combustible con U238 o Torio)" }; string type = Reader.TakeAChoice(c); SideWriter.Write("Seleciona Los MW termicos del reactor min 50, max 500(Pueden dedicarse a una Extension De AGI reduciendo costes de expansion)"); double MW = Reader.ReadDouble(); for (int i = 0; i < lotSize; i++) { inProd.Add(new SMR(type, MW)); } } }