Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Extra Stage #261

Closed
wants to merge 735 commits into from
Closed

WIP: Extra Stage #261

wants to merge 735 commits into from

Conversation

Akaricchi
Copy link
Member

No description provided.

}
}
}
p->timeout = 1; // what is the proper way?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kill_projectile(p)?

Comment on lines 244 to 247
Attack *opening_attack = boss_add_attack(boss, AT_Normal, "Opening", 60, 40000, NULL, NULL);

boss_start_attack(boss, boss->attacks);
INVOKE_TASK(stagex_midboss_nonspell_1, ENT_BOX(boss), opening_attack);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably want this:

boss_add_attack_task(boss, AT_Normal, "Opening", 60, 40000, TASK_INDIRECT(BossAttack, stagex_midboss_nonspell_1), NULL);
boss_start_attack(boss, boss->attacks);

I'm guessing you copied this from Yumemi's first non. That one is a special case, because the attack task starts during the dialogue there, before the attack phase actually begins, as far as the boss system is concerned. It spawns some slaves, and waits for the attack's initiated event, to sync up with boss_start_attack. That's why the setup there is a little more complicated than usual.

Comment on lines 35 to 37
.pos.x = creal(p->pos),
.pos.y = cimag(p->pos),
.scale = {creal(p->scale), cimag(p->scale)},
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.pos.x = creal(p->pos),
.pos.y = cimag(p->pos),
.scale = {creal(p->scale), cimag(p->scale)},
.pos.as_cmplx = p->pos,
.scale.as_cmplx = p->scale,

.sprite_ptr = animation_get_frame(ani, seq, global.frames),
.color = &p->color,
.rotation.angle = p->angle+M_PI/2,
.rotation.vector = {0, 0, 1}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can omit the rotation axis, 0, 0, 1 is implied by default.

.color = RGBA(0,0.2,1,0),
.move = move_towards(global.plr.pos, 0.015),
.flags = PFLAG_NOCLEAR | PFLAG_NOCOLLISION,
.max_viewport_dist = 10000, // how to do this properly?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is PFLAG_NOAUTOREMOVE. But be careful not to get a projectile stuck somewhere out of view forever.

@StarWitch StarWitch changed the title Extra stage WIP: Extra Stage Sep 25, 2021
@StarWitch StarWitch changed the base branch from master to remastered-staging September 25, 2021 18:04
Old uncompressed progress.dat will be loaded if progress.zst is not
found. The reason for this change is that progress files are much larger
now, and taisei <1.4 had a stupid 4kb size limit for them. Older
versions of taisei would refuse to load the new large file at all,
resulting in possible data loss in case multiple versions are installed.
Cubemaps are broken in ANGLE's D3D11 backend, except in WebGL mode for
some reason. This is a terrible workaround, but it beats fucked up
rendering in stage backgrounds.
Depends on PIV, current score, and difficulty
Akaricchi and others added 26 commits June 16, 2024 22:34
Note: the actual music is not in yet, this just adds the menu entries.
…rame

Needed to account for camera movement. Usage may need adjustments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants