public override void ToggleDoors(bool secure) { Doors.RemoveAll(door => door == null || door.Deleted || door.Map != Map); Doors.Where(d => (d.Open && CanCloseDoor(d)) || (!d.Open && CanOpenDoor(d))).ForEach( door => { door.Open = false; door.Locked = secure; }); }
private void CleanDoorList() { var toDelete = new List <DungeonTile>(); foreach (var door in Doors) { if (door.Texture == Textures.ROOM_EDGE) { toDelete.Add(door); } } Doors.RemoveAll(i => toDelete.Contains(i)); }
public virtual void CloseDoors(bool secure) { Doors.RemoveAll(door => door == null || door.Deleted || door.Map != Map); Doors.Where(d => d.Open && CanCloseDoor(d)).ForEach( door => { door.Open = false; door.Locked = secure; if (_DoorTimerField == null) { return; } var t = _DoorTimerField.GetValue(door) as Timer; if (t != null) { t.Stop(); } }); }