// Copyright (c) 2023 Alex Diener. All rights reserved.

#ifndef __EntityComponent_attack_H__
#define __EntityComponent_attack_H__

typedef struct EntityComponent_attack EntityComponent_attack;
#define EntityComponent_attack_superclass GameEntityComponent

#include "PROJECT_NAME/GameEntityComponent.h"
#include "PROJECT_NAME/SharedDefinitions.h"

#define EntityComponent_attack_ivars \
	GameEntityComponent_ivars \
	\
	AttackType type;

#define EntityComponent_attack_vtable(self_type) \
	GameEntityComponent_vtable(self_type)

stemobject_declare(EntityComponent_attack)

EntityComponent_attack * EntityComponent_attack_create(AttackType type);
bool EntityComponent_attack_init(EntityComponent_attack * self, AttackType type);
void EntityComponent_attack_dispose(EntityComponent_attack * self);
void EntityComponent_attack_initCopy(EntityComponent_attack * self, compat_type(GameEntityComponent *) original);

#endif
