示例#1
0
        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);
        }
示例#2
0
        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;
            }
        }