This repository has been archived on 2025-02-04. You can view files and clone it, but cannot push or open issues or pull requests.
helpless/weapon.c

43 lines
No EOL
1.1 KiB
C

void weapon_setup(Entity* en, Entity_Archetype weapon_type) {
en->arch = weapon_type;
en->renderable = true;
en->is_weapon = true;
switch (weapon_type) {
case ARCH_startersword: {
en->weapon_class = WEAPON_melee;
en->damage = 10;
en->hitbox[0] = v2(0, 0);
en->hitbox[1] = v2(0, 13);
en->hitbox[2] = v2(13, 0);
en->hitbox[3] = v2(13, 13);
en->weapon_speed = 3;
} break;
case ARCH_starterbow: {
en->weapon_class = WEAPON_ranged;
en->damage = 5;
en->weapon_speed = 3;
} break;
default: {
assert(false, "Invalid weapon type");
} break;
}
}
void arrow_setup(Entity* en, Vector2 start_pos, Vector2 fire_dir, float32 base_dmg) {
en->arch = ARCH_arrow;
en->renderable = true;
en->is_projectile = true;
en->is_animate = false; // idk why this was on in the first place?
en->projectile_range = 200;
en->projectile_fire_dir = fire_dir;
en->projectile_start_pos = start_pos;
en->projectile_speed = 5;
en->pos = start_pos;
en->damage = base_dmg + 5;
en->hitbox[0] = v2(0, 0);
en->hitbox[1] = v2(10, 0);
en->hitbox[2] = v2(0, 3);
en->hitbox[3] = v2(10, 3);
}