diff options
-rw-r--r-- | crawl-ref/source/itemprop.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 47 |
2 files changed, 46 insertions, 9 deletions
diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc index b1420070d0..1feee1460f 100644 --- a/crawl-ref/source/itemprop.cc +++ b/crawl-ref/source/itemprop.cc @@ -830,17 +830,17 @@ void set_helmet_random_desc( item_def &item ) if (is_hard_helmet(item)) item.plus2 = random2(THELM_NUM_DESCS); - else + else item.plus2 = random2(THELM_DESC_MAX_SOFT + 1); } -// +// // Ego item functions: // bool set_item_ego_type( item_def &item, int item_type, int ego_type ) { - if (item.base_type == item_type - && !is_random_artefact( item ) + if (item.base_type == item_type + && !is_random_artefact( item ) && !is_fixed_artefact( item )) { item.special = ego_type; diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 9dff7464af..83204da7b3 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -840,6 +840,27 @@ static bool blessing_healing(monsters *mon, bool extra) return heal_monster(mon, mon->max_hit_points, extra); } +static bool tso_blessing_holy_wpn(monsters *mon) +{ + // Pick a monster's weapon. + const int weapon = mon->inv[MSLOT_WEAPON]; + + if (weapon == NON_ITEM) + return false; + + item_def& wpn(mitm[weapon]); + + if (get_weapon_brand(wpn) == SPWPN_HOLY_WRATH) + return false; + + // And make it holy. + set_equip_desc(wpn, ISFLAG_GLOWING); + set_item_ego_type(wpn, OBJ_WEAPONS, SPWPN_HOLY_WRATH); + wpn.colour = YELLOW; + + return true; +} + static bool beogh_blessing_reinforcement() { bool success = false; @@ -944,13 +965,29 @@ void bless_follower(god_type god, blessed = (follower && !mons_near(follower)) ? "a follower" : mon->name(DESC_NOCAP_A).c_str(); - // Turn a monster into a priestly monster, if possible. - if (god == GOD_BEOGH && chance == 0) + if (chance == 0) { - if (beogh_blessing_priesthood(mon)) + switch (god) { - result = "priesthood"; - goto blessing_done; + case GOD_SHINING_ONE: + // Brand a monster's weapon with holy wrath, if + // possible. + if (tso_blessing_holy_wpn(mon)) + { + result = "holy attack power"; + goto blessing_done; + } + break; + case GOD_BEOGH: + // Turn a monster into a priestly monster, if possible. + if (beogh_blessing_priesthood(mon)) + { + result = "priesthood"; + goto blessing_done; + } + break; + default: + break; } } |