Implements modifier and stats system

Adds a modifier and stats system to manage combat-related attributes.

Introduces StatsComponent for storing entity statistics and ModifierManager for applying dynamic modifiers. Recalculates stats based on modifier type and priority.

Updates projectile and weapon components to utilize the new stats system.
This commit is contained in:
Dan Baker 2025-05-07 11:52:30 +01:00
parent f97521decc
commit 19cc8cb573
13 changed files with 178 additions and 65 deletions

View file

@ -1,18 +1,6 @@
@icon("res://assets/editor/64x64/fc728.png")
extends WeaponComponent
extends Node2D
class_name MeleeWeaponComponent
var stats = {
"piercing": 3,
}
var combined_stats = {}
func _init() -> void:
Log.pr("MeleeWeaponComponent initialized")
super._init()
# Combine the base stats with the stats from the parent class
combined_stats = base_stats.duplicate()
combined_stats.merge(stats)
Log.pr("Combined stats: ", combined_stats)