diff --git a/game/systems/s_entity.c b/game/systems/s_entity.c index 17e551a..b6ad905 100644 --- a/game/systems/s_entity.c +++ b/game/systems/s_entity.c @@ -146,7 +146,11 @@ static void entityUpdateArm(ecs_entity_t armEntity, Position pos, Velocity vel, if (!armEntity) return; const Arm arm = *ecs_get(ECS, armEntity, Arm); - Vector2 v = {arm.extended, 0.0f}; + f32 time = fmod(GetTime() * 2.0f, 2.0f); + if (time > 1.0f) time = 2.0f - time; + + f32 velLen = Clamp(Vector2Length(vel), 0, 4.0f) * time; + Vector2 v = {arm.extended, velLen}; v = Vector2Rotate(v, orient + arm.offset); v = Vector2Add(v, pos); ecs_set_ptr(ECS, armEntity, Position, &v);