1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-02-01 19:59:16 +00:00

Fix terra statue interactions with Chaos+Icy, BSoC swap, Alch dup

This commit is contained in:
Jesse Ruderman 2021-08-03 17:15:53 -07:00
parent b67b946126
commit d8509a0528
4 changed files with 12 additions and 12 deletions

View File

@ -1369,7 +1369,7 @@ void celldrawer::draw_features() {
case waTerraWarrior: case waTerraWarrior:
#if CAP_COMPLEX2 #if CAP_COMPLEX2
drawTerraWarrior(V, terracotta::randterra ? (c->landparam & 7) : (5 - (c->landparam & 7)), 7, 0); drawTerraWarrior(V, terracotta::randterra ? (c->wparam & 7) : (5 - (c->wparam & 7)), 7, 0);
#endif #endif
break; break;
@ -2222,7 +2222,7 @@ void celldrawer::draw_wall_full() {
if(c->wall == waFireTrap) if(c->wall == waFireTrap)
asciicol = trapcol[c->wparam & 3]; asciicol = trapcol[c->wparam & 3];
if(c->wall == waTerraWarrior) if(c->wall == waTerraWarrior)
asciicol = terracol[c->landparam & 7]; asciicol = terracol[c->wparam & 7];
if(c->wall == waMineOpen) { if(c->wall == waMineOpen) {
int mines = countMinesAround(c); int mines = countMinesAround(c);

View File

@ -654,15 +654,15 @@ EX void check(cell *c) {
if(c->wall == waTerraWarrior && !c->monst && !racing::on) { if(c->wall == waTerraWarrior && !c->monst && !racing::on) {
bool live = false; bool live = false;
if(randterra) { if(randterra) {
c->landparam++; c->wparam++;
if((c->landparam == 3 && hrand(3) == 0) || if((c->wparam == 3 && hrand(3) == 0) ||
(c->landparam == 4 && hrand(2) == 0) || (c->wparam == 4 && hrand(2) == 0) ||
c->landparam == 5) c->wparam == 5)
live = true; live = true;
} }
else { else {
c->landparam--; c->wparam--;
live = !c->landparam; live = !c->wparam;
} }
if(live) if(live)
c->monst = moTerraWarrior, c->monst = moTerraWarrior,

View File

@ -944,7 +944,7 @@ EX void describeMouseover() {
out += ", "; out += XLAT1(winf[c->wall].name); out += ", "; out += XLAT1(winf[c->wall].name);
if(c->wall == waRose) out += " (" + its(7-rosephase) + ")"; if(c->wall == waRose) out += " (" + its(7-rosephase) + ")";
if(c->wall == waTerraWarrior) out += " (" + its(c->landparam) + ")"; if(c->wall == waTerraWarrior) out += " (" + its(c->wparam) + ")";
#if CAP_COMPLEX2 #if CAP_COMPLEX2
if(isDie(c->wall)) out += " (" + dice::describe(c) + ")"; if(isDie(c->wall)) out += " (" + dice::describe(c) + ")";
#endif #endif

View File

@ -1198,11 +1198,11 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
createArrowTrapAt(c, laTerracotta); createArrowTrapAt(c, laTerracotta);
if(pseudohept(c) && hrand(100) < 40 && c->wall == waNone && !racing::on) { if(pseudohept(c) && hrand(100) < 40 && c->wall == waNone && !racing::on) {
c->wall = waTerraWarrior; c->wall = waTerraWarrior;
c->landparam = terracotta::randterra ? 0 : 3 + hrand(3); c->wparam = terracotta::randterra ? 0 : 3 + hrand(3);
if(hrand(100) < items[itTerra]-10) if(hrand(100) < items[itTerra]-10)
c->landparam--; c->wparam--;
if(hrand(100) < items[itTerra]-10) if(hrand(100) < items[itTerra]-10)
c->landparam--; c->wparam--;
} }
} }
if(d == 7) { if(d == 7) {