mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-09-04 19:47:54 +00:00
if you are in water (and have no Fish), you can now see Orbs of Fish and Aether in adjacent water tiles, and also you can move there and pick them up
This commit is contained in:
@@ -16,7 +16,12 @@ EX array<int, ittypes> items;
|
||||
|
||||
EX map<modecode_t, array<int, ittypes> > hiitems;
|
||||
|
||||
EX bool pickable_from_water(eItem it) {
|
||||
return among(it, itOrbFish, itOrbAether);
|
||||
}
|
||||
|
||||
EX bool cannotPickupItem(cell *c, bool telekinesis) {
|
||||
if(pickable_from_water(c->item) && isWatery(c)) return false;
|
||||
return itemHidden(c) && !telekinesis && !(isWatery(c) && markOrb(itOrbFish));
|
||||
}
|
||||
|
||||
@@ -737,7 +742,7 @@ EX void collectMessage(cell *c2, eItem which) {
|
||||
|
||||
EX bool itemHiddenFromSight(cell *c) {
|
||||
return isWatery(c) && !items[itOrbInvis] && !(items[itOrbFish] && playerInWater())
|
||||
&& !(shmup::on && shmup::boatAt(c));
|
||||
&& !(shmup::on && shmup::boatAt(c)) && !(c->cpdist <= 1 && playerInWater());
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -258,7 +258,8 @@ EX bool passable(cell *w, cell *from, flagtype flags) {
|
||||
}
|
||||
|
||||
if(isWatery(w)) {
|
||||
if(in_gravity_zone(w)) ;
|
||||
if((flags & P_ISPLAYER) && from && isWatery(from) && pickable_from_water(w->item)) ;
|
||||
else if(in_gravity_zone(w)) ;
|
||||
else if(from && from->wall == waBoat && F(P_USEBOAT) &&
|
||||
(!againstCurrent(w, from) || F(P_MARKWATER)) && !(from->item == itOrbYendor)) ;
|
||||
else if(from && isWatery(from) && F(P_CHAIN) && F(P_USEBOAT) && !againstCurrent(w, from)) ;
|
||||
|
Reference in New Issue
Block a user