I understand the concept of scriptable objects but I’m having a hard time understanding the implementation. I have a small example case.
In this example I want to create a buff system with just two simple buffs. One that heals the user over time, and one that damages the user over time. Both stored on some Power Up gameobject which activates when the player touches it.
My initial thought is to have a list on the player that stores the buffs/debuffs so they can be removed and checked at any time.
I think the biggest problem is implementing different methods for different buffs. As I see it I just need a BuffBase scriptable object which contains an abstract method for activation and maybe a GameObject for the user who runs into the Power Up.
But if I need different methods for a lot of different types of buffs/debuffs and the only thing they share is who the user is and an activation method, which gets overwritten, is there a point in using scriptable objects?
As I understand I will still need a new monobehavior script for each of my buffs with their unique activation method.