public void ch(BattleUnitsStack stack) { if (stack.Initiative < 0) { throw new MyException("Нельзя больше 1 раза за ход"); } stack.Initiative = -stack.Unit.Initiative; stacks.Add(stack.Initiative, stack); }
public void Add(BattleUnitsStack stack) { if (Count == 6) { throw new MyException("Превышено максимальное количество стеков"); } if (stacks.ContainsKey(stack.Name)) { throw new MyException("В этой армии уже есть стек с таким названием"); } stacks.Add(stack.Name, stack); stack.Army = this; }
public (Dictionary <string, Army>, Dictionary <string, BattleUnitsStack>) Open(string directory, string filename, Dictionary <string, Unit> units) { var doc = XDocument.Load(directory + @"\" + filename + ".mygame"); var armys = new Dictionary <string, Army>(); var stacks = new Dictionary <string, BattleUnitsStack>(); foreach (var army_node in doc.Element("Armys").Elements("Army")) { var army_name = army_node.Attribute("name").Value; var army = new Army(army_name); foreach (var stack_node in army_node.Element("BattleUnitsStacks").Elements("BattleUnitsStack")) { // Enum.TryParse<Units>(stack_node.Attribute("unit").Value, out var unit); var unit = stack_node.Attribute("unit").Value; var stack_name = stack_node.Attribute("name").Value; var count = Convert.ToInt32(stack_node.Attribute("count").Value); var currentcount = Convert.ToInt32(stack_node.Attribute("currentcount").Value); var currenthealth = Convert.ToInt32(stack_node.Attribute("currenthealth").Value); var mods = new SortedDictionary <TempMods, int>(); foreach (var mod_node in stack_node.Element("TempMods").Elements("TempMod")) { Enum.TryParse <TempMods>(mod_node.Attribute("name").Value, out var mod); var mod_count = Convert.ToInt32(mod_node.Attribute("count").Value); mods.Add(mod, mod_count); } var stack = new BattleUnitsStack(units[unit], count, stack_name, currentcount, currenthealth, mods); army.Add(stack); stacks.Add(stack_name, stack); } armys.Add(army_name, army); } return(armys, stacks); }