summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-05-20 07:00:21 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-05-20 07:00:21 +0000
commit160877d2419830c4989516e9a09fa6260a052d42 (patch)
tree619442ec7224ae7289221d0876ae9b1d6bf59c2b
parente1879031547aa6861a565563724d7308d02cc2f2 (diff)
downloadcrawl-ref-160877d2419830c4989516e9a09fa6260a052d42.tar.gz
crawl-ref-160877d2419830c4989516e9a09fa6260a052d42.zip
* Add Shock/Lightning Bolt to list of spells that don't abort for 'z' if
there are no monsters within range. * Give a message if extending a transformation doesn't make it last long enough for the "about to time out" message. * Extension has no effect on Bat Form. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9794 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dat/entry.des208
-rw-r--r--crawl-ref/source/effects.cc10
-rw-r--r--crawl-ref/source/menu.cc11
-rw-r--r--crawl-ref/source/spells1.cc8
-rw-r--r--crawl-ref/source/spl-cast.cc6
-rw-r--r--crawl-ref/source/spl-data.h2
-rw-r--r--crawl-ref/source/transfor.cc4
-rw-r--r--crawl-ref/source/transfor.h3
8 files changed, 130 insertions, 122 deletions
diff --git a/crawl-ref/source/dat/entry.des b/crawl-ref/source/dat/entry.des
index 2cf86d8149..48aaaf8f86 100644
--- a/crawl-ref/source/dat/entry.des
+++ b/crawl-ref/source/dat/entry.des
@@ -593,10 +593,10 @@ ENDMAP
##############################################################################
# lemuel_entrance_tunnels
-NAME: lemuel_entry_006_tunnels
-TAGS: entry no_monster_gen
-ORIENT: float
-SUBST: ? = x.
+NAME: lemuel_entry_006_tunnels
+TAGS: entry no_monster_gen
+ORIENT: float
+SUBST: ? = x.
SHUFFLE: {[(
MAP
xxx
@@ -1318,11 +1318,11 @@ ENDMAP
# This is another series of entry levels, ten total. Leave the template intact
# (but commented out). All water is deep.
-# NAME: water_fire_template
-# TAGS: entry no_monster_gen no_pool_fixup no_rotate
+# NAME: water_fire_template
+# TAGS: entry no_monster_gen no_pool_fixup no_rotate
# WEIGHT: 1
# ORIENT: float
-# MONS: plant
+# MONS: plant
# MAP
# xxxxxxxx@xxxxxxxx
# xxxxxx...............xxxxxx
@@ -1348,10 +1348,10 @@ ENDMAP
# xxxxxxxxxxxxxxxxx
# ENDMAP
-NAME: david_entry_015_a_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_a_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
-MONS: plant
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1378,12 +1378,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_b_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_b_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1410,12 +1410,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_c_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_c_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1442,12 +1442,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_d_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_d_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1474,12 +1474,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_e_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_e_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1506,12 +1506,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_f_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_f_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1538,12 +1538,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_g_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_g_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1570,12 +1570,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_h_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_h_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1602,12 +1602,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_i_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_i_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1634,12 +1634,12 @@ xx......xx+xxx+xx...x...xx+xxx+xx......xx
xxxxxxxxxxxxxxxxx
ENDMAP
-NAME: david_entry_015_j_water_fire
-TAGS: entry no_monster_gen no_pool_fixup no_rotate
+NAME: david_entry_015_j_water_fire
+TAGS: entry no_monster_gen no_pool_fixup no_rotate
WEIGHT: 1
NSUBST: . = 1:d / *:.
-ITEM: stone/dart
-MONS: plant
+ITEM: stone/dart
+MONS: plant
ORIENT: float
MAP
xxxxxxxx@xxxxxxxx
@@ -1974,10 +1974,10 @@ ENDMAP
##############################################################################
# Sounds of Crawl: the Slurp
-NAME: david_027_sounds_slurp
-TAGS: entry no_monster_gen
-MONS: generate_awake jelly / kobold
-ITEM: dart
+NAME: david_027_sounds_slurp
+TAGS: entry no_monster_gen
+MONS: generate_awake jelly / kobold
+ITEM: dart
ORIENT: float
SHUFFLE: {[(
SUBST: v:vxx
@@ -2001,9 +2001,9 @@ ENDMAP
##############################################################################
# Sounds of Crawl: the Drone
-NAME: david_028_sounds_drone
-TAGS: entry no_monster_gen no_rotate
-MONS: generate_awake boring beetle / boring beetle
+NAME: david_028_sounds_drone
+TAGS: entry no_monster_gen no_rotate
+MONS: generate_awake boring beetle / boring beetle
ORIENT: float
SHUFFLE: {<
MAP
@@ -3329,10 +3329,10 @@ ENDMAP
##############################################################################
# Just another castle
-NAME: david_entry_067
-TAGS: entry no_monster_gen no_rotate
-ITEM: any, nothing, nothing
-ORIENT: float
+NAME: david_entry_067
+TAGS: entry no_monster_gen no_rotate
+ITEM: any, nothing, nothing
+ORIENT: float
SHUFFLE: ]def
SUBST: c : cx
# A test run with 50 tries had precisely one level without shallow water
@@ -3427,10 +3427,10 @@ MAP
......
ENDMAP
-NAME: david_entry_069_c
-TAGS: entry no_monster_gen no_rotate
-ORIENT: float
-WEIGHT: 3
+NAME: david_entry_069_c
+TAGS: entry no_monster_gen no_rotate
+ORIENT: float
+WEIGHT: 3
SHUFFLE: bxxxx
MAP
....... .......
@@ -3467,13 +3467,13 @@ ENDMAP
##############################################################################
# Caged fury
-NAME: david_entry_070
-TAGS: entry no_rotate
-MONS: w:30 nothing / giant cockroach / w:2 worm
-MONS: w:30 nothing / ooze
-MONS: w:20 nothing / jackal / rat
-MONS: w:30 nothing / ooze / w:2 jelly / giant cockroach / w:2 worm / \
- w:5 jackal / w:5 rat
+NAME: david_entry_070
+TAGS: entry no_rotate
+MONS: w:30 nothing / giant cockroach / w:2 worm
+MONS: w:30 nothing / ooze
+MONS: w:20 nothing / jackal / rat
+MONS: w:30 nothing / ooze / w:2 jelly / giant cockroach / w:2 worm / \
+ w:5 jackal / w:5 rat
# There is a very slight chance that a jelly or an intelligent monster
# (hobgoblin) might spawn inside near the door. This is okay; added an exit.
ORIENT: float
@@ -4012,8 +4012,8 @@ x.........x
xxx@xxx@xxx
ENDMAP
-NAME: matt_entry_007_b
-TAGS: entry no_monster_gen
+NAME: matt_entry_007_b
+TAGS: entry no_monster_gen
ORIENT: float
WEIGHT: 3
SHUFFLE: {[(<
@@ -4031,8 +4031,8 @@ x.........x
xxx@xxx@xxx
ENDMAP
-NAME: matt_entry_007_c
-TAGS: entry no_monster_gen
+NAME: matt_entry_007_c
+TAGS: entry no_monster_gen
ORIENT: float
WEIGHT: 6
SHUFFLE: {[(<
@@ -4056,8 +4056,8 @@ ENDMAP
##############################################################
# Infinity Welcomes Careful Drivers
-NAME: entry_elethiomel_001
-TAGS: entry no_rotate
+NAME: entry_elethiomel_001
+TAGS: entry no_rotate
ORIENT: northwest
SHUFFLE: [{
SUBST: ' : . x ':40, '=x.
@@ -4081,8 +4081,8 @@ ENDMAP
##############################################################
# The Diamond Age, or A Young Lady's Illustrated Primer
-NAME: entry_elethiomel_002
-TAGS: entry no_monster_gen no_rotate
+NAME: entry_elethiomel_002
+TAGS: entry no_monster_gen no_rotate
ORIENT: west
WEIGHT: 2
MONS: rat, goblin, giant bat, kobold
@@ -4118,9 +4118,9 @@ ENDMAP
##############################################################
# Ruined Dwarven Fortress Basement
-NAME: entry_elethiomel_003
-TAGS: entry no_monster_gen no_rotate
-ITEM: any armour / any weapon / nothing
+NAME: entry_elethiomel_003
+TAGS: entry no_monster_gen no_rotate
+ITEM: any armour / any weapon / nothing
ORIENT: float
WEIGHT: 2
SHUFFLE: {[(
@@ -4149,8 +4149,8 @@ ENDMAP
##############################################################
# A Maze of Twisty Passages, All Alike
-NAME: entry_elethiomel_004
-TAGS: entry no_monster_gen
+NAME: entry_elethiomel_004
+TAGS: entry no_monster_gen
ORIENT: float
SHUFFLE: {[(, WXYZ
SUBST: W=., X=X., X=x=., Y=Y., Y=x=., Z=Z., Z=x=.
@@ -4175,8 +4175,8 @@ ENDMAP
##############################################################
# It's quiet. Too quiet....
#
-NAME: entry_elethiomel_005_a
-TAGS: entry no_monster_gen
+NAME: entry_elethiomel_005_a
+TAGS: entry no_monster_gen
ORIENT: float
MONS: rat / nothing, hobgoblin / goblin / nothing
SHUFFLE: '"XY/ABVW, !?/CD
@@ -4200,8 +4200,8 @@ xxcccccc.....ccccccxx
ccccccccc
ENDMAP
-NAME: entry_elethiomel_005_b
-TAGS: entry no_monster_gen
+NAME: entry_elethiomel_005_b
+TAGS: entry no_monster_gen
ORIENT: float
MONS: rat / nothing, hobgoblin / goblin / nothing
SHUFFLE: '"/AB, !?XY/CDVW
@@ -4228,8 +4228,8 @@ ENDMAP
##############################################################
# Shortcut
-NAME: entry_elethiomel_006
-TAGS: entry
+NAME: entry_elethiomel_006
+TAGS: entry
ORIENT: float
SHUFFLE: {[(, XY/AB
KFEAT: X = teleport trap
@@ -4250,8 +4250,8 @@ ENDMAP
##############################################################
# Indiana Jones and the Raiders of the Lost Ark
-NAME: entry_elethiomel_007
-TAGS: entry
+NAME: entry_elethiomel_007
+TAGS: entry
ORIENT: float
SUBST: ~ = ~ .:5
# Too bad there isn't a "rolling boulder" trap.
@@ -4308,8 +4308,8 @@ ENDMAP
##############################################################
# Pyramid
-NAME: onia_ninara_002_pyramid
-TAGS: entry no_rotate
+NAME: onia_ninara_002_pyramid
+TAGS: entry no_rotate
ORIENT: float
SHUFFLE: ({[
MAP
@@ -4331,8 +4331,8 @@ ENDMAP
##############################################################
# Mini spirals
-NAME: onia_ninara_003_mini_spirals
-TAGS: entry
+NAME: onia_ninara_003_mini_spirals
+TAGS: entry
ORIENT: float
SHUFFLE: ({[<,GT, vcxxxx
MAP
@@ -4404,15 +4404,15 @@ NAME: onia_ninara_005_the_zoo_common
WEIGHT: 9
ORIENT: float
SHUFFLE: 1234567
-MONS: giant gecko /giant iguana / giant lizard / giant newt / gila monster /\
- komodo dragon
-MONS: hog / jackal / wolf / hound / war dog
-MONS: giant cockroach / giant ant / butterfly / killer bee / bumblebee /\
- redback / giant mite
-MONS: swamp worm / lindwurm / worm / spiny worm
-MONS: swamp drake / hydra / wyvern / firedrake
-MONS: bear / polar bear / grizzly bear / black bear
-MONS: black snake / brown snake / grey snake / salamander / yellow snake
+MONS: giant gecko /giant iguana / giant lizard / giant newt /\
+ gila monster / komodo dragon
+MONS: hog / jackal / wolf / hound / war dog
+MONS: giant cockroach / giant ant / butterfly / killer bee / bumblebee /\
+ redback / giant mite
+MONS: swamp worm / lindwurm / worm / spiny worm
+MONS: swamp drake / hydra / wyvern / firedrake
+MONS: bear / polar bear / grizzly bear / black bear
+MONS: black snake / brown snake / grey snake / salamander / yellow snake
MAP
xxxxxxxx@xxxxxxxx
xxxxxx.G.G.xxxxxx
@@ -4750,8 +4750,8 @@ ENDMAP
##############################################################
# Rooms in the neighbourhood.
-NAME: misc_entry_001
-TAGS: entry no_monster_gen
+NAME: misc_entry_001
+TAGS: entry no_monster_gen
RTILE: x = wall_hall
FTILE: . = floor_hall, ( = floor_hall, [ = floor_hall, { = floor_hall
ORIENT: float
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 74ca4db599..e76c01bc0d 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -1933,9 +1933,6 @@ bool recharge_wand(int item_slot)
{
charge_gain = wand_charge_value(wand.sub_type);
- // Reinitialize zap counts.
- wand.plus2 = ZAPCOUNT_RECHARGED;
-
const int new_charges =
std::max<int>(
wand.plus,
@@ -1959,10 +1956,9 @@ bool recharge_wand(int item_slot)
charged ? "glows" : "flickers",
desc.c_str());
- wand.plus = new_charges;
-
- if (!charged)
- wand.plus2 = ZAPCOUNT_MAX_CHARGED;
+ // Reinitialize zap counts.
+ wand.plus = new_charges;
+ wand.plus2 = (charged ? ZAPCOUNT_RECHARGED : ZAPCOUNT_MAX_CHARGED);
}
else // It's a rod.
{
diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc
index 46958288b6..20c45769e7 100644
--- a/crawl-ref/source/menu.cc
+++ b/crawl-ref/source/menu.cc
@@ -1467,7 +1467,7 @@ void column_composer::add_formatted(int ncol,
// Add a blank line if necessary. Blank lines will not
// be added at page boundaries.
if (add_separator && col.lines && !segs.empty()
- && (!pagesize || col.lines % pagesize))
+ && (!pagesize || col.lines % pagesize))
{
newlines.push_back(formatted_string());
}
@@ -1475,10 +1475,9 @@ void column_composer::add_formatted(int ncol,
for (unsigned i = 0, size = segs.size(); i < size; ++i)
{
newlines.push_back(
- formatted_string::parse_string(
- segs[i],
- eol_ends_format,
- tfilt));
+ formatted_string::parse_string( segs[i],
+ eol_ends_format,
+ tfilt));
}
strip_blank_lines(newlines);
@@ -1786,7 +1785,7 @@ bool formatted_scroller::page_up()
if (items[first_entry]->level == MEL_TITLE)
return (false);
- for ( int i = 0; i < pagesize; ++i )
+ for (int i = 0; i < pagesize; ++i)
{
if (first_entry == 0 || items[first_entry-1]->level == MEL_TITLE)
break;
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc
index 968e034686..86a1529af0 100644
--- a/crawl-ref/source/spells1.cc
+++ b/crawl-ref/source/spells1.cc
@@ -1202,12 +1202,18 @@ void extension(int pow)
if (you.duration[DUR_RESIST_POISON])
cast_resist_poison(pow);
- if (you.duration[DUR_TRANSFORMATION])
+ if (you.duration[DUR_TRANSFORMATION]
+ && (you.species != SP_VAMPIRE
+ || you.attribute[ATTR_TRANSFORMATION] != TRAN_BAT))
{
mpr("Your transformation has been extended.");
you.duration[DUR_TRANSFORMATION] += random2(pow);
if (you.duration[DUR_TRANSFORMATION] > 100)
you.duration[DUR_TRANSFORMATION] = 100;
+
+ // Give a warning if it won't last long enough for the
+ // timeout messages.
+ transformation_expiration_warning();
}
//jmf: added following
diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc
index 11c46506cd..fcc9e812aa 100644
--- a/crawl-ref/source/spl-cast.cc
+++ b/crawl-ref/source/spl-cast.cc
@@ -201,10 +201,14 @@ static bool _spell_no_hostile_in_range(spell_type spell, int minRange)
bool bonus = 0;
switch (spell)
{
+ // These don't target monsters.
case SPELL_APPORTATION:
case SPELL_PROJECTED_NOISE:
case SPELL_CONJURE_FLAME:
- // These don't target monsters.
+ // These bounce and may be aimed elsewhere to bounce at monsters
+ // outside range (I guess).
+ case SPELL_SHOCK:
+ case SPELL_LIGHTNING_BOLT:
return (false);
case SPELL_EVAPORATE:
case SPELL_MEPHITIC_CLOUD:
diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h
index 9e4d8db8a6..99036db9f3 100644
--- a/crawl-ref/source/spl-data.h
+++ b/crawl-ref/source/spl-data.h
@@ -2212,6 +2212,8 @@
false
},
+// From here on, all spells are monster-only spells.
+
{
SPELL_HELLFIRE_BURST, "Hellfire Burst",
SPTYP_CONJURATION | SPTYP_FIRE,
diff --git a/crawl-ref/source/transfor.cc b/crawl-ref/source/transfor.cc
index 45535efdac..ca8cfd5cc4 100644
--- a/crawl-ref/source/transfor.cc
+++ b/crawl-ref/source/transfor.cc
@@ -479,7 +479,7 @@ size_type player::transform_size(int psize) const
}
}
-static void _transformation_expiration_warning()
+void transformation_expiration_warning()
{
if (you.duration[DUR_TRANSFORMATION]
<= get_expiration_threshold(DUR_TRANSFORMATION))
@@ -782,7 +782,7 @@ bool transform(int pow, transformation_type which_trans, bool force,
stop_delay();
if (you.species != SP_VAMPIRE || which_trans != TRAN_BAT)
- _transformation_expiration_warning();
+ transformation_expiration_warning();
return (true);
}
diff --git a/crawl-ref/source/transfor.h b/crawl-ref/source/transfor.h
index 33df1c6b37..5dff88bcfa 100644
--- a/crawl-ref/source/transfor.h
+++ b/crawl-ref/source/transfor.h
@@ -49,8 +49,9 @@ void unmeld_one_equip(equipment_type eq);
bool transform_changed_physiology( bool phys_scales = false );
bool transform_allows_wearing_item(const item_def& item,
transformation_type transform);
-// Check your current transform
+// Check your current transformation.
bool transform_allows_wearing_item(const item_def& item);
bool transform_allows_wielding(transformation_type transform);
+void transformation_expiration_warning();
#endif