1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 14:37:16 +00:00

help lines and ASCII graphics for Blizzard and Terracotta

This commit is contained in:
Zeno Rogue 2017-10-09 13:00:08 +02:00
parent 0c154d6751
commit 0505bd727c
3 changed files with 38 additions and 4 deletions

View File

@ -122,12 +122,21 @@ void drawBlizzards() {
if(at0>1) at0 -= 1;
transmatrix tpartial = sball.global * rspintox(t) * xpush(hdist0(t) * at0);
if(wmascii || wmblack)
queuechr(tpartial, .2, '.', 0xFFFFFF);
else
queuepoly(tpartial, shSnowball, 0xFFFFFF80);
}
}
for(int ii=0; ii<N; ii++) {
auto& bc = *bcells[ii];
if(isNeighbor(bc.c, mouseover)) {
if(againstWind(mouseover, bc.c))
queuepoly(*bc.gm, shHeptaMarker, 0x00C00040);
if(againstWind(bc.c, mouseover))
queuepoly(*bc.gm, shHeptaMarker, 0xC0000040);
}
int B = size(bc.outorder);
if(B<2) continue;
int i = rand() % B;

View File

@ -2996,6 +2996,9 @@ bool allemptynear(cell *c) {
#include "blizzard.cpp"
static const int trapcol[4] = {0x904040, 0xA02020, 0xD00000, 0x303030};
static const int terracol[8] = {0xD000, 0xE25050, 0xD0D0D0, 0x606060, 0x303030, 0x181818, 0x0080, 0x8080};
void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
qfi.shape = NULL; qfi.special = false;
@ -4006,8 +4009,7 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
}
else if(c->wall == waArrowTrap) {
int trapcol[4] = {0x904040, 0xA02020, 0xD00000, 0x303030};
if(c->wparam >= 2)
if(c->wparam >= 1)
queuepoly(V, shDisk, darkena(trapcol[c->wparam&3], 0, 0xFF));
if(isCentralTrap(c)) arrowtraps.push_back(c);
}
@ -4053,7 +4055,13 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
error = true;
}
else if(!(it || c->monst || c->cpdist == 0)) error = true;
else {
if(c->wall == waArrowTrap)
asciicol = trapcol[c->wparam & 3];
if(c->wall == waTerraWarrior)
asciicol = terracol[c->landparam & 7];
if(!(it || c->monst || c->cpdist == 0)) error = true;
}
int sha = shallow(c);

View File

@ -617,6 +617,9 @@ void gotoHelpFor(eMonster m) {
help = generateHelpForMonster(m);
};
unsigned char lastval;
int windtotal;
void describeMouseover() {
DEBB(DF_GRAPH, (debugfile,"describeMouseover\n"));
@ -646,6 +649,20 @@ void describeMouseover() {
out += " (" + turnstring(t) + XLAT(" to submerge") + ")";
}
}
else if(c->land == laVolcano) {
int id = alchemyval(c, -1)/4;
if(id < 96/4)
out += " (" + turnstring(96/4-id) + XLAT(" to go cold") + ")";
else
out += " (" + turnstring(256/4-id) + XLAT(" to submerge") + ")";
}
else if(c->land == laBlizzard) {
int wm = windmap::at(c);
windtotal += (signed char) (wm-lastval);
lastval = wm;
if(c == cwt.c) windtotal = 0;
out += " [" + its(windtotal) + "]";
}
if(c->land == laTortoise && tortoise::seek()) out += " " + tortoise::measure(getBits(c));