diff --git a/src/common/gamecode/laws.c b/src/common/gamecode/laws.c index c594b4da4..c056006e6 100644 --- a/src/common/gamecode/laws.c +++ b/src/common/gamecode/laws.c @@ -2237,7 +2237,18 @@ display_item(faction *f, unit *u, const item_type * itype) char * bufp = buf; size_t size = sizeof(buf), rsize; - if (u && *i_find(&u->items, itype) == NULL) return false; + if (u!=NULL) { + int i = i_get(u->items, itype); + if (i==0) { + if (u->region->land!=NULL) { + i = i_get(u->region->land->items, itype); + } + if (i==0) { + i = i_get(u->faction->items, itype); + if (i==0) return false; + } + } + } name = resourcename(itype->rtype, 0); key = mkname("iteminfo", name); diff --git a/src/common/gamecode/randenc.c b/src/common/gamecode/randenc.c index bea9f7402..53f6cdb12 100644 --- a/src/common/gamecode/randenc.c +++ b/src/common/gamecode/randenc.c @@ -623,6 +623,10 @@ damage_unit(unit *u, const char *dam, boolean physical, boolean magic) int h; int i, dead = 0, hp_rem = 0, heiltrank; + if (fval(u, RCF_ILLUSIONARY) || u->race == new_race[RC_SPELL]) { + return 0; + } + if (u->number==0) return 0; h = u->hp/u->number; /* HP verteilen */