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;
            }
        }