parent
ab894e0658
commit
930d735740
3 changed files with 10 additions and 5 deletions
12
src/boss.c
12
src/boss.c
|
@ -838,6 +838,10 @@ bool boss_is_vulnerable(Boss *boss) {
|
|||
return boss->current && boss->current->type != AT_Move && boss->current->type != AT_SurvivalSpell && !boss->current->finished;
|
||||
}
|
||||
|
||||
bool boss_is_player_collision_active(Boss *boss) {
|
||||
return boss->current && !boss_is_dying(boss) && !boss_is_fleeing(boss);
|
||||
}
|
||||
|
||||
static DamageResult ent_damage_boss(EntityInterface *ent, const DamageInfo *dmg) {
|
||||
Boss *boss = ENT_CAST(ent, Boss);
|
||||
|
||||
|
@ -1163,10 +1167,10 @@ void process_boss(Boss **pboss) {
|
|||
}
|
||||
|
||||
play_sound_ex("bossdeath", BOSS_DEATH_DELAY * 2, false);
|
||||
} else {
|
||||
if(cabs(boss->pos - global.plr.pos) < BOSS_HURT_RADIUS) {
|
||||
ent_damage(&global.plr.ent, &(DamageInfo) { .type = DMG_ENEMY_COLLISION });
|
||||
}
|
||||
}
|
||||
|
||||
if(boss_is_player_collision_active(boss) && cabs(boss->pos - global.plr.pos) < BOSS_HURT_RADIUS) {
|
||||
ent_damage(&global.plr.ent, &(DamageInfo) { .type = DMG_ENEMY_COLLISION });
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -198,6 +198,7 @@ void boss_finish_current_attack(Boss *boss) attr_nonnull(1);
|
|||
bool boss_is_dying(Boss *boss) attr_nonnull(1); // true if the last attack is over but the BOSS_DEATH_DELAY has not elapsed.
|
||||
bool boss_is_fleeing(Boss *boss) attr_nonnull(1);
|
||||
bool boss_is_vulnerable(Boss *boss) attr_nonnull(1);
|
||||
bool boss_is_player_collision_active(Boss *boss) attr_nonnull(1);
|
||||
|
||||
void boss_death(Boss **boss) attr_nonnull(1);
|
||||
|
||||
|
|
|
@ -429,7 +429,7 @@ static void stage_draw_collision_areas(void) {
|
|||
}
|
||||
}
|
||||
|
||||
if(global.boss && global.boss->current && !dialog_is_active(global.dialog)) {
|
||||
if(global.boss && boss_is_player_collision_active(global.boss)) {
|
||||
r_draw_sprite(&(SpriteParams) {
|
||||
.sprite_ptr = &stagedraw.dummy,
|
||||
.pos = { creal(global.boss->pos), cimag(global.boss->pos) },
|
||||
|
|
Loading…
Reference in a new issue