Attached Files |
grunt_ashenzari_visionary.des [^] (2,439 bytes) 2012-06-23 19:40 [Show Content] [Hide Content]{{
function callback.grunt_ashenzari_visionary_reveal(data,triggerable,triggerer,marker,ev)
if dgn.persist.grunt_ashenzari_visionary_revealed then
return
end
dgn.persist.grunt_ashenzari_visionary_revealed = true
crawl.god_speaks("Ashenzari", "Ashenzari says, \"See what I see, mortal...\"")
for slave in iter.slave_iterator("revealing_wall", 1) do
dgn.terrain_changed(slave.x, slave.y, "clear_stone_wall", false, false, false)
end
crawl.mpr("You have a sudden vision...")
end
}}
NAME: grunt_ashenzari_visionary
DEPTH: D:2-12
TAGS: temple_overflow_ashenzari uniq_altar_ashenzari no_trap_gen no_monster_gen
SUBVAULT: e : grunt_ashenzari_visionary
SUBVAULT: f : grunt_ashenzari_visionary
{{
dgn.persist.grunt_ashenzari_visionary_revealed = false
local vision_marker = TriggerableFunction:new {
func = "callback.grunt_ashenzari_visionary_reveal",
repeated = true}
vision_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
lua_marker(':', vision_marker)
lua_marker('d', props_marker {revealing_wall=1})
}}
KFEAT: d = stone_wall
KFEAT: _ = altar_ashenzari
MAP
ccccc.@.ccccc
ceeed...dfffc
ceeed...dfffc
ceeed...dfffc
ceeed...dfffc
ceeed:::dfffc
ceeed:::dfffc
ceeed:::dfffc
ceeed:_:dfffc
ceeed:::dfffc
ceeed:::dfffc
ceeed:::dfffc
ceeed...dfffc
ceeed...dfffc
ceeed...dfffc
ceeed...dfffc
ccccc.@.ccccc
ENDMAP
NAME: grunt_ashenzari_visionary_trees
TAGS: grunt_ashenzari_visionary no_trap_gen no_monster_gen
MONS: butterfly
FTILE: . = floor_grass_dirt_mix
SUBST: . = ....t1
COLOUR: . = green / brown
MAP
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
ENDMAP
NAME: grunt_ashenzari_visionary_swamp
TAGS: grunt_ashenzari_visionary no_trap_gen no_monster_gen
KFEAT: H = w
MARKER: H = lua:fog_machine { cloud_type = "thin mist", pow_min = 3, \
pow_max = 10, delay = 10, start_clouds = 1, \
size_min = 1, size_max = 3, walk_dist = 2 }
SUBST: w = wwwWWt
MAP
www
www
wHw
www
www
www
www
wHw
www
www
www
www
wHw
www
www
ENDMAP
NAME: grunt_ashenzari_visionary_lava
TAGS: grunt_ashenzari_visionary no_trap_gen no_monster_gen
KFEAT: H = l
MARKER: H = lua:fog_machine { cloud_type = "black smoke", pow_min = 3, \
pow_max = 10, delay = 10, start_clouds = 1, \
size_min = 1, size_max = 3, walk_dist = 2 }
MAP
lll
lll
lHl
lll
lll
lll
lll
lHl
lll
lll
lll
lll
lHl
lll
lll
ENDMAP
grunt_cheibriados_snail_statue.des [^] (600 bytes) 2012-06-23 19:40 [Show Content] [Hide Content]# Why be in such a hurry to get to the altar?
NAME: grunt_cheibriados_snail_statue
DEPTH: D:2-12
TAGS: temple_overflow_cheibriados uniq_altar_cheibriados
TAGS: no_trap_gen no_monster_gen
KMONS: O = statue hd:1 name:snail_statue name_replace name_descriptor \
spells:leda's_liquefaction;leda's_liquefaction;leda's_liquefaction;\
leda's_liquefaction;leda's_liquefaction;leda's_liquefaction
KFEAT: _ = altar_cheibriados
MAP
ccccccccccc
c.........c
c...._....c
cc.O...O.cc
xccc...cccx
xxxx...xxxx
xxxx...xxxx
xxxx...xxxx
xxxx...xxxx
xxxx...xxxx
xxxx...xxxx
xxxx.@.xxxx
ENDMAP
crawl-snail-statue-description.patch [^] (656 bytes) 2012-06-23 19:40 [Show Content] [Hide Content]diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt
index 72a4d64..70f5a19 100644
--- a/crawl-ref/source/dat/descript/monsters.txt
+++ b/crawl-ref/source/dat/descript/monsters.txt
@@ -3057,6 +3057,11 @@ Since when is having flesh a requirement to be a master archer? These skeletal
fellows can turn you into a bloody hedgehog with ease. Meatlings like you are
only good for a supply of sinew for bowstrings anyway.
%%%%
+snail statue
+
+This idol to the god Cheibriados has the odd property of turning the ground in
+its presence into difficult-to-slog-through mud.
+%%%%
soapberry tree
<apple tree>
grunt_nemelex_the_gamble.des [^] (5,553 bytes) 2012-06-23 19:41 [Show Content] [Hide Content]{{
function callback.grunt_nemelex_gamble_announce(data,triggerable,triggerer,marker,ev)
if not dgn.persist.grunt_nemelex_gamble_announced then
dgn.persist.grunt_nemelex_gamble_announced = true
crawl.god_speaks("Nemelex Xobeh", "Nemelex Xobeh says, \"Care for a little wager, mortal?\"")
crawl.god_speaks("Nemelex Xobeh", "\"Beware! This is a limited time offer!\"")
end
end
function callback.grunt_nemelex_gamble_start(data,triggerable,triggerer,marker,ev)
if dgn.persist.grunt_nemelex_gamble_triggered then
return
end
dgn.persist.grunt_nemelex_gamble_triggered = true
slave = dgn.find_marker_positions_by_prop("start_tele", 1)
dgn.terrain_changed(slave[1].x, slave[1].y, "floor", false, false, false)
if crawl.coinflip() then
slave = dgn.find_marker_positions_by_prop("prize", 1)
you.teleport_to(slave[1].x, slave[1].y)
else
slave = dgn.find_marker_positions_by_prop("peril", 1)
you.teleport_to(slave[1].x, slave[1].y)
end
crawl.mpr("Your surroundings suddenly seem different.");
end
function callback.grunt_nemelex_gamble_finish1(data,triggerable,triggerer,marker,ev)
slave = dgn.find_marker_positions_by_prop("exit", 1)
you.teleport_to(slave[1].x, slave[1].y)
crawl.mpr("Your surroundings suddenly seem different.");
end
function callback.grunt_nemelex_gamble_finish2(data,triggerable,triggerer,marker,ev)
if not dgn.persist.grunt_nemelex_gamble_peril_defeated then
return
end
slave = dgn.find_marker_positions_by_prop("exit", 1)
you.teleport_to(slave[1].x, slave[1].y)
crawl.mpr("Your surroundings suddenly seem different.");
end
function callback.grunt_nemelex_gamble_peril_defeated(data,triggerable,triggerer,marker,ev)
dgn.persist.grunt_nemelex_gamble_peril_defeated = true
slave = dgn.find_marker_positions_by_prop("peril_portal", 1)
dgn.terrain_changed(slave[1].x, slave[1].y, "teleporter", false, false, false)
dgn.colour_at(slave[1].x, slave[1].y, "lightmagenta")
crawl.mpr("A teleporter suddenly appears!");
end
function callback.grunt_nemelex_gamble_expire(data,triggerable,triggerer,marker,ev)
if dgn.persist.grunt_nemelex_gamble_triggered then
return
end
if not dgn.persist.grunt_nemelex_gamble_announced then
return
end
data.dur = data.dur - ev:ticks()
if data.dur > 0 then
return
end
dgn.persist.grunt_nemelex_gamble_triggered = true
slave = dgn.find_marker_positions_by_prop("start_tele", 1)
dgn.terrain_changed(slave[1].x, slave[1].y, "floor", false, false, false)
if (you.see_cell(slave[1].x, slave[1].y)) then
crawl.mpr("<white>The teleporter glows with a rainbow of weird colours and disappears.</white>");
end
end
}}
NAME: grunt_nemelex_the_gamble
TAGS: temple_overflow_nemelex_xobeh uniq_altar_nemelex_xobeh no_trap_gen no_monster_gen
DEPTH: D:2-12
KFEAT: _ = altar_nemelex_xobeh
MARKER: 9 = lua:MonPropsMarker:new {peril_mon="peril_mon"}
{{
dgn.persist.grunt_nemelex_gamble_announced = false
dgn.persist.grunt_nemelex_gamble_triggered = false
dgn.persist.grunt_nemelex_gamble_peril_defeated = false
local announce_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_announce",
repeated = true
}
announce_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local start_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_start",
repeated = true
}
start_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local finish_prize_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_finish1",
repeated = true
}
finish_prize_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local finish_peril_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_finish2",
repeated = true }
finish_peril_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local peril_defeated_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_peril_defeated",
repeated = false }
peril_defeated_marker:add_triggerer(DgnTriggerer:new {
type="monster_dies",
target="peril_mon" })
local expire_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_expire",
repeated = true,
data={dur=1000}
}
expire_marker:add_triggerer(DgnTriggerer:new {
type="turn"})
lua_marker('d', props_marker{prize=1})
lua_marker('e', props_marker{peril=1})
lua_marker('f', props_marker{exit=1})
lua_marker('f', announce_marker)
lua_marker(':', announce_marker)
lua_marker('g', finish_prize_marker)
lua_marker('h', props_marker{peril_portal=1})
lua_marker('h', finish_peril_marker)
lua_marker('H', props_marker{start_tele=1})
lua_marker('H', expire_marker)
lua_marker('H', start_marker)
lua_marker('_', peril_defeated_marker)
}}
COLOUR: Hg = lightmagenta
KFEAT: Hg = teleporter
KPROP: Ugh'|9de = no_rtele_into
KPROP: Ugh'|9de = no_ctele_into
MARKER: J = lua:fog_machine { cloud_type = "magical condensation", \
pow_min = 10, pow_max = 10, delay = 10, \
size = 1, walk_dist = 0 }
MAP
ccccccccccccccccc
cU'g'UnJHJnU'h'Uc
c'''''n:_:n'''''c
c''|''n:::n''9''c
c'''''n:::n'''''c
cU'd'Un:::nU'e'Uc
cnnnnnn:f:nnnnnnc
+:::::::::::::::+
+:::::::U:::::::+
+:::::::::::::::+
xxxxxxx+++xxxxxxx
ENDMAP
grunt_nemelex_the_gamble_v2.des [^] (6,660 bytes) 2012-06-23 23:13 [Show Content] [Hide Content]{{
function callback.grunt_nemelex_gamble_announce(data,triggerable,triggerer,marker,ev)
if not dgn.persist.grunt_nemelex_gamble_announced then
dgn.persist.grunt_nemelex_gamble_announced = true
crawl.god_speaks("Nemelex Xobeh", "Nemelex Xobeh says, \"Care for a little wager, mortal?\"")
crawl.god_speaks("Nemelex Xobeh", "\"Beware! This is a limited time offer!\"")
end
end
function callback.grunt_nemelex_gamble_start(data,triggerable,triggerer,marker,ev)
if dgn.persist.grunt_nemelex_gamble_triggered then
return
end
dgn.persist.grunt_nemelex_gamble_triggered = true
slave = dgn.find_marker_positions_by_prop("start_tele", 1)
dgn.terrain_changed(slave[1].x, slave[1].y, "floor", false, false, false)
if crawl.coinflip() then
slave = dgn.find_marker_positions_by_prop("prize", 1)
you.teleport_to(slave[1].x, slave[1].y)
else
slave = dgn.find_marker_positions_by_prop("peril", 1)
you.teleport_to(slave[1].x, slave[1].y)
end
crawl.mpr("Your surroundings suddenly seem different.");
end
function callback.grunt_nemelex_gamble_finish1(data,triggerable,triggerer,marker,ev)
slave = dgn.find_marker_positions_by_prop("exit", 1)
you.teleport_to(slave[1].x, slave[1].y)
crawl.mpr("Your surroundings suddenly seem different.");
end
function callback.grunt_nemelex_gamble_finish2(data,triggerable,triggerer,marker,ev)
if not dgn.persist.grunt_nemelex_gamble_peril_defeated then
return
end
slave = dgn.find_marker_positions_by_prop("exit", 1)
you.teleport_to(slave[1].x, slave[1].y)
crawl.mpr("Your surroundings suddenly seem different.");
end
function callback.grunt_nemelex_gamble_peril_defeated(data,triggerable,triggerer,marker,ev)
dgn.persist.grunt_nemelex_gamble_peril_defeated = true
slave = dgn.find_marker_positions_by_prop("peril_portal", 1)
dgn.terrain_changed(slave[1].x, slave[1].y, "teleporter", false, false, false)
dgn.colour_at(slave[1].x, slave[1].y, "lightmagenta")
crawl.mpr("A teleporter suddenly appears!");
end
function callback.grunt_nemelex_gamble_expire(data,triggerable,triggerer,marker,ev)
if dgn.persist.grunt_nemelex_gamble_triggered then
return
end
if not dgn.persist.grunt_nemelex_gamble_announced then
return
end
data.dur = data.dur - ev:ticks()
if data.dur > 0 then
return
end
dgn.persist.grunt_nemelex_gamble_triggered = true
slave = dgn.find_marker_positions_by_prop("start_tele", 1)
dgn.terrain_changed(slave[1].x, slave[1].y, "floor", false, false, false)
if (you.see_cell(slave[1].x, slave[1].y)) then
crawl.mpr("<white>The teleporter glows with a rainbow of weird colours and disappears.</white>");
end
end
}}
NAME: grunt_nemelex_the_gamble
TAGS: temple_overflow_nemelex_xobeh uniq_altar_nemelex_xobeh no_trap_gen no_monster_gen
DEPTH: D:2-12
KFEAT: _ = altar_nemelex_xobeh
MARKER: 9 = lua:MonPropsMarker:new {peril_mon="peril_mon"}
: if you.absdepth() <= 2 then
KMONS: 9 = ogre / centaur / water moccasin / crimson imp
: elseif you.absdepth() == 3 then
KMONS: 9 = giant frog / orc warrior / steam dragon / hippogriff
: elseif you.absdepth() == 4 then
KMONS: 9 = wyvern / manticore / troll / two-headed ogre
: elseif you.absdepth() == 5 then
KMONS: 9 = hill giant / komodo dragon / soldier ant / cyclops
: elseif you.absdepth() == 6 then
KMONS: 9 = skeletal warrior / stone golem / centaur warrior / griffon
: elseif you.absdepth() == 7 then
KMONS: 9 = dragon / iron golem / rock troll / yaktaur
: elseif you.absdepth() == 8 then
KMONS: 9 = orc knight / deep elf knight / naga warrior / fire crab
: elseif you.absdepth() == 9 then
KMONS: 9 = crystal golem / flayed ghost / boulder beetle / orc sorcerer
: elseif you.absdepth() == 10 then
KMONS: 9 = orc warlord / iro troll / yaktaur captain / stone giant
: elseif you.absdepth() == 11 then
KMONS: 9 = ettin / phantasmal warrior / storm dragon / tentacled monstrosity
: else
KMONS: 9 = golden dragon / iron dragon / shadow dragon / quicksilver dragon
: end
{{
dgn.persist.grunt_nemelex_gamble_announced = false
dgn.persist.grunt_nemelex_gamble_triggered = false
dgn.persist.grunt_nemelex_gamble_peril_defeated = false
local announce_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_announce",
repeated = true
}
announce_marker:add_triggerer(DgnTriggerer:new {
type="player_los"})
local start_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_start",
repeated = true
}
start_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local finish_prize_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_finish1",
repeated = true
}
finish_prize_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local finish_peril_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_finish2",
repeated = true }
finish_peril_marker:add_triggerer(DgnTriggerer:new {
type="player_move"})
local peril_defeated_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_peril_defeated",
repeated = false }
peril_defeated_marker:add_triggerer(DgnTriggerer:new {
type="monster_dies",
target="peril_mon" })
local expire_marker = TriggerableFunction:new {
func = "callback.grunt_nemelex_gamble_expire",
repeated = true,
data={dur=1000}
}
expire_marker:add_triggerer(DgnTriggerer:new {
type="turn"})
lua_marker('d', props_marker{prize=1})
lua_marker('e', props_marker{peril=1})
lua_marker('f', props_marker{exit=1})
lua_marker('K', announce_marker)
lua_marker('g', finish_prize_marker)
lua_marker('h', props_marker{peril_portal=1})
lua_marker('h', finish_peril_marker)
lua_marker('H', props_marker{start_tele=1})
lua_marker('H', expire_marker)
lua_marker('H', start_marker)
lua_marker('_', peril_defeated_marker)
}}
COLOUR: Hg = lightmagenta
KFEAT: Hg = teleporter
KFEAT: K = fountain_sparkling
KPROP: UKgh'P9de = no_rtele_into
KPROP: UKgh'P9de = no_ctele_into
KITEM: P = any, any, any, superb_item
MARKER: J = lua:fog_machine { cloud_type = "magical condensation", \
pow_min = 10, pow_max = 10, delay = 10, \
size = 1, walk_dist = 0 }
MAP
ccccccccccccccccc
cU'g'UnJHJnU'h'Uc
c'''''n._.n'''''c
c''P''n...n''9''c
c'''''n...n'''''c
cU'd'Un...nU'e'Uc
cnnnnnn.f.nnnnnnc
+...............+
+.......K.......+
+...............+
xxxxxxx+++xxxxxxx
ENDMAP
|