summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2014-05-10 19:27:10 -0600
committerSteve Melenchuk <smelenchuk@gmail.com>2014-05-10 21:38:07 -0600
commitd54608118996fe6861b0eaf66f1d4f0ca039359f (patch)
treea0ecacc9360879f820d73cf5af5d8c7791d04df7
parent031a9a43fa11401b1d938bf9fa0d47109a02750f (diff)
downloadcrawl-ref-d54608118996fe6861b0eaf66f1d4f0ca039359f.tar.gz
crawl-ref-d54608118996fe6861b0eaf66f1d4f0ca039359f.zip
Revert "Remove silver statues."
Don't worry; the whole point of this set of commits is to fix the problems with them and their companion statues. This partially reverts commit b4c3b502143418fb4fdb3faaa29a2ef6e9eabce5. This reverts commit e1156a91a6a0b1bb26c7e7ee63710c3eefbd2739.
-rw-r--r--crawl-ref/source/ability.cc9
-rw-r--r--crawl-ref/source/dat/database/monspeak.txt9
-rw-r--r--crawl-ref/source/dat/des/altar/altar.des2
-rw-r--r--crawl-ref/source/dat/des/branches/abyss.des4
-rw-r--r--crawl-ref/source/dat/des/branches/crypt.des2
-rw-r--r--crawl-ref/source/dat/des/branches/elf.des2
-rw-r--r--crawl-ref/source/dat/des/branches/hell.des47
-rw-r--r--crawl-ref/source/dat/des/branches/shoals.des2
-rw-r--r--crawl-ref/source/dat/des/branches/tomb.des8
-rw-r--r--crawl-ref/source/dat/des/branches/vaults_rooms_hard.des2
-rw-r--r--crawl-ref/source/dat/des/branches/zot.des4
-rw-r--r--crawl-ref/source/dat/des/portals/bazaar.des2
-rw-r--r--crawl-ref/source/dat/des/portals/wizlab.des2
-rw-r--r--crawl-ref/source/dat/des/portals/ziggurat.des2
-rw-r--r--crawl-ref/source/dat/des/sprint/menkaure.des22
-rw-r--r--crawl-ref/source/dat/des/sprint/sprint_mu.des5
-rw-r--r--crawl-ref/source/dat/des/variable/float.des8
-rw-r--r--crawl-ref/source/dat/des/variable/large_abstract.des2
-rw-r--r--crawl-ref/source/dat/des/variable/mini_features.des2
-rw-r--r--crawl-ref/source/dat/des/variable/mini_monsters.des34
-rw-r--r--crawl-ref/source/dat/descript/ability.txt5
-rw-r--r--crawl-ref/source/dat/descript/da/ability.txt4
-rw-r--r--crawl-ref/source/dat/descript/de/ability.txt5
-rw-r--r--crawl-ref/source/dat/descript/el/ability.txt4
-rw-r--r--crawl-ref/source/dat/descript/es/ability.txt5
-rw-r--r--crawl-ref/source/dat/descript/fr/ability.txt5
-rw-r--r--crawl-ref/source/dat/descript/ja/ability.txt4
-rw-r--r--crawl-ref/source/dat/descript/ko/ability.txt4
-rw-r--r--crawl-ref/source/dat/descript/monsters.txt6
-rw-r--r--crawl-ref/source/dat/descript/ru/ability.txt5
-rw-r--r--crawl-ref/source/dat/descript/zh/ability.txt4
-rw-r--r--crawl-ref/source/enum.h4
-rw-r--r--crawl-ref/source/mon-abil.cc38
-rw-r--r--crawl-ref/source/mon-data.h13
-rw-r--r--crawl-ref/source/mon-util.cc6
-rw-r--r--crawl-ref/source/monster.cc3
-rw-r--r--crawl-ref/source/player.cc2
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt1
-rw-r--r--crawl-ref/source/rltiles/dc-zotdef.txt1
-rw-r--r--crawl-ref/source/rltiles/mon/statues/silver_statue.png (renamed from crawl-ref/source/rltiles/UNUSED/monsters/silver_statue.png)bin407 -> 407 bytes
-rw-r--r--crawl-ref/source/spl-damage.cc9
-rw-r--r--crawl-ref/source/tilepick.cc4
42 files changed, 246 insertions, 56 deletions
diff --git a/crawl-ref/source/ability.cc b/crawl-ref/source/ability.cc
index df49f33a4b..7e98ed7065 100644
--- a/crawl-ref/source/ability.cc
+++ b/crawl-ref/source/ability.cc
@@ -440,6 +440,7 @@ static const ability_def Ability_List[] =
{ ABIL_MAKE_OKLOB_PLANT, "Make oklob plant", 0, 0, 0, 0, 250, ABFLAG_ZOTDEF},
{ ABIL_MAKE_ICE_STATUE, "Make ice statue", 0, 0, 0, 0, 2000, ABFLAG_ZOTDEF},
{ ABIL_MAKE_OCS, "Make crystal statue", 0, 0, 0, 0, 2000, ABFLAG_ZOTDEF},
+ { ABIL_MAKE_SILVER_STATUE, "Make silver statue", 0, 0, 0, 0, 3000, ABFLAG_ZOTDEF},
{ ABIL_MAKE_CURSE_SKULL, "Make curse skull",
0, 0, 600, 0, 10000, ABFLAG_ZOTDEF|ABFLAG_NECRO_MISCAST_MINOR},
{ ABIL_MAKE_TELEPORT, "Zot-teleport", 0, 0, 0, 0, 2, ABFLAG_ZOTDEF},
@@ -530,6 +531,7 @@ static monster_type _monster_for_ability(const ability_def& abil)
case ABIL_MAKE_LIGHTNING_SPIRE: mtyp = MONS_LIGHTNING_SPIRE; break;
case ABIL_MAKE_ICE_STATUE: mtyp = MONS_ICE_STATUE; break;
case ABIL_MAKE_OCS: mtyp = MONS_ORANGE_STATUE; break;
+ case ABIL_MAKE_SILVER_STATUE: mtyp = MONS_SILVER_STATUE; break;
case ABIL_MAKE_CURSE_SKULL: mtyp = MONS_CURSE_SKULL; break;
default:
mprf("DEBUG: NO RELEVANT MONSTER FOR %d", abil.ability);
@@ -554,6 +556,8 @@ static string _zd_mons_description_for_ability(const ability_def &abil)
return "Water vapor collects and crystallises into an icy humanoid shape.";
case ABIL_MAKE_OCS:
return "Quartz juts from the ground and forms a humanoid shape. You smell citrus.";
+ case ABIL_MAKE_SILVER_STATUE:
+ return "Droplets of mercury fall from the ceiling and turn to silver, congealing into a humanoid shape.";
case ABIL_MAKE_CURSE_SKULL:
return "You sculpt a terrible being from the primitive principle of evil.";
case ABIL_MAKE_LIGHTNING_SPIRE:
@@ -634,6 +638,7 @@ static int _zp_cost(const ability_def& abil)
break;
// Monster type 3: least generous
+ case ABIL_MAKE_SILVER_STATUE:
case ABIL_MAKE_CURSE_SKULL:
scale20 = _count_relevant_monsters(abil); // scale immediately
break;
@@ -962,6 +967,7 @@ talent get_talent(ability_type ability, bool check_confused)
case ABIL_MAKE_DART_TRAP:
case ABIL_MAKE_ICE_STATUE:
case ABIL_MAKE_OCS:
+ case ABIL_MAKE_SILVER_STATUE:
case ABIL_MAKE_CURSE_SKULL:
case ABIL_MAKE_TELEPORT:
case ABIL_MAKE_ARROW_TRAP:
@@ -1925,6 +1931,7 @@ static bool _do_ability(const ability_def& abil)
case ABIL_MAKE_BURNING_BUSH:
case ABIL_MAKE_ICE_STATUE:
case ABIL_MAKE_OCS:
+ case ABIL_MAKE_SILVER_STATUE:
case ABIL_MAKE_CURSE_SKULL:
case ABIL_MAKE_LIGHTNING_SPIRE:
if (!create_zotdef_ally(_monster_for_ability(abil),
@@ -3343,6 +3350,8 @@ vector<talent> your_talents(bool check_confused, bool include_unusable)
_add_talent(talents, ABIL_MAKE_WATER, check_confused);
if (you.experience_level >= 19)
_add_talent(talents, ABIL_MAKE_LIGHTNING_SPIRE, check_confused);
+ if (you.experience_level >= 20)
+ _add_talent(talents, ABIL_MAKE_SILVER_STATUE, check_confused);
// gain bazaar and gold together
if (you.experience_level >= 21)
_add_talent(talents, ABIL_MAKE_BAZAAR, check_confused);
diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt
index 6df78a63df..f8ac408a21 100644
--- a/crawl-ref/source/dat/database/monspeak.txt
+++ b/crawl-ref/source/dat/database/monspeak.txt
@@ -6271,6 +6271,11 @@ default confused giant firefly
@default confused winged insect@
%%%%
+################## Ice statue ##############################
+default ice statue
+
+VISUAL:@The_monster@ glitters chillingly in the dim dungeon light.
+%%%%
################## Hell lords ##############################
hell lord
@@ -6394,9 +6399,9 @@ default orange crystal statue
VISUAL:@The_monster@ glitters topaz in the dim dungeon light.
%%%%
-default ice statue
+default silver statue
-VISUAL:@The_monster@ glitters chillingly in the dim dungeon light.
+VISUAL:@The_monster@ glitters argentine in the dim dungeon light.
%%%%
################## Sheep ###################################
sheep
diff --git a/crawl-ref/source/dat/des/altar/altar.des b/crawl-ref/source/dat/des/altar/altar.des
index 18443c9ee8..0d355970e6 100644
--- a/crawl-ref/source/dat/des/altar/altar.des
+++ b/crawl-ref/source/dat/des/altar/altar.des
@@ -178,7 +178,7 @@ DEPTH: D:2-, Orc, Depths, Vaults, Elf, Crypt, Forest
SUBST: F = G
: end
SUBST: F = G:99 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
: interest_check(_G)
MAP
.........
diff --git a/crawl-ref/source/dat/des/branches/abyss.des b/crawl-ref/source/dat/des/branches/abyss.des
index 744073e5ad..933f84f901 100644
--- a/crawl-ref/source/dat/des/branches/abyss.des
+++ b/crawl-ref/source/dat/des/branches/abyss.des
@@ -1804,11 +1804,11 @@ XxxxxxxxX
XXXxxxXXX
ENDMAP
-# Orange crystal is very rare here...
+# Orange crystal and silver statue are very rare here...
# I want most characters to be able to actually use this exit
NAME: evilmike_abyss_exit_13
TAGS: abyss_exit unrand allow_dup
-KMONS: O = w:1 orange crystal statue / w: 20 ice statue / w: 15 oklob plant
+KMONS: O = w:1 orange crystal statue / w:2 silver statue / w: 20 ice statue / w: 15 oklob plant
: init_abyss_exit(_G, "O")
MAP
O
diff --git a/crawl-ref/source/dat/des/branches/crypt.des b/crawl-ref/source/dat/des/branches/crypt.des
index d8cfcd724b..b236e0208f 100644
--- a/crawl-ref/source/dat/des/branches/crypt.des
+++ b/crawl-ref/source/dat/des/branches/crypt.des
@@ -1339,7 +1339,7 @@ MONS: flying skull / skeletal warrior / w:40 nothing
MONS: ancient champion
KFEAT: ^ = alarm trap
SUBST: F = G:99 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
{{
lua_marker("|",
Triggerable.synchronized_markers(
diff --git a/crawl-ref/source/dat/des/branches/elf.des b/crawl-ref/source/dat/des/branches/elf.des
index 34b03cafb6..2a9c84902d 100644
--- a/crawl-ref/source/dat/des/branches/elf.des
+++ b/crawl-ref/source/dat/des/branches/elf.des
@@ -741,7 +741,7 @@ DEPTH: Elf:2-
MONS: deep elf knight / deep elf priest
MONS: deep elf high priest
SUBST: F = G:6 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
SUBST: ? = .1$%*
MAP
xxxxxxxxxxx
diff --git a/crawl-ref/source/dat/des/branches/hell.des b/crawl-ref/source/dat/des/branches/hell.des
index d319c31f52..583e9e7b34 100644
--- a/crawl-ref/source/dat/des/branches/hell.des
+++ b/crawl-ref/source/dat/des/branches/hell.des
@@ -182,6 +182,53 @@ MAP
.... ........??..
ENDMAP
+##############################################################################
+
+NAME: grunt_hell_entry_demonic_statue
+ORIENT: float
+TAGS: no_monster_gen no_rtele_into
+MONS: blue devil / orange demon / red devil / w:5 iron devil / \
+ w:35 nothing
+MONS: ice devil / sun demon / soul eater / w:30 nothing
+MONS: shadow demon / blizzard demon / hell beast
+ITEM: skeleton
+KFEAT: b = .
+KMONS: A = silver statue
+MARKER: A = lua:fog_machine { cloud_type = "grey smoke", \
+ pow_min = 20, pow_max = 30, delay = 50, \
+ size = 1, walk_dist = 3, start_clouds = 1 }
+KMONS: b = w:100 nothing / w:5 crimson imp / w:2 white imp / w:2 iron imp \
+ / w:1 shadow imp
+KPROP: b = nothing / w:5 bloody
+KITEM: b = nothing / w:1 gold
+MARKER: H = lua:props_marker { stop_explore = "statue" }
+KFEAT: HI = G
+: hell_entry_feature(_G, 'A')
+: hell_entry_tier(_G, "high")
+MAP
+ xxxxxxx
+ xxxbbbbbxxx
+ xxxbbbbbbbbbxxx
+ xbbbbGbbbGbbbbx
+ xxbG1bbbbbbd1Gbxx
+ xdb2bb2bGb2bb2bbx
+xxbbbbGbbbbbGbbbbxx
+xbbGb2bbd3*bb2bGbbx
+xbbbbbb%**d*bbbbdbx
+xbd1bGb%*A*%bGb1bbx
+xb%bbbb%*d*dbbbbbbx
+xbbGbbbd%b*bbbbGbbx
+xxbbbbGbbbbbGdbbbxx
+ xbb1bb2bGd2bb1bbx
+ xxbG1bbbbbbb1Gbxx
+ xbbbbG1b1Gbbbbx
+ xxxbbbbb%bbbxxx
+ xxxbdbbbxxx
+ xxxv===vxxx
+ xxxH...Ixxx
+ xx@@@@@@@xx
+ENDMAP
+
###############################################################################
NAME: lightli_too_deep
diff --git a/crawl-ref/source/dat/des/branches/shoals.des b/crawl-ref/source/dat/des/branches/shoals.des
index 81e90b33b9..f70a1c7437 100644
--- a/crawl-ref/source/dat/des/branches/shoals.des
+++ b/crawl-ref/source/dat/des/branches/shoals.des
@@ -250,7 +250,7 @@ NAME: overgrown_statue
DEPTH: Shoals
WEIGHT: 1
MONS: plant
-MONS: ice statue / orange crystal statue
+MONS: ice statue / orange crystal statue / silver statue
SUBST: . = 1:1 .:30
SUBST: p = 1:2 .
SUBST: P = 1:20 .
diff --git a/crawl-ref/source/dat/des/branches/tomb.des b/crawl-ref/source/dat/des/branches/tomb.des
index 8279be4824..9aaf56ef63 100644
--- a/crawl-ref/source/dat/des/branches/tomb.des
+++ b/crawl-ref/source/dat/des/branches/tomb.des
@@ -315,7 +315,7 @@ MONS: mummy / guardian mummy w:3 / nothing
# the weights reflect the recursive SUBST: to keep them the same as before.
MONS: guardian mummy w:233 / mummy / nothing w:233
MONS: mummy priest / nothing, sphinx / nothing, greater mummy / nothing
-MONS: orange crystal statue / ice statue
+MONS: silver statue / orange crystal statue / ice statue
#
: set_feature_name("granite_statue", "sarcophagus")
MAP
@@ -407,7 +407,7 @@ SUBST: F = G
MONS: mummy / guardian mummy w:3 / nothing
MONS: guardian mummy w:233 / mummy / nothing w:233
MONS: mummy priest / nothing, greater mummy / nothing
-MONS: orange crystal statue / ice statue
+MONS: silver statue / orange crystal statue / ice statue
SUBST: t = ~ .:50
#
: set_feature_name("granite_statue", "sarcophagus")
@@ -441,7 +441,7 @@ MONS: guardian mummy w:200 / mummy w:30 / skeletal warrior / \
ancient champion / nothing w:250
MONS: mummy priest w:20 / unborn / revenant w:5 / lich w:5 / nothing w:30
MONS: greater mummy / ancient lich w:1 / nothing w:11
-MONS: orange crystal statue / ice statue
+MONS: silver statue / orange crystal statue / ice statue
TILE: F = dngn_sarcophagus_pedestal_left
TILE: M = dngn_sarcophagus_pedestal_right
COLOUR: FM = yellow
@@ -479,7 +479,7 @@ MONS: guardian mummy w:200 / mummy w:30 / skeletal warrior / \
ancient champion / nothing w:250
MONS: mummy priest w:20 / unborn / revenant w:5 / lich w:5 / nothing w:30
MONS: greater mummy / ancient lich w:1 / nothing w:11
-MONS: orange crystal statue / ice statue
+MONS: silver statue / orange crystal statue / ice statue
TILE: F = dngn_sarcophagus_pedestal_left
TILE: M = dngn_sarcophagus_pedestal_right
COLOUR: FM = yellow
diff --git a/crawl-ref/source/dat/des/branches/vaults_rooms_hard.des b/crawl-ref/source/dat/des/branches/vaults_rooms_hard.des
index a2c62cebab..751521897f 100644
--- a/crawl-ref/source/dat/des/branches/vaults_rooms_hard.des
+++ b/crawl-ref/source/dat/des/branches/vaults_rooms_hard.des
@@ -843,7 +843,7 @@ ENDMAP
NAME: nicolae_vaults_statue_guard
TAGS: vaults_hard vaults_orient_e
-MONS: ice statue / orange crystal statue
+MONS: silver statue / ice statue / orange crystal statue
KPROP: % = no_rtele_into
SUBST: % = %%%*
MAP
diff --git a/crawl-ref/source/dat/des/branches/zot.des b/crawl-ref/source/dat/des/branches/zot.des
index c67bacd11d..0411f7c460 100644
--- a/crawl-ref/source/dat/des/branches/zot.des
+++ b/crawl-ref/source/dat/des/branches/zot.des
@@ -1036,7 +1036,7 @@ DEPTH: Zot, !Zot:$
ORIENT: float
MONS: w:4 oklob sapling / w:4 oklob plant / w:6 burning bush / \
w:6 lightning spire / nothing
-MONS: ice statue / orange crystal statue / \
+MONS: ice statue / silver statue / orange crystal statue / \
patrolling curse skull / w:5 nothing
SUBST: 3 = 11.
# Not quite the orb, but but close enough
@@ -2324,7 +2324,7 @@ SUBST: F = .
#monsters
MONS: patrolling Orb Guardian, Killer Klown, electric golem, orb of fire
-MONS: ancient lich, orange crystal statue / ice statue
+MONS: ancient lich, orange crystal statue / silver statue / ice statue
SUBST: 8=8., 8=8., 5=5.
SHUFFLE: 234
SUBST: ? = .:8 ?
diff --git a/crawl-ref/source/dat/des/portals/bazaar.des b/crawl-ref/source/dat/des/portals/bazaar.des
index 0d095bed2e..356ae236c4 100644
--- a/crawl-ref/source/dat/des/portals/bazaar.des
+++ b/crawl-ref/source/dat/des/portals/bazaar.des
@@ -201,7 +201,7 @@ ENDMAP
NAME: statue_bzr
KPROP: O = no_rtele_into
SUBST: G = G111
-MONS: orange crystal statue / ice statue
+MONS: orange crystal statue / silver statue / ice statue
: place_bazaar_portal(_G, true)
MAP
@
diff --git a/crawl-ref/source/dat/des/portals/wizlab.des b/crawl-ref/source/dat/des/portals/wizlab.des
index 709ad52d6f..d76ee03337 100644
--- a/crawl-ref/source/dat/des/portals/wizlab.des
+++ b/crawl-ref/source/dat/des/portals/wizlab.des
@@ -1615,7 +1615,7 @@ KMONS: 6 = executioner w:5 / balrug w:5 / cacodemon / shadow demon / hellion w
death drake w:5 / tentacled monstrosity w:20 / draconian shifter w:20 / \
starcursed mass w:30 / apocalypse crab w:20
KMONS: 7 = eldritch tentacle
-KMONS: 8 = statue name:silver n_adj spells:summon_minor_demon;summon_demon
+KMONS: 8 = silver statue
# Translocations items, abyss escape aides, shrouds, and an immeadiate aide.
KITEM: d = scroll of blinking / scroll of teleportation q:2 / \
wand of teleportation w:5 / any scroll w:1
diff --git a/crawl-ref/source/dat/des/portals/ziggurat.des b/crawl-ref/source/dat/des/portals/ziggurat.des
index 59674ebff4..1c225b10b6 100644
--- a/crawl-ref/source/dat/des/portals/ziggurat.des
+++ b/crawl-ref/source/dat/des/portals/ziggurat.des
@@ -325,7 +325,7 @@ ENDMAP
NAME: ziggurat_pillar_centre_monster
TAGS: ziggurat_pillar centered no_dump
-MONS: curse skull / ice statue / orange crystal statue
+MONS: curse skull / ice statue / orange crystal statue / silver statue
MAP
1
ENDMAP
diff --git a/crawl-ref/source/dat/des/sprint/menkaure.des b/crawl-ref/source/dat/des/sprint/menkaure.des
index 30c0386209..5b906d5cb1 100644
--- a/crawl-ref/source/dat/des/sprint/menkaure.des
+++ b/crawl-ref/source/dat/des/sprint/menkaure.des
@@ -318,6 +318,22 @@ ENDMAP
NAME: sprint2_obstacle_3
TAGS: sprint2_obstacle no_item_gen no_trap_gen no_monster_gen no_pool_fixup
+KMONS: a = silver statue
+SHUFFLE: l.
+MARKER: a = lua:fog_machine { \
+ pow_min = 2, pow_max = 4, delay = 3, \
+ size = 4, walk_dist = 8, spread_rate= -1, \
+ cloud_type= "poison gas" }
+MAP
+ lllllll
+ lllllllll
+lllllalllll
+ lllllllll
+ lllllll
+ENDMAP
+
+NAME: sprint2_obstacle_4
+TAGS: sprint2_obstacle no_item_gen no_trap_gen no_monster_gen no_pool_fixup
KMONS: a = orange crystal statue
MARKER: a = lua:fog_machine { \
pow_min = 2, pow_max = 4, delay = 3, \
@@ -331,7 +347,7 @@ lllllalllll
lllllll
ENDMAP
-NAME: sprint2_obstacle_4
+NAME: sprint2_obstacle_5
TAGS: sprint2_obstacle no_item_gen no_trap_gen no_monster_gen no_pool_fixup
NSUBST: l = 4:D / *:l
KMONS: D = lava snake
@@ -348,7 +364,7 @@ lllllalllll
lllllll
ENDMAP
-NAME: sprint2_obstacle_5
+NAME: sprint2_obstacle_6
TAGS: sprint2_obstacle no_item_gen no_trap_gen no_monster_gen no_pool_fixup
KMONS: a = Roxanne
SUBST: l = .
@@ -364,7 +380,7 @@ lllllalllll
lllllll
ENDMAP
-NAME: sprint2_obstacle_6
+NAME: sprint2_obstacle_7
TAGS: sprint2_obstacle no_item_gen no_trap_gen no_monster_gen no_pool_fixup
NSUBST: l = 8:1 / *:w
KMONS: a = electric eel
diff --git a/crawl-ref/source/dat/des/sprint/sprint_mu.des b/crawl-ref/source/dat/des/sprint/sprint_mu.des
index 278ca5bf07..5fd7029ba6 100644
--- a/crawl-ref/source/dat/des/sprint/sprint_mu.des
+++ b/crawl-ref/source/dat/des/sprint/sprint_mu.des
@@ -797,7 +797,7 @@ TAGS: sprint_mu_d2 no_rotate no_hmirror no_vmirror
MONS: yaktaur / yaktaur captain, giant eyeball, orc priest / \
orc high priest hd:5 hp:70
MONS: spriggan defender hd:5 hp:55 ; dagger
-MONS: orange crystal statue
+MONS: silver statue / orange crystal statue
MONS: crystal guardian hd:10 hp:45, skeletal warrior
KMONS: 2 = giant eyeball
KITEM: 2 = q:10 scroll of identify ident:all
@@ -915,6 +915,7 @@ MONS: vault guard ; short sword ego:electrocution | long sword ego:flaming |\
MONS: stone giant / shadow dragon / quicksilver dragon / golden dragon /\
titan / fire giant / frost giant
MONS: skeletal warrior
+KMONS: 8 = silver statue
KMONS: f = butterfly
KMONS: U = Norris ; morningstar ego:vorpal . large shield ego:reflection / \
Frederick ; trident ego:freezing . large shield ego:reflection
@@ -966,7 +967,7 @@ vvvvvvvvvvvvvvvvvvv
v|*%..655fff+.WwWWv
v|*$..655fffvWWWWWv
v|*$..655fffv.wwwwv
-v|*$.7655fffv.Wwwwv
+v|*$.7655fffv.Www8v
v|*$.7655fffvWwwwWv
v|*$..655fffv.W...v
v|*$..655fffv.....v
diff --git a/crawl-ref/source/dat/des/variable/float.des b/crawl-ref/source/dat/des/variable/float.des
index 02d17c35ae..4de7a1fb85 100644
--- a/crawl-ref/source/dat/des/variable/float.des
+++ b/crawl-ref/source/dat/des/variable/float.des
@@ -1223,7 +1223,7 @@ MONS: zombie
MONS: mummy / nothing
SHUFFLE: 2F, cbv
SUBST: F = G:99 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxx3$$xxxxxxxxxxxxx
@@ -3199,8 +3199,8 @@ ENDMAP
NAME: minmay_separated_statues
DEPTH: D:8-
ORIENT: float
-MONS: orange crystal statue, ice statue
-SHUFFLE: 12
+MONS: silver statue, orange crystal statue, ice statue
+SHUFFLE: 123
MAP
......
......xx
@@ -3220,7 +3220,7 @@ ENDMAP
NAME: minmay_statue_hallways
DEPTH: D:8-
ORIENT: float
-MONS: orange crystal statue / ice statue
+MONS: orange crystal statue / silver statue / ice statue
MAP
xxx
x1x
diff --git a/crawl-ref/source/dat/des/variable/large_abstract.des b/crawl-ref/source/dat/des/variable/large_abstract.des
index b08540e84b..1d4829829c 100644
--- a/crawl-ref/source/dat/des/variable/large_abstract.des
+++ b/crawl-ref/source/dat/des/variable/large_abstract.des
@@ -89,7 +89,7 @@ NAME: vault_1
ORIENT: north
DEPTH: Depths, !Depths:$
MONS: shapeshifter, shapeshifter, glowing shapeshifter
-MONS: orange crystal statue, nothing
+MONS: silver statue, nothing
SUBST: E=E.
SHUFFLE: abcd, $*, |ABCDE, nm, 45
SUBST: A=., B=., C=., D=*, E=%, n=9, m=0
diff --git a/crawl-ref/source/dat/des/variable/mini_features.des b/crawl-ref/source/dat/des/variable/mini_features.des
index 7bea2df028..e62289143a 100644
--- a/crawl-ref/source/dat/des/variable/mini_features.des
+++ b/crawl-ref/source/dat/des/variable/mini_features.des
@@ -92,7 +92,7 @@ TAGS: uniq_statue_alley transparent extra decor
DEPTH: D:10-
WEIGHT: 7
SUBST: F = G:99 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
MAP
xxxxxxx
xxxcccccx
diff --git a/crawl-ref/source/dat/des/variable/mini_monsters.des b/crawl-ref/source/dat/des/variable/mini_monsters.des
index c43895d1c8..97cb97a1cd 100644
--- a/crawl-ref/source/dat/des/variable/mini_monsters.des
+++ b/crawl-ref/source/dat/des/variable/mini_monsters.des
@@ -2506,22 +2506,22 @@ NAME: hangedman_devilish_allure
TAGS: no_monster_gen no_item_gen
DEPTH: D:12-, Depths
WEIGHT: 5
-MONS: lesser demon, common demon
+MONS: silver statue, lesser demon, common demon
MONS: efreet / large abomination / rakshasa
MONS: shadow demon / green death / blizzard demon / balrug / cacodemon / \
hell beast / hellion / reaper / lorocyproca / tormentor
KITEM: | = superb_item / any good_item / any w:5
: if you.branch() == "Depths" then
-SUBST: 1 = 12, 3 = 4
+SUBST: 2 = 23, 4 = 5
: end
MAP
xxxxxxxxxxxx@@x
@.lxlll.l.l...x
@..xl..l.l.l.lx
x.{xl%vvvvvvvvx
-x..m$*v11123vvx
-xl.m1|.11222|vx
-x..m$*v11123vvx
+x..m$*v22234vvx
+xl.m2|122333|vx
+x..m$*v22234vvx
x.(xl%vvvvvvvvx
@..xl..l.l.l.lx
@.lxlll.l.l...x
@@ -2537,7 +2537,7 @@ ENDMAP
NAME: minmay_statue_bubble
DEPTH: D:9-
-MONS: orange crystal statue / ice statue w:5
+MONS: silver statue / orange crystal statue / ice statue w:5
SUBST: ? = bbb.
MAP
.......
@@ -2553,7 +2553,7 @@ ENDMAP
NAME: minmay_protected_statue
DEPTH: D:9-, Depths, !Depths:$
-MONS: orange crystal statue, plant, bush
+MONS: silver statue / orange crystal statue, plant, bush
SUBST: n : n:20 G 2:1 3:1
KFEAT: n = iron_grate
MAP
@@ -2568,7 +2568,7 @@ ENDMAP
NAME: minmay_statue_crystal_thing
DEPTH: D:9-
-MONS: orange crystal statue w:30 / ice statue w:5
+MONS: orange crystal statue w:30 / silver statue / ice statue w:5
MAP
.....
...b=b...
@@ -2671,7 +2671,7 @@ ENDMAP
NAME: statue_in_the_mist_lemuel
TAGS: extra
-MONS: orange crystal statue / ice statue
+MONS: orange crystal statue / silver statue / ice statue
DEPTH: D:9-, Depths, Orc, Elf, Snake, Swamp
MARKER: G = lua:fog_machine { cloud_type= "grey smoke", \
pow_min = 10, pow_max = 20, delay_min = 15, delay_max = 35, \
@@ -2685,7 +2685,7 @@ ENDMAP
NAME: david_greed
DEPTH: D:10-, Elf
WEIGHT: 4
-MONS: orange crystal statue / ice statue
+MONS: silver statue / orange crystal statue / ice statue
ITEM: nothing / any good_item
SHUFFLE: d|
MAP
@@ -2728,7 +2728,7 @@ ENDMAP
NAME: minmay_more_statues
DEPTH: D:12-
-MONS: ice statue w:5 / orange crystal statue
+MONS: ice statue w:5 / silver statue / orange crystal statue
MAP
cccbcccccbcccccbccc
c.....c%*|*%c.....c
@@ -5741,7 +5741,7 @@ NAME: minmay_guarded_unrand_mage
TAGS: no_monster_gen no_item_gen
DEPTH: Depths
WEIGHT: 3
-MONS: wizard, orange crystal statue
+MONS: wizard, orange crystal statue / silver statue
KMONS: 3 = lich / ancient lich
KITEM: 3 = ring of protection from magic unrand:ring_of_the_mage no_pickup
KPROP: 32' = no_tele_into
@@ -5853,7 +5853,7 @@ NAME: grunt_guarded_unrand_obsidian_axe
TAGS: no_monster_gen no_item_gen
DEPTH: D:$, Depths
WEIGHT: 3
-MONS: patrolling rakshasa
+MONS: silver statue
MONS: patrolling hell knight
MONS: sun demon / soul eater / ice devil / smoke demon / neqoxec / \
ynoxinul / chaos spawn
@@ -5979,7 +5979,7 @@ NAME: minivault_8
DEPTH: D:9-, Elf:1-2
MONS: patrolling molten gargoyle
SUBST: F = G:99 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
MAP
x.x.x.x.x.x.
.c.c.c.c.c.x
@@ -6102,7 +6102,7 @@ DEPTH: D:9-, Elf, Abyss
SHUFFLE: AB, CD, EH/FG
KITEM: ABCD = gold / nothing
SUBST: F = G:99 F:1
-KMONS: F = orange crystal statue / ice statue
+KMONS: F = orange crystal statue / silver statue / ice statue
MAP
............
.xxxxxxxxxx.
@@ -6121,7 +6121,7 @@ ENDMAP
# Lava pond
NAME: minivault_15
TAGS: extra
-KMONS: 1 = ice statue
+KMONS: 1 = silver statue / ice statue
KFEAT: 1 = <
MAP
.........
@@ -6139,7 +6139,7 @@ NAME: minivault_16
TAGS: allow_dup extra luniq
WEIGHT: 40
# as this replaces the former statue only minivaults
-MONS: orange crystal statue / ice statue
+MONS: orange crystal statue / silver statue / ice statue
SUBST: G = G111
MAP
...........
diff --git a/crawl-ref/source/dat/descript/ability.txt b/crawl-ref/source/dat/descript/ability.txt
index f37da21ce4..ff83fc9417 100644
--- a/crawl-ref/source/dat/descript/ability.txt
+++ b/crawl-ref/source/dat/descript/ability.txt
@@ -753,6 +753,11 @@ Make lightning spire ability
Construct a lightning spire with the ability to throw electricity at the
targeted location.
%%%%
+Make silver statue ability
+
+Construct a statue with the ability to summon friendly demons at the targeted
+location.
+%%%%
Make bazaar ability
Create a portal to a bazaar at your location.
diff --git a/crawl-ref/source/dat/descript/da/ability.txt b/crawl-ref/source/dat/descript/da/ability.txt
index d7b699cdb9..256a32d509 100644
--- a/crawl-ref/source/dat/descript/da/ability.txt
+++ b/crawl-ref/source/dat/descript/da/ability.txt
@@ -683,6 +683,10 @@ Make lightning spire ability
Bygger et lynspir, som kan udslynge elektricitet, på det valgte sted.
%%%%
+Make silver statue ability
+
+Bygger en statue med evnen til at hidkalde venlige dæmoner på det valgte sted.
+%%%%
Make bazaar ability
Skaber en portal til en basar der, hvor du står.
diff --git a/crawl-ref/source/dat/descript/de/ability.txt b/crawl-ref/source/dat/descript/de/ability.txt
index f967138978..584c588e50 100644
--- a/crawl-ref/source/dat/descript/de/ability.txt
+++ b/crawl-ref/source/dat/descript/de/ability.txt
@@ -548,6 +548,11 @@ Make lightning spire ability
Erbaut einen Blitz-Turm mit der Fähigkeit Blitze auf die gewählte Position zu
werfen.
%%%%
+Make silver statue ability
+
+Erbaue eine Statue auf der gewählten Position, mit der Fähigkeit freundliche
+Dämonen zu beschwören.
+%%%%
Make bazaar ability
Erschaffe auf deiner Position ein Portal zu einem Basar.
diff --git a/crawl-ref/source/dat/descript/el/ability.txt b/crawl-ref/source/dat/descript/el/ability.txt
index 80b80232b2..df09058461 100644
--- a/crawl-ref/source/dat/descript/el/ability.txt
+++ b/crawl-ref/source/dat/descript/el/ability.txt
@@ -482,6 +482,10 @@ Make lightning spire ability
Κατασκεύασε έναν ηλεκτρικό πυλώνα με την ικανότητα να εκτοξεύει ηλεκτρισμό.
%%%%
+Make silver statue ability
+
+Κατασκεύασε ένα άγαλμα με την ικανότητα να καλεί φιλικούς δαίμονες.
+%%%%
Make bazaar ability
Δημιούργησε μια πύλη προς ένα παζάρι.
diff --git a/crawl-ref/source/dat/descript/es/ability.txt b/crawl-ref/source/dat/descript/es/ability.txt
index 02e072d368..30dc9b7f6a 100644
--- a/crawl-ref/source/dat/descript/es/ability.txt
+++ b/crawl-ref/source/dat/descript/es/ability.txt
@@ -542,6 +542,11 @@ Make lightning spire ability
Construyes una espiral de rayos con la habilidad de lanzar electricidad en la
posición señalada.
%%%%
+Make silver statue ability
+
+Construyes una estatua con la habilidad de convocar demonios amistosos en la
+posición señalada.
+%%%%
Make bazaar ability
Creas un portal a un bazar en tu posición.
diff --git a/crawl-ref/source/dat/descript/fr/ability.txt b/crawl-ref/source/dat/descript/fr/ability.txt
index b8429f4f67..960933f0fb 100644
--- a/crawl-ref/source/dat/descript/fr/ability.txt
+++ b/crawl-ref/source/dat/descript/fr/ability.txt
@@ -716,6 +716,11 @@ Make lightning spire ability
Construit une lance de foudre , qui peut tirer des éclairs, sur la position
ciblée.
%%%%
+Make silver statue ability
+
+Construit une statue, avec la capacité d'invoquer des démons familiers, sur la
+position ciblée.
+%%%%
Make bazaar ability
Crée un portail vers un bazar sur votre position.
diff --git a/crawl-ref/source/dat/descript/ja/ability.txt b/crawl-ref/source/dat/descript/ja/ability.txt
index 5272aca7c3..98180f4b02 100644
--- a/crawl-ref/source/dat/descript/ja/ability.txt
+++ b/crawl-ref/source/dat/descript/ja/ability.txt
@@ -530,6 +530,10 @@ Make lightning spire ability
指定した位置に電撃を放射する稲光の尖塔を建築する。
%%%%
+Make silver statue ability
+
+友好的な悪魔を召喚する能力を持った像を指定した位置に建てる。
+%%%%
Make bazaar ability
あなたのいる位置にバザールへの門を作成する。
diff --git a/crawl-ref/source/dat/descript/ko/ability.txt b/crawl-ref/source/dat/descript/ko/ability.txt
index ef071de22c..187b754a8d 100644
--- a/crawl-ref/source/dat/descript/ko/ability.txt
+++ b/crawl-ref/source/dat/descript/ko/ability.txt
@@ -542,6 +542,10 @@ Make lightning spire ability
해당 지역에 전기를 발사하는 능력을 가진 번개탑을 설치한다.
%%%%
+Make silver statue ability
+
+해당 지역에 동료 악마를 소환하는 석상을 설치한다.
+%%%%
Make bazaar ability
당신이 서있는 곳에, 상점가로 가는 포탈을 만든다.
diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt
index 537aa3a457..5c000781e5 100644
--- a/crawl-ref/source/dat/descript/monsters.txt
+++ b/crawl-ref/source/dat/descript/monsters.txt
@@ -2233,6 +2233,12 @@ The bane of wizards, these terrible spirits bring an unearthly silence to the
area around them, making it impossible to recite the magical incantations
involved with casting spells or reading scrolls.
%%%%
+silver statue
+
+A beautiful statue of an unknown creature, glistening with a silvery hue. Its
+eyes glow with an otherworldly, malignant radiance. If approached, it may call
+forth demons to defend itself.
+%%%%
simulacrum
An ice replica of a monster, animated by the powers of necromancy.
diff --git a/crawl-ref/source/dat/descript/ru/ability.txt b/crawl-ref/source/dat/descript/ru/ability.txt
index 88e9505257..e360d033bd 100644
--- a/crawl-ref/source/dat/descript/ru/ability.txt
+++ b/crawl-ref/source/dat/descript/ru/ability.txt
@@ -494,6 +494,11 @@ Make lightning spire ability
В указанной точке вы создаете шпиль, способный бить электрическими зарядами.
%%%%
+Make silver statue ability
+
+Вы сооружаете в указанном месте статую, способную призывать дружественных
+демонов.
+%%%%
Make bazaar ability
Вы создаете портал на Базар на том месте, где стоите.
diff --git a/crawl-ref/source/dat/descript/zh/ability.txt b/crawl-ref/source/dat/descript/zh/ability.txt
index c10e5f2774..123abe5ca8 100644
--- a/crawl-ref/source/dat/descript/zh/ability.txt
+++ b/crawl-ref/source/dat/descript/zh/ability.txt
@@ -496,6 +496,10 @@ Make lightning spire ability
在目标地点建造一座会发射电流束的闪电塔。
%%%%
+Make silver statue ability
+
+在目标地点建造一尊会召唤恶魔来协助战斗的雕像。
+%%%%
Make bazaar ability
在你所在的位置创造出一个通往商场的传送门。
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 78c5c0ea9f..9a9602c508 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -210,9 +210,7 @@ enum ability_type
ABIL_MAKE_DART_TRAP,
ABIL_MAKE_ICE_STATUE,
ABIL_MAKE_OCS,
-#if TAG_MAJOR_VERSION == 34
ABIL_MAKE_SILVER_STATUE,
-#endif
ABIL_MAKE_CURSE_SKULL,
ABIL_MAKE_TELEPORT,
ABIL_MAKE_ARROW_TRAP,
@@ -2770,9 +2768,7 @@ enum monster_type // menv[].type
// Statuary
MONS_ORANGE_STATUE,
-#if TAG_MAJOR_VERSION == 34
MONS_SILVER_STATUE,
-#endif
MONS_ICE_STATUE,
MONS_STATUE,
MONS_TRAINING_DUMMY,
diff --git a/crawl-ref/source/mon-abil.cc b/crawl-ref/source/mon-abil.cc
index d937e4b0cb..7ee9db409e 100644
--- a/crawl-ref/source/mon-abil.cc
+++ b/crawl-ref/source/mon-abil.cc
@@ -1086,6 +1086,37 @@ static bool _siren_movement_effect(const monster* mons)
return do_resist;
}
+static bool _silver_statue_effects(monster* mons)
+{
+ actor *foe = mons->get_foe();
+
+ int abjuration_duration = 5;
+
+ // Tone down friendly silver statues for Zotdef.
+ if (mons->attitude == ATT_FRIENDLY && !(foe && foe->is_player())
+ && crawl_state.game_is_zotdef())
+ {
+ if (!one_chance_in(3))
+ return false;
+ abjuration_duration = 1;
+ }
+
+ if (foe && mons->can_see(foe) && !one_chance_in(3))
+ {
+ const string msg = "'s eyes glow " + weird_glowing_colour() + '.';
+ simple_monster_message(mons, msg.c_str(), MSGCH_WARN);
+
+ create_monster(
+ mgen_data(
+ summon_any_demon((coinflip() ? RANDOM_DEMON_COMMON
+ : RANDOM_DEMON_LESSER)),
+ SAME_ATTITUDE(mons), mons, abjuration_duration, 0,
+ foe->pos(), mons->foe));
+ return true;
+ }
+ return false;
+}
+
static bool _orange_statue_effects(monster* mons)
{
actor *foe = mons->get_foe();
@@ -3481,6 +3512,13 @@ bool mon_special_ability(monster* mons, bolt & beem)
used = _orange_statue_effects(mons);
break;
+ case MONS_SILVER_STATUE:
+ if (player_or_mon_in_sanct(mons))
+ break;
+
+ used = _silver_statue_effects(mons);
+ break;
+
case MONS_BALL_LIGHTNING:
if (is_sanctuary(mons->pos()))
break;
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index f00e654e0a..b3bcc390c9 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -244,7 +244,6 @@ static monsterentry mondata[] =
AXED_MON(MONS_GRIZZLY_BEAR)
AXED_MON(MONS_SPRIGGAN_ENCHANTER)
AXED_MON(MONS_PHOENIX)
- AXED_MON(MONS_SILVER_STATUE)
#endif
// Real monsters begin here {dlb}:
@@ -5668,6 +5667,18 @@ static monsterentry mondata[] =
},
{
+ MONS_SILVER_STATUE, '8', WHITE, "silver statue",
+ M_ARTIFICIAL | M_STATIONARY | M_SPEAKS,
+ mrd(MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC, 2),
+ 0, 10, MONS_STATUE, MONS_SILVER_STATUE, MH_NONLIVING, MAG_IMMUNE,
+ { AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 6, 0, 0, 150 },
+ 15, 1, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT,
+ I_HIGH, HT_LAND, FL_NONE, 10, DEFAULT_ENERGY,
+ MONUSE_NOTHING, MONEAT_NOTHING, SIZE_LARGE, MON_SHAPE_HUMANOID
+},
+
+{
MONS_ORANGE_STATUE, '8', LIGHTRED, "orange crystal statue",
M_ARTIFICIAL | M_STATIONARY | M_SPEAKS,
mrd(MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC, 2),
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 2c9a8454c1..38ea48f34f 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -980,7 +980,7 @@ bool invalid_monster_index(int i)
bool mons_is_statue(monster_type mc, bool allow_disintegrate)
{
- if (mc == MONS_ORANGE_STATUE)
+ if (mc == MONS_ORANGE_STATUE || mc == MONS_SILVER_STATUE)
return true;
if (!allow_disintegrate)
@@ -2045,7 +2045,7 @@ int exper_value(const monster* mon, bool real)
// The beta26 statues have non-spell-like abilities that the experience
// code can't see, so inflate their XP a bit. Ice statues and Roxanne
// get plenty of XP for their spells.
- if (mc == MONS_ORANGE_STATUE)
+ if (mc == MONS_ORANGE_STATUE || mc == MONS_SILVER_STATUE)
return hd * 15;
x_val = (16 + maxhp) * hd * hd / 10;
@@ -3433,7 +3433,7 @@ bool mons_has_los_ability(monster_type mon_type)
}
// Although not using spells, these are exceedingly dangerous.
- if (mon_type == MONS_ORANGE_STATUE)
+ if (mon_type == MONS_SILVER_STATUE || mon_type == MONS_ORANGE_STATUE)
return true;
// Beholding just needs LOS.
diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc
index 8272715526..6142869a68 100644
--- a/crawl-ref/source/monster.cc
+++ b/crawl-ref/source/monster.cc
@@ -390,6 +390,7 @@ int monster::body_weight(bool /*base*/) const
break;
case MONS_QUICKSILVER_DRAGON:
+ case MONS_SILVER_STATUE:
case MONS_STATUE:
weight *= 4;
break;
@@ -3542,7 +3543,7 @@ bool monster::is_holy(bool check_spells) const
bool monster::is_unholy(bool check_spells) const
{
- if (mons_is_demonspawn(type))
+ if (type == MONS_SILVER_STATUE || mons_is_demonspawn(type))
return true;
if (holiness() == MH_DEMONIC)
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 1da2af1879..fc1be035b0 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -3572,6 +3572,8 @@ void level_change(int source, const char* aux, bool skip_attribute_increase)
mprf(MSGCH_INTRINSIC_GAIN, "Your Zot abilities now extend through making water.");
if (you.experience_level == 19)
mprf(MSGCH_INTRINSIC_GAIN, "Your Zot abilities now extend through the making of lightning spires.");
+ if (you.experience_level == 20)
+ mprf(MSGCH_INTRINSIC_GAIN, "Your Zot abilities now extend through the making of silver statues.");
// gold and bazaars gained together
if (you.experience_level == 21)
mprf(MSGCH_INTRINSIC_GAIN, "Your Zot abilities now extend through the making of bazaars.");
diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt
index c33b70d410..09e49c9ebd 100644
--- a/crawl-ref/source/rltiles/dc-mon.txt
+++ b/crawl-ref/source/rltiles/dc-mon.txt
@@ -437,6 +437,7 @@ block_of_ice MONS_BLOCK_OF_ICE
block_of_ice2
training_dummy MONS_TRAINING_DUMMY
ice_statue MONS_ICE_STATUE
+silver_statue MONS_SILVER_STATUE
orange_crystal_statue MONS_ORANGE_STATUE
wucad_mu_statue MONS_WUCAD_MU_STATUE
%sdir mon/vault
diff --git a/crawl-ref/source/rltiles/dc-zotdef.txt b/crawl-ref/source/rltiles/dc-zotdef.txt
index 7a231f3606..c5bac8fd06 100644
--- a/crawl-ref/source/rltiles/dc-zotdef.txt
+++ b/crawl-ref/source/rltiles/dc-zotdef.txt
@@ -22,6 +22,7 @@ oklob_sapling ABILITY_ZOTDEF_OKLOB_SAPLING
plant ABILITY_ZOTDEF_PLANT
remove_curse ABILITY_ZOTDEF_REMOVE_CURSE
sage ABILITY_ZOTDEF_SAGE
+silver_statue ABILITY_ZOTDEF_SILVER_STATUE
spear_trap ABILITY_ZOTDEF_SPEAR_TRAP
spore ABILITY_ZOTDEF_SPORE
teleport ABILITY_ZOTDEF_TELEPORT
diff --git a/crawl-ref/source/rltiles/UNUSED/monsters/silver_statue.png b/crawl-ref/source/rltiles/mon/statues/silver_statue.png
index ebfd57b6bc..ebfd57b6bc 100644
--- a/crawl-ref/source/rltiles/UNUSED/monsters/silver_statue.png
+++ b/crawl-ref/source/rltiles/mon/statues/silver_statue.png
Binary files differ
diff --git a/crawl-ref/source/spl-damage.cc b/crawl-ref/source/spl-damage.cc
index 44981bd583..6c22a90b47 100644
--- a/crawl-ref/source/spl-damage.cc
+++ b/crawl-ref/source/spl-damage.cc
@@ -1096,6 +1096,7 @@ static int _shatter_mon_dice(const monster *mon)
case MONS_IRON_GOLEM:
case MONS_WAR_GARGOYLE:
case MONS_CRYSTAL_GUARDIAN:
+ case MONS_SILVER_STATUE:
case MONS_ORANGE_STATUE:
case MONS_ROXANNE:
return 6;
@@ -2071,12 +2072,18 @@ bool setup_fragmentation_beam(bolt &beam, int pow, const actor *caster,
beam.damage.num = 3;
break;
+ case MONS_SILVER_STATUE:
case MONS_ORANGE_STATUE:
case MONS_CRYSTAL_GUARDIAN:
case MONS_ROXANNE:
beam.ex_size = 2;
beam.damage.num = 4;
- if (mon->type == MONS_ORANGE_STATUE)
+ if (mon->type == MONS_SILVER_STATUE)
+ {
+ beam.name = "blast of silver fragments";
+ beam.colour = WHITE;
+ }
+ else if (mon->type == MONS_ORANGE_STATUE)
{
beam.name = "blast of orange crystal shards";
beam.colour = LIGHTRED;
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 070c938574..cfd9dc6a70 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -1974,6 +1974,8 @@ static tileidx_t _tileidx_monster_base(int type, bool in_water, int colour,
return TILEP_MONS_TRAINING_DUMMY;
case MONS_ICE_STATUE:
return TILEP_MONS_ICE_STATUE;
+ case MONS_SILVER_STATUE:
+ return TILEP_MONS_SILVER_STATUE;
case MONS_ORANGE_STATUE:
return TILEP_MONS_ORANGE_STATUE;
case MONS_DIAMOND_OBELISK:
@@ -5446,6 +5448,8 @@ tileidx_t tileidx_ability(const ability_type ability)
return TILEG_ABILITY_ZOTDEF_ICE_STATUE;
case ABIL_MAKE_OCS:
return TILEG_ABILITY_ZOTDEF_OCS;
+ case ABIL_MAKE_SILVER_STATUE:
+ return TILEG_ABILITY_ZOTDEF_SILVER_STATUE;
case ABIL_MAKE_CURSE_SKULL:
return TILEG_ABILITY_ZOTDEF_CURSE_SKULL;
case ABIL_MAKE_TELEPORT: