public static int FindAnyNearbyDoorWithExactHomeLocationOf(Location locHome) { int serial = 0; LocationDelta[] RelativeLocationsToCheck = new LocationDelta[] { new LocationDelta(0, 0, 0), new LocationDelta(1, 1, 0), new LocationDelta(-1, -1, 0), new LocationDelta(-1, 1, 0), new LocationDelta(1, -1, 0) }; foreach (LocationDelta offset in RelativeLocationsToCheck) { serial = FindAnyDoorAtLocation(locHome + offset); if (serial != 0 && GetCreationLocationOfItem(serial).Equals(locHome)) { return(serial); } else { serial = 0; } } return(serial); }
static void CreateDungeonEntrance(DungeonEntranceDefinition definition) { LocationDelta offsetStep = definition.Facing == Facing.EastWest ? new LocationDelta(0, 1, 0) : new LocationDelta(1, 0, 0); Location EntrancePoint = definition.EntranceFirstPoint; Location ExitPoint = definition.ExitFirstPoint; for (int i = 0; i < definition.Width; i++) { Teleporters.TeleporterGeneric entrance = new Teleporters.TeleporterGeneric(EntrancePoint, "teleporter", ExitPoint); Teleporters.TeleporterGeneric exit = new Teleporters.TeleporterGeneric(ExitPoint, "teleporter", EntrancePoint); entrance.Create(); exit.Create(); EntrancePoint += offsetStep; ExitPoint += offsetStep; } }