summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-24 19:03:22 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-24 19:03:22 +0000
commit78b76a58e74a787481db68b1fabc7e978d21ca1b (patch)
treee13b86ee950fa20b0a2d82fc7f35c88d8e80d4f7
parent2c5cb84fb0d638b9ec2579076dc8985f44cf8da1 (diff)
downloadcrawl-ref-78b76a58e74a787481db68b1fabc7e978d21ca1b.tar.gz
crawl-ref-78b76a58e74a787481db68b1fabc7e978d21ca1b.zip
Trunk->0.4 r6672: [2021292] Fixed teleport control not being enabled after picking up the icy rune. Updated level_design.txt.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.4@6673 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/docs/level_design.txt41
-rw-r--r--crawl-ref/source/dat/hells.des6
2 files changed, 27 insertions, 20 deletions
diff --git a/crawl-ref/docs/level_design.txt b/crawl-ref/docs/level_design.txt
index 1eb76136b8..a361ca3f98 100644
--- a/crawl-ref/docs/level_design.txt
+++ b/crawl-ref/docs/level_design.txt
@@ -749,7 +749,7 @@ KITEM: ? = potion of healing / potion of restore abilities
KITEM: allows you to place multiple items on the same square:
KITEM: ? = bread ration, potion of water, potion of porridge
-MARKER: A = feat:<feature_name> or timer:
+MARKER: A = feat:<feature_name> or lua:<marker_expr>
A marker ties a square on the map to a game-trigger of some
sort (which depends on the marker and what feature it is on).
@@ -763,23 +763,11 @@ MARKER: A = feat:<feature_name> or timer:
portal to Dis, the arch at G becomes the portal to Gehenna,
etc. This behaviour applies only to the Vestibule of Hell.
- Timer feature markers set a timer on a particular square;
- when time runs out, the feature at that square is changed
- (usually to floor). For instance:
+ Lua markers are used for more complex triggers, such as for
+ bazaar and labyrinth gates, rune pickup triggers for
+ the branches of Hell, fog generators, etc.
- MARKER: A = timer: 500-1000
-
- Sets a timer that's between 500-1000 turns, inclusive, at the
- end of which whatever feature is on A gets converted to floor.
-
- You can specify the final feature with a feat: qualifier:
-
- MARKER: A = timer: 500 feat:deep_water
-
- This sets a timer for exactly 500 turns, and changes the
- feature to deep water at the end of it.
-
- Another type of MARKER sets generators of various clouds, e.g.:
+ Here's a Lua marker that creates a cloud generator:
MARKER: A = lua:fog_machine { \
pow_max = 15, delay_min = 100, delay_max = 150, \
@@ -794,6 +782,25 @@ MARKER: A = feat:<feature_name> or timer:
names in section I (Feature names) at the end of this
document.
+ An important thing to note with markers is that they are
+ also considered map transforms along with SUBST, NSUBST and
+ SHUFFLE. You usually want to place a MARKER line after all
+ SUBST, NSUBST and SHUFFLE lines so that the final position
+ of the marker key is used. For instance, if you want to
+ attach a marker to the rune in a map when you're randomising
+ the position of the rune, this is a mistake:
+
+ MARKER: O = lua:<expr>
+ SHUFFLE: Oa/|c
+
+ because the marker will be placed at O (the rune), then O
+ may be shuffled to a different position. The correct order
+ in this case is:
+
+ SHUFFLE: Oa/|c
+ MARKER: O = lua:<expr>
+
+
E. Conditionalising levels
-----------------------------
diff --git a/crawl-ref/source/dat/hells.des b/crawl-ref/source/dat/hells.des
index 6415bdf360..e177de19df 100644
--- a/crawl-ref/source/dat/hells.des
+++ b/crawl-ref/source/dat/hells.des
@@ -479,12 +479,12 @@ NAME: antaeus_david_1
PLACE: Coc:7
ORIENT: encompass
LFLAGS: no_tele_control
-MARKER: O = lua:item_pickup_change_flags { \
- level_flags="!no_tele_control", item="icy rune of Zot" \
- }
MONS: Antaeus, Ice Fiend, ice dragon / nothing
ITEM: any, any misc, any misc, any misc
SHUFFLE: O1d / e0% / f9* / g8|
+MARKER: O = lua:item_pickup_change_flags { \
+ level_flags="!no_tele_control", item="icy rune of Zot" \
+ }
KMONS: d = ice devil w:5 / Ice Fiend / nothing w:5
KITEM: d = any
SUBST: ' = w .