diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/birth.c | 15 | ||||
-rw-r--r-- | src/defines.h | 41 | ||||
-rw-r--r-- | src/externs.h | 5 | ||||
-rw-r--r-- | src/loadsave.c | 2 | ||||
-rw-r--r-- | src/tables.c | 180 | ||||
-rw-r--r-- | src/types.h | 2 | ||||
-rw-r--r-- | src/wizard2.c | 5 | ||||
-rw-r--r-- | src/xtra2.c | 439 |
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. */ |