diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-03-19 09:46:26 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-03-19 09:46:26 +0000 |
commit | 05a9956798b9ccc82b5ed32412d99f53c60b3b4d (patch) | |
tree | 615f50bf4b85428ecd3b84c0950fc62a07be70e6 /crawl-ref | |
parent | 361d79f1078a756eb41ddf14294cc017c38676a8 (diff) | |
download | crawl-ref-05a9956798b9ccc82b5ed32412d99f53c60b3b4d.tar.gz crawl-ref-05a9956798b9ccc82b5ed32412d99f53c60b3b4d.zip |
* Change Roxanne's spells to include Blink Other (instead of Sandblast)
as spell to fall back on if all others are out of range. (Fixes 2686559.)
* Fix 2690141: Tiles inventory leaking cursedness of items.
* Fix 2687108: inappropriate message flushing during repeat command.
* Fix opening/closing doors not updating exclusion los.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9516 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/acr.cc | 20 | ||||
-rw-r--r-- | crawl-ref/source/dat/database/monspeak.txt | 14 | ||||
-rw-r--r-- | crawl-ref/source/invent.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/mon-spll.h | 8 | ||||
-rw-r--r-- | crawl-ref/source/monstuff.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/mstuff2.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/ouch.cc | 2 |
7 files changed, 53 insertions, 9 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index 06cde2fdfe..e5ee5f59da 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -3069,6 +3069,7 @@ static void _open_door(coord_def move, bool check_confused) } bool seen_secret = false; + std::vector<coord_def> excludes; for (std::set<coord_def>::iterator i = all_door.begin(); i != all_door.end(); ++i) { @@ -3093,6 +3094,14 @@ static void _open_door(coord_def move, bool check_confused) } } grd(dc) = DNGN_OPEN_DOOR; + if (is_excluded(dc)) + excludes.push_back(dc); + } + if (!excludes.empty()) + { + mark_all_excludes_non_updated(); + for (unsigned int i = 0; i < excludes.size(); ++i) + update_exclusion_los(excludes[i]); } you.turn_is_over = true; } @@ -3234,6 +3243,7 @@ static void _close_door(coord_def move) mprf( "You %s the %s%s.", verb, adj, noun ); } + std::vector<coord_def> excludes; for (std::set<coord_def>::const_iterator i = all_door.begin(); i != all_door.end(); ++i) { @@ -3249,6 +3259,14 @@ static void _close_door(coord_def move) env.tile_bk_bg(dc) = TILE_DNGN_CLOSED_DOOR; #endif } + if (is_excluded(dc)) + excludes.push_back(dc); + } + if (!excludes.empty()) + { + mark_all_excludes_non_updated(); + for (unsigned int i = 0; i < excludes.size(); ++i) + update_exclusion_los(excludes[i]); } you.turn_is_over = true; } @@ -3728,7 +3746,7 @@ static int _get_num_and_char_keyfun(int &ch) static int _get_num_and_char(const char* prompt, char* buf, int buf_len) { if (prompt != NULL) - mpr(prompt); + mpr(prompt, MSGCH_PROMPT); line_reader reader(buf, buf_len); diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt index 2cd579d084..6427fc64f7 100644 --- a/crawl-ref/source/dat/database/monspeak.txt +++ b/crawl-ref/source/dat/database/monspeak.txt @@ -2319,8 +2319,6 @@ w:1 %%%% _Roxanne_common_ -@The_monster@ says @to_foe@, "Come a little closer, will you?" - @The_monster@ mutters, "When I said I wanted to live forever... this was not what I had in mind." @The_monster@ says @to_foe@, "At least I didn't end up somewhere with nobody to talk to." @@ -2359,6 +2357,18 @@ _Roxanne_rare_ @The_monster@ says @to_foe@, "A mighty warrior you might be, a mason you are not!" @The_monster@ says @to_foe@, "They said I was crazy for my new spells... Turns out they were right." +%%%% +Roxanne blink_other + +w:20 +__NONE + +@The_monster@ says @to_foe@, "Come a little closer, will you?" + +@The_monster@ says, "I keep my friends close, but my enemies closer." + +w:5 +@The_monster@ says @to_foe@, "Don't just stand there! You can move, can't you?" ## END Roxanne ## %%%% # orc warlord diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc index 00b70258e5..df108101d2 100644 --- a/crawl-ref/source/invent.cc +++ b/crawl-ref/source/invent.cc @@ -484,12 +484,12 @@ bool InvEntry::get_tiles(std::vector<tile_def>& tileset) const const bool equipped = item_is_equipped(*item); if (equipped) { - if (item_cursed(*item)) + if (item_known_cursed(*item)) tileset.push_back(tile_def(TILE_ITEM_SLOT_EQUIP_CURSED, TEX_DEFAULT)); else tileset.push_back(tile_def(TILE_ITEM_SLOT_EQUIP, TEX_DEFAULT)); } - else if (item_cursed(*item)) + else if (item_known_cursed(*item)) tileset.push_back(tile_def(TILE_ITEM_SLOT_CURSED, TEX_DEFAULT)); tileset.push_back(tile_def(TILE_ITEM_SLOT, TEX_DUNGEON)); diff --git a/crawl-ref/source/mon-spll.h b/crawl-ref/source/mon-spll.h index 39c70417b6..0169a74396 100644 --- a/crawl-ref/source/mon-spll.h +++ b/crawl-ref/source/mon-spll.h @@ -960,7 +960,7 @@ }, // --------------------- - // unique's "spellbooks" + // uniques' "spellbooks" // --------------------- // Crusader theme. @@ -975,14 +975,16 @@ } }, + // statue, earth spells + // Blink Other for foes out of the other spells' range { MST_ROXANNE, { SPELL_LEHUDIBS_CRYSTAL_SPEAR, SPELL_BOLT_OF_IRON, + SPELL_BLINK_OTHER, SPELL_BOLT_OF_MAGMA, - SPELL_STONE_ARROW, SPELL_ISKENDERUNS_MYSTIC_BLAST, - SPELL_SANDBLAST + SPELL_STONE_ARROW } }, diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index c1b5e7f59a..061a2f33f7 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -914,11 +914,15 @@ static void _mummy_curse(monsters* monster, killer_type killer, int index) else { if (index == NON_MONSTER) + { mpr("You feel extremely nervous for a moment...", MSGCH_MONSTER_SPELL); + } else if (you.can_see(target)) + { mprf(MSGCH_MONSTER_SPELL, "A malignant aura surrounds %s.", target->name(DESC_NOCAP_THE).c_str()); + } MiscastEffect(target, monster_index(monster), SPTYP_NECROMANCY, pow, random2avg(88, 3), "a mummy death curse"); } diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc index 642531c7a2..50ad416e36 100644 --- a/crawl-ref/source/mstuff2.cc +++ b/crawl-ref/source/mstuff2.cc @@ -507,6 +507,16 @@ void mons_cast(monsters *monster, bolt &pbolt, spell_type spell_cast, return; } + case SPELL_BLINK_OTHER: + { + std::string msg = getSpeakString(monster->name(DESC_PLAIN) + + " blink_other"); + if (!msg.empty()) + { + mons_speaks_msg(monster, msg, MSGCH_TALK, + silenced(you.pos()) || silenced(monster->pos())); + } + } } // If a monster just came into view and immediately cast a spell, diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc index b5957ffe9b..748c4c4443 100644 --- a/crawl-ref/source/ouch.cc +++ b/crawl-ref/source/ouch.cc @@ -981,7 +981,7 @@ void ouch(int dam, int death_source, kill_method_type death_type, mprf(MSGCH_DIAGNOSTICS, "Damage: %d; Hit points: %d", dam, you.hp); #endif - if (!yesno("Die?", true, 'n')) + if (!yesno("Die?", false, 'n')) { take_note(Note( NOTE_DEATH, you.hp, you.hp_max, death_desc.c_str()), true); |