As I work on illusions, other ideas come to my mind. This one is about Chain Lightning. I put together a test version, and it works, but anyone who wants to sit down and develop it is welcome. The Player's Handbook version of Chain Lightning does what we expect of that fantasy spell: it strikes a target of choice, then arcs to the nearest creature, even if it's the caster or one of his allies, at half strength, then jumps to the next target at one-quarter, and so on. The details from the description: 1) every creature can only be struck once; 2) the charge moves on even if it killed the current target (it doesn't say so explicitly in the description, but it's assumed); 3) if a struck creature is immune to the damage, it still passes on the bolt, 4) if the next available target is outside of the spell's range, the rest of the charge fizzles, 5) maximum damage is 12d6 at 12th level - just one level above the 11th when Chain Lightning becomes available. So implementation only needs to make versions for caster levels 11 and 12.
Details aside, this jumping mechanic is what Chain Lightning is all about. The version in the IE games simply does electrical damage to all enemies in an area. A sort of electrical Fireball, and selective, too.
I thought about how a creature struck by the spell can be forced to pass on the charge. I quickly realized there is no projectile or settings for that kind of effect, but creatures can be scripted to pass on the charge, if only it wouldn't ruin their AI.
So I turned to the trick I've written about before, AREA-tier scripts for creatures. Since creature AI has nothing in that slot - except something like two guards at the Copper Coronet, who have something there by accident - we can safely put any script we want there, still giving precedence to the OVERRIDE script, if any. Then we can put a blank script in that spot, either with a delayed application of opcode 82 or with a scripted AI change. The version I have uses the latter.
Here are the files. The spell only does 1d6 damage now, for testing. No scaling for levels, save for half etc. This is how it works:
CHLI11_# is the starting 6th level spell. It puts a spell state on the struck creature. Anything unlikely would do, in this case it's GASEOUS FORM. The spell also changes the AREA script of the creature to the following, CHLI1_#, and lastly it does electrical damage delayed by 1 second - so it's inflicted only after the creature has passed on the baton.
IF Detect([ANYONE]) !CheckSpellState(LastSeenBy(Myself),GASEOUS_FORM) THEN RESPONSE #100 ReallyForceSpellRES("CHLIX_#",LastSeenBy(Myself)) // No-level, no-name Chain Lightning version ChangeAIScript("CHLI0_#",AREA) END
The script would have to be changed, of course, so the spell to be passed on is a half-strength version of the one received, but it's just a matter of making more spells/scripts on this template, one inside the other. Like a Matryoshka.
CHLI0_# is an empty script.
In testing, the bolt isn't quite instantaneous in going around, but it is fast, and even Tutors with 1 hit point pass on the lightning before dying from it.
Anyone who wants to develop and publish this is welcome, just give me credit for the idea.
Chain_Lightning_Prototype.rar 885bytes 8 downloads