From b63a70f27962eebf553daea0d3090dacd76ccfa3 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 30 May 2021 13:43:29 +0200 Subject: [PATCH] shmup:: knives no longer kill Dice --- shmup.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/shmup.cpp b/shmup.cpp index 73a0739b..238c49bb 100644 --- a/shmup.cpp +++ b/shmup.cpp @@ -1685,9 +1685,13 @@ void moveBullet(monster *m, int delta) { bool godragon = m->type == moFireball && isDragon(c2->monst); + eMonster ptype = parentOrSelf(m)->type; + bool slayer = m->type == moCrushball || + (markOrb(itOrbSlaying) && (markOrb(itOrbEmpathy) ? isPlayerOrImage(ptype) : ptype == moPlayer)); + if(m->type != moTongue && !(godragon || (c2==m->base && m->type == moArrowTrap) || passable(c2, m->base, P_BULLET | P_MIRRORWALL))) { m->dead = true; - if(m->type != moAirball) + if(m->type != moAirball && (!isDie(c2->monst) || slayer)) killMonster(c2, m->get_parenttype()); // cell *c = m->base; if(m->parent && isPlayer(m->parent)) { @@ -1725,10 +1729,6 @@ void moveBullet(monster *m, int delta) { if(m2->dead) continue; - eMonster ptype = parentOrSelf(m)->type; - bool slayer = m->type == moCrushball || - (markOrb(itOrbSlaying) && (markOrb(itOrbEmpathy) ? isPlayerOrImage(ptype) : ptype == moPlayer)); - // Flailers only killable by themselves if(m2->type == moFlailer && m2 != m->parent) continue; // be nice to your images! would be too hard otherwise...