mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-23 14:30:08 +00:00
crossbow:: graves and Round Table are non-blocking, thruVine is blocking
This commit is contained in:
parent
b3b1611f33
commit
a163c80ba1
@ -600,6 +600,7 @@ static constexpr flagtype WF_TIMEOUT = Flag(18);
|
||||
static constexpr flagtype WF_CISLAND = Flag(19);
|
||||
static constexpr flagtype WF_SULPHURIC = Flag(20);
|
||||
static constexpr flagtype WF_HALFVINE = Flag(21);
|
||||
static constexpr flagtype WF_NONBLOCK = Flag(22);
|
||||
|
||||
struct walltype {
|
||||
char glyph;
|
||||
|
@ -891,10 +891,10 @@ WALL( '^', 0x8D694F, "Thumper", waThumperOff, WF_WALL | WF_ACTIVABLE | WF_THUMPE
|
||||
WALL( '^', 0x804000, "Fire", waFire, WF_FIRE | WF_TIMEOUT, RESERVED, 0, sgNone,
|
||||
"This cell is on fire. Most beings and items cannot survive."
|
||||
)
|
||||
WALL( '+', 0xC0C0C0, "ancient grave", waAncientGrave, WF_WALL | WF_HIGHWALL | WF_GRAVE, RESERVED, 0, sgNone,
|
||||
WALL( '+', 0xC0C0C0, "ancient grave", waAncientGrave, WF_WALL | WF_HIGHWALL | WF_GRAVE | WF_NONBLOCK, RESERVED, 0, sgNone,
|
||||
"An ancient grave."
|
||||
)
|
||||
WALL( '+', 0xD0D080, "fresh grave", waFreshGrave, WF_WALL | WF_HIGHWALL | WF_GRAVE, RESERVED, 0, sgNone,
|
||||
WALL( '+', 0xD0D080, "fresh grave", waFreshGrave, WF_WALL | WF_HIGHWALL | WF_GRAVE | WF_NONBLOCK, RESERVED, 0, sgNone,
|
||||
"A fresh grave. Necromancers like those."
|
||||
)
|
||||
WALL( '#', 0x00FFFF, "column", waColumn, WF_WALL | WF_HIGHWALL, RESERVED, 0, sgNone,
|
||||
@ -932,7 +932,7 @@ WALL( '#', 0x8080C0, "crystal cabinet", waGlass, WF_WALL, RESERVED, 0, sgNone,
|
||||
"using an Orb of Aether, your Aether power will be completely drained."
|
||||
)
|
||||
WALL( '#', 0xC0C0C0, "wall of Camelot", waCamelot, WF_WALL | WF_HIGHWALL, RESERVED, 0, sgNone, camelothelp )
|
||||
WALL( '+', 0xA06000, "Round Table", waRoundTable, WF_WALL, RESERVED, 1, sgNone, camelothelp )
|
||||
WALL( '+', 0xA06000, "Round Table", waRoundTable, WF_WALL | WF_NONBLOCK, RESERVED, 1, sgNone, camelothelp )
|
||||
WALL( '=', 0x0000A0, "moat of Camelot", waCamelotMoat, WF_WATER, RESERVED, 0, sgWater, camelothelp)
|
||||
WALL( '+', 0x606060, "big statue of Cthulhu", waBigStatue, WF_WALL, RESERVED, 0, sgNone,
|
||||
"These statues of Cthulhu are too large to carry, and they don't look too "
|
||||
|
@ -67,7 +67,8 @@ EX int loading_time() {
|
||||
}
|
||||
|
||||
EX bool blocks(cell *c) {
|
||||
if(isWall(c) && !among(c->wall, waMirrorWall, waMirror, waCloud)) return true;
|
||||
if(items[itOrbAether]) return false;
|
||||
if(isWall(c) && !among(c->wall, waMirrorWall, waMirror, waCloud) && !isNonblock(c->wall)) return true;
|
||||
// if(c->monst && isMultitile(c->monst)) return true;
|
||||
return false;
|
||||
}
|
||||
@ -97,7 +98,7 @@ EX int create_path() {
|
||||
auto cw2 = ocw2;
|
||||
if(inmirror(c)) cw2 = mirror::reflect(cw2);
|
||||
if(blocks(cw2.peek())) continue;
|
||||
|
||||
if(thruVine(cw2.at, cw2.peek())) continue;
|
||||
|
||||
if(cw2.at->monst) {
|
||||
flagtype attackflags = AF_NORMAL;
|
||||
|
@ -37,6 +37,7 @@ WALLFLAGCHECK(isAlch, flag & WF_ALCHEMY)
|
||||
WALLFLAGCHECK(isAlchAny, flag & WF_ALCHEMY)
|
||||
WALLFLAGCHECK(realred, flag & WF_RED)
|
||||
WALLFLAGCHECK(isWall, flag & WF_WALL)
|
||||
WALLFLAGCHECK(isNonblock, flag & WF_NONBLOCK)
|
||||
WALLFLAGCHECK(isPushable, flag & WF_PUSHABLE)
|
||||
WALLFLAGCHECK(conegraphtype, flag & WF_CONE)
|
||||
WALLFLAGCHECK(isStandardTree, flag & WF_STDTREE)
|
||||
|
@ -204,8 +204,7 @@ EX bool passable(cell *w, cell *from, flagtype flags) {
|
||||
|
||||
if(F(P_BULLET)) {
|
||||
if(isFire(w) || w->wall == waBonfireOff || cellHalfvine(w) ||
|
||||
w->wall == waMagma ||
|
||||
w->wall == waAncientGrave || w->wall == waFreshGrave || w->wall == waRoundTable)
|
||||
w->wall == waMagma || isNonblock(w->wall))
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user