more Terracotta theming

This commit is contained in:
Zeno Rogue 2017-10-07 00:34:10 +02:00
parent 49d32753e3
commit 96bc0fbd65
5 changed files with 36 additions and 22 deletions

View File

@ -698,7 +698,7 @@ monstertype minf[motypes] = {
},
{ 'W', 0x202020, "Hunting Dog", NODESC},
{ 'T', 0xE2725B, "Terracotta Warrior", NODESC},
{ 'H', 0xA0A0A0, "Mercury Warrior", NODESC},
{ 'J', 0x50A030, "Jiangshi", NODESC},
{ 'B', 0xA00000, "Void Beast", NODESC},
{ 'L', 0xA00000, "Lemur", NODESC},
{ 'W', 0x202020, "Hunting Dog (guarding)", NODESC},
@ -765,7 +765,7 @@ enum eMonster {
moVampire, moBat, moReptile,
moHerdBull, moRagingBull, moSleepBull,
moButterfly, moNarciss, moMirrorSpirit,
moHunterDog, moTerraWarrior, moMercuryGuy, moVoidBeast, moLemur, moHunterGuard,
moHunterDog, moTerraWarrior, moJiangshi, moVoidBeast, moLemur, moHunterGuard,
moIceGolem, moSandBird,
// shmup specials
moPlayer, moBullet, moFlailBullet, moFireball, moTongue, moAirball,
@ -1197,7 +1197,7 @@ itemtype iinf[ittypes] = {
{ '$', 0xD0D000, "Sage's Stone", NODESCYET},
{ '*', 0x40E0D0, "Turquoise", NODESCYET},
{ '*', 0x009090, "Forgotten Relic", NODESCYET},
{ '*', 0x009090, "Warstone", NODESCYET},
{ '(', 0xFFE080, "Ancient Weapon", NODESCYET},
{ 'o', 0x307080, "Orb of the Side I", NODESCYET},
{ 'o', 0x30A080, "Orb of the Side II", NODESCYET},
{ 'o', 0x30D080, "Orb of the Side III", NODESCYET},

View File

@ -375,7 +375,7 @@ bool normalMover(eMonster m) {
m == moRoseBeauty || m == moWolf ||
m == moResearcher || m == moRagingBull ||
m == moNarciss || m == moMirrorSpirit ||
m == moHunterDog || m == moTerraWarrior || m == moMercuryGuy || m == moLemur || m == moHunterGuard ||
m == moHunterDog || m == moTerraWarrior || m == moJiangshi || m == moLemur || m == moHunterGuard ||
m == moIceGolem || slowMover(m);
}

View File

@ -505,6 +505,7 @@ bool drawItemType(eItem it, cell *c, const transmatrix& V, int icol, int ticks,
it == itDogPlains ? &shTriangle :
it == itDodeca ? &shDodeca :
xch == '*' ? &shGem[ct6] :
xch == '(' ? &shKnife :
it == itShard ? &shMFloor[0] :
it == itTreat ? &shTreat :
it == itSlime ? &shEgg :
@ -1210,15 +1211,18 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, int col, dou
queuepoly(VHEAD, shPFace, darkena(col, 1, 0x90));
queuepoly(VHEAD, shArmor, darkena(col, 0, 0xC0));
}
else if(m == moMercuryGuy || m == moLemur) {
ShadowV(V, shPBody);
otherbodyparts(V, darkena(col, 0, 0xC0), m, footphase);
queuepoly(VBODY, shPBody, darkena(col, 0, 0x80));
if(!peace::on) queuepoly(VBODY * Mirror, shPSword, darkena(col, 0, 0xF0));
queuepoly(VHEAD, shTerraHead, darkena(col, 0, 0x80));
queuepoly(VHEAD, shPFace, darkena(col, 0, 0x80));
queuepoly(VBODY, shTerraArmor1, darkena(col, 1, 0x40));
queuepoly(VBODY, shTerraArmor2, darkena(col, 1, 0x40));
else if(m == moJiangshi || m == moLemur) {
ShadowV(V, shJiangShi);
auto z2 = geom3::lev_to_factor(abs(sin(footphase * M_PI * 2)) * geom3::human_height);
auto V0 = V;
auto V = mmscale(V0, z2);
otherbodyparts(V, darkena(col, 0, 0xFF), m, m == moJiangshi ? 0 : footphase);
queuepoly(VBODY, shJiangShi, darkena(col, 0, 0xFF));
queuepoly(VBODY, shJiangShiDress, darkena(0x202020, 0, 0xFF));
queuepoly(VHEAD, shTerraHead, darkena(0x101010, 0, 0xFF));
queuepoly(VHEAD, shPFace, darkena(col, 0, 0xFF));
queuepoly(VHEAD, shJiangShiCap1, darkena(0x800000, 0, 0xFF));
queuepoly(VHEAD, shJiangShiCap2, darkena(0x400000, 0, 0xFF));
}
else if(m == moGhost || m == moSeep || m == moFriendlyGhost) {
if(m == moFriendlyGhost) col = fghostcolor(ticks, where);
@ -2832,8 +2836,9 @@ void placeSidewall(cell *c, int i, int sidepar, const transmatrix& V, bool warp,
int aw = away(V2); prio += aw;
if(!detaillevel && aw < 0) return;
// queuepoly(V2 * xpush(.1), shSnowball, aw ? 0xFFFFFFFF : 0xFF0000FF);
// prio += c->cpdist - c->mov[i]->cpdist;
queuepolyat(V2,
(mirr?shMFloorSide:warp?shTriheptaSide:shFloorSide)[sidepar][c->type==6?0:1], col, prio);
}
@ -3948,9 +3953,11 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
placeSidewallX(c, i, SIDE_WTS3, V, warp, false, darkena(wcol2, fd, alpha));
}
}
else forCellIdEx(c2, i, c) {
if(!highwall(c2) || conegraph(c2))
{ placeSidewallX(c, i, SIDE_WALL, V, warp, false, darkena(wcol2, fd, alpha)); }
else {
forCellIdEx(c2, i, c)
if(!highwall(c2) || conegraph(c2)) {
placeSidewallX(c, i, SIDE_WALL, V, warp, false, darkena(wcol2, fd, alpha));
}
}
}
}

View File

@ -224,7 +224,7 @@ int isNative(eLand l, eMonster m) {
return m == moLemur ? 2 : 0;
case laTerracotta:
return m == moMercuryGuy ? 2 : m == moTerraWarrior ? 1 : 0;
return m == moJiangshi ? 2 : m == moTerraWarrior ? 1 : 0;
case laBlizzard:
return (m == moVoidBeast || m == moIceGolem) ? 2 : 0;
@ -5084,10 +5084,10 @@ void setdist(cell *c, int d, cell *from) {
if(c->land == laTerracotta) {
bool nearwarrior = false;
forCellEx(c2, c) if(c2->wall == waTerraWarrior) nearwarrior = true;
if(nearwarrior && hrand(5000) < PT(100 + 2 * kills[moMercuryGuy], 200) && notDippingFor(itTerra))
if(nearwarrior && hrand(5000) < PT(100 + 2 * kills[moJiangshi], 200) && notDippingFor(itTerra))
c->item = itTerra;
if(hrand(20000) < 2 * (items[itTerra] + hard))
c->monst = moMercuryGuy;
c->monst = moJiangshi;
}
if(c->land == laTrollheim && !safety) {

View File

@ -707,7 +707,8 @@ hpcshape
shButterflyBody, shButterflyWing, shGadflyBody, shGadflyWing, shGadflyEye,
shTerraArmor1, shTerraArmor2, shTerraArmor3, shTerraHead, shTerraFace, shJiangShi,
shTerraArmor1, shTerraArmor2, shTerraArmor3, shTerraHead, shTerraFace,
shJiangShi, shJiangShiDress, shJiangShiCap1, shJiangShiCap2,
shDodeca;
@ -1488,7 +1489,10 @@ void buildpolys() {
bshape(shTerraArmor3, PPR_MONSTER_BODY, scalef, 351);
bshape(shTerraHead, PPR_MONSTER_HEAD, scalef, 352);
bshape(shTerraFace, PPR_MONSTER_FACE, scalef, 353);
bshape(shJiangShi, PPR_MONSTER_BODY, scale, 355);
bshape(shJiangShi, PPR_MONSTER_BODY, scalef, 355);
bshape(shJiangShiDress, PPR_MONSTER_BODY, scalef, 356);
bshape(shJiangShiCap1, PPR_MONSTER_HAT0, scalef, 357);
bshape(shJiangShiCap2, PPR_MONSTER_HAT1, scalef, 358);
bshape(shPBody, PPR_MONSTER_BODY, scalef, 85);
bshape(shYeti, PPR_MONSTER_BODY, scalef, 86);
@ -2816,6 +2820,9 @@ NEWSHAPE, 353, 1, 2, -0.006280,-0.006803, -0.001570,-0.039786, 0.007333,-0.06233
NEWSHAPE, 354, 1, 2, 0.250609,-0.000793, 0.091262,-0.024449, 0.090008,-0.008476, -0.131783,-0.007990, -0.229492,-0.028849, -0.208244,0.002239,
NEWSHAPE, 355, 1, 2, -0.120944,-0.046316, -0.118320,-0.065458, -0.026635,-0.134194, 0.069939,-0.150868, 0.257603,-0.099875, 0.263931,-0.098916, 0.295208,-0.074359, 0.292228,-0.069765, 0.274479,-0.081250, 0.293481,-0.057622, 0.290757,-0.055430, 0.266210,-0.078038, 0.289156,-0.044495, 0.286442,-0.042311, 0.263022,-0.071079, 0.275695,-0.039346, 0.256850,-0.068686, 0.254313,-0.048283, 0.242683,-0.074603, 0.079643,-0.108059, 0.017947,-0.089316, 0.039133,-0.032229,
NEWSHAPE, 356, 1, 2, 0.038226,0.003813, 0.036965,0.050265, 0.023804,0.086855, 0.079552,0.105995, 0.217008,0.045866, 0.243467,0.129202, 0.068641,0.159263, -0.027665,0.143726, -0.122085,0.061736,
NEWSHAPE, 357, 1, 2, -0.056345,0.025535, -0.042089,0.052635, 0.008058,0.053871, 0.047795,0.029085,
NEWSHAPE, 358, 1, 2, -0.045357,0.025586, -0.031505,0.043770, 0.005524,0.044623, 0.033574,0.024080,
NEWSHAPE
};