public Unit(int x, int y, Flags flags, char visualChar, ConsoleColor color, string name, UnitAttributes unitAttr) : base(x, y, flags, visualChar, color, name) { if (uniqueID == 0) this.uniqueID = UniqueIDGenerator(); this.inventory = new Inventory(this.equipment = new Equipment(this)); this.equipment.InventoryConnected = this.inventory; this.unitAttr = unitAttr; this.experience = new Experience(1.0f); }
public static void UnitSpawn(int x = 10, int y = 10) { while (GameEngine.GameField[x, y].Terrain.Flags.HasFlag(Flags.IsCollidable) || GameEngine.GameField[x, y].Unit != null || GameEngine.GameField[x, y].IngameObject != null) { x += mt.Next(2); y += mt.Next(2); } Flags unitFlags = Flags.IsCollidable | Flags.IsMovable; char randChar = (char)mt.Next(97, 123); ConsoleColor randColor = (ConsoleColor)mt.Next(1, 16); string name = "_" + (char)mt.Next(65, 91) + (char)mt.Next(65, 91) + (char)mt.Next(65, 91); UnitAttributes uAttr = new UnitAttributes(18); Unit testUnit = new Unit(x, y, unitFlags, randChar, randColor, name, uAttr); GameEngine.AddUnit(testUnit); }
public Unit(int x, int y, Flags flags, char visualChar, ConsoleColor color, string name, int ID, UnitAttributes unitAttr) : this(x, y, flags, visualChar, color, name, unitAttr) { this.uniqueID = ID; }
public static List<Unit> LoadUnitsXML(string file = UNITS_FILE) { List<Unit> unitList = new List<Unit>(); XDocument unitsXML = XDocument.Load(UNITS_FILE); var units = unitsXML.Element("units").Elements(); foreach (var unit in units) { //unit info int x = int.Parse(unit.Attribute("x").Value); int y = int.Parse(unit.Attribute("y").Value); int z = int.Parse(unit.Attribute("z").Value); int flags = int.Parse(unit.Attribute("flags").Value); char visualChar = char.Parse(unit.Attribute("char").Value); ConsoleColor color = unit.Attribute("color").Value.ToColor(); string name = unit.Attribute("name").Value; int id = int.Parse(unit.Attribute("id").Value); int age = int.Parse(unit.Attribute("age").Value); //attributes info XElement unitAttr = unit.Element("attributes"); int str = int.Parse(unitAttr.Attribute("str").Value); int dex = int.Parse(unitAttr.Attribute("dex").Value); int con = int.Parse(unitAttr.Attribute("con").Value); int wis = int.Parse(unitAttr.Attribute("wis").Value); int spi = int.Parse(unitAttr.Attribute("spi").Value); int luck = int.Parse(unitAttr.Attribute("luck").Value); Unit currentUnit; UnitAttributes unitAttributes = new UnitAttributes(age, str, dex, con, wis, spi, luck); unitList.Add(currentUnit = new Unit(x, y, (Flags)flags, visualChar, color, name, id, unitAttributes)); //load equipment XElement equipment = unit.Element("equipment"); var equipmentItems = equipment.Elements("item_id"); foreach (var itemID in equipmentItems) { Item equippedItem = new Item(Database.ItemDatabase[int.Parse(itemID.Value)]); currentUnit.Equipment.EquipItem(equippedItem); } //load inventory XElement inventory = unit.Element("inventory"); var inventoryItems = inventory.Elements("item_id"); foreach (var itemID in inventoryItems) { Item storedItem = new Item(Database.ItemDatabase[int.Parse(itemID.Value)]); currentUnit.Inventory.StoreItem(storedItem); } } return unitList; }