mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-19 20:40:10 +00:00
fixup to ElectricLand
This commit is contained in:
parent
d08c5ea0c4
commit
bc12d35053
@ -639,6 +639,7 @@ static const flagtype LF_HAUNTED = Flag(12);
|
|||||||
static const flagtype LF_TROLL = Flag(13);
|
static const flagtype LF_TROLL = Flag(13);
|
||||||
static const flagtype LF_INMIRROR = Flag(14);
|
static const flagtype LF_INMIRROR = Flag(14);
|
||||||
static const flagtype LF_INMIRRORORWALL = Flag(15);
|
static const flagtype LF_INMIRRORORWALL = Flag(15);
|
||||||
|
static const flagtype LF_ELECTRIC = Flag(17);
|
||||||
|
|
||||||
struct landtype {
|
struct landtype {
|
||||||
color_t color;
|
color_t color;
|
||||||
|
10
complex.cpp
10
complex.cpp
@ -211,7 +211,7 @@ EX namespace elec {
|
|||||||
c->wall == waDeadTroll2 ||
|
c->wall == waDeadTroll2 ||
|
||||||
c->wall == waVinePlant ||
|
c->wall == waVinePlant ||
|
||||||
c->wall == waMetal || isAlchAny(c))
|
c->wall == waMetal || isAlchAny(c))
|
||||||
return c->land == laStorms ? ecConductor : ecGrounded;
|
return isElectricLand(c) ? ecConductor : ecGrounded;
|
||||||
if(c->wall == waBarrier)
|
if(c->wall == waBarrier)
|
||||||
return ecIsolator;
|
return ecIsolator;
|
||||||
if(c->wall == waChasm)
|
if(c->wall == waChasm)
|
||||||
@ -220,7 +220,7 @@ EX namespace elec {
|
|||||||
if(shmup::on ? isPlayerOn(c) : (isPlayerOn(c) || stalemate::isMoveto(c) || (items[itOrbEmpathy] && isFriendly(c)))) {
|
if(shmup::on ? isPlayerOn(c) : (isPlayerOn(c) || stalemate::isMoveto(c) || (items[itOrbEmpathy] && isFriendly(c)))) {
|
||||||
if(items[itOrbShield]) return ecIsolator;
|
if(items[itOrbShield]) return ecIsolator;
|
||||||
if(afterOrb) return ecIsolator;
|
if(afterOrb) return ecIsolator;
|
||||||
if(!items[itOrbAether]) return c->land == laStorms ? ecConductor : ecGrounded;
|
if(!items[itOrbAether]) return isElectricLand(c) ? ecConductor : ecGrounded;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if(c->monst && stalemate::moveto) printf("%p: isKilled = %d\n", c, stalemate::isKilled(c));
|
// if(c->monst && stalemate::moveto) printf("%p: isKilled = %d\n", c, stalemate::isKilled(c));
|
||||||
@ -233,9 +233,9 @@ EX namespace elec {
|
|||||||
c->monst != moGhost && c->monst != moIvyDead && c->monst != moIvyNext
|
c->monst != moGhost && c->monst != moIvyDead && c->monst != moIvyNext
|
||||||
&& !(isDragon(c->monst) && !c->hitpoints)
|
&& !(isDragon(c->monst) && !c->hitpoints)
|
||||||
)
|
)
|
||||||
return c->land == laStorms ? (ao ? ecCharged : ecConductor) : ecGrounded;
|
return isElectricLand(c) ? (ao ? ecCharged : ecConductor) : ecGrounded;
|
||||||
|
|
||||||
if(c->land != laStorms)
|
if(!isElectricLand(c))
|
||||||
return ecGrounded;
|
return ecGrounded;
|
||||||
|
|
||||||
if(ao) return ecCharged;
|
if(ao) return ecCharged;
|
||||||
@ -449,7 +449,7 @@ EX namespace elec {
|
|||||||
EX void act() {
|
EX void act() {
|
||||||
int k = tkills();
|
int k = tkills();
|
||||||
for(int i=0; i<numplayers(); i++)
|
for(int i=0; i<numplayers(); i++)
|
||||||
if(multi::playerActive(i) && playerpos(i)->land == laStorms && !afterOrb)
|
if(multi::playerActive(i) && isElectricLand(playerpos(i)) && !afterOrb)
|
||||||
markOrb(itOrbShield), markOrb(itOrbAether);
|
markOrb(itOrbShield), markOrb(itOrbAether);
|
||||||
builder b;
|
builder b;
|
||||||
fire();
|
fire();
|
||||||
|
@ -61,6 +61,7 @@ LANDFLAGCHECK(isHaunted, flag & LF_HAUNTED)
|
|||||||
LANDFLAGCHECK(isTrollLand, flag & LF_TROLL)
|
LANDFLAGCHECK(isTrollLand, flag & LF_TROLL)
|
||||||
LANDFLAGCHECK(inmirror, flag & LF_INMIRROR)
|
LANDFLAGCHECK(inmirror, flag & LF_INMIRROR)
|
||||||
LANDFLAGCHECK(inmirrororwall, flag & LF_INMIRRORORWALL)
|
LANDFLAGCHECK(inmirrororwall, flag & LF_INMIRRORORWALL)
|
||||||
|
LANDFLAGCHECK(isElectricLand, flag & LF_ELECTRIC)
|
||||||
|
|
||||||
MONFLAGCHECK(isGhostable, !(flag & CF_NOGHOST))
|
MONFLAGCHECK(isGhostable, !(flag & CF_NOGHOST))
|
||||||
MONFLAGCHECK(isRaider, flag & CF_RAIDER)
|
MONFLAGCHECK(isRaider, flag & CF_RAIDER)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user