#pragma once

#include "../../component/component_text.h"
#include "../../component/action/component_action_delete_on_timer.h"
#include "../../component/animation/component_animation_color_change.h"
#include "../../component/animation/component_animation_move.h"
#include "../../component/animation/component_animation_squash.h"
#include "../../component/animation/component_animation_stretch.h"
#include "../../ecs_component.h"

#define ENTITY_DAMAGE_NUMBER_SCALE_MULTIPLIER 0.115f
#define ENTITY_DAMAGE_NUMBER_SCALE 1.0f
#define ENTITY_DAMAGE_NUMBER_SCALE_MAX 3.0f
#define ENTITY_DAMAGE_NUMBER_TIMER 60
#define ENTITY_DAMAGE_NUMBER_FORMAT "%u"
#define ENTITY_DAMAGE_NUMBER_TEXT_MAX 8
#define ENTITY_DAMAGE_NUMBER_SQUASH_MULTIPLIER 0.5f
#define ENTITY_DAMAGE_NUMBER_SQUASH_SPEED 0.05f
#define ENTITY_DAMAGE_NUMBER_STRETCH_MULTIPLIER 0.5f
#define ENTITY_DAMAGE_NUMBER_STRETCH_SPEED 0.05f

static const vec4 ENTITY_DAMAGE_NUMBER_COLOR = {1.0f, 0.0f, 0.0f, 1.0f};
static const vec3 ENTITY_DAMAGE_NUMBER_MOVE_VELOCITY = {0.0f, -1.0f, 0.0f};

void entity_damage_number_init(ECS* ecs, u32 id, vec3 position, u32 damage);
