feat: add finite lifetimes and despawn mechanics for rotten and cursed apples
This commit is contained in:
1 parent
9a3a0bd9fd
commit
adda5db2f4
8 files changed
+159
-82
No files matched your search
+16
-6
@@ -125,13 +125,18 @@ void draw_apples(const GameState &state, const RenderAssets &assets,
|
||||
|
||||
void draw_apples_rotten(const GameState &state, const RenderAssets &assets,
|
||||
uint16_t &oamId) {
|
||||
for (const std::array<int, 2> &apple : state.bad_apples) {
|
||||
for (const EvilItem &apple : state.bad_apples) {
|
||||
if (oamId >= 128) {
|
||||
return;
|
||||
}
|
||||
oamSet(&oamSub, oamId, apple[0] * 8, apple[1] * 8, 0, 0, SpriteSize_8x8,
|
||||
const bool blink = (apple.ticksRemaining <= EVIL_ITEM_BLINK_TICKS);
|
||||
const bool is_hidden =
|
||||
blink && ((apple.ticksRemaining <= EVIL_ITEM_FAST_BLINK_TICKS)
|
||||
? ((state.ticks % 2) == 0)
|
||||
: (((state.ticks / 2) % 2) == 0));
|
||||
oamSet(&oamSub, oamId, apple.x * 8, apple.y * 8, 0, 0, SpriteSize_8x8,
|
||||
SpriteColorFormat_256Color, assets.gfx_apple_rotten, -1, false,
|
||||
false, false, false, false);
|
||||
is_hidden, false, false, false);
|
||||
oamId++;
|
||||
}
|
||||
}
|
||||
@@ -139,13 +144,18 @@ void draw_apples_rotten(const GameState &state, const RenderAssets &assets,
|
||||
void draw_apples_cursed(const GameState &state, const RenderAssets &assets,
|
||||
uint16_t &oamId) {
|
||||
const bool hflip = ((state.ticks % 6) < 3);
|
||||
for (const std::array<int, 2> &apple : state.cursed_apples) {
|
||||
for (const EvilItem &apple : state.cursed_apples) {
|
||||
if (oamId >= 128) {
|
||||
return;
|
||||
}
|
||||
oamSet(&oamSub, oamId, apple[0] * 8, apple[1] * 8, 0, 0, SpriteSize_8x8,
|
||||
const bool blink = (apple.ticksRemaining <= EVIL_ITEM_BLINK_TICKS);
|
||||
const bool is_hidden =
|
||||
blink && ((apple.ticksRemaining <= EVIL_ITEM_FAST_BLINK_TICKS)
|
||||
? ((state.ticks % 2) == 0)
|
||||
: (((state.ticks / 2) % 2) == 0));
|
||||
oamSet(&oamSub, oamId, apple.x * 8, apple.y * 8, 0, 0, SpriteSize_8x8,
|
||||
SpriteColorFormat_256Color, assets.gfx_apple_cursed, -1, false,
|
||||
false, hflip, false, false);
|
||||
is_hidden, hflip, false, false);
|
||||
oamId++;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user