diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-07 15:06:00 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-07 15:06:00 +0000 |
commit | 8e904ab0620577064f4a818272b152d1f5d2d3db (patch) | |
tree | dd9d9542db26e0bb398235e49ffa3c7f2ceeac0b /crawl-ref/source/spells4.cc | |
parent | 1a6365fbd24ab134842816757600de0264f39362 (diff) | |
download | crawl-ref-8e904ab0620577064f4a818272b152d1f5d2d3db.tar.gz crawl-ref-8e904ab0620577064f4a818272b152d1f5d2d3db.zip |
Turfed out obsolete orange crystal statue and silver statue features.
Moved MINMOVE and MINSEE brain damage into the dungeon_feature_type enumeration
where it is clearer what they represent.
Fixed ice statues not being appropriately affected by Shatter and Lee's.
Moved 'v' examine hint information and feature notability into feature_def
flags.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2061 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/spells4.cc')
-rw-r--r-- | crawl-ref/source/spells4.cc | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc index d4b4656cc8..4ad98dcf7e 100644 --- a/crawl-ref/source/spells4.cc +++ b/crawl-ref/source/spells4.cc @@ -348,7 +348,6 @@ static int shatter_walls(int x, int y, int pow, int garbage) break; case DNGN_METAL_WALL: - case DNGN_SILVER_STATUE: stuff = DEBRIS_METAL; chance = pow / 10; break; @@ -369,11 +368,6 @@ static int shatter_walls(int x, int y, int pow, int garbage) stuff = DEBRIS_ROCK; break; - case DNGN_ORANGE_CRYSTAL_STATUE: - chance = pow / 6; - stuff = DEBRIS_CRYSTAL; - break; - case DNGN_GREEN_CRYSTAL_WALL: chance = 50; stuff = DEBRIS_CRYSTAL; @@ -2389,6 +2383,7 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike switch (menv[mon].type) { + case MONS_ICE_STATUE: case MONS_ICE_BEAST: // blast of ice fragments case MONS_SIMULACRUM_SMALL: case MONS_SIMULACRUM_LARGE: @@ -2477,8 +2472,14 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike blast.damage.num = 6; } - if (player_hurt_monster(mon, roll_dice( blast.damage ))) - blast.damage.num += 2; + { + int statue_damage = roll_dice(blast.damage) * 2; + if (pow >= 50 && one_chance_in(10)) + statue_damage = menv[mon].hit_points; + + if (player_hurt_monster(mon, statue_damage)) + blast.damage.num += 2; + } break; case MONS_CRYSTAL_GOLEM: @@ -2558,14 +2559,6 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike case DNGN_METAL_WALL: what = "metal wall"; blast.colour = CYAN; - // fallthru - case DNGN_SILVER_STATUE: - if (what == NULL) - { - what = "silver statue"; - blast.colour = WHITE; - } - explode = true; blast.name = "blast of metal fragments"; blast.damage.num = 4; @@ -2585,23 +2578,13 @@ void cast_fragmentation(int pow) // jmf: ripped idea from airstrike case DNGN_GREEN_CRYSTAL_WALL: // crystal -- large & nasty explosion what = "crystal wall"; blast.colour = GREEN; - // fallthru - case DNGN_ORANGE_CRYSTAL_STATUE: - if (what == NULL) - { - what = "crystal statue"; - blast.colour = LIGHTRED; //jmf: == orange, right? - } - explode = true; blast.ex_size = 2; blast.name = "blast of crystal shards"; blast.damage.num = 5; if (okay_to_dest - && ((grid == DNGN_GREEN_CRYSTAL_WALL && coinflip()) - || (grid == DNGN_ORANGE_CRYSTAL_STATUE - && pow >= 50 && one_chance_in(10)))) + && grid == DNGN_GREEN_CRYSTAL_WALL && coinflip()) { blast.ex_size = coinflip() ? 3 : 2; grd[beam.tx][beam.ty] = DNGN_FLOOR; |