summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-26 16:51:33 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-26 16:51:33 +0000
commitb3a3163e2b48e0ea058490e452feab7e52f7a7b9 (patch)
tree273b8de07f1db7fd9feab02a330de3dc496119da /crawl-ref/source
parent71fc85edf61aed46b589a2ee5bc7b8ef55c5cc77 (diff)
downloadcrawl-ref-b3a3163e2b48e0ea058490e452feab7e52f7a7b9.tar.gz
crawl-ref-b3a3163e2b48e0ea058490e452feab7e52f7a7b9.zip
Change Trog's retribution to send berserking monsters instead of normal
ones after you. The points system from the old code is still used to get the power level for summon_berserker(), and the "quick reduction for large values" now takes off 20 points instead of 15 to compensate for the monsters' being stronger. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2915 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/religion.cc32
1 files changed, 10 insertions, 22 deletions
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 9c16fcbd9f..982cc93a1e 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -2273,38 +2273,26 @@ static bool trog_retribution()
// physical/berserk theme
if ( coinflip() )
{
- // Would be better if berserking monsters were available,
- // we just send some big bruisers for now.
int count = 0;
int points = 3 + you.experience_level * 3;
while (points > 0)
{
- monster_type punisher = MONS_PROGRAM_BUG;
+ int cost = random2(8) + 3;
+ if (cost > points)
+ cost = points;
+
+ // quick reduction for large values
if (points > 20 && coinflip())
{
- // quick reduction for large values
- punisher = MONS_DEEP_TROLL;
- points -= 15;
- continue;
- }
- else
- {
- const monster_type punishers[10] = {
- MONS_IRON_TROLL, MONS_ROCK_TROLL, MONS_TROLL,
- MONS_MINOTAUR, MONS_MINOTAUR, MONS_TWO_HEADED_OGRE,
- MONS_TWO_HEADED_OGRE, MONS_OGRE, MONS_OGRE, MONS_OGRE
- };
- const int costs[10] = { 10, 10, 6, 3, 3, 4, 4, 3, 3, 3 };
- const int idx = random2(10);
-
- punisher = punishers[idx];
- points -= costs[idx];
+ points -= 10;
+ cost = 10;
}
- if (create_monster(punisher, 0, BEH_HOSTILE, you.x_pos,
- you.y_pos, MHITYOU, 250) != -1)
+ points -= cost;
+
+ if (summon_berserker(cost * 20, false))
count++;
}