1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-18 15:00:26 +00:00

shmup:: knives no longer kill Dice

This commit is contained in:
Zeno Rogue 2021-05-30 13:43:29 +02:00
parent 6d63af62ca
commit b63a70f279

View File

@ -1685,9 +1685,13 @@ void moveBullet(monster *m, int delta) {
bool godragon = m->type == moFireball && isDragon(c2->monst); 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))) { if(m->type != moTongue && !(godragon || (c2==m->base && m->type == moArrowTrap) || passable(c2, m->base, P_BULLET | P_MIRRORWALL))) {
m->dead = true; m->dead = true;
if(m->type != moAirball) if(m->type != moAirball && (!isDie(c2->monst) || slayer))
killMonster(c2, m->get_parenttype()); killMonster(c2, m->get_parenttype());
// cell *c = m->base; // cell *c = m->base;
if(m->parent && isPlayer(m->parent)) { if(m->parent && isPlayer(m->parent)) {
@ -1725,10 +1729,6 @@ void moveBullet(monster *m, int delta) {
if(m2->dead) continue; 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 // Flailers only killable by themselves
if(m2->type == moFlailer && m2 != m->parent) continue; if(m2->type == moFlailer && m2 != m->parent) continue;
// be nice to your images! would be too hard otherwise... // be nice to your images! would be too hard otherwise...