I'm trying my hand at an action RPG kind of game and using a modified version of entityx from alecthomas, which is basically an Entity Component System. I have really big troubles with some of the stuff I want to implement, because I don't know how to put it in terms of Components. Here are some of the things I can't figure out:
Let's say I have entities that are supposed to represent actors and they have things like Health, Stamina, Mana, Attributes... How would I implement a timed buff/debuff system, without defeating the purpose of ECS? Each actor can be affected by multiple buffs at a time and the buffs could influence anything about them. A component can only hold so much data and I can't introduce a new component for each buff that needs to save different data.
If I had a Chain Lightning skill that I cast with an actor and it selects and damages enemy actors at random immediately, the game-logic processor would just dish out the damage and create an entity for the Lightning Effect with a RenderComponent. But the RenderComponent will only tell the render processor that it is Lightning, where does the data go that describes which enemies were hit? Most skill effects have some kind of parameter for their renderable parts like Source, Target, Intensity...
Both questions are based on the same problem: How do I represent things that can have diverse parameters in as few components as possible?