diff --git a/lf.c b/lf.c index 5ff9700..15dea54 100644 --- a/lf.c +++ b/lf.c @@ -13152,6 +13152,7 @@ void turneffectslf(lifeform_t *lf) { lifeform_t *l; int i; int willvanish = B_FALSE; + int donefeetwet = B_FALSE; map = lf->cell->map; @@ -13602,8 +13603,9 @@ void turneffectslf(lifeform_t *lf) { // certain combinations might give announcements... switch (damtype) { case DT_WATER: - if ((bp == BP_FEET) && isplayer(lf) && hasbp(lf, bp)) { + if ((bp == BP_FEET) && isplayer(lf) && hasbp(lf, bp) && !donefeetwet) { msg("Your %s get wet.", getbodypartname(bp)); + donefeetwet = B_TRUE; // don't keep repeating this } break; default: diff --git a/map.c b/map.c index c2991e7..591546f 100644 --- a/map.c +++ b/map.c @@ -944,6 +944,9 @@ void getcellglyph(glyph_t *g, cell_t *c, lifeform_t *viewer) { if (isprone(c->lf)) { g->ch = flip(g->ch); } + if (lfhasflag(c->lf, F_FROZEN)) { + g->colour = C_CYAN; + } return; } else { // we can see the floor here void *thing; @@ -1069,8 +1072,8 @@ object_t *gettopobject(cell_t *where, int forglyph) { } else if (forglyph && hasflag(o->flags, F_NOGLYPH)) { } else { f = hasflag(o->flags, F_IMPASSABLE); - if (f && (f->val[0] > largest)) { - largest = f->val[0]; + if (f && (f->val[1] > largest)) { + largest = f->val[1]; oo = o; } } diff --git a/objects.c b/objects.c index c7c8671..f49cd0a 100644 --- a/objects.c +++ b/objects.c @@ -12167,7 +12167,7 @@ int real_takedamage(object_t *o, unsigned int howmuch, int damtype, int wantanno // special cases.... if (damtype == DT_FIRE) { - if ((o->material->id == MT_FLESH) && rnd(1,3)) { // fire sometimes roasts flesh + if ((o->material->id == MT_FLESH) && onein(3)) { // fire sometimes roasts flesh object_t *meat; meat = addob(o->pile, "chunk of roast meat"); // purposely don't use getweight!