diff options
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/abl-show.cc | 5 | ||||
-rw-r--r-- | crawl-ref/source/delay.cc | 23 | ||||
-rw-r--r-- | crawl-ref/source/direct.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/itemname.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/monstuff.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/view.cc | 2 |
6 files changed, 31 insertions, 19 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc index 1e3bf2b0c8..ecf933fe8f 100644 --- a/crawl-ref/source/abl-show.cc +++ b/crawl-ref/source/abl-show.cc @@ -1315,9 +1315,8 @@ static bool do_ability(const ability_def& abil) mpr("There's no-one here to preach to!"); return (false); } -// const int pow = (you.skills[SK_INVOCATIONS] + 12) * (50 + you.piety) / 600; - // up to (60 + 33)/3 = 31 - const int pow = ( 2*skill_bump(SK_INVOCATIONS) + you.piety / 6 ) / 3; + // up to (60 + 40)/2 = 50 + const int pow = ( 2*skill_bump(SK_INVOCATIONS) + you.piety / 5 ) / 2; start_delay(DELAY_RECITE, 3, pow, you.hp); exercise( SK_INVOCATIONS, (one_chance_in(3)? 2 : 1) ); diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index e32bcd6c2b..1e0f797446 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -66,6 +66,7 @@ static bool recite_mons_useless(const monsters *mon) || mon->has_ench(ENCH_BERSERK)); } +// power is maximum 50 static int recite_to_monsters(int x, int y, int pow, int unused) { UNUSED(unused); @@ -82,12 +83,24 @@ static int recite_to_monsters(int x, int y, int pow, int unused) if (coinflip()) // nothing happens return (0); - const int resist = mons_resist_magic(mons); + int resist; + const int holiness = mons_holiness(mons); + if (holiness == MH_HOLY) + { + resist = 7 - random2(you.skills[SK_INVOCATIONS]); + if (resist < 0) + resist = 0; + } + else + { + resist = mons_resist_magic(mons); + + // much lower chances at influencing demons + if (holiness == MH_DEMONIC) + pow -= 3 + random2(5); + } + pow -= resist; - - // much lower chances at influencing demons - if (mons_class_holiness(mon) == MH_DEMONIC) - pow -= 3 + random2(5); if (pow > 0) pow = random2avg(pow,2); diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc index 4c6f298417..334793fb33 100644 --- a/crawl-ref/source/direct.cc +++ b/crawl-ref/source/direct.cc @@ -794,9 +794,9 @@ void direction(dist& moves, targeting_type restricts, { monsters &m = menv[mid]; - m.attitude = m.attitude == ATT_FRIENDLY? ATT_NEUTRAL : - m.attitude == ATT_HOSTILE? ATT_FRIENDLY : - ATT_HOSTILE; + m.attitude = (m.attitude == ATT_FRIENDLY? ATT_NEUTRAL : + m.attitude == ATT_HOSTILE ? ATT_FRIENDLY + : ATT_HOSTILE); // To update visual branding of friendlies. Only // seem capabable of adding bolding, not removing it, @@ -1950,7 +1950,7 @@ static void describe_monster(const monsters *mon) mon->pronoun(PRONOUN_CAP).c_str()); } // hostile with target != you - else if (!mons_friendly(mon) && mon->foe != MHITYOU) + else if (!mons_friendly(mon) && !mons_neutral(mon) && mon->foe != MHITYOU) { // special case: batty monsters get set to BEH_WANDER as // part of their special behaviour. diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc index a1220dd627..a7bbc0fbe9 100644 --- a/crawl-ref/source/itemname.cc +++ b/crawl-ref/source/itemname.cc @@ -885,7 +885,7 @@ static const char* staff_secondary_string(int p) { case 0: return "crooked "; case 1: return "knobbly "; - case 2: return "heavily "; + case 2: return "weird "; case 3: return "gnarled "; case 4: return "thin "; case 5: return "curved "; diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 47a57b7e70..92a0f8c514 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -1847,14 +1847,14 @@ static void handle_behaviour(monsters *mon) { bool changed = true; bool isFriendly = mons_friendly(mon); - bool isNeutral = mons_neutral(mon); + bool isNeutral = mons_neutral(mon); bool proxPlayer = mons_near(mon); bool proxFoe; - bool isHurt = (mon->hit_points <= mon->max_hit_points / 4 - 1); + bool isHurt = (mon->hit_points <= mon->max_hit_points / 4 - 1); bool isHealthy = (mon->hit_points > mon->max_hit_points / 2); - bool isSmart = (mons_intel(mon->type) > I_ANIMAL); - bool isScared = mon->has_ench(ENCH_FEAR); - bool isMobile = !mons_is_stationary(mon); + bool isSmart = (mons_intel(mon->type) > I_ANIMAL); + bool isScared = mon->has_ench(ENCH_FEAR); + bool isMobile = !mons_is_stationary(mon); // check for confusion -- early out. if (mon->has_ench(ENCH_CONFUSION)) diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 4cd2e8d3c3..a4036e12b8 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -897,7 +897,7 @@ void handle_monster_shouts(monsters* monster, bool force) // Silent monsters can give noiseless "visual shouts" if the // player can see them, in which case silence isn't checked for. - if (!force && mons_friendly(monster) + if (!force && (mons_friendly(monster) || mons_neutral(monster)) || (type == S_SILENT && !player_monster_visible(monster)) || (type != S_SILENT && (silenced(you.x_pos, you.y_pos) || silenced(monster->x, monster->y)))) |