public void ProduceLot(int number)
      {
          Sidewriter.write("¿Producir missiles balisticos?");
          bool   t  = Reader.readBool();
          string et = " ";

          if (t)
          {
              type = "ballistic";
          }
          else
          {
              type = "cruise";
              Sidewriter.write("Elige motor: tu: turbofan, ra: Ramjet");
              while (!(et == "tu" || et == "ra"))
              {
                  et = Console.ReadLine();
              }
          }
          Sidewriter.write("Elige alcanze de misiles a producir en primer lote como un int Recomendado:(>500 , <2000)");
          r = Reader.readInt();
          Sidewriter.write("Elige KT de la cabezas nucleares a producir recomendado: (suficiente como para que sea efectivo >10KT" +
                           " no demasiado como para que sea muy peligroso < 10000 KT)");
          KT = Reader.readDouble();
          Sidewriter.write("elige numero de cabezas por misil (acelera produccion relativa al numero de cabezas, no aplicable a misiles lanzados a <200 casillas)");
          Nwarheads = Reader.readInt();
      }
Example #2
0
 new public void timestep()
 {
     base.timestep();
     Sidewriter.write("¿Alimentarse de monstruos?");
     feed = Reader.readBool();
     attack();
 }
        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);
                }
            }
        }
Example #4
0
        string ChangeSpecialization()
        {
            Sidewriter.Write("Factoria: Elige especializacion");
            List <string> cho  = { "DeathOverlord", "Missile", "NuclearBomb", "NuclearMissile", "SMR" };
            List <string> expl = { "Mago No Muerto Artificial",                          "Tiempo de produccion aumenta con alcanze y masa de cabeza (puede equipar cabeza nuclear, pero usa carga convencional por defecto)",
                                   "Bombas nucleares varias sin sistema de lanzamiento", "Misiles con cabeza nuclear", "Reactores nucleares de Fision Modulares" };

            return(Reader.TakeAChoice(cho, expl));
        }
        new public void attack()
        {
            Sidewriter.write("estas a punto de detonar un arma nuclear de " + load.KT +
                             " KT, ¿estas seguro de que quieres detonarla? y: para detonar, otra tecla para cancelar");
            string o = Console.ReadLine();

            if (o == "y")
            {
                selfdestroy();
            }
        }
        new public void move()
        {
            base.move();
            Sidewriter.write("Estas al mando de un monstruo que carga una bomba thermonuclear elige: d para detonar, u otra teclar para continuar");
            string o = Console.ReadLine();

            if (o == "d")
            {
                attack();
            }
        }
        public static double ReadDouble()
        {
            bool   isdouble = false;
            double r        = 0;

            while (!isdouble)
            {
                Sidewriter.Write("Introduce un numero decimal, ejemplo: 5.5");
                string s = Console.ReadLine();
                isdouble = double.TryParse(s, out r);
            }
            return(r);
        }
        public static int ReadInt()
        {
            bool isint = false;
            int  r     = 0;

            while (!isint)
            {
                Sidewriter.Write("Introduce un numero entero");
                string s = Console.ReadLine();
                isint = int.TryParse(s, out r);
            }
            return(r);
        }
        public static bool ReadBool()
        {
            bool   r = true;
            string s = " ";

            while (!(s == "y" || s == "n"))
            {
                Sidewriter.Write("(y/n)");
                s = Console.ReadLine();
                if (s == "y")
                {
                    r = true;
                }
                else if (s == "n")
                {
                    r = false;
                }
            }
            return(r);
        }
        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();
        }
Example #11
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();
        }
Example #12
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));
                }
            }
        }
 Reader(Sidewriter SW)
 {
     this.SW = SW;
 }
 public static void TakeAChoice(List <string> Choices, List <string> Explanation)
 {
     Sidewriter.Write("Elige");
     Sidewriter.Write(Explanation);
 }
        void Produce(int ammount)
        {
            Entity r;

            Sidewriter.write(name + " " + specialization + " " + subspecialization);
        }