summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/makeitem.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/makeitem.cc')
-rw-r--r--crawl-ref/source/makeitem.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index ba84d70d98..8d38f422cf 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -2949,10 +2949,14 @@ static void _give_monster_item(monsters *mon, int thing,
mthing.link = NON_ITEM;
unset_ident_flags(mthing, ISFLAG_IDENT_MASK);
- if (get_weapon_brand(mthing) == SPWPN_HOLY_WRATH
- && mons_is_unholy(mon))
+ if (mons_is_unholy(mon)
+ && (is_blessed_blade(mthing)
+ || get_weapon_brand(mthing) == SPWPN_HOLY_WRATH))
{
- set_item_ego_type( mthing, OBJ_WEAPONS, SPWPN_NORMAL );
+ if (is_blessed_blade(mthing))
+ convert2bad(mthing);
+ if (get_weapon_brand(mthing) == SPWPN_HOLY_WRATH)
+ set_item_ego_type(mthing, OBJ_WEAPONS, SPWPN_NORMAL);
}
unwind_var<int> save_speedinc(mon->speed_increment);
@@ -2970,7 +2974,7 @@ static void _give_monster_item(monsters *mon, int thing,
ASSERT(holding_monster(mthing) == mon);
if (!force_item || mthing.colour == BLACK)
- item_colour( mthing );
+ item_colour(mthing);
}
static void _give_scroll(monsters *mon, int level)
@@ -3060,7 +3064,8 @@ static void _give_potion(monsters *mon, int level)
return;
mitm[thing_created].flags = 0;
- _give_monster_item(mon, thing_created);
+ _give_monster_item(mon, thing_created, false,
+ &monsters::pickup_potion);
}
}