static void Main(string[] args) { var dat = new DungeonParser(); dat.Parse(); a(dat.Data.Maps[1], dat.Data); using (var w = new StreamWriter("output.txt")) { //var stairTiles = (from i in dat.Data.Maps.SelectMany(x => x.Tiles) where i.GetType() == typeof(StairsTile) select i).SelectMany(x => x.GetItems(dat.Data)); //var q = from j in stairTiles // where j.GetType() == typeof(Actuator) //&& (j as Actuator).AcutorType == 5/*stair actuator*/ // select new { Action = ((Actuator)j).Action, Position = ((Actuator)j).ActionType.ToString() }; //foreach (var k in from i in dat.Data.ObjectIDs // where i.Category == ObjectCategory.Actuators && ((Actuator)i.GetObject(dat.Data)).AcutorType == 5 // select ((RmtTrg)((Actuator)i.GetObject(dat.Data)).ActionType).Position.ToString() + " " + // dat.Data.Actuators.IndexOf((Actuator)i.GetObject(dat.Data))) // w.WriteLine(k); //var stairAcutorsIDs = (from i in new int[] { 55, 166, 402, 166, 127 } // select ((((0 ^ (int)TilePosition.North_TopLeft) << 4) ^ (int)ObjectCategory.Actuators) << 10) ^ i).ToArray(); WriteActuators(w, dat); WriteStairTiles(w, dat); WriteMapsTiles(w, dat); } }
public LegacyMapBuilder() { var parser = new DungeonParser(); parser.Parse(); Data = parser.Data; ItemCreator = new LegacyItemCreator(this); WeaponFactories = Data.WeaponDescriptors .Select(wd => { var itemDescriptor = Data.GetItemDescriptor(ObjectCategory.Weapon, wd.Identifer); return new WeaponItemFactory(wd.Name, wd.Weight, GetAttackFactories(itemDescriptor), ItemCreator.GetStorageTypes(itemDescriptor.CarryLocation), wd.DeltaEnergy, (WeaponClass)wd.Class, wd.KineticEnergy, wd.ShootDamage, wd.Strength); }) .ToArray(); ClothFactories = Data.ArmorDescriptors .Select(wd => { var itemDescriptor = Data.GetItemDescriptor(ObjectCategory.Clothe, wd.Identifer); return new ClothItemFactory(wd.Name, wd.Weight, GetAttackFactories(itemDescriptor) , ItemCreator.GetStorageTypes(itemDescriptor.CarryLocation)); }) .ToArray(); ; ContainerFactories = Data.ContainerDescriptors .Select(wd => { var itemDescriptor = Data.GetItemDescriptor(ObjectCategory.Container, wd.Identifer); return new ContainerItemFactory(wd.Name, wd.Weight, GetAttackFactories(itemDescriptor) , ItemCreator.GetStorageTypes(itemDescriptor.CarryLocation)); }) .ToArray(); ScrollFactories = Data.ScrollDescriptors .Select(wd => { var itemDescriptor = Data.GetItemDescriptor(ObjectCategory.Scroll, wd.Identifer); return new ScrollItemFactory(wd.Name, wd.Weight, GetAttackFactories(itemDescriptor) , ItemCreator.GetStorageTypes(itemDescriptor.CarryLocation)); }) .ToArray(); MiscFactories = Data.MiscDescriptors .Select(wd => { var itemDescriptor = Data.GetItemDescriptor(ObjectCategory.Miscellenaous, wd.Identifer); return new MiscItemFactory(wd.Name, wd.Weight, GetAttackFactories(itemDescriptor) , ItemCreator.GetStorageTypes(itemDescriptor.CarryLocation)); }) .ToArray(); PotionFactories = Data.PotionDescriptors .Select(p => { var itemDescriptor = Data.GetItemDescriptor(ObjectCategory.Potion, p.Identifer); return new PotionItemFactory(p.Name, p.Weight, GetAttackFactories(itemDescriptor) , ItemCreator.GetStorageTypes(itemDescriptor.CarryLocation)); }) .ToArray(); }