Yeah resources are great for things like this. Fron what im seeing, you already have a great structure to make resources already. I can give you some advice /steps on how i did things on my rpg which also handles entities with many stats.
- That script you use for all champions extend from
Resourcerather thanNodethis allows you to create new resources as.tresfiles and store them to easily manage and add more, you could also name the class like champion_basestats or similar, you can make a champions folder or something and add them, (right click add new resource, then resource from champions_basestats class) this will make a file that you can modify its export stats on the editor to quickly add more. - On your actual champion scene, you can add a var which holds the data like
@export var base_stats : champion_basestatsthis allows you to drag and drop the resource of the corresponding unit onto it so you can access it anywhere from that entity likeprint(base_stats.base_armor)etc. - You can add all the functionality that modifies those stats inside the class so you can do whatever you need from there like so
base_stats.heal(amount)etc. - Just keep in mind that if multiple entities point to the same resource for example if a minion has a
minion.tresresource, all instances of that entity will share the same resource, to avoid this you can duplicate the resource in case multiple scenes use it.base_stats = base_stats.duplicate().
If this way of doing it is not what you loikin for im sure there are other ways using resources as well to do this. Depends on your needs for the future!