Allow defining random-teleport exclusion zones in lua

Adds a new lua command

  des.exclusion({ type = "teleport", region = { x1,y1, x2,y2 } });

which allows defining "exclusion zones" in the level, areas where
random teleports (or falling into the level) will never place the hero.
Does not prevent targeted teleportation into the area.

Breaks saves and bones.
This commit is contained in:
Pasi Kallinen
2023-08-24 17:42:06 +03:00
parent 0794a64b9d
commit e407af4477
15 changed files with 143 additions and 3 deletions

View File

@@ -1228,6 +1228,7 @@ when a werecreature in human form attacked hero, it could transform to critter
status highlighting for hit points didn't work as intended for up or down HP
changes; 'up' rule was used for both, 'down' rule was ignored
unhide an unseen water monster using a polymorph trap on land
allow defining random-teleport exclusion zones in lua
Fixes to 3.7.0-x General Problems Exposed Via git Repository

View File

@@ -528,6 +528,18 @@ Example:
des.engraving({x,y}, "engrave", "Foo");
=== exclusion
Exclude an area of the map from being randomly chosen target when
falling or teleporting into the level. Multiple exclusions per level are allowed.
* type is one of "teleport", "teleport-up", or "teleport-down".
Example:
des.exclusion({ type = "teleport", region = { 0,0, 10,5 } });
=== feature
Create a feature, and set flags for it.