Example #1
0
 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);
 }
Example #2
0
 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);
 }
Example #3
0
 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;
        }