From e5b0adc995eba28cdaa448e345e0e58d4a8c61a8 Mon Sep 17 00:00:00 2001 From: dshaligram Date: Sat, 27 Oct 2007 08:18:41 +0000 Subject: Trunk->0.3 merge (2607-2609, 2611): Monster xp tweaks, net branding fix, hobgoblin maxhp drop, toxic radiance fix for submerged monsters. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.3@2614 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/acr.cc | 4 ++-- crawl-ref/source/makeitem.cc | 7 ++++--- crawl-ref/source/mgrow.cc | 18 ++++++++++-------- crawl-ref/source/mon-data.h | 4 ++-- crawl-ref/source/spells2.cc | 3 ++- crawl-ref/source/view.cc | 2 +- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index 83dfcf9d6f..c44123436b 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -2505,8 +2505,6 @@ static void show_message_line(std::string line) mpr(line.c_str()); else { - take_note(Note( NOTE_MESSAGE, MSGCH_PLAIN, 0, line.c_str() )); - std::string sender = line.substr(0, sender_pos); line = line.substr(sender_pos + 1); trim_string(line); @@ -2518,6 +2516,8 @@ static void show_message_line(std::string line) fs.textcolor(LIGHTGREY); fs.cprintf("%s", line.c_str()); formatted_mpr(fs, MSGCH_PLAIN, 0); + take_note(Note( NOTE_MESSAGE, MSGCH_PLAIN, 0, + (sender + ": " + line).c_str() )); } } diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc index 5bed8798aa..32a54b21d2 100644 --- a/crawl-ref/source/makeitem.cc +++ b/crawl-ref/source/makeitem.cc @@ -1815,9 +1815,10 @@ int items( int allow_uniques, // not just true-false, if (get_equip_race(mitm[p]) == ISFLAG_ORCISH && one_chance_in(3)) set_item_ego_type( mitm[p], OBJ_MISSILES, SPMSL_POISONED ); - // Un-poison sling bullets. - if (mitm[p].sub_type == MI_SLING_BULLET - && get_ammo_brand( mitm[p] ) == SPMSL_POISONED) + // Un-poison sling bullets, unbrand nets. + if ((mitm[p].sub_type == MI_SLING_BULLET + && get_ammo_brand( mitm[p] ) == SPMSL_POISONED) + || mitm[p].sub_type == MI_THROWING_NET) { set_item_ego_type( mitm[p], OBJ_MISSILES, SPMSL_NORMAL ); } diff --git a/crawl-ref/source/mgrow.cc b/crawl-ref/source/mgrow.cc index ea08169523..e6d0b80b90 100644 --- a/crawl-ref/source/mgrow.cc +++ b/crawl-ref/source/mgrow.cc @@ -13,9 +13,9 @@ #include "stuff.h" // Base experience required by a monster to reach HD 1. -const int monster_xp_base = 10; +const int monster_xp_base = 15; // Experience multiplier to determine the experience needed to gain levels. -const int monster_xp_multiplier = 130; +const int monster_xp_multiplier = 150; const mons_experience_levels mexplevs; // Monster growing-up sequences. You can specify a chance to indicate that @@ -70,7 +70,7 @@ mons_experience_levels::mons_experience_levels() delta = std::min( std::max(delta, monster_xp_base * monster_xp_multiplier / 100), - 2500); + 2000); experience += delta; } } @@ -142,15 +142,17 @@ bool monsters::level_up() // A little maxhp boost. if (max_hit_points < 1000) { - int hpboost = hit_dice > 3? max_hit_points / 8 : max_hit_points / 4; + int hpboost = + (hit_dice > 3? max_hit_points / 8 : max_hit_points / 4) + + random2(5); + + // Not less than 3 hp, not more than 25. + hpboost = std::min(std::max(hpboost, 3), 25); + #ifdef DEBUG_DIAGNOSTICS mprf(MSGCH_DIAGNOSTICS, "%s: HD: %d, maxhp: %d, boost: %d", name(DESC_PLAIN).c_str(), hit_dice, max_hit_points, hpboost); #endif - if (hpboost < 2) - hpboost = 2; - if (hpboost > 20) - hpboost = 20; max_hit_points += hpboost; hit_points += hpboost; diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index 1f92f36078..809971278a 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -524,7 +524,7 @@ MR_NO_FLAGS, 500, 10, MONS_GOBLIN, MONS_HOBGOBLIN, MH_NATURAL, -1, { {AT_HIT, AF_PLAIN, 5}, {AT_NONE, AF_PLAIN, 0}, {AT_NONE, AF_PLAIN, 0}, {AT_NONE, AF_PLAIN, 0} }, - { 1, 4, 5, 0 }, + { 1, 4, 3, 0 }, 2, 10, 10, 7, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_SHOUT, I_NORMAL, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM } @@ -1276,7 +1276,7 @@ MR_RES_FIRE, 600, 12, MONS_ORC, MONS_ORC, MH_NATURAL, -3, { {AT_HIT, AF_PLAIN, 7}, {AT_NONE, AF_PLAIN, 0}, {AT_NONE, AF_PLAIN, 0}, {AT_NONE, AF_PLAIN, 0} }, - { 8, 2, 3, 0 }, + { 9, 2, 3, 0 }, 5, 12, 10, 7, MST_ORC_SORCERER, CE_CONTAMINATED, Z_SMALL, S_SHOUT, I_HIGH, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM } diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc index 64c48926eb..d9cd928d61 100644 --- a/crawl-ref/source/spells2.cc +++ b/crawl-ref/source/spells2.cc @@ -828,7 +828,8 @@ void cast_toxic_radiance(void) { monster = &menv[toxy]; - if (monster->type != -1 && mons_near(monster)) + if (monster->type != -1 && mons_near(monster) + && !monster->submerged()) { // Monsters affected by corona are still invisible in that // radiation passes through them without affecting them. Therefore, diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index fe0fbdc64a..9c51826ca3 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -668,7 +668,7 @@ inline static void beogh_follower_convert(monsters *monster) const int hd = monster->hit_dice; if (you.piety >= 75 && !you.penance[GOD_BEOGH] && - random2(you.piety / 15) + random2(12) + random2(you.piety / 15) + random2(4 + you.experience_level / 3) > random2(hd) + hd + random2(5)) { int wpn = you.equip[EQ_WEAPON]; -- cgit v1.2.3-54-g00ecf