Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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();
                }
            });
        }