This is (presumably) a lot to ask for the base engine, so this is sort of just a suggestion for down the road when the devs are thinking up new ideas or how to improve existing systems.
I had this idea yesterday while playing WoW. We were fighting a boss that summoned these worms that would target you, and when they reached you they would explode, and apply a damage-over-time effect to you. I got to thinking that this would be a cool mechanic for a mob in our game, but for something in Intersect to do that it requires too many functions and steps that don't exist.
The first problem comes with NPC spellcasting. Right now, it's a little ambiguous how NPCs cast spells. You can set the frequency, but you can't really tailor npc or boss fights to any sort of scheme, and they end up being random. My first suggestion is changing how NPC casting works, instead of having it based on an assigned frequency and randomness, have NPCs cast spells:
-At predetermined times after being engaged (for example, after you hit a boss, every 30 seconds it'll cast a given spell)
-At given health percentages (this allows for fights to have phases, i.e. At 50% health, the boss will cast an enrage spell that makes him deal significantly more damage, or have the boss only cast a big AOE spell after hes down to 25% of his health so players can learn and adjust.)
-On initial attack or death (this would be great for my worms idea, when they are killed they cast a damage over time spell on anyone nearby)
-If a given switch or variable is met (this would be great for phased fights, i.e. at the last 10% of HP, the boss makes himself invulernable and summons a bunch of minions, and you have to kill them all before he makes himself un-invulnerable)
These are just a few ideas, I'm sure myself and others could think of other useful conditions for casting spells down the road.
The second problem comes with how spells currently work. Right now, spells for the most part do one thing, along with one modifier. We can have spells that heal you overtime and stealth you, or deal damage to an enemy and root them, but a more dynamic system would allow for much more engaging and intricate fights. With a system I've dubbed "spell effect queuing" (this already exists in many games so I'm sure there's an actual term for it) this would be possible. With SEQ, you could make a spell that does multiple things, instead of one primary function with one primary modifier. For example, you could make a spell that does damage and gives you a buff, instead of making two individual spells. The SEQ would look like:
1. Spell deals damage to target
2. Spell buffs player
But then where does the "queue" come in? Well, in an ideal world, some spells would have multiple effects occur at once, and some spells would be able to delay their effects. For example, instead of a player-activated stealth spell, the SEQ system could make a brief one:
1. Spell stealths player
2. (10 second timer)
3. Spell unstealths player
Or perhaps you want a giant meteor to fall down, deal damage to the player initially impacted, then deal damage to all nearby players
1. Spell #1 deals damage to player
2. Spell #2 is cast on same player, but is an AOE spell, dealing damage to all nearby players.
I'm getting a little rambly so I'm gonna stop here; I just want to reiterate that I don't expect any of these ideas to be added to the base engine — they will be added to my own game myself sometime following the source, but I think it's a good suggestion nonetheless for the developers to maybe look how NPC spellcasting currently works and how to improve it, along with looking at the sort of limitations we have with spell effects and see if they can be improved to be dynamic as something like the event system we currently have. Thanks.
Edited by Mcadams