1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 22:39:53 +00:00

Illusions ignore plates (does not change much?)

This commit is contained in:
Zeno Rogue 2018-02-12 00:06:11 +01:00
parent c8b3c7aaf0
commit bcf5e984ad
3 changed files with 4 additions and 5 deletions

View File

@ -1212,7 +1212,7 @@ namespace mirror {
else if(c2->wall == waSmallTree) else if(c2->wall == waSmallTree)
c2->wall = waNone; c2->wall = waNone;
if(fwd) { if(fwd) {
if(noMirrorOn(c2) || !passable(c2, c, P_MONSTER | P_MIRROR | P_MIRRORWALL)) { if(noMirrorOn(c2) || !passable_for(moMimic, c2, c, P_MONSTER | P_MIRROR | P_MIRRORWALL)) {
survive = false; survive = false;
continue; continue;
} }

View File

@ -470,7 +470,7 @@ bool survivesChasm(eMonster m) {
} }
bool ignoresPlates(eMonster m) { bool ignoresPlates(eMonster m) {
return m == moMouse || isFlying(m); return m == moMouse || isFlying(m) || m == moIllusion;
} }
bool itemBurns(eItem it) { bool itemBurns(eItem it) {
@ -649,8 +649,7 @@ bool survivesThorns(eMonster m) {
} }
bool survivesFall(eMonster m) { bool survivesFall(eMonster m) {
return isBird(m) || m == moAirElemental || m == moSkeleton || isDragon(m) || m == moShadow || return isBird(m) || m == moAirElemental || m == moSkeleton || isDragon(m) || m == moShadow || isGhost(m);
isGhost(m);
} }
bool isThorny(eWall w) { return w == waRose; } bool isThorny(eWall w) { return w == waRose; }

View File

@ -789,7 +789,7 @@ bool passable_for(eMonster m, cell *w, cell *from, flagtype extra) {
if(m == moPair) if(m == moPair)
return !(w && from && againstPair(from, w, m)) && passable(w, from, extra); return !(w && from && againstPair(from, w, m)) && passable(w, from, extra);
if(m == passive_switch) return false; if(m == passive_switch) return false;
if(normalMover(m) || isBug(m) || isDemon(m) || m == moHerdBull) { if(normalMover(m) || isBug(m) || isDemon(m) || m == moHerdBull || m == moMimic) {
if((isWitch(m) || m == moEvilGolem) && w->land != laPower && w->land != laHalloween) if((isWitch(m) || m == moEvilGolem) && w->land != laPower && w->land != laHalloween)
return false; return false;
return passable(w, from, extra); return passable(w, from, extra);