summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc31
1 files changed, 17 insertions, 14 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 01e3620354..f78c61b174 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -685,10 +685,10 @@ static void zappy( zap_type z_type, int power, bolt &pbolt )
pbolt.name = "stone arrow";
pbolt.colour = LIGHTGREY;
pbolt.range = 8 + random2(5);
- pbolt.damage = dice_def( 2, 4 + power / 8 ); // 25: 2d7 50: 2d10
- pbolt.hit = 5 + power / 10; // 25: 6 50: 7
+ pbolt.damage = dice_def( 2, 5 + power / 7 ); // 25: 2d8 50: 2d12
+ pbolt.hit = 8 + power / 10; // 25: 10 50: 13
pbolt.type = SYM_MISSILE;
- pbolt.flavour = BEAM_MMISSILE; // unresistable
+ pbolt.flavour = BEAM_MMISSILE; // irresistible
pbolt.obvious_effect = true;
break;
@@ -753,7 +753,7 @@ static void zappy( zap_type z_type, int power, bolt &pbolt )
pbolt.name = "bolt of fire";
pbolt.colour = RED;
pbolt.range = 7 + random2(10);
- pbolt.damage = calc_dice( 6, 20 + (power * 3) / 4 );
+ pbolt.damage = calc_dice( 6, 18 + power * 2 / 3 );
pbolt.hit = 10 + power / 25; // 50: 12 100: 14
pbolt.type = SYM_ZAP;
pbolt.flavour = BEAM_FIRE;
@@ -766,7 +766,7 @@ static void zappy( zap_type z_type, int power, bolt &pbolt )
pbolt.name = "bolt of cold";
pbolt.colour = WHITE;
pbolt.range = 7 + random2(10);
- pbolt.damage = calc_dice( 6, 20 + (power * 3) / 4 );
+ pbolt.damage = calc_dice( 6, 18 + power * 2 / 3 );
pbolt.hit = 10 + power / 25; // 50: 12 100: 14
pbolt.type = SYM_ZAP;
pbolt.flavour = BEAM_COLD;
@@ -897,8 +897,8 @@ static void zappy( zap_type z_type, int power, bolt &pbolt )
case ZAP_CRYSTAL_SPEAR: // cap 200
pbolt.name = "crystal spear";
pbolt.colour = WHITE;
- pbolt.range = 7 + random2(10);
- pbolt.damage = calc_dice( 12, 30 + (power * 4) / 3 );
+ pbolt.range = 6 + random2(4);
+ pbolt.damage = calc_dice( 10, 23 + power );
pbolt.hit = 10 + power / 15; // 50: 13 100: 16
pbolt.type = SYM_MISSILE;
pbolt.flavour = BEAM_MMISSILE; // unresistable
@@ -923,7 +923,7 @@ static void zappy( zap_type z_type, int power, bolt &pbolt )
pbolt.name = "great blast of cold";
pbolt.colour = BLUE;
pbolt.range = 9 + random2(5);
- pbolt.damage = calc_dice( 6, 15 + power );
+ pbolt.damage = calc_dice( 10, 18 + power );
pbolt.damage.num = 0; // only does explosion damage
pbolt.hit = 20 + power / 10; // 50: 25 100: 30
pbolt.ench_power = power; // used for radius
@@ -2111,16 +2111,17 @@ bool curare_hits_monster( const bolt &beam,
}
// actually poisons a monster (w/ message)
-void poison_monster( monsters *monster,
+bool poison_monster( monsters *monster,
kill_category from_whom,
int levels,
- bool force )
+ bool force,
+ bool verbose)
{
if (!monster->alive())
- return;
+ return (false);
if (!force && mons_res_poison(monster) > 0)
- return;
+ return (false);
const mon_enchant old_pois = monster->get_ench(ENCH_POISON);
monster->add_ench( mon_enchant(ENCH_POISON, levels, from_whom) );
@@ -2128,7 +2129,7 @@ void poison_monster( monsters *monster,
// actually do the poisoning
// note: order important here
- if (new_pois.degree > old_pois.degree)
+ if (new_pois.degree > old_pois.degree && verbose)
{
simple_monster_message( monster,
!old_pois.degree? " is poisoned."
@@ -2138,7 +2139,9 @@ void poison_monster( monsters *monster,
// finally, take care of deity preferences
if (from_whom == KC_YOU)
did_god_conduct( DID_POISON, 5 + random2(3) );
-} // end poison_monster()
+
+ return (new_pois.degree > old_pois.degree);
+}
// actually napalms a monster (w/ message)
void sticky_flame_monster( int mn, kill_category who, int levels )