static void entityWait() { int i; checkToMap(self); if (self->flags & ON_GROUND) { if (self->active == TRUE) { self->touch = &touch; self->activate = &activate; } if (self->mental == 0) { fireTrigger(self->objectiveName); fireGlobalTrigger(self->objectiveName); fadeBossMusic(); for (i=0;i<20;i++) { addSmoke(self->x + prand() % self->w, self->y + self->h - prand() % 10, "decoration/dust"); } playSoundToMap("sound/enemy/red_grub/thud", BOSS_CHANNEL, self->x, self->y, 0); self->mental = 1; } } }
static void dieWait() { Entity *e; self->thinkTime--; if (self->thinkTime <= 0) { clearContinuePoint(); freeBossHealthBar(); e = addKeyItem("item/heart_container", self->x + self->w / 2, self->y); e->x -= e->w; e->dirY = ITEM_JUMP_HEIGHT; self->action = &entityDieVanish; fadeBossMusic(); player.alpha = 255; } }
static void fallToGround() { Entity *e; self->thinkTime--; if (self->thinkTime == 0) { playSoundToMap("sound/boss/snake_boss/snake_boss_die", BOSS_CHANNEL, self->x, self->y, 0); self->flags &= ~FLY; self->dirX = self->face == LEFT ? -8 : 8; setEntityAnimation(self, "DIE"); } checkToMap(self); if (self->flags & ON_GROUND) { playSoundToMap("sound/common/crash", BOSS_CHANNEL, self->x, self->y, 0); setEntityAnimation(self, "PAIN"); self->thinkTime = 180; self->dirX = 0; self->action = &dieWait; addSmokeAlongBody(); shakeScreen(MEDIUM, 90); e = self->target; while (e != NULL) { e->flags &= ~FLY; e = e->target; } fadeBossMusic(); } else { alignBodyToHead(); } }
static void die() { int i; long onGround; setEntityAnimation(self, "DIE"); self->action = ¨ self->damage = 0; self->flags &= ~FLY; onGround = self->flags & ON_GROUND; checkToMap(self); if (landedOnGround(onGround) == TRUE) { playSoundToMap("sound/enemy/red_grub/thud", BOSS_CHANNEL, self->x, self->y, 0); shakeScreen(LIGHT, 15); for (i=0;i<20;i++) { addSmoke(self->x + prand() % self->w, self->y + self->h - prand() % 10, "decoration/dust"); } fireTrigger(self->objectiveName); fireGlobalTrigger(self->objectiveName); self->die = &entityDieNoDrop; self->action = &dieWait; clearContinuePoint(); increaseKillCount(); freeBossHealthBar(); fadeBossMusic(); } }
static void dieWait() { Entity *e; clearContinuePoint(); increaseKillCount(); freeBossHealthBar(); e = addKeyItem("item/heart_container", self->x + self->w / 2, self->y); e->dirY = ITEM_JUMP_HEIGHT; fadeBossMusic(); entityDieVanish(); }
static void fallout() { self->element = FIRE; self->dirX = 0; self->dirY = 0; self->frameSpeed = 0; self->flags |= DO_NOT_PERSIST; self->action = ¨ fadeBossMusic(); stopSound(BOSS_CHANNEL); }
static void entityWait() { Entity *e; if (self->damage == 0) { self->thinkTime--; self->flags &= ~FLY; if (self->thinkTime <= 0) { clearContinuePoint(); freeBossHealthBar(); e = addKeyItem("item/heart_container", self->x + self->w / 2, self->y); e->y -= e->h; e->dirY = ITEM_JUMP_HEIGHT; fadeBossMusic(); entityDieVanish(); } } else if (self->damage == self->mental && self->health == self->maxHealth) { self->targetY--; if (self->targetY <= 0) { self->targetY = 0; } } checkToMap(self); }
static void die() { Entity *e; playSoundToMap("sound/enemy/tortoise/tortoise_die", -1, self->x, self->y, 0); if (getInventoryItemByObjectiveName("Tortoise Shell") == NULL) { e = dropCollectableItem("item/tortoise_shell", self->x + self->w / 2, self->y, self->face); e->x -= e->w / 2; } addMedal("kill_rampaging"); if (self->startX == -1) { fadeBossMusic(); } entityDie(); }
static void dieFinish() { Entity *e; self->thinkTime--; if (self->thinkTime <= 0) { clearContinuePoint(); increaseKillCount(); freeBossHealthBar(); e = addKeyItem("item/heart_container", self->x + self->w / 2, self->y); e->dirY = ITEM_JUMP_HEIGHT; fadeBossMusic(); entityDieNoDrop(); } }