Exemplo n.º 1
0
        public void CreateCommand(CommandManager cm)
        {
            commandJump:
            Console.WriteLine("What type of command?\n\t1) Attack Command\n\t2)Timed Command");
            var t = Console.ReadLine();
            switch (t)
            {
                case "1":
                    Console.WriteLine("Enter 'name'" +
                        "\nstat 'targetStat'" +
                        "\nstat 'atkStat'" +
                        "\nstat 'defStat'" +
                        "\nstat costStat" +
                        "\nfloat 'atkmod'" +
                        "\nfloat 'defmod'" +
                        "\nint 'cost'" +
                        "\nint 'loVar'" +
                        "\nint 'hiVar'\n" +
                        @"**separate with commas (,)");
                    var input = Console.ReadLine();
                    string s = "";
                    var nam = "";
                    var tar = new StatName();
                    var atk = new StatName();
                    var def = new StatName();
                    var cstat = new StatName();
                    var aMod = 0.00f;
                    var dMod = 0.00f;
                    var cst = 0;
                    var lovar = 90;
                    var hivar = 110;
                    var i = 0;

                    foreach (char c in input)
                    {

                        if (!(c.ToString() == ","))
                            s += c.ToString();
                        else
                        {
                            switch (i)
                            {
                                case 0:
                                    nam = s;
                                    break;
                                case 1:
                                    var n1 = 0;
                                    int.TryParse(s, out n1);
                                    tar = (StatName)n1;
                                    break;
                                case 2:
                                    var n2 = 0;
                                    int.TryParse(s, out n2);
                                    atk = (StatName)n2;
                                    break;
                                case 3:
                                    var n3 = 0;
                                    int.TryParse(s, out n3);
                                    def = (StatName)n3;
                                    break;
                                case 4:
                                    var n4 = 0;
                                    int.TryParse(s, out n4);
                                    cstat = (StatName)n4;
                                    break;
                                case 5:
                                    float.TryParse(s, out aMod);
                                    break;
                                case 6:
                                    float.TryParse(s, out dMod);
                                    break;
                                case 7:
                                    int.TryParse(s, out cst);
                                    break;
                                case 8:
                                    int.TryParse(s, out lovar);
                                    break;
                                case 9:
                                    int.TryParse(s, out hivar);
                                    break;
                            }
                            s = "";
                            i++;
                        }
                    }

                    cm.AddCommand(
                        new AttackCommand(nam, tar, atk, def, cstat, aMod, dMod, cst, lovar, hivar));
                    break;
                case "2":
                    Console.WriteLine("Enter 'name'" +
                                    "\nstat 'targetStat'" +
                                    "\nstat 'atkStat'" +
                                    "\nstat 'defStat'" +
                                    "\nstat costStat" +
                                    "\nfloat 'atkmod'" +
                                    "\nfloat 'defmod'" +
                                    "\nint 'cost'" +
                                    "\nint 'loVar'" +
                                    "\nint 'hiVar'" +
                                    "\nint 'maxTicks" +
                                    @"**separate with commas (,)");
                    var maxticks = 0;
                    input = Console.ReadLine();
                    s = "";
                    i = 0;
                    nam = "";
                    tar = new StatName();
                    atk = new StatName();
                    def = new StatName();
                    cstat = new StatName();
                    aMod = 0.00f;
                    dMod = 0.00f;
                    cst = 0;
                    lovar = 90;
                    hivar = 110;

                    foreach (char c in input)
                    {

                        if (!(c.ToString() == ","))
                            s += c.ToString();
                        else
                        {
                            switch (i)
                            {
                                case 0:
                                    nam = s;
                                    break;
                                case 1:
                                    var n1 = 0;
                                    int.TryParse(s, out n1);
                                    tar = (StatName)n1;
                                    break;
                                case 2:
                                    var n2 = 0;
                                    int.TryParse(s, out n2);
                                    atk = (StatName)n2;
                                    break;
                                case 3:
                                    var n3 = 0;
                                    int.TryParse(s, out n3);
                                    def = (StatName)n3;
                                    break;
                                case 4:
                                    var n4 = 0;
                                    int.TryParse(s, out n4);
                                    cstat = (StatName)n4;
                                    break;
                                case 5:
                                    float.TryParse(s, out aMod);
                                    break;
                                case 6:
                                    float.TryParse(s, out dMod);
                                    break;
                                case 7:
                                    int.TryParse(s, out cst);
                                    break;
                                case 8:
                                    int.TryParse(s, out lovar);
                                    break;
                                case 9:
                                    int.TryParse(s, out hivar);
                                    break;
                                case 10:
                                    int.TryParse(s, out maxticks);
                                    break;
                            }
                            s = "";
                            i++;
                        }
                    }

                    cm.AddCommand(
                        new TimedCommand { Name = nam, _target = tar, _atkStat = atk, _defStat = def, _costStat = cstat,
                                           _atkMod = aMod, _defMod = dMod, _cost = cst, _varianceLow = lovar,
                                           _varianceHi = hivar, MaxTicks = maxticks});
                    break;
                default:
                    Console.WriteLine("invalid input, try again...");
                    goto commandJump;
            }
        }
