summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/birth.c15
-rw-r--r--src/defines.h41
-rw-r--r--src/externs.h5
-rw-r--r--src/loadsave.c2
-rw-r--r--src/tables.c180
-rw-r--r--src/types.h2
-rw-r--r--src/wizard2.c5
-rw-r--r--src/xtra2.c439
8 files changed, 1 insertions, 688 deletions
diff --git a/src/birth.c b/src/birth.c
index 1751a14c..b219a1a0 100644
--- a/src/birth.c
+++ b/src/birth.c
@@ -185,9 +185,6 @@ static void save_prev_data(void)
}
previous_char.luck = p_ptr->luck_base;
- /* Save the chaos patron */
- previous_char.chaos_patron = p_ptr->chaos_patron;
-
/* Save the weapon specialty */
previous_char.weapon = 0;
@@ -225,9 +222,6 @@ static void load_prev_data(bool_ save)
}
temp.luck = p_ptr->luck_base;
- /* Save the chaos patron */
- temp.chaos_patron = p_ptr->chaos_patron;
-
/* Save the weapon specialty */
temp.weapon = 0;
@@ -256,9 +250,6 @@ static void load_prev_data(bool_ save)
p_ptr->luck_base = previous_char.luck;
p_ptr->luck_max = previous_char.luck;
- /* Load the chaos patron */
- p_ptr->chaos_patron = previous_char.chaos_patron;
-
/* Load the history */
for (i = 0; i < 4; i++)
{
@@ -2673,9 +2664,6 @@ static bool_ player_birth_aux_point(void)
/*** Generate ***/
process_hooks(HOOK_BIRTH, "()");
- /* Hack -- get a chaos patron even if you are not a chaos warrior */
- p_ptr->chaos_patron = (randint(MAX_PATRON)) - 1;
-
/* Get luck */
p_ptr->luck_base = rp_ptr->luck + rmp_ptr->luck + rand_range( -5, 5);
p_ptr->luck_max = p_ptr->luck_base;
@@ -3055,9 +3043,6 @@ static bool_ player_birth_aux_auto()
/*** Generate ***/
process_hooks(HOOK_BIRTH, "()");
- /* Hack -- get a chaos patron even if you are not a chaos warrior */
- p_ptr->chaos_patron = (randint(MAX_PATRON)) - 1;
-
/* Input loop */
while (TRUE)
{
diff --git a/src/defines.h b/src/defines.h
index d06746d3..37f0a8e9 100644
--- a/src/defines.h
+++ b/src/defines.h
@@ -147,51 +147,10 @@
*/
#define MAX_SEXES 3
-/* The number of "patrons" available (for Chaos Warriors) */
-#define MAX_PATRON 16
-
/* Number of Random Artifacts */
#define MAX_RANDARTS 84
#define MAX_T_ACT 51
-/* Chaos Warrior: Reward types: */
-#define REW_POLY_SLF 0
-#define REW_GAIN_EXP 1
-#define REW_LOSE_EXP 2
-#define REW_GOOD_OBJ 3
-#define REW_GREA_OBJ 4
-#define REW_CHAOS_WP 5
-#define REW_GOOD_OBS 6
-#define REW_GREA_OBS 7
-#define REW_TY_CURSE 8
-#define REW_SUMMON_M 9
-#define REW_H_SUMMON 10
-#define REW_DO_HAVOC 11
-#define REW_GAIN_ABL 12
-#define REW_LOSE_ABL 13
-#define REW_RUIN_ABL 14
-#define REW_AUGM_ABL 15
-#define REW_POLY_WND 16
-#define REW_HEAL_FUL 17
-#define REW_HURT_LOT 18
-#define REW_CURSE_WP 19
-#define REW_CURSE_AR 20
-#define REW_PISS_OFF 21
-#define REW_WRATH 22
-#define REW_DESTRUCT 23
-#define REW_GENOCIDE 24
-#define REW_MASS_GEN 25
-#define REW_DISPEL_C 26
-#define REW_UNUSED_1 27
-#define REW_UNUSED_2 28
-#define REW_UNUSED_3 29
-#define REW_UNUSED_4 30
-#define REW_UNUSED_5 31
-#define REW_IGNORE 32
-#define REW_SER_UNDE 33
-#define REW_SER_DEMO 34
-#define REW_SER_MONS 35
-
/* bear barehanded attacks ... */
#define MAX_BEAR 8
diff --git a/src/externs.h b/src/externs.h
index f86be687..fdf82f5e 100644
--- a/src/externs.h
+++ b/src/externs.h
@@ -65,9 +65,6 @@ extern cptr stat_names[6];
extern cptr stat_names_reduced[6];
extern cptr window_flag_desc[32];
extern option_type option_info[];
-extern cptr chaos_patrons[MAX_PATRON];
-extern int chaos_stats[MAX_PATRON];
-extern int chaos_rewards[MAX_PATRON][20];
extern martial_arts bear_blows[MAX_BEAR];
extern martial_arts ma_blows[MAX_MA];
extern magic_power mindcraft_powers[MAX_MINDCRAFT_POWERS];
@@ -2181,8 +2178,6 @@ extern bool_ target_set(int mode);
extern bool_ get_aim_dir(int *dp);
extern bool_ get_hack_dir(int *dp);
extern bool_ get_rep_dir(int *dp);
-extern int get_chaos_patron(void);
-extern void gain_level_reward(int chosen_reward);
extern bool_ set_shadow(int v);
extern bool_ set_tim_esp(int v);
extern bool_ tgp_pt(int *x, int * y);
diff --git a/src/loadsave.c b/src/loadsave.c
index 0f01e8ec..48a982c6 100644
--- a/src/loadsave.c
+++ b/src/loadsave.c
@@ -585,7 +585,7 @@ static bool_ do_extra(int flag)
do_s32b(&p_ptr->inertia_controlled_spell, flag);
do_s16b(&p_ptr->last_rewarded_level, flag);
- do_s16b(&p_ptr->chaos_patron, flag);
+ do_s16b(&tmp16s, flag); /* compat */
if (flag == LS_SAVE) { tmp16s = CORRUPTIONS_MAX; }
do_s16b(&tmp16s, flag);
diff --git a/src/tables.c b/src/tables.c
index 60550de7..6430e69a 100644
--- a/src/tables.c
+++ b/src/tables.c
@@ -1639,186 +1639,6 @@ option_type option_info[] =
};
-cptr chaos_patrons[MAX_PATRON] =
-{
- "Slortar",
- "Mabelode",
- "Chardros",
- "Hionhurn",
- "Xiombarg",
-
- "Pyaray",
- "Balaan",
- "Arioch",
- "Eequor",
- "Narjhan",
-
- "Balo",
- "Khorne",
- "Slaanesh",
- "Nurgle",
- "Tzeentch",
-
- "Khaine"
-};
-
-int chaos_stats[MAX_PATRON] =
-{
- A_CON, /* Slortar */
- A_CON, /* Mabelode */
- A_STR, /* Chardros */
- A_STR, /* Hionhurn */
- A_STR, /* Xiombarg */
-
- A_INT, /* Pyaray */
- A_STR, /* Balaan */
- A_INT, /* Arioch */
- A_CON, /* Eequor */
- A_CHR, /* Narjhan */
-
- -1, /* Balo */
- A_STR, /* Khorne */
- A_CHR, /* Slaanesh */
- A_CON, /* Nurgle */
- A_INT, /* Tzeentch */
-
- A_STR, /* Khaine */
-};
-
-
-
-
-int chaos_rewards[MAX_PATRON][20] =
-{
- /* Slortar the Old: */
- {
- REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_SLF,
- REW_POLY_SLF, REW_POLY_SLF, REW_GAIN_ABL, REW_GAIN_ABL, REW_GAIN_EXP,
- REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_AUGM_ABL, REW_AUGM_ABL
- },
-
- /* Mabelode the Faceless: */
- {
- REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_H_SUMMON, REW_SUMMON_M,
- REW_SUMMON_M, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_WND,
- REW_POLY_SLF, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_ABL, REW_SER_UNDE,
- REW_CHAOS_WP, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_GOOD_OBS, REW_GOOD_OBS
- },
-
- /* Chardros the Reaper: */
- {
- REW_WRATH, REW_WRATH, REW_HURT_LOT, REW_PISS_OFF, REW_H_SUMMON,
- REW_SUMMON_M, REW_IGNORE, REW_IGNORE, REW_DESTRUCT, REW_SER_UNDE,
- REW_GENOCIDE, REW_MASS_GEN, REW_MASS_GEN, REW_DISPEL_C, REW_GOOD_OBJ,
- REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_AUGM_ABL, REW_AUGM_ABL
- },
-
- /* Hionhurn the Executioner: */
- {
- REW_WRATH, REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL,
- REW_IGNORE, REW_IGNORE, REW_SER_UNDE, REW_DESTRUCT, REW_GENOCIDE,
- REW_MASS_GEN, REW_MASS_GEN, REW_HEAL_FUL, REW_GAIN_ABL, REW_GAIN_ABL,
- REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_AUGM_ABL, REW_AUGM_ABL
- },
-
- /* Xiombarg the Sword-Queen: */
- {
- REW_TY_CURSE, REW_TY_CURSE, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_POLY_WND,
- REW_GENOCIDE, REW_DISPEL_C, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_SER_MONS,
- REW_GAIN_ABL, REW_CHAOS_WP, REW_GAIN_EXP, REW_AUGM_ABL, REW_GOOD_OBS
- },
-
-
- /* Pyaray the Tentacled Whisperer of Impossible Secretes: */
- {
- REW_WRATH, REW_TY_CURSE, REW_PISS_OFF, REW_H_SUMMON, REW_H_SUMMON,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_SLF,
- REW_POLY_SLF, REW_SER_DEMO, REW_HEAL_FUL, REW_GAIN_ABL, REW_GAIN_ABL,
- REW_CHAOS_WP, REW_DO_HAVOC, REW_GOOD_OBJ, REW_GREA_OBJ, REW_GREA_OBS
- },
-
- /* Balaan the Grim: */
- {
- REW_TY_CURSE, REW_HURT_LOT, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL,
- REW_SUMMON_M, REW_LOSE_EXP, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND,
- REW_SER_UNDE, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_EXP, REW_GAIN_EXP,
- REW_CHAOS_WP, REW_GOOD_OBJ, REW_GOOD_OBS, REW_GREA_OBS, REW_AUGM_ABL
- },
-
- /* Arioch, Duke of Hell: */
- {
- REW_WRATH, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_EXP, REW_H_SUMMON,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF,
- REW_POLY_SLF, REW_MASS_GEN, REW_SER_DEMO, REW_HEAL_FUL, REW_CHAOS_WP,
- REW_CHAOS_WP, REW_GOOD_OBJ, REW_GAIN_EXP, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Eequor, Blue Lady of Dismay: */
- {
- REW_WRATH, REW_TY_CURSE, REW_PISS_OFF, REW_CURSE_WP, REW_RUIN_ABL,
- REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND,
- REW_GOOD_OBJ, REW_GOOD_OBJ, REW_SER_MONS, REW_HEAL_FUL, REW_GAIN_EXP,
- REW_GAIN_ABL, REW_CHAOS_WP, REW_GOOD_OBS, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Narjhan, Lord of Beggars: */
- {
- REW_WRATH, REW_CURSE_AR, REW_CURSE_WP, REW_CURSE_WP, REW_CURSE_AR,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF,
- REW_POLY_WND, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_EXP, REW_AUGM_ABL,
- REW_GOOD_OBJ, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_GREA_OBS
- },
-
- /* Balo the Jester: */
- {
- REW_WRATH, REW_SER_DEMO, REW_CURSE_WP, REW_CURSE_AR, REW_LOSE_EXP,
- REW_GAIN_ABL, REW_LOSE_ABL, REW_POLY_WND, REW_POLY_SLF, REW_IGNORE,
- REW_DESTRUCT, REW_MASS_GEN, REW_CHAOS_WP, REW_GREA_OBJ, REW_HURT_LOT,
- REW_AUGM_ABL, REW_RUIN_ABL, REW_H_SUMMON, REW_GREA_OBS, REW_AUGM_ABL
- },
-
- /* Khorne the Bloodgod: */
- {
- REW_WRATH, REW_HURT_LOT, REW_HURT_LOT, REW_H_SUMMON, REW_H_SUMMON,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_SER_MONS, REW_SER_DEMO,
- REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GOOD_OBJ,
- REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_GREA_OBJ, REW_GREA_OBS
- },
-
- /* Slaanesh: */
- {
- REW_WRATH, REW_PISS_OFF, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_SER_DEMO,
- REW_POLY_SLF, REW_HEAL_FUL, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GAIN_EXP,
- REW_GAIN_EXP, REW_CHAOS_WP, REW_GAIN_ABL, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Nurgle: */
- {
- REW_WRATH, REW_PISS_OFF, REW_HURT_LOT, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF,
- REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GAIN_ABL,
- REW_GAIN_ABL, REW_SER_UNDE, REW_CHAOS_WP, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Tzeentch: */
- {
- REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_LOSE_EXP, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_SLF,
- REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_CHAOS_WP, REW_GREA_OBJ,
- REW_GAIN_ABL, REW_GAIN_ABL, REW_GAIN_EXP, REW_GAIN_EXP, REW_AUGM_ABL
- },
-
- /* Khaine: */
- {
- REW_WRATH, REW_HURT_LOT, REW_PISS_OFF, REW_LOSE_ABL, REW_LOSE_EXP,
- REW_IGNORE, REW_IGNORE, REW_DISPEL_C, REW_DO_HAVOC, REW_DO_HAVOC,
- REW_POLY_SLF, REW_POLY_SLF, REW_GAIN_EXP, REW_GAIN_ABL, REW_GAIN_ABL,
- REW_SER_MONS, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_GOOD_OBS
- }
-};
/* Names used for random artifact name generation */
cptr artifact_names_list =
diff --git a/src/types.h b/src/types.h
index c921d028..538df721 100644
--- a/src/types.h
+++ b/src/types.h
@@ -1607,8 +1607,6 @@ struct player_type
s16b immov_cntr; /* Timed -- Last ``immovable'' command. */
- s16b chaos_patron;
-
s16b recall_dungeon; /* Recall in which dungeon */
s16b word_recall; /* Word of recall counter */
diff --git a/src/wizard2.c b/src/wizard2.c
index 2a372bcd..66ddaa38 100644
--- a/src/wizard2.c
+++ b/src/wizard2.c
@@ -1735,11 +1735,6 @@ void do_cmd_debug(void)
gain_random_corruption();
break;
- /* Specific reward */
- case 'r':
- (void) gain_level_reward(command_arg);
- break;
-
/* Create a trap */
case 'R':
wiz_place_trap(p_ptr->py, p_ptr->px, command_arg);
diff --git a/src/xtra2.c b/src/xtra2.c
index ef753b3a..6f86b5f7 100644
--- a/src/xtra2.c
+++ b/src/xtra2.c
@@ -1975,7 +1975,6 @@ bool_ set_food(int v)
void check_experience(void)
{
int gained = 0;
- bool_ level_reward = FALSE;
bool_ level_corruption = FALSE;
@@ -2086,12 +2085,6 @@ void check_experience(void)
/* Handle stuff */
handle_stuff();
- if (level_reward)
- {
- gain_level_reward(0);
- level_reward = FALSE;
- }
-
if (level_corruption)
{
msg_print("You feel different...");
@@ -5284,438 +5277,6 @@ bool_ get_rep_dir(int *dp)
}
-int get_chaos_patron(void)
-{
- return (((p_ptr->age) + (p_ptr->sc)) % MAX_PATRON);
-}
-
-
-void gain_level_reward(int chosen_reward)
-{
- object_type *q_ptr;
- object_type forge;
- char wrath_reason[32] = "";
- int nasty_chance = 6;
- int dummy = 0, dummy2 = 0;
- int type, effect;
-
-
- if (p_ptr->lev == 13) nasty_chance = 2;
- else if (!(p_ptr->lev % 13)) nasty_chance = 3;
- else if (!(p_ptr->lev % 14)) nasty_chance = 12;
-
- if (randint(nasty_chance) == 1)
- type = randint(20); /* Allow the 'nasty' effects */
- else
- type = randint(15) + 5; /* Or disallow them */
-
- if (type < 1) type = 1;
- if (type > 20) type = 20;
- type--;
-
-
- sprintf(wrath_reason, "the Wrath of %s",
- chaos_patrons[p_ptr->chaos_patron]);
-
- effect = chaos_rewards[p_ptr->chaos_patron][type];
-
- if ((randint(6) == 1) && !chosen_reward)
- {
- msg_format("%^s rewards you with a corruption!",
- chaos_patrons[p_ptr->chaos_patron]);
- gain_random_corruption();
- return;
- }
-
- switch (chosen_reward ? chosen_reward : effect)
- {
- case REW_POLY_SLF :
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou needst a new form, mortal!'");
- do_poly_self();
- break;
-
- case REW_GAIN_EXP:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Well done, mortal! Lead on!'");
- if (p_ptr->exp < PY_MAX_EXP)
- {
- s32b ee = (p_ptr->exp / 2) + 10;
- if (ee > 100000L) ee = 100000L;
- msg_print("You feel more experienced.");
- gain_exp(ee);
- }
- break;
-
- case REW_LOSE_EXP:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou didst not deserve that, slave.'");
- lose_exp(p_ptr->exp / 6);
- break;
-
- case REW_GOOD_OBJ:
- msg_format("The voice of %s whispers:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Use my gift wisely.'");
- acquirement(p_ptr->py, p_ptr->px, 1, FALSE, FALSE);
- break;
-
- case REW_GREA_OBJ:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Use my gift wisely.'");
- acquirement(p_ptr->py, p_ptr->px, 1, TRUE, FALSE);
- break;
-
- case REW_CHAOS_WP:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thy deed hath earned thee a worthy blade.'");
- /* Get local object */
- q_ptr = &forge;
- dummy = TV_SWORD;
- switch (randint(p_ptr->lev))
- {
- case 0:
- case 1:
- dummy2 = SV_DAGGER;
- break;
- case 2:
- case 3:
- dummy2 = SV_MAIN_GAUCHE;
- break;
- case 4:
- case 5:
- case 6:
- dummy2 = SV_RAPIER;
- break;
- case 7:
- case 8:
- dummy2 = SV_SMALL_SWORD;
- break;
- case 9:
- case 10:
- dummy2 = SV_BASILLARD;
- break;
- case 11:
- case 12:
- case 13:
- dummy2 = SV_SHORT_SWORD;
- break;
- case 14:
- case 15:
- dummy2 = SV_SABRE;
- break;
- case 16:
- case 17:
- dummy2 = SV_CUTLASS;
- break;
- case 18:
- case 19:
- dummy2 = SV_KHOPESH;
- break;
- case 20:
- dummy2 = SV_TULWAR;
- break;
- case 21:
- dummy2 = SV_BROAD_SWORD;
- break;
- case 22:
- case 23:
- dummy2 = SV_LONG_SWORD;
- break;
- case 24:
- case 25:
- dummy2 = SV_SCIMITAR;
- break;
- case 26:
- case 27:
- dummy2 = SV_KATANA;
- break;
- case 28:
- case 29:
- dummy2 = SV_BASTARD_SWORD;
- break;
- case 30:
- dummy2 = SV_GREAT_SCIMITAR;
- break;
- case 31:
- dummy2 = SV_CLAYMORE;
- break;
- case 32:
- dummy2 = SV_ESPADON;
- break;
- case 33:
- dummy2 = SV_TWO_HANDED_SWORD;
- break;
- case 34:
- dummy2 = SV_FLAMBERGE;
- break;
- case 35:
- case 36:
- dummy2 = SV_EXECUTIONERS_SWORD;
- break;
- case 37:
- dummy2 = SV_ZWEIHANDER;
- break;
- default:
- dummy2 = SV_BLADE_OF_CHAOS;
- }
-
- object_prep(q_ptr, lookup_kind(dummy, dummy2));
- q_ptr->to_h = 3 + (randint(dun_level)) % 10;
- q_ptr->to_d = 3 + (randint(dun_level)) % 10;
- random_resistance(q_ptr, FALSE, (randint(34) + 4));
- q_ptr->name2 = EGO_CHAOTIC;
-
- /* Apply the ego */
- apply_magic(q_ptr, dun_level, FALSE, FALSE, FALSE);
-
- /* Drop it in the dungeon */
- drop_near(q_ptr, -1, p_ptr->py, p_ptr->px);
- break;
-
- case REW_GOOD_OBS:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thy deed hath earned thee a worthy reward.'");
- acquirement(p_ptr->py, p_ptr->px, randint(2) + 1, FALSE, FALSE);
- break;
-
- case REW_GREA_OBS:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Behold, mortal, how generously I reward thy loyalty.'");
- acquirement(p_ptr->py, p_ptr->px, randint(2) + 1, TRUE, FALSE);
- break;
-
- case REW_TY_CURSE:
- msg_format("The voice of %s thunders:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou art growing arrogant, mortal.'");
- activate_ty_curse();
- break;
-
- case REW_SUMMON_M:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'My pets, destroy the arrogant mortal!'");
- for (dummy = 0; dummy < randint(5) + 1; dummy++)
- {
- (void)summon_specific(p_ptr->py, p_ptr->px, dun_level, 0);
- }
- break;
-
- case REW_H_SUMMON:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou needst worthier opponents!'");
- activate_hi_summon();
- break;
-
- case REW_DO_HAVOC:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Death and destruction! This pleaseth me!'");
- call_chaos();
- break;
-
- case REW_GAIN_ABL:
- msg_format("The voice of %s rings out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Stay, mortal, and let me mold thee.'");
- if ((randint(3) == 1) &&
- !(chaos_stats[p_ptr->chaos_patron] < 0))
- do_inc_stat(chaos_stats[p_ptr->chaos_patron]);
- else
- do_inc_stat(randint(6) - 1);
- break;
-
- case REW_LOSE_ABL:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'I grow tired of thee, mortal.'");
- if ((randint(3) == 1) &&
- !(chaos_stats[p_ptr->chaos_patron] < 0))
- do_dec_stat(chaos_stats[p_ptr->chaos_patron], STAT_DEC_NORMAL);
- else
- (void)do_dec_stat(randint(6) - 1, STAT_DEC_NORMAL);
- break;
-
- case REW_RUIN_ABL:
- msg_format("The voice of %s thunders:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou needst a lesson in humility, mortal!'");
- msg_print("You feel less powerful!");
- for (dummy = 0; dummy < 6; dummy++)
- {
- (void)dec_stat(dummy, 10 + randint(15), TRUE);
- }
- break;
-
- case REW_POLY_WND:
- msg_format("You feel the power of %s touch you.",
- chaos_patrons[p_ptr->chaos_patron]);
- do_poly_wounds();
- break;
-
- case REW_AUGM_ABL:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Receive this modest gift from me!'");
- for (dummy = 0; dummy < 6; dummy++)
- {
- (void) do_inc_stat(dummy);
- }
- break;
-
- case REW_HURT_LOT:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Suffer, pathetic fool!'");
- fire_ball(GF_DISINTEGRATE, 0, (p_ptr->lev * 4), 4);
- take_hit(p_ptr->lev * 4, wrath_reason);
- break;
-
- case REW_HEAL_FUL:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Rise, my servant!'");
- restore_level();
- (void)set_poisoned(0);
- (void)set_blind(0);
- (void)set_confused(0);
- (void)set_image(0);
- (void)set_stun(0);
- (void)set_cut(0);
- hp_player(5000);
- for (dummy = 0; dummy < 6; dummy++)
- {
- (void) do_res_stat(dummy, TRUE);
- }
- break;
-
- case REW_CURSE_WP:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou reliest too much on thy weapon.'");
- (void)curse_weapon();
- break;
-
- case REW_CURSE_AR:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Thou reliest too much on thine equipment.'");
- (void)curse_armor();
- break;
-
- case REW_PISS_OFF:
- msg_format("The voice of %s whispers:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Now thou shalt pay for annoying me.'");
- switch (randint(4))
- {
- case 1:
- activate_ty_curse();
- break;
- case 2:
- activate_hi_summon();
- break;
- case 3:
- if (randint(2) == 1) (void)curse_weapon();
- else (void)curse_armor();
- break;
- default:
- for (dummy = 0; dummy < 6; dummy++)
- {
- (void) dec_stat(dummy, 10 + randint(15), TRUE);
- }
- break;
- }
- break;
-
- case REW_WRATH:
- msg_format("The voice of %s thunders:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Die, mortal!'");
- take_hit(p_ptr->lev * 4, wrath_reason);
- for (dummy = 0; dummy < 6; dummy++)
- {
- (void) dec_stat(dummy, 10 + randint(15), FALSE);
- }
- activate_hi_summon();
- activate_ty_curse();
- if (randint(2) == 1) (void)curse_weapon();
- if (randint(2) == 1) (void)curse_armor();
- break;
-
- case REW_DESTRUCT:
- /* Prevent destruction of quest levels and town */
- if (!is_quest(dun_level) && dun_level)
- {
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Death and destruction! This pleaseth me!'");
- destroy_area(p_ptr->py, p_ptr->px, 25, TRUE, FALSE);
- }
- break;
-
- case REW_GENOCIDE:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Let me relieve thee of thine oppressors!'");
- (void) genocide(FALSE);
- break;
-
- case REW_MASS_GEN:
- msg_format("The voice of %s booms out:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_print("'Let me relieve thee of thine oppressors!'");
- (void) mass_genocide(FALSE);
- break;
-
- case REW_DISPEL_C:
- msg_format("You can feel the power of %s assault your enemies!",
- chaos_patrons[p_ptr->chaos_patron]);
- (void) dispel_monsters(p_ptr->lev * 4);
- break;
-
- case REW_IGNORE:
- msg_format("%s ignores you.",
- chaos_patrons[p_ptr->chaos_patron]);
- break;
-
- case REW_SER_DEMO:
- msg_format("%s rewards you with a demonic servant!", chaos_patrons[p_ptr->chaos_patron]);
- if (!(summon_specific_friendly(p_ptr->py, p_ptr->px, dun_level, SUMMON_DEMON, FALSE)))
- msg_print("Nobody ever turns up...");
- break;
-
- case REW_SER_MONS:
- msg_format("%s rewards you with a servant!", chaos_patrons[p_ptr->chaos_patron]);
- if (!(summon_specific_friendly(p_ptr->py, p_ptr->px, dun_level, SUMMON_NO_UNIQUES, FALSE)))
- msg_print("Nobody ever turns up...");
- break;
-
- case REW_SER_UNDE:
- msg_format("%s rewards you with an undead servant!", chaos_patrons[p_ptr->chaos_patron]);
- if (!(summon_specific_friendly(p_ptr->py, p_ptr->px, dun_level, SUMMON_UNDEAD, FALSE)))
- msg_print("Nobody ever turns up...");
- break;
-
- default:
- msg_format("The voice of %s stammers:",
- chaos_patrons[p_ptr->chaos_patron]);
- msg_format("'Uh... uh... the answer's %d/%d, what's the question?'", type,
- effect );
- break;
- }
-}
-
-
/*
* old -- from PsiAngband.
*/