wip spawn elly

This commit is contained in:
laochailan 2021-05-09 14:33:02 +02:00 committed by Andrei Alexeyev
parent c947f0c3f9
commit 66ccf18c63
No known key found for this signature in database
GPG key ID: 72D26128040B9690

View file

@ -19,18 +19,6 @@
#include "common_tasks.h"
TASK(boss_appear_stub, NO_ARGS) {
log_warn("FIXME");
}
static void stage6_dialog_pre_boss(void) {
PlayerMode *pm = global.plr.mode;
Stage6PreBossDialogEvents *e;
INVOKE_TASK_INDIRECT(Stage6PreBossDialog, pm->dialog->Stage6PreBoss, &e);
INVOKE_TASK_WHEN(&e->boss_appears, boss_appear_stub);
INVOKE_TASK_WHEN(&e->music_changes, common_start_bgm, "stage6boss_phase1");
}
static void stage6_dialog_pre_final(void) {
PlayerMode *pm = global.plr.mode;
INVOKE_TASK_INDIRECT(Stage6PreFinalDialog, pm->dialog->Stage6PreFinal);
@ -238,9 +226,40 @@ static void elly_begin_toe(Boss *b, int t) {
stage_start_bgm("stage6boss_phase3");
}
}
*/
static void elly_goto_center(Boss *b, int t) {
GO_TO(b, BOSS_DEFAULT_GO_POS, 0.05);
TASK(boss_appear, { BoxedBoss boss; }) {
Boss *boss = NOT_NULL(ENT_UNBOX(ARGS.boss));
boss->move = move_towards_power(BOSS_DEFAULT_GO_POS, 0.3, 0.5);
}
TASK_WITH_INTERFACE(elly_goto_center, BossAttack) {
Boss *boss = INIT_BOSS_ATTACK();
BEGIN_BOSS_ATTACK();
boss->move = move_towards_power(BOSS_DEFAULT_GO_POS, 0.3, 0.5);
}
TASK(spawn_boss, NO_ARGS) {
STAGE_BOOKMARK(boss);
Boss *boss = global.boss = stage6_spawn_elly(VIEWPORT_W + 180 + 100.0*I);
PlayerMode *pm = global.plr.mode;
Stage6PreBossDialogEvents *e;
INVOKE_TASK_INDIRECT(Stage6PreBossDialog, pm->dialog->Stage6PreBoss, &e);
INVOKE_TASK_WHEN(&e->boss_appears, boss_appear, ENT_BOX(boss));
INVOKE_TASK_WHEN(&e->music_changes, common_start_bgm, "stage6boss_phase1");
WAIT_EVENT(&global.dialog->events.fadeout_began);
boss_add_attack_task(boss, AT_Normal, "Cards1", 60, 30000, TASK_INDIRECT(BossAttack, stage2_boss_nonspell_1), NULL);
boss_add_attack_from_info(boss, &stage2_spells.boss.amulet_of_harm, false);
boss_add_attack_task(boss, AT_Normal, "Cards2", 60, 20000, TASK_INDIRECT(BossAttack, stage2_boss_nonspell_2), NULL);
boss_add_attack_from_info(boss, &stage2_spells.boss.bad_pick, false);
boss_add_attack_task(boss, AT_Normal, "Cards3", 60, 45000, TASK_INDIRECT(BossAttack, stage2_boss_nonspell_3), NULL);
boss_add_attack_from_info(boss, &stage2_spells.boss.wheel_of_fortune, false);
boss_add_attack_from_info(boss, &stage2_spells.extra.monty_hall_danmaku, false);
boss_start_attack(boss, boss->attacks);
}
static Boss* create_elly(void) {
@ -269,7 +288,7 @@ static Boss* create_elly(void) {
return b;
}
*/
DEFINE_EXTERN_TASK(stage6_timeline) {
INVOKE_TASK_DELAYED(100, hacker_fairy, .pos = VIEWPORT_W / 2.0, .move = move_linear(2.0 * I));
@ -311,7 +330,10 @@ DEFINE_EXTERN_TASK(stage6_timeline) {
INVOKE_TASK_DELAYED(2300, scythe_mid, .pos = -100 + I * 300);
/*
WAIT(3800);
INVOKE_TASK(spawn_boss);
/*
AT(3800) {
stage_unlock_bgm("stage6");
global.boss = create_elly();