This week I’ve moved my enum/dictionary/all over the place skill system to a ScriptableObject system that I do like and am happy to be working with. However there is still a need for almost constant customization for each skill I was kind of imagining wasn’t going to be the case for some reason.
For example I’ve got TargettedAOE, SelfAOE, TargetMelee, Projectile, Heal, Buff, Passive, Teleport, etc. But even within SelfAOE there is still the need for a check for a spell that goes forward versus a spell that spread out from the player center, etc.
Perhaps I’m trying to place too many specific settings on ScriptableObjects and should really only be giving them the absolute basics that the system needs to function such as Name, Description, ManaCost, MaxLevel, etc. And then actually create an inheriting sub-script for each skills overriding the public override IEnumerator Engage (int level, MonoBehaviour caller) { }
I’m trying to keep everything on basically the second layer, but I think I need something more like:
SkillTemplate → STAttack → STMeleeAttack → STStrike
Basics → damage variables → targetting functions → skill specific sound/animation/visual effect calls
Does anyone have a good example of a robust SO skill system I could compare to? I’m looking to add 200+ skills (crafting/harvesting/attribute passives, etc) over time, and sure fireball and ice missle can use the same SO, they just summon a different projectile and feed it it’s damage, but the first 40 skills I made more than half of them were unique and required specific variables… Perhaps I just tried to generalize too much at the beginning…



