summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/effects.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-08-04 13:15:07 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-08-04 13:15:07 +0000
commit40e2d7d94c4dff6c8e9a0b31139d86adcbb91e7c (patch)
treead874947291db76da968d20c26cdc6507dccf13b /crawl-ref/source/effects.cc
parent80c38b0682f61fc2901af257cc115676bacc9bde (diff)
downloadcrawl-ref-40e2d7d94c4dff6c8e9a0b31139d86adcbb91e7c.tar.gz
crawl-ref-40e2d7d94c4dff6c8e9a0b31139d86adcbb91e7c.zip
Part two of godly changes.
Trog's abilities Might and Haste have been replaced with Regeneration (Trog's Hand) and summoning (Brothers in Arms). Right now, berserking summonings don't behave as intended as they'd rather follow the player than attack a monster closer to them. Also, they should disappear when Berserk runs out. God gifts of Trog and Okawaru are now tweaked towards damage (Trog) or accuracy (Oki). In general, gifts no longer need praying to appear. Right now, this means that they're more likely (I think), so the gift timeout numbers will probably have to be changed. I've also done the much-needed update of tutorial.cc, so that it now gives correct information about praying, saccing and escape hatches. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1962 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/effects.cc')
-rw-r--r--crawl-ref/source/effects.cc45
1 files changed, 38 insertions, 7 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 66ce66797d..7df469dd70 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -1316,6 +1316,21 @@ bool acquirement(object_class_type class_wanted, int agent)
default:
break;
}
+
+ int plusmod = random2(4);
+ // more damage, less accuracy
+ if (agent == GOD_TROG)
+ {
+ thing.plus -= plusmod;
+ thing.plus2 += plusmod;
+ }
+ // more accuracy, less damage
+ else if (agent == GOD_OKAWARU)
+ {
+ thing.plus += plusmod;
+ thing.plus2 -= plusmod;
+ }
+
}
else if (thing.base_type == OBJ_ARMOUR
&& !is_fixed_artefact( thing ))
@@ -1497,18 +1512,22 @@ void yell(void)
mpr("What do you say?", MSGCH_PROMPT);
mprf(" ! - %s", cap_shout.c_str());
- mpr(" a - Order allies to attack a monster");
- if (!(you.prev_targ == MHITNOT || you.prev_targ == MHITYOU))
+ if (!you.duration[DUR_BERSERKER])
{
- struct monsters *target = &menv[you.prev_targ];
+ mpr(" a - Order allies to attack a monster");
- if (mons_near(target) && player_monster_visible(target))
+ if (!(you.prev_targ == MHITNOT || you.prev_targ == MHITYOU))
{
- mpr(" p - Order allies to attack your previous target");
- targ_prev = true;
+ struct monsters *target = &menv[you.prev_targ];
+
+ if (mons_near(target) && player_monster_visible(target))
+ {
+ mpr(" p - Order allies to attack your previous target");
+ targ_prev = true;
+ }
}
- }
+ }
mprf(" Anything else - Stay silent%s",
one_chance_in(20)? " (and be thought a fool)" : "");
@@ -1524,6 +1543,12 @@ void yell(void)
return;
case 'a':
+ if (you.duration[DUR_BERSERKER])
+ {
+ canned_msg(MSG_TOO_BERSERK);
+ return;
+ }
+
mpr("Gang up on whom?", MSGCH_PROMPT);
direction( targ, DIR_TARGET, TARG_ENEMY );
@@ -1544,6 +1569,12 @@ void yell(void)
break;
case 'p':
+ if (you.duration[DUR_BERSERKER])
+ {
+ canned_msg(MSG_TOO_BERSERK);
+ return;
+ }
+
if (targ_prev)
{
mons_targd = you.prev_targ;