Outlined the basics for combat design

This commit is contained in:
Kayne Ruse 2025-04-06 14:29:17 +10:00
parent a7064e3db0
commit 1722681823
2 changed files with 28 additions and 23 deletions

View File

@ -22,35 +22,42 @@ fi
exit $lint_errors exit $lint_errors
``` ```
heapq is a thing for the speed sorting #TODO: figure out turn order, potentially with heapq
## Entity Statistics ## Entity Statistics
#TODO: brain no work, calc these later #NOTE: Combat system is WIP
Level = exp??? Visible Attributes, from 3 to 18:
STR, Melee Weapons (Accuracy & Damage)
DEX, Range Weapons (Accuracy & Damage)
CON, Maximum HP
INT, Draw Spells (Quantity)
WIS, Hold Spells (Capacity)
CHA, NPC Influence (alters shop prices)
Base Stats, from 3 to 18: #TODO: are these needed? Other Attributes:
STR, Strength Levels (derived from XP and a lookup table)
DEX, Dexterity Maximum HP ((Levels * 5) + (CON / 2))
CON, Constitution Current HP
INT, Intelligence Accuracy (from weapon's attribute)
WIS, Wisdom Evasion (from armor)
CHA, Charisma Damage (from weapon's attribute)
Absorption (from armor)
Derived Stats, will always change based on the base stats: Weapons:
MaxHP: damage_roll = base_type ("2d6") + this_instance ("+2")
CurHP: accuracy = base_type ("+0") + this_instance ("+0")
Accuracy:
Evasion:
Damage:
Absorb:
To-hit, d20: Armor:
11 + weapon_accuracy - target_evasion evasion = base_type ("11") + this_instance ("+2")
absorption = base_type ("3") + this_instance ("+0")
damage-dealt: To-hit:
roll(weapon_damage) - target_absorb 1d20 + accuracy >= evasion
To-wound:
max(damage_roll - absorption, 1)
## Concepts and Ideas ## Concepts and Ideas

View File

@ -82,8 +82,6 @@ class MeleeAction(BaseAction):
if not target or not target.stats: if not target or not target.stats:
return False return False
#TODO: better combat system
#calculate damage #calculate damage
damage = self.entity.stats.attack - target.stats.defense damage = self.entity.stats.attack - target.stats.defense