Tweak player's swimming hitbox and hurtbox

main
En Yi 2024-08-21 16:26:16 +08:00
parent 34041a68bb
commit 9f496b4bee
1 changed files with 29 additions and 1 deletions

View File

@ -525,7 +525,35 @@ void player_bbox_update_system(Scene_t* scene)
p_hitbox->boxes[0].height = p_bbox->size.y + 4;
p_hitbox->boxes[1].height = p_bbox->size.y;
CHurtbox_t* p_hurtbox = get_component(p_player, CHURTBOX_T);
if ((p_mstate->water_state & 1) && !(p_mstate->ground_state & 1))
{
p_hurtbox->size = p_bbox->size;
p_hurtbox->size.x *= 1.7;
p_hitbox->boxes[0].width = p_bbox->size.x * 2.0f;
p_hitbox->boxes[1].width = p_bbox->size.x * 2.0f + 4;
if (p_mstate->x_dir > 0)
{
p_hitbox->boxes[0].x = -p_bbox->size.x;
p_hitbox->boxes[1].x = -p_bbox->size.x - 2;
p_hurtbox->offset.x = -p_bbox->size.x * 0.7;
}
else
{
p_hitbox->boxes[0].x = 0;
p_hitbox->boxes[1].x = -2;
p_hurtbox->offset.x = 0;
}
}
else
{
p_hitbox->boxes[0].x = 0;
p_hitbox->boxes[0].width = p_bbox->size.x;
p_hitbox->boxes[1].x = -2;
p_hitbox->boxes[1].width = p_bbox->size.x + 4;
p_hurtbox->offset = (Vector2){0,0};
p_hurtbox->size = p_bbox->size;
}
}
}