public override void OnAfterDelete() { try{ ForSaleSign.ClearHouse(); Doors.Clear(); base.OnAfterDelete(); }catch { Errors.Report(String.Format("TownHouse-> OnAfterDelete()-> {0}", Owner)); } }
private async void FetchDoorsAsync() { var doors = await Task.Run(() => DoorManagementServiceAccess.FetchDoorsAsync()); var doorsBOList = doors.Select(d => new DoorBusinessObject(d.Id, d.Name, d.LockStatus == 1 ? LockStatus.Locked : LockStatus.UnLocked, d.OpenStatus == 1 ? OpenStatus.Opened : OpenStatus.Closed)) .ToList(); Doors.Clear(); foreach (var door in doorsBOList) { Doors.Add(door); } }
public override void OnDelete() { foreach (Item item in Sign.GetItemsInRange(0)) { if (item != Sign) { item.Visible = true; } } c_Sign.ClearHouse(); Doors.Clear(); s_TownHouses.Remove(this); base.OnDelete(); }
private void HandleMapComplementaryInformationsDataMessage(IAccount account, MapComplementaryInformationsDataMessage message) { lock (CheckLock) { SubAreaId = message.SubAreaId; Data = MapsManager.FromId(message.MapId); var subArea = ObjectDataManager.Instance.Get <SubArea>(SubAreaId); var mapName = FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get <Area>(subArea.AreaId).NameId); var subAreaName = FastD2IReader.Instance.GetText(subArea.NameId); Position = $"[{X}, {Y}]"; Zone = $"{mapName} ({subAreaName})"; Entities.Clear(); Monsters.Clear(); Npcs.Clear(); Players.Clear(); Resources.Clear(); AddActors(message.Actors); StatedElements.Clear(); //Populate the StateElements with new ones received. //StatesElements are the elements which our current bot in theory can harvest. foreach (var statedElement in message.StatedElements) { if (!StatedElements.ContainsKey(statedElement.ElementId)) { StatedElements.Add(statedElement.ElementId, new StatedElement(statedElement.ElementCellId, (uint)statedElement.ElementId, statedElement.ElementState)); } } InteractiveElements.Clear(); Doors.Clear(); //populate the interactiveElements which are essencially items that we can interact with. Their location is hardcoded into the map.layer foreach (var interactiveElement in message.InteractiveElements) { if (!InteractiveElements.ContainsKey(interactiveElement.ElementId)) { InteractiveElements.Add(interactiveElement.ElementId, new InteractiveElement((uint)interactiveElement.ElementId, interactiveElement.ElementTypeId, interactiveElement.EnabledSkills, interactiveElement.DisabledSkills)); } } } UpdateMapControl(); OnMapChanged(); }
public void Close() { if (!ProjectLoaded) { return; } Rooms.Clear(); DoorSets.Clear(); Doors.Clear(); ScrollSets.Clear(); PlmSets.Clear(); ScrollPlmDatas.Clear(); Backgrounds.Clear(); Fxs.Clear(); SaveStations.Clear(); LevelDatas.Clear(); EnemySets.Clear(); EnemyGfxs.Clear(); ScrollAsms.Clear(); DoorAsms.Clear(); SetupAsms.Clear(); MainAsms.Clear(); TileSets.Clear(); TileTables.Clear(); TileSheets.Clear(); Palettes.Clear(); AreaMaps.Clear(); PlmTypes.Clear(); EnemyTypes.Clear(); CurrentRom = null; ProjectPath = String.Empty; RomFileName = String.Empty; ProjectFileName = String.Empty; RoomTiles.Clear(); MapTiles.Clear(); BackgroundImage = null; ChangesMade = false; ProjectLoaded = false; ProjectClosed?.Invoke(this, null); }
public override void OnDelete() { if (c_Hanger != null) { c_Hanger.Delete(); } foreach (Item item in Sign.GetItemsInRange(0).OfType <Item>().Where(item => item != null && item != Sign)) { item.Visible = true; } ForSaleSign.ClearHouse(); Doors.Clear(); s_TownHouses.Remove(this); base.OnDelete(); }
public override void OnDelete() { if (_Hanger != null) { _Hanger.Delete(); } foreach (var item in Sign.GetItemsInRange(0).Where(item => item != Sign)) { item.Visible = true; } ForSaleSign.ClearHouse(); Doors.Clear(); AllTownHouses.Remove(this); base.OnDelete(); }
// Read all doors from ROM. private void ReadDoors(Rom rom) { List <int> addressesPC = new List <int> (); foreach (DoorSet d in DoorSets) { for (int i = 0; i < d.DoorCount; i++) { int ad_PC = Tools.LRtoPC(d.DoorPtrs [i]); addressesPC.Add(ad_PC); } } Tools.RemoveDuplicates(addressesPC); Doors.Clear(); for (int n = 0; n < addressesPC.Count; n++) { Doors.Add(new Door()); Doors [n].ReadFromROM(rom, addressesPC [n]); } }
public override void LoadFromStream(BinaryReader stream, FileVersion version) { try { fID = (BuildingID)StreamUtils.ReadInt(stream); Area = StreamUtils.ReadRect(stream); Doors.Clear(); sbyte count = (sbyte)StreamUtils.ReadByte(stream); for (int i = 0; i < count; i++) { int dx = StreamUtils.ReadInt(stream); int dy = StreamUtils.ReadInt(stream); int dir = StreamUtils.ReadByte(stream); DoorState st = (DoorState)StreamUtils.ReadByte(stream); AddDoor(dx, dy, dir, st); } int idx = StreamUtils.ReadInt(stream); Holder = ((idx == -1) ? null : (CreatureEntity)((NWField)Owner).Creatures.GetItem(idx)); } catch (Exception ex) { Logger.Write("Building.loadFromStream(): " + ex.Message); throw ex; } }
private void HandleMapComplementaryInformationsDataMessage(IAccount account, MapComplementaryInformationsDataMessage message) { lock (CheckLock) { SubAreaId = message.SubAreaId; Data = MapsManager.FromId(message.MapId); var subArea = ObjectDataManager.Instance.Get <SubArea>(SubAreaId); var mapName = FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get <Area>(subArea.AreaId).NameId); var subAreaName = FastD2IReader.Instance.GetText(subArea.NameId); Position = $"[{X}, {Y}]"; Zone = $"{mapName} ({subAreaName})"; Entities.Clear(); Monsters.Clear(); Npcs.Clear(); Players.Clear(); AddActors(message.Actors); StatedElements.Clear(); foreach (var statedElementDofus in message.StatedElements) { if (!StatedElements.ContainsKey(statedElementDofus.ElementId) && statedElementDofus.OnCurrentMap) { StatedElements.Add(statedElementDofus.ElementId, new StatedElement(statedElementDofus.ElementCellId, (uint)statedElementDofus.ElementId, statedElementDofus.ElementState)); } } InteractiveElements.Clear(); Doors.Clear(); foreach (var element in message.InteractiveElements) { if (!element.OnCurrentMap) { continue; } InteractiveElements.Add(element.ElementId, new InteractiveElement((uint)element.ElementId, element.ElementTypeId, element.EnabledSkills.ToList(), element.DisabledSkills.ToList())); var interactiveElement = element; var listDoorSkillId = new List <int>(new[] { 184, 183, 187, 198, 114 }); var listDoorTypeId = new List <int>(new[] { -1, 128, 168, 16 }); if (!listDoorTypeId.Contains(interactiveElement.ElementTypeId) || interactiveElement.EnabledSkills.Count <= 0 || !listDoorSkillId.Contains((int)interactiveElement.EnabledSkills[0].SkillId)) { continue; } foreach (var layer in ((API.Gamedata.D2p.Map)Data).Layers) { foreach (var cell in layer.Cells) { foreach (var layerElement in cell.Elements) { if (layerElement is GraphicalElement graphicalElement) { if (graphicalElement.Identifier == interactiveElement.ElementId && !Doors.ContainsKey(cell.CellId)) { Doors.Add(cell.CellId, new InteractiveElement((uint)element.ElementId, element.ElementTypeId, element.EnabledSkills.ToList(), element.DisabledSkills.ToList())); } } } } } } } UpdateMapControl(); OnMapChanged(); }
public void RefreshDoors() { Doors.Clear(); FetchDoorsAsync(); }
public void ResetRooms() { Rooms.Clear(); Doors.Clear(); }
public void LoadRoom(string roomName) { Enemies.Clear(); Blocks.Clear(); Items.Clear(); NPCs.Clear(); Doors.Clear(); Walls.Clear(); HiddenItems.Clear(); Dialogue = ""; CurrentRoom = roomName; //moves Link to the bottom of the map to avoid issues where blocks would spawn on top of him //mygame.player.Position = new Vector2(6 * XSCALE + XOFFSET, 7 * YSCALE + YOFFSET); addWalls(); XElement roomFile = XElement.Load("../../../../Content/Rooms/" + roomName + ".xml"); if (roomFile.Descendants("Background").Count() > 0) { Console.WriteLine(roomFile.Descendants("Background").Count()); if (roomFile.Element("Asset").Element("Background").Value == "RoomBowBackground") { Background = BlockSpriteFactory.Instance.RoomBowBackground; } else if (roomFile.Element("Asset").Element("Background").Value == "BlackWithWallBackground") { Background = BlockSpriteFactory.Instance.BlackWithWallBackground; } } else { Background = floorBaseWithWalls; } IEnumerable <XElement> loadedEnvironmentObjects = from item in roomFile.Descendants("Item") where (string)item.Element("ObjectType") == "Environment" select item; foreach (XElement environmentObject in loadedEnvironmentObjects) { AddEnvironmentObject(environmentObject); } IEnumerable <XElement> loadedEnemies = from item in roomFile.Descendants("Item") where (string)item.Element("ObjectType") == "Enemy" select item; foreach (XElement enemyObject in loadedEnemies) { AddEnemy(enemyObject); Thread.Sleep(20); //used so the random number generator for enemies don't have the same seed. It's time based and without this they have the same seed. } IEnumerable <XElement> loadedItems = from item in roomFile.Descendants("Item") where (string)item.Element("ObjectType") == "Item" select item; foreach (XElement itemObject in loadedItems) { AddItem(itemObject, Items); } IEnumerable <XElement> loadedHiddenItems = from item in roomFile.Descendants("Item") where (string)item.Element("ObjectType") == "HiddenItem" select item; foreach (XElement itemObject in loadedHiddenItems) { AddItem(itemObject, HiddenItems); } IEnumerable <XElement> loadedNPCs = from item in roomFile.Descendants("Item") where (string)item.Element("ObjectType") == "NPC" select item; foreach (XElement NPCObject in loadedNPCs) { AddNPC(NPCObject); } IEnumerable <XElement> loadedDoors = from item in roomFile.Descendants("Door") select item; foreach (XElement DoorObject in loadedDoors) { AddDoor(DoorObject); } }