#pragma once

#include "../../ecs_component.h"
#include "../../component/entity/component_enemy.h"
#include "../../component/behavior/component_behavior_approach_and_shoot.h"
#include "../../component/behavior/component_behavior_act_in_rectangle.h"
#include "../../component/stat/component_game_entity_type.h"

#include "entity_chip.h"

#define CHIPPER_BEHAVIOR_APPROACH_AND_SHOOT_DISTANCE 1000.0f
#define CHIPPER_BEHAVIOR_APPROACH_AND_SHOOT_HEIGHT 10.0f
#define CHIPPER_BEHAVIOR_APPROACH_AND_SHOOT_OFFSET 30.0f
#define CHIPPER_BEHAVIOR_APPROACH_AND_SHOOT_PROJECTILE_SPEED 10.0f
#define CHIPPER_BEHAVIOR_APPROACH_AND_SHOOT_SPEED 0
#define CHIPPER_BEHAVIOR_APPROACH_AND_SHOOT_TIMER 120
#define CHIPPER_FRICTION 0.875
#define CHIPPER_GAME_OBJECT_IS_AFFECTED_BY_GRAVITY false
#define CHIPPER_GAME_OBJECT_IS_BOUNCE false
#define CHIPPER_GAME_OBJECT_IS_SOLID false
#define CHIPPER_GOODIE_COUNT 2
#define CHIPPER_HEALTH_MAX 4
#define CHIPPER_IS_AFFECTED_BY_GRAVITY true
#define CHIPPER_IS_BOUNCE false
#define CHIPPER_IS_SOLID false
#define CHIPPER_SPEED 0.5
#define CHIPPER_VELOCITY_MAX 3

static const Rectangle CHIPPER_ACT_RECTANGLE =
{
	.x = 80,
	.y = 80,
	.w = 1820,
	.h = 930
};

static const ivec2 CHIPPER_FRAME_SIZE = {512, 512};
static const ivec2 CHIPPER_ATLAS_SIZE = {1, 1};
static const vec2 CHIPPER_SIZE = {100.0f, 100.0f};
static const vec2 CHIPPER_PHYSICS_SIZE = {75.0f, 25.0f};

void entity_chipper_init(ECS* ecs, u32 id, vec3 position, u32 targetID, u32 level, Vector* entityList);
