diff options
author | Adam Borowski <kilobyte@angband.pl> | 2011-01-14 01:17:15 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2011-01-14 01:17:15 +0100 |
commit | a9ce00c51c2a026afe85bbcd781be31fb7afcf8d (patch) | |
tree | 72b7c17557da84451d9832adcd36cae04f4a1ca2 /crawl-ref/source/attitude-change.cc | |
parent | 2b9a81daa04dab5bd1d21c21b77a39822acc5a26 (diff) | |
download | crawl-ref-a9ce00c51c2a026afe85bbcd781be31fb7afcf8d.tar.gz crawl-ref-a9ce00c51c2a026afe85bbcd781be31fb7afcf8d.zip |
Axe the ring of Charms. Those damn witches hexed it!
After several attempts to balance it, it was always either overpowered or
useless. No wonders, we have such diverse races as kobolds, orcs, merfolk,
mummies and draconians -- it's hard to come up with a formula that matches
monsters of that races well.
There's a minor save breakage: brooch of Shielding, robe of Clouds and hat
of Pondering have their descriptions shifted by one, the hat of Pondering
causes rain clouds. We don't have any ifdefs for art-data.txt, the breakage
is small enough I didn't bother with shims.
Diffstat (limited to 'crawl-ref/source/attitude-change.cc')
-rw-r--r-- | crawl-ref/source/attitude-change.cc | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/crawl-ref/source/attitude-change.cc b/crawl-ref/source/attitude-change.cc index 4757fc67e5..2000652b78 100644 --- a/crawl-ref/source/attitude-change.cc +++ b/crawl-ref/source/attitude-change.cc @@ -145,77 +145,6 @@ void fedhas_neutralise(monster* mons) } } -static void _print_charm_converted_speech(const std::string key, - monster *mon, - msg_channel_type channel) -{ - std::string msg = getSpeakString("charm_converted_" + key); - - if (!msg.empty()) - { - msg = do_mon_str_replacements(msg, mon); - mpr(msg.c_str(), channel); - } -} - -void passive_enslavement_convert(monster* mons) -{ - if (you.are_charming() - && mons->alive() - && is_player_same_species(mons->type, false) - && !form_changed_physiology() - && mons->foe == MHITYOU - && !mons->is_summoned() - && !mons->is_shapeshifter() - && !testbits(mons->flags, MF_ATT_CHANGE_ATTEMPT) - && !mons->friendly() - && you.visible_to(mons) - && !mons->asleep() - && !mons_is_confused(mons) - && !mons->paralysed()) - { - mons->flags |= MF_ATT_CHANGE_ATTEMPT; - - const int hd = mons->hit_dice; - - if (random2(random2(you.experience_level)) - > random2(hd) + hd + random2(5) - && hd * hd < you.experience_level * 7) - { - passive_enslavement_convert_monster(mons); - stop_running(); - } - } -} - -// enslavement for RING_CHARM -void passive_enslavement_convert_monster(monster* mons) -{ - if (one_chance_in(1 + mons->hit_dice * mons->hit_dice)) - { - _print_charm_converted_speech("reaction_sight", mons, - MSGCH_FRIEND_ENCHANT); - if (!one_chance_in(3)) - _print_charm_converted_speech("speech_sight", mons, MSGCH_TALK); - - mons->attitude = ATT_FRIENDLY; - - // The monster is not really *created* friendly, but should it - // become hostile later on, it won't count as a good kill. - mons->flags |= MF_NO_REWARD; - - if (mons->is_patrolling()) - // Make monster stop patrolling and forget their patrol point, - // they're supposed to follow you now. - mons->patrol_point = coord_def(0, 0); - } - else - mons->add_ench(ENCH_CHARM); - - behaviour_event(mons, ME_ALERT, MHITNOT); - mons_att_changed(mons); -} - // Make summoned (temporary) god gifts disappear on penance or when // abandoning the god in question (Trog or TSO). bool make_god_gifts_disappear() |