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();
        }
Beispiel #7
0
        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();
        }
Beispiel #8
0
        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));
                }
            }
        }