mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 17:10:36 +00:00
illegal moves into dice now become kills if you have an Orb of Slaying
This commit is contained in:
parent
93dcc68acb
commit
2fccfdf0c5
@ -809,23 +809,32 @@ bool pcmove::actual_move() {
|
||||
c2->wall = waRichDie;
|
||||
}
|
||||
else {
|
||||
if(markOrb(itOrbSlaying)) goto after_die;
|
||||
if(vmsg(miWALL, siWALL, c2, c2->monst))
|
||||
addMessage(XLAT("You can only push this die if the highest number would be on the top!"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(mip.d == NO_SPACE) {
|
||||
if(markOrb(itOrbSlaying)) goto after_die;
|
||||
if(vmsg(miWALL, siWALL, c2, c2->monst))
|
||||
addMessage(XLAT("No room to push %the1.", c2->monst));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
after_die:
|
||||
|
||||
if(isPushable(c2->wall) && !c2->monst && !nonAdjacentPlayer(c2, cwt.at) && fmsMove) {
|
||||
mip = determinePush(cwt, subdir, [] (movei mi) { return canPushThumperOn(mi, cwt.at); });
|
||||
if(mip.t) changes.ccell(mip.t);
|
||||
if(mip.d == NO_SPACE) {
|
||||
if(isDie(c2->wall) && markOrb(itOrbSlaying)) {
|
||||
changes.ccell(c2);
|
||||
c2->monst = moAngryDie;
|
||||
c2->wall = waNone;
|
||||
goto after_die;
|
||||
}
|
||||
if(vmsg(miWALL, siWALL, c2, moNone)) addMessage(XLAT("No room to push %the1.", c2->wall));
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user