mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-02 12:19:18 +00:00
monster added: Hag
This commit is contained in:
parent
7dfa614e6a
commit
d22965a1da
@ -1682,6 +1682,10 @@ ITEM('>', 0xFF6060, "fatigue", itFatigue, IC_NAI, ZERO, RESERVED, osNone,
|
|||||||
"Press 't' or click the destination to activate."
|
"Press 't' or click the destination to activate."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
MONSTER('H', 0x181818, "Hag", moHexer, CF_FACE_UP, RESERVED, moYeti,
|
||||||
|
"Hags can curse you from afar!")
|
||||||
|
|
||||||
|
|
||||||
//shmupspecials
|
//shmupspecials
|
||||||
MONSTER( '@', 0xC0C0C0, "Rogue", moPlayer, CF_FACE_UP | CF_PLAYER, RESERVED, moNone, "In the Shoot'em Up mode, you are armed with thrown Knives.")
|
MONSTER( '@', 0xC0C0C0, "Rogue", moPlayer, CF_FACE_UP | CF_PLAYER, RESERVED, moNone, "In the Shoot'em Up mode, you are armed with thrown Knives.")
|
||||||
MONSTER( '*', 0xC0C0C0, "Knife", moBullet, ZERO | CF_BULLET, RESERVED, moNone, "A simple, but effective, missile, used by rogues.")
|
MONSTER( '*', 0xC0C0C0, "Knife", moBullet, ZERO | CF_BULLET, RESERVED, moNone, "A simple, but effective, missile, used by rogues.")
|
||||||
|
@ -2286,6 +2286,15 @@ EX bool drawMonsterType(eMonster m, cell *where, const shiftmatrix& V1, color_t
|
|||||||
int acol = col;
|
int acol = col;
|
||||||
queuepoly(VAHEAD, cgi.shTrylobiteHead, darkena(acol, 0, 0xFF));
|
queuepoly(VAHEAD, cgi.shTrylobiteHead, darkena(acol, 0, 0xFF));
|
||||||
}
|
}
|
||||||
|
else if(m == moHexer) {
|
||||||
|
const shiftmatrix VBS = VBODY * otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase);
|
||||||
|
ShadowV(V, cgi.shFemaleBody);
|
||||||
|
queuepoly(VBS, cgi.shFemaleBody, darkena(0x800080, 0, 0xFF));
|
||||||
|
queuepoly(VHEAD1, cgi.shWitchHair, darkena(0xFF00FF, 1, 0xFF));
|
||||||
|
queuepoly(VHEAD, cgi.shPFace, darkena(0xFFFFFF, 0, 0xFF));
|
||||||
|
queuepoly(VBS, cgi.shWitchDress, darkena(col, 1, 0XC0));
|
||||||
|
humanoid_eyes(V, 0xF000F0FF);
|
||||||
|
}
|
||||||
else if(isWitch(m)) {
|
else if(isWitch(m)) {
|
||||||
const shiftmatrix VBS = VBODY * otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase);
|
const shiftmatrix VBS = VBODY * otherbodyparts(V, darkena(col, 1, 0xFF), m, footphase);
|
||||||
int cc = 0xFF;
|
int cc = 0xFF;
|
||||||
|
@ -1874,6 +1874,28 @@ EX void specialMoves() {
|
|||||||
if(shot || dont_approach) c->stuntime = 1;
|
if(shot || dont_approach) c->stuntime = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if(m == moHexer && c->item && (classflag(c->item) & IF_CURSE) && !peace::on) {
|
||||||
|
bool shot = false;
|
||||||
|
// bool dont_approach = false;
|
||||||
|
// smaller range on the sphere
|
||||||
|
int firerange = (sphere || getDistLimit() < 5) ? 2 : 4;
|
||||||
|
|
||||||
|
bool dont_approach;
|
||||||
|
for(int i=0; i<isize(targets); i++) {
|
||||||
|
cell *t = targets[i];
|
||||||
|
|
||||||
|
if(isPlayerOn(t) && celldistance(c,t) <= firerange) {
|
||||||
|
addMessage(XLAT("%The1 curses you!", m));
|
||||||
|
items[c->item] += orbcharges(c->item);
|
||||||
|
c->item = itNone;
|
||||||
|
c->stuntime = 1;
|
||||||
|
}
|
||||||
|
if(celldistance(c,t) == firerange+1) dont_approach = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dont_approach) c->stuntime = 1;
|
||||||
|
}
|
||||||
|
|
||||||
else if(m == moVampire) {
|
else if(m == moVampire) {
|
||||||
for(int i=0; i<isize(targets); i++) {
|
for(int i=0; i<isize(targets); i++) {
|
||||||
cell *t = targets[i];
|
cell *t = targets[i];
|
||||||
|
Loading…
Reference in New Issue
Block a user