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

#include "PROJECT_NAME/EntityComponent_attack.h"

#define stemobject_implementation EntityComponent_attack

stemobject_vtable_begin();
stemobject_vtable_entry(dispose);
stemobject_vtable_entry(initCopy);
stemobject_vtable_end();

EntityComponent_attack * EntityComponent_attack_create(AttackType type) {
	stemobject_create_implementation(init, type)
}

bool EntityComponent_attack_init(EntityComponent_attack * self, AttackType type) {
	call_super(init, self);
	self->type = type;
	return true;
}

void EntityComponent_attack_dispose(EntityComponent_attack * self) {
	call_super_virtual(dispose, self);
}

void EntityComponent_attack_initCopy(EntityComponent_attack * self, compat_type(GameEntityComponent *) originalUntyped) {
	call_super_virtual(initCopy, self, originalUntyped);
	EntityComponent_attack * original = originalUntyped;
	self->type = original->type;
}