Exemplo n.º 2
0
        public void CreateMonster(GameEntityManager em, CommandManager cm)
        {
            monsternamejump:
            Console.WriteLine("What is this Monster's name?");
            var n = Console.ReadLine();
            Console.WriteLine();
            var e = new GameEntity(0, "", TypeTag.Monster);
            if (n.Length > 2 && n.Length < 18)
                e = em.CreateEntity(n, TypeTag.Monster);
            else
            {
                Console.WriteLine("Names must be 3-17 characters. Try again...");
                goto monsternamejump;
            }
            em.AddComponentToEntity(new ActionTimerComponent(), e);
            em.AddComponentToEntity(new AIInputComponent(), e);
            Console.WriteLine();
            Console.WriteLine("Monster Level?");
            var l = int.Parse(Console.ReadLine());
            if (l > 0 && l < 24)
                em.AddComponentToEntity(new LevelComponent { IsStatic = true, LevelValue = l, XpValue = l * 5 }, e);
            Console.WriteLine();
            classjump:
            Console.WriteLine("Monster Class?");
            var c = Console.ReadLine();
            switch (c)
            {
                case "f":
                    em.AddComponentToEntity(new StatComponent(StatName.Life, (50 + l * 25)) { IsVital = true }, e);
                    em.AddComponentToEntity(new StatComponent(StatName.Mana, (10 + l * 10)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Mastery, (int)(2 + l * 1.5)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Resilience, (3 + l * 2)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Haste, (1 + l)), e);
                    break;
                case "r":
                    em.AddComponentToEntity(new StatComponent(StatName.Life, (30 + l * 15)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Mana, (30 + l * 15)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Resilience, (int)(2 + l * 1.5)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Haste, (3 + l * 2)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Mastery, (1 + l)), e);
                    break;
                case "w":
                    em.AddComponentToEntity(new StatComponent(StatName.Life, (10 + l * 10)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Mana, (50 + l * 25)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Haste, (int)(2 + l * 1.5)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Mastery, (3 + l * 2)), e);
                    em.AddComponentToEntity(new StatComponent(StatName.Resilience, (1 + l)), e);
                    break;
                default:
                    Console.WriteLine("Invalid Input. Try Again...");
                    goto classjump;
            }

            for(var i = 0; i < cm.CommandCollection.Commands.Count; i++)
            {
                Console.WriteLine(i + ") " + cm.CommandCollection.Commands[i].Name);
            }
            bool done = false;
            while (!done)
            {
                Console.WriteLine("Choose Commands for this monster...");
                var choice = Console.ReadLine();
                var command = cm.CommandCollection.Commands.SingleOrDefault(cmd => choice == cmd.Name);
                if (command != null)
                {
                    var input = e.Components.Where(cmp => cmp is AIInputComponent)
                                            .Cast<AIInputComponent>()
                                            .Single();

                    input.CommandCollection.Commands.Add(command);
                    Console.WriteLine("Done?");
                    if(Console.ReadLine() == "y")
                    {
                        done = true;
                    }
                }
                else Console.WriteLine("Invalid input, try again...");
            }
        }
Exemplo n.º 3
0
 public Command SetCommand(CommandManager cm)
 {
     setCommandJump:
     foreach(var c in cm.CommandCollection.Commands)
     {
         Console.WriteLine(c.Name);
     }
     Console.WriteLine("Set Command by typing the name of desired command.");
     var name = Console.ReadLine();
     var command = cm.CommandCollection.Commands.SingleOrDefault(cmd => cmd.Name == name);
     if(command == null)
     {
         Console.WriteLine("Invalid input, try again...");
         goto setCommandJump;
     }
     Console.WriteLine("Commnd {0} set.", command.Name);
     if(!CommandCollection.Commands.Contains(command))
         CommandCollection.Commands.Add(command);
     return command;
 }