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; } }
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..."); } }
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; }