Combat Backend & Data Models

- Implement Combat Service
- Implement Damage Calculator
- Implement Effect Processor
- Implement Combat Actions
- Created Combat API Endpoints
This commit is contained in:
2025-11-26 15:43:20 -06:00
parent 30c3b800e6
commit 03ab783eeb
22 changed files with 9091 additions and 5 deletions

View File

@@ -0,0 +1,55 @@
# Bandit - Medium humanoid with weapon
# A highway robber armed with sword and dagger
enemy_id: bandit
name: Bandit Rogue
description: >
A rough-looking human in worn leather armor, their face partially hidden
by a tattered hood. They fight with a chipped sword and keep a dagger
ready for backstabs. Desperation has made them dangerous.
base_stats:
strength: 12
dexterity: 14
constitution: 10
intelligence: 10
wisdom: 8
charisma: 8
luck: 10
abilities:
- basic_attack
- quick_strike
- dirty_trick
loot_table:
- item_id: bandit_sword
drop_chance: 0.20
quantity_min: 1
quantity_max: 1
- item_id: leather_armor
drop_chance: 0.15
quantity_min: 1
quantity_max: 1
- item_id: lockpick
drop_chance: 0.25
quantity_min: 1
quantity_max: 3
- item_id: gold_coin
drop_chance: 0.80
quantity_min: 5
quantity_max: 20
experience_reward: 35
gold_reward_min: 10
gold_reward_max: 30
difficulty: medium
tags:
- humanoid
- rogue
- armed
base_damage: 8
crit_chance: 0.12
flee_chance: 0.45

View File

@@ -0,0 +1,52 @@
# Dire Wolf - Medium beast enemy
# A large, ferocious predator
enemy_id: dire_wolf
name: Dire Wolf
description: >
A massive wolf the size of a horse, with matted black fur and eyes
that glow with predatory intelligence. Its fangs are as long as daggers,
and its growl rumbles like distant thunder.
base_stats:
strength: 14
dexterity: 14
constitution: 12
intelligence: 4
wisdom: 10
charisma: 6
luck: 8
abilities:
- basic_attack
- savage_bite
- pack_howl
loot_table:
- item_id: wolf_pelt
drop_chance: 0.60
quantity_min: 1
quantity_max: 1
- item_id: wolf_fang
drop_chance: 0.40
quantity_min: 1
quantity_max: 2
- item_id: beast_meat
drop_chance: 0.70
quantity_min: 1
quantity_max: 3
experience_reward: 40
gold_reward_min: 0
gold_reward_max: 5
difficulty: medium
tags:
- beast
- wolf
- large
- pack
base_damage: 10
crit_chance: 0.10
flee_chance: 0.40

View File

@@ -0,0 +1,45 @@
# Goblin - Easy melee enemy (STR-focused)
# A small, cunning creature that attacks in groups
enemy_id: goblin
name: Goblin Scout
description: >
A small, green-skinned creature with pointed ears and sharp teeth.
Goblins are cowardly alone but dangerous in groups, using crude weapons
and dirty tactics to overwhelm their prey.
base_stats:
strength: 8
dexterity: 12
constitution: 6
intelligence: 6
wisdom: 6
charisma: 4
luck: 8
abilities:
- basic_attack
loot_table:
- item_id: rusty_dagger
drop_chance: 0.15
quantity_min: 1
quantity_max: 1
- item_id: gold_coin
drop_chance: 0.50
quantity_min: 1
quantity_max: 3
experience_reward: 15
gold_reward_min: 2
gold_reward_max: 8
difficulty: easy
tags:
- humanoid
- goblinoid
- small
base_damage: 4
crit_chance: 0.05
flee_chance: 0.60

View File

@@ -0,0 +1,52 @@
# Goblin Shaman - Easy caster enemy (INT-focused)
# A goblin spellcaster that provides magical support
enemy_id: goblin_shaman
name: Goblin Shaman
description: >
A hunched goblin wrapped in tattered robes, clutching a staff adorned
with bones and feathers. It mutters dark incantations and hurls bolts
of sickly green fire at its enemies.
base_stats:
strength: 4
dexterity: 10
constitution: 6
intelligence: 12
wisdom: 10
charisma: 6
luck: 10
abilities:
- basic_attack
- fire_bolt
- minor_heal
loot_table:
- item_id: shaman_staff
drop_chance: 0.10
quantity_min: 1
quantity_max: 1
- item_id: mana_potion_small
drop_chance: 0.20
quantity_min: 1
quantity_max: 1
- item_id: gold_coin
drop_chance: 0.60
quantity_min: 3
quantity_max: 8
experience_reward: 25
gold_reward_min: 5
gold_reward_max: 15
difficulty: easy
tags:
- humanoid
- goblinoid
- caster
- small
base_damage: 3
crit_chance: 0.08
flee_chance: 0.55

View File

@@ -0,0 +1,58 @@
# Orc Berserker - Hard heavy hitter
# A fearsome orc warrior in a battle rage
enemy_id: orc_berserker
name: Orc Berserker
description: >
A towering mass of green muscle and fury, covered in tribal war paint
and scars from countless battles. Foam flecks at the corners of its
mouth as it swings a massive greataxe with terrifying speed. In its
battle rage, it feels no pain and shows no mercy.
base_stats:
strength: 18
dexterity: 10
constitution: 16
intelligence: 6
wisdom: 6
charisma: 4
luck: 8
abilities:
- basic_attack
- cleave
- berserker_rage
- intimidating_shout
loot_table:
- item_id: orc_greataxe
drop_chance: 0.20
quantity_min: 1
quantity_max: 1
- item_id: orc_war_paint
drop_chance: 0.35
quantity_min: 1
quantity_max: 2
- item_id: beast_hide_armor
drop_chance: 0.15
quantity_min: 1
quantity_max: 1
- item_id: gold_coin
drop_chance: 0.70
quantity_min: 15
quantity_max: 40
experience_reward: 80
gold_reward_min: 20
gold_reward_max: 50
difficulty: hard
tags:
- humanoid
- orc
- berserker
- large
base_damage: 15
crit_chance: 0.15
flee_chance: 0.30

View File

@@ -0,0 +1,52 @@
# Skeleton Warrior - Medium undead melee
# An animated skeleton wielding ancient weapons
enemy_id: skeleton_warrior
name: Skeleton Warrior
description: >
The animated remains of a long-dead soldier, held together by dark magic.
Its empty eye sockets glow with pale blue fire, and it wields a rusted
but deadly sword with unnatural precision. It knows no fear and feels no pain.
base_stats:
strength: 12
dexterity: 10
constitution: 10
intelligence: 4
wisdom: 6
charisma: 2
luck: 6
abilities:
- basic_attack
- shield_bash
- bone_rattle
loot_table:
- item_id: ancient_sword
drop_chance: 0.15
quantity_min: 1
quantity_max: 1
- item_id: bone_fragment
drop_chance: 0.80
quantity_min: 2
quantity_max: 5
- item_id: soul_essence
drop_chance: 0.10
quantity_min: 1
quantity_max: 1
experience_reward: 45
gold_reward_min: 0
gold_reward_max: 10
difficulty: medium
tags:
- undead
- skeleton
- armed
- fearless
base_damage: 9
crit_chance: 0.08
flee_chance: 0.50