Juice: pitch variation, squash, dust, trails, jiggle, breathing, hit-stop, numbers, stage-up, digest and rare flair

This commit is contained in:
shweet committed 2026-11-13 00:45:55 -05:00
1 parent 7e27ffad94
commit fdfea89373
11 files changed
+363 -21

No files matched your search

+12 -2
View File
@@ -1,6 +1,9 @@
#include "play.h"
constexpr const char* FULL_SUFFIX = "Full";
constexpr float RUB_JIGGLE = 0.3f;
constexpr float SMACK_JIGGLE = 6;
constexpr int HIT_STOP = 3;
constexpr float AUTO_ACCELERATION = 0.45f;
constexpr float AUTO_ANGLE_STEP = 0.08f;
@@ -63,6 +66,11 @@ void Interactions::update(Play& play, Pointer pointer)
if (entry.digestionClick > 0 && body.stats.calories > 0 && !body.stats.isDigesting)
body.stats.digestionProgress += entry.digestionClick;
body.actor.pulse_add(entry.layer, entry.scaleAmplitude, entry.scaleCycles, entry.scaleTime);
if (entry.scaleAmplitude > 0)
{
body.jiggle_add(SMACK_JIGGLE);
body.freeze = HIT_STOP;
}
bool isReady = cooldowns[i] <= 0;
cooldowns[i] = std::max(0, entry.dialogueCooldown);
Dialogue& dialogue = character.dialogue;
@@ -82,8 +90,10 @@ void Interactions::update(Play& play, Pointer pointer)
play.cursorState = CURSOR_ACTION;
active.play(entry.cursorActive);
Vec2 moved = pointer.position - pointerPrevious;
if (entry.digestionHover > 0 && body.stats.calories > 0 && !body.stats.isDigesting &&
(moved.x != 0 || moved.y != 0))
bool isMoved = moved.x != 0 || moved.y != 0;
if (entry.digestionHover > 0 && isMoved)
body.jiggle_add(RUB_JIGGLE);
if (entry.digestionHover > 0 && body.stats.calories > 0 && !body.stats.isDigesting && isMoved)
body.stats.digestionProgress += entry.digestionHover;
}
}