westwall:: monster theme

This commit is contained in:
Zeno Rogue 2018-12-23 17:41:12 +01:00
parent 6ec03a5217
commit 8a414d1768
6 changed files with 12 additions and 10 deletions

View File

@ -781,6 +781,8 @@ monstertype minf[motypes] = {
{ 'B', 0xE07000, "Brown Bug", NODESCYET},
{ 'B', 0xE07060, "Acid Bird", NODESCYET},
{ 'W', 0xA04060, "Variant Warrior", NODESCYET},
{ 'W', 0xC04040, "Falling Dog", NODESCYET},
{ 'B', 0x40C040, "Western Hawk", NODESCYET},
// shmup specials
{ '@', 0xC0C0C0, "Rogue", "In the Shoot'em Up mode, you are armed with thrown Knives."},

View File

@ -10,7 +10,7 @@ static inline void set_flag(flagtype& f, flagtype which, bool b) {
else f &= ~which;
}
static const int motypes = 165;
static const int motypes = 167;
struct monstertype {
char glyph;
@ -68,6 +68,7 @@ enum eMonster {
moPair, moHexDemon, moAltDemon, moMonk, moCrusher,
moSwitch1, moSwitch2,
moBrownBug, moAcidBird, moVariantWarrior,
moFallingDog, moWestHawk,
// shmup specials
moPlayer, moBullet, moFlailBullet, moFireball, moTongue, moAirball, moCrushball,
// temporary

View File

@ -370,7 +370,7 @@ bool isAngryBird(eMonster m) {
return m == moEagle || m == moAlbatross || m == moBomberbird || m == moGargoyle ||
m == moWindCrow || m == moSparrowhawk ||
m == moVampire || m == moBat || m == moButterfly || m == moGadfly ||
m == moAcidBird;
m == moAcidBird || m == moWestHawk;
}
bool isBird(eMonster m) {
@ -412,7 +412,7 @@ bool normalMover(eMonster m) {
m == moHunterGuard || m == moHunterChanging ||
m == moIceGolem ||
m == moSwitch1 || m == moSwitch2 || m == moCrusher || m == moPair ||
m == moBrownBug || m == moVariantWarrior ||
m == moBrownBug || m == moVariantWarrior || m == moFallingDog ||
isMagneticPole(m) ||
slowMover(m);
}

View File

@ -378,6 +378,7 @@ int* killtable[] = {
&kills[moSwitch1], &kills[moSwitch2],
&kills[moMonk], &kills[moCrusher], &kills[moHexDemon], &kills[moAltDemon], &kills[moPair],
&kills[moBrownBug], &kills[moAcidBird],
&kills[moFallingDog], &kills[moVariantWarrior], &kills[moWestHawk],
NULL
};

View File

@ -1209,13 +1209,13 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, color_t col,
}
queuepoly(VABODY, shBugArmor, darkena(col, 1, 0xFF));
}
else if(m == moRunDog || m == moHunterDog || m == moHunterGuard || m == moHunterChanging) {
else if(among(m, moRunDog, moHunterDog, moHunterGuard, moHunterChanging, moFallingDog)) {
if(!mmspatial && !footphase)
queuepoly(VABODY, shDogBody, darkena(col, 0, 0xFF));
else {
ShadowV(V, shDogTorso);
queuepoly(VABODY, shDogTorso, darkena(col, 0, 0xFF));
animallegs(VALEGS, moRunDog, darkena(col, 0, 0xFF), footphase);
animallegs(VALEGS, moRunDog, m == moFallingDog ? 0xFFFFFFFF : darkena(col, 0, 0xFF), footphase);
}
queuepoly(VAHEAD, shDogHead, darkena(col, 0, 0xFF));
@ -1256,7 +1256,7 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, color_t col,
ShadowV(V, shEagle);
queuepoly(VBIRD, shEagle, darkena(col, 0, 0xFF));
}
else if(m == moSparrowhawk) {
else if(m == moSparrowhawk || m == moWestHawk) {
ShadowV(V, shHawk);
queuepoly(VBIRD, shHawk, darkena(col, 0, 0xFF));
}

View File

@ -1157,10 +1157,8 @@ void giantLandSwitch(cell *c, int d, cell *from) {
if(d == 9)
westwall::switchTreasure(c);
ONEMPTY {
if(hrand(4500) < items[itWest] + yendor::hardness())
c->monst = moWindCrow;
if(hrand(doCross?3000:30000) < items[itWest] + yendor::hardness() - 5)
c->monst = moAirElemental;
if(hrand(6000) < 5 + items[itWest] + yendor::hardness())
c->monst = hrand(100) < 20 ? moWestHawk : moFallingDog;
}
break;