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

graphics/theming for Jelly/Ruins

This commit is contained in:
Zeno Rogue 2018-01-04 15:46:06 +01:00
parent 47f4b9eee8
commit 9bfb1ecddf
3 changed files with 46 additions and 34 deletions

View File

@ -764,8 +764,8 @@ monstertype minf[motypes] = {
{ 'A', 0x80B080, "Green Raider", NODESCYET}, { 'A', 0x80B080, "Green Raider", NODESCYET},
{ 'M', 0x904000, "Brown Raider", NODESCYET}, { 'M', 0x904000, "Brown Raider", NODESCYET},
{ 'C', 0x0060E0, "Blue Raider", NODESCYET}, { 'C', 0x0060E0, "Blue Raider", NODESCYET},
{ '@', 0xC00000, "Switcher A", NODESCYET}, { '@', 0xC00000, "Red Jelly", NODESCYET},
{ '@', 0x0000C0, "Switcher B", NODESCYET}, { '@', 0x0000C0, "Blue Jelly", NODESCYET},
// shmup specials // shmup specials
{ '@', 0xC0C0C0, "Rogue", "In the Shoot'em Up mode, you are armed with thrown Knives."}, { '@', 0xC0C0C0, "Rogue", "In the Shoot'em Up mode, you are armed with thrown Knives."},
@ -1212,11 +1212,11 @@ itemtype iinf[ittypes] = {
"Does not affect multi-tile monsters."}, "Does not affect multi-tile monsters."},
{ '!', 0x80FF00, "Glowing Crystal", crystaldesc}, { '!', 0x80FF00, "Glowing Crystal", crystaldesc},
{ '!', 0x80FF80, "Snake Oil", NODESCYET}, { '!', 0x80FF80, "Snake Oil", NODESCYET},
{ '*', 0x80FF80, "Sea Glass", NODESCYET}, { '!', 0x80FF80, "Sea Glass", NODESCYET},
{ '*', 0xBBCC99, "Chrysoberyl", NODESCYET}, { '*', 0xBBCC99, "Chrysoberyl", NODESCYET},
// { '*', 0xD0D8ED, "Chalcedony", NODESCYET}, // { '*', 0xD0D8ED, "Chalcedony", NODESCYET},
{ '*', 0x80FF80, "Monopole", NODESCYET}, { '*', 0x80FF80, "Monopole", NODESCYET},
{ '*', 0xFF00FF, "Agate", NODESCYET}, { '!', 0xFF00FF, "Tasty Jelly", NODESCYET},
{ 'o', 0x80FF80, "Orb of Phasing", NODESCYET}, { 'o', 0x80FF80, "Orb of Phasing", NODESCYET},
{ 'o', 0xFFFF80, "Orb of Magnetism", NODESCYET}, { 'o', 0xFFFF80, "Orb of Magnetism", NODESCYET},
{ 'o', 0x202020, "Orb of Slaying", NODESCYET}, { 'o', 0x202020, "Orb of Slaying", NODESCYET},
@ -1590,7 +1590,7 @@ const landtype linf[landtypes] = {
{ 0x80FF00, "Docks", NODESCYET}, { 0x80FF00, "Docks", NODESCYET},
{ 0x306030, "Ruined City", NODESCYET}, { 0x306030, "Ruined City", NODESCYET},
{ 0x306030, "Magnetosphere", NODESCYET}, { 0x306030, "Magnetosphere", NODESCYET},
{ 0x306030, "Switch", NODESCYET}, { 0x306030, "Jelly Kingdom", NODESCYET},
}; };
struct landtacinfo { eLand l; int tries, multiplier; }; struct landtacinfo { eLand l; int tries, multiplier; };

View File

@ -664,7 +664,7 @@ bool drawItemType(eItem it, cell *c, const transmatrix& V, int icol, int ticks,
if(it == itZebra) icol = 0xFFFFFF; if(it == itZebra) icol = 0xFFFFFF;
if(it == itLotus) icol = 0x101010; if(it == itLotus) icol = 0x101010;
if(it == itSwitch) icol = minf[passive_switch].color; if(it == itSwitch) icol = minf[active_switch()].color;
transmatrix V2 = V * spin(ticks / 1500.); transmatrix V2 = V * spin(ticks / 1500.);
@ -679,8 +679,8 @@ bool drawItemType(eItem it, cell *c, const transmatrix& V, int icol, int ticks,
if(it == itZebra) if(it == itZebra)
queuepolyat(V * spin(ticks / 1500. + M_PI/(ct6+6)), *xsh, darkena(0x202020, 0, hidden ? 0x40 : 0xF0), PPR_ITEMb); queuepolyat(V * spin(ticks / 1500. + M_PI/(ct6+6)), *xsh, darkena(0x202020, 0, hidden ? 0x40 : 0xF0), PPR_ITEMb);
if(it == itSwitch) /* if(it == itSwitch)
queuepolyat(V * spin(ticks / 1500. + M_PI/(ct6+6)), *xsh, darkena(minf[active_switch()].color, 0, hidden ? 0x40 : 0xF0), PPR_ITEMb); queuepolyat(V * spin(ticks / 1500. + M_PI/S3), *xsh, darkena(minf[active_switch()].color, 0, hidden ? 0x40 : 0xF0), PPR_ITEMb); */
} }
else if(xch == 'o' || it == itInventory) { else if(xch == 'o' || it == itInventory) {
@ -1220,32 +1220,30 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, int col, dou
if(!peace::on) queuepoly(VBODY, shPSword, 0xFFFF00FF); if(!peace::on) queuepoly(VBODY, shPSword, 0xFFFF00FF);
queuepoly(VHEAD, shHood, 0xD0D000C0); queuepoly(VHEAD, shHood, 0xD0D000C0);
} }
else if(isSwitch(m)) { /* else if(isSwitch(m)) {
otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase); otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase);
ShadowV(V, shPBody); ShadowV(V, shPBody);
queuepoly(VBODY, shPBody, darkena(col, 0, 0xC0)); queuepoly(VBODY, shPBody, darkena(col, 0, 0xC0));
if(!peace::on) queuepoly(VBODY, shPSword, 0xFFFF00FF); if(!peace::on) queuepoly(VBODY, shPSword, 0xFFFF00FF);
queuepoly(VHEAD, shHood, darkena(col, 0, 0xFF)); queuepoly(VHEAD, shHood, darkena(col, 0, 0xFF));
} } */
else if(m == moMonk) { else if(m == moMonk) {
otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase); otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase);
ShadowV(V, shPBody); ShadowV(V, shRaiderBody);
queuepoly(VBODY, shPBody, darkena(col, 0, 0xC0)); queuepoly(VBODY, shRaiderBody, darkena(col, 0, 0xFF));
queuepoly(VBODY, shRaiderShirt, darkena(col, 2, 0xFF));
if(!peace::on) queuepoly(VBODY, shPKnife, 0xFFC0C0C0); if(!peace::on) queuepoly(VBODY, shPKnife, 0xFFC0C0C0);
queuepoly(VBODY, shTerraArmor1, darkena(col, 1, 0xFF)); queuepoly(VBODY, shRaiderArmor, darkena(col, 1, 0xFF));
queuepoly(VBODY, shTerraArmor2, darkena(col, 0, 0xFF));
queuepoly(VBODY, shTerraArmor3, darkena(col, 1, 0xFF));
queuepolyat(VBODY, shRatCape2, darkena(col, 2, 0xFF), PPR_MONSTER_ARMOR0); queuepolyat(VBODY, shRatCape2, darkena(col, 2, 0xFF), PPR_MONSTER_ARMOR0);
queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF)); queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF));
queuepoly(VHEAD, shPFace, darkena(0xC0C0A0, 0, 0XFF)); queuepoly(VHEAD, shPFace, darkena(0xC0C0A0, 0, 0XFF));
} }
else if(m == moCrusher) { else if(m == moCrusher) {
otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase); otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase);
ShadowV(V, shPBody); ShadowV(V, shRaiderBody);
queuepoly(VBODY, shPBody, darkena(col, 0, 0xFF)); queuepoly(VBODY, shRaiderBody, darkena(col, 0, 0xFF));
queuepoly(VBODY, shTerraArmor1, darkena(col, 1, 0xFF)); queuepoly(VBODY, shRaiderShirt, darkena(col, 2, 0xFF));
queuepoly(VBODY, shTerraArmor2, darkena(col, 0, 0xFF)); queuepoly(VBODY, shRaiderArmor, darkena(col, 1, 0xFF));
queuepoly(VBODY, shTerraArmor3, darkena(col, 1, 0xFF));
queuepoly(VBODY, shFlailTrunk, darkena(col, 1, 0XFF)); queuepoly(VBODY, shFlailTrunk, darkena(col, 1, 0XFF));
queuepoly(VBODY, shHammerHead, darkena(col, 0, 0XFF)); queuepoly(VBODY, shHammerHead, darkena(col, 0, 0XFF));
queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF)); queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF));
@ -1253,22 +1251,20 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, int col, dou
} }
else if(m == moPair) { else if(m == moPair) {
otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase); otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase);
ShadowV(V, shPBody); ShadowV(V, shRaiderBody);
queuepoly(VBODY, shPBody, darkena(col, 0, 0xC0)); queuepoly(VBODY, shRaiderBody, darkena(col, 0, 0xFF));
queuepoly(VBODY, shTerraArmor1, darkena(col, 1, 0xFF)); queuepoly(VBODY, shRaiderShirt, darkena(col, 2, 0xFF));
queuepoly(VBODY, shTerraArmor2, darkena(col, 0, 0xFF)); queuepoly(VBODY, shRaiderArmor, darkena(col, 1, 0xFF));
queuepoly(VBODY, shTerraArmor3, darkena(col, 1, 0xFF));
queuepoly(VBODY, shPickAxe, darkena(0xA0A0A0, 0, 0XFF)); queuepoly(VBODY, shPickAxe, darkena(0xA0A0A0, 0, 0XFF));
queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF)); queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF));
queuepoly(VHEAD, shPFace, darkena(0xC0C0A0, 0, 0XFF)); queuepoly(VHEAD, shPFace, darkena(0xC0C0A0, 0, 0XFF));
} }
else if(m == moAltDemon || m == moHexDemon) { else if(m == moAltDemon || m == moHexDemon) {
otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase); otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase);
ShadowV(V, shPBody); ShadowV(V, shRaiderBody);
queuepoly(VBODY, shPBody, darkena(col, 0, 0xC0)); queuepoly(VBODY, shRaiderBody, darkena(col, 0, 0xFF));
queuepoly(VBODY, shTerraArmor1, darkena(col, 1, 0xFF)); queuepoly(VBODY, shRaiderShirt, darkena(col, 2, 0xFF));
queuepoly(VBODY, shTerraArmor2, darkena(col, 0, 0xFF)); queuepoly(VBODY, shRaiderArmor, darkena(col, 1, 0xFF));
queuepoly(VBODY, shTerraArmor3, darkena(col, 1, 0xFF));
if(!peace::on) queuepoly(VBODY, shPSword, 0xFFD0D0D0); if(!peace::on) queuepoly(VBODY, shPSword, 0xFFD0D0D0);
queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF)); queuepoly(VHEAD, shRaiderHelmet, darkena(col, 0, 0XFF));
queuepoly(VHEAD, shPFace, darkena(0xC0C0A0, 0, 0XFF)); queuepoly(VHEAD, shPFace, darkena(0xC0C0A0, 0, 0XFF));
@ -1418,6 +1414,12 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, int col, dou
queuepoly(VFISH, shSlime, darkena(col, 0, 0x80)); queuepoly(VFISH, shSlime, darkena(col, 0, 0x80));
queuepoly(VSLIMEEYE, shEyes, 0xFF); queuepoly(VSLIMEEYE, shEyes, 0xFF);
} }
else if(isSwitch(m)) {
queuepoly(VFISH, shJelly, darkena(col, 0, 0xD0));
queuepolyat(VBODY, shJelly, darkena(col, 0, 0xD0), PPR_MONSTER_BODY);
queuepolyat(VHEAD, shJelly, darkena(col, 0, 0xD0), PPR_MONSTER_HEAD);
queuepolyat(VHEAD, shEyes, 0xFF, PPR_MONSTER_HEAD);
}
else if(m == moKrakenH) { else if(m == moKrakenH) {
queuepoly(VFISH, shKrakenHead, darkena(col, 0, 0xD0)); queuepoly(VFISH, shKrakenHead, darkena(col, 0, 0xD0));
queuepoly(VFISH, shKrakenEye, 0xFFFFFFC0); queuepoly(VFISH, shKrakenEye, 0xFFFFFFC0);
@ -1983,9 +1985,10 @@ bool drawMonster(const transmatrix& Vparam, int ct, cell *c, int col) {
// also whatever in the lineview mode // also whatever in the lineview mode
else if(isFriendly(c) || isBug(c) || (c->monst && conformal::on) || c->monst == moKrakenH || (isBull(c->monst) && c->mondir != NODIR) || c->monst == moButterfly || isMagneticPole(c->monst) || else if(isFriendly(c) || isBug(c) || (c->monst && conformal::on) || c->monst == moKrakenH || (isBull(c->monst) && c->mondir != NODIR) || c->monst == moButterfly || isMagneticPole(c->monst) ||
isSwitch(c->monst)) { isSwitch(c->monst) || c->monst == moPair) {
if(c->monst == moKrakenH) Vs = Vb, nospins = nospinb; if(c->monst == moKrakenH) Vs = Vb, nospins = nospinb;
if(!nospins) Vs = Vs * ddspin(c, c->mondir, S42); if(!nospins) Vs = Vs * ddspin(c, c->mondir, S42);
if(c->monst == moPair) Vs = Vs * xpush(-.12);
if(isFriendly(c)) drawPlayerEffects(Vs, c, false); if(isFriendly(c)) drawPlayerEffects(Vs, c, false);
return drawMonsterTypeDH(m, c, Vs, col, darkhistory, footphase); return drawMonsterTypeDH(m, c, Vs, col, darkhistory, footphase);
} }

View File

@ -1009,10 +1009,10 @@ hpcshape
shArrow, shArrow,
shPHead, shPFace, shGolemhead, shHood, shArmor, shPHead, shPFace, shGolemhead, shHood, shArmor,
shAztecHead, shAztecCap, shAztecHead, shAztecCap,
shSabre, shTurban1, shTurban2, shVikingHelmet, shRaiderHelmet, shSabre, shTurban1, shTurban2, shVikingHelmet, shRaiderHelmet, shRaiderArmor, shRaiderBody, shRaiderShirt,
shWestHat1, shWestHat2, shGunInHand, shWestHat1, shWestHat2, shGunInHand,
shKnightArmor, shKnightCloak, shWightCloak, shKnightArmor, shKnightCloak, shWightCloak,
shGhost, shEyes, shSlime, shJoint, shWormHead, shTentHead, shShark, shGhost, shEyes, shSlime, shJelly, shJoint, shWormHead, shTentHead, shShark,
shHedgehogBlade, shHedgehogBladePlayer, shHedgehogBlade, shHedgehogBladePlayer,
shWolfBody, shWolfHead, shWolfLegs, shWolfEyes, shWolfBody, shWolfHead, shWolfLegs, shWolfEyes,
shWolfFrontLeg, shWolfRearLeg, shWolfFrontPaw, shWolfRearPaw, shWolfFrontLeg, shWolfRearLeg, shWolfFrontPaw, shWolfRearPaw,
@ -1745,6 +1745,10 @@ void buildpolys() {
for(int i=0; i<=S84; i++) for(int i=0; i<=S84; i++)
hpcpush(ddi(i, crossf * (0.7 + .2 * sin(i * M_PI * 2 / S84 * 9))) * C0); hpcpush(ddi(i, crossf * (0.7 + .2 * sin(i * M_PI * 2 / S84 * 9))) * C0);
bshape(shJelly, 33);
for(int i=0; i<=S84; i++)
hpcpush(ddi(i, crossf * (0.4 + .03 * sin(i * M_PI * 2 / S84 * 7))) * C0);
bshape(shHeptaMarker, PPR_HEPTAMARK); bshape(shHeptaMarker, PPR_HEPTAMARK);
for(int t=0; t<=S7; t++) hpcpush(ddi(t*S12, shexf*.2) * C0); for(int t=0; t<=S7; t++) hpcpush(ddi(t*S12, shexf*.2) * C0);
@ -2130,6 +2134,9 @@ void buildpolys() {
bshape(shGunInHand, PPR_MONSTER_WPN, scalef, 121); bshape(shGunInHand, PPR_MONSTER_WPN, scalef, 121);
bshape(shVikingHelmet, PPR_MONSTER_HAT0, scalef, 122); bshape(shVikingHelmet, PPR_MONSTER_HAT0, scalef, 122);
bshape(shRaiderHelmet, PPR_MONSTER_HAT0, scalef, 375); bshape(shRaiderHelmet, PPR_MONSTER_HAT0, scalef, 375);
bshape(shRaiderArmor, PPR_MONSTER_BODY, scalef, 380);
bshape(shRaiderBody, PPR_MONSTER_BODY, scalef, 381);
bshape(shRaiderShirt, PPR_MONSTER_BODY, scalef, 382);
bshape(shHood, PPR_MONSTER_HAT0, scalef, 123); bshape(shHood, PPR_MONSTER_HAT0, scalef, 123);
bshape(shPirateHood, PPR_MONSTER_HAT0, scalef, 125); bshape(shPirateHood, PPR_MONSTER_HAT0, scalef, 125);
bshape(shEyepatch, PPR_MONSTER_HAT1, scalef, 126); bshape(shEyepatch, PPR_MONSTER_HAT1, scalef, 126);
@ -3441,7 +3448,9 @@ NEWSHAPE, 376, 1, 1, 0.202167,-0.134605, 0.204591,-0.145446, 0.192856,-0.139999,
NEWSHAPE, 377, 6, 1, -0.206510,0.223410, 0.017622,0.231073, 0.048705,0.240382, 0.069206,0.259727, NEWSHAPE, 377, 6, 1, -0.206510,0.223410, 0.017622,0.231073, 0.048705,0.240382, 0.069206,0.259727,
NEWSHAPE, 378, 7, 1, 0.349494,-0.088062, 0.159923,-0.228824, 0.145483,-0.260010, 0.142821,-0.290692, NEWSHAPE, 378, 7, 1, 0.349494,-0.088062, 0.159923,-0.228824, 0.145483,-0.260010, 0.142821,-0.290692,
NEWSHAPE, 379, 7, 1, 0.649585,0.084560, 0.623391,0.075842, 0.599921,0.058309, 0.572892,0.035489, 0.552783,-0.024612, NEWSHAPE, 379, 7, 1, 0.649585,0.084560, 0.623391,0.075842, 0.599921,0.058309, 0.572892,0.035489, 0.552783,-0.024612,
NEWSHAPE, 380, 1, 2, -0.157063,0.003936, -0.151414,0.044436, -0.065427,0.009052, -0.151414,0.044436, -0.151129,0.067964, -0.072440,0.024229, -0.150301,0.069258, -0.113069,0.110826, -0.037964,0.039249, -0.110463,0.109185, -0.011307,0.146227, -0.108855,0.111771, -0.113069,0.110826, -0.110452,0.155897, -0.007227,0.165082, -0.111749,0.156720, -0.114514,0.196200, 0.003252,0.188966, -0.009486,0.143350, 0.043508,0.083540, 0.057523,0.000604,
NEWSHAPE, 381, 1, 2, -0.128015,0.002500, -0.121343,0.106487, -0.104134,0.121999, -0.063293,0.274181, 0.038783,0.286293, 0.071085,0.292868, 0.087907,0.266956, 0.077475,0.243894, 0.083000,0.234337, 0.068629,0.220991, 0.042226,0.206757, 0.023044,0.227068, -0.009573,0.218873, -0.027348,0.140245, -0.005432,-0.096462, 0.020544,-0.030837,
NEWSHAPE, 382, 1, 2, 0.024784,0.028900, -0.009988,0.111744, -0.018320,0.147991, -0.006519,0.215354, 0.020083,0.223620, 0.029811,0.291799, -0.066579,0.278718, -0.136927,0.082023, -0.147101,-0.050084,
NEWSHAPE NEWSHAPE
}; };