EDIT: Okay so, I'm doing ANOTHER thing that'll be easier to script then this but is basically the same. So if I get this easier thing done, I could use it for this too. This is what I go so far:
-
Infernal First Attack
-
Events
-
Unit - A unit Is attacked
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Unit-type of (Attacking unit)) Equal to Infernal
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Attacking unit) is in InfernalUnitGroup) Equal to False
-
Then - Actions
-
Unit Group - Add (Attacking unit) to InfernalUnitGroup
-
Unit - Add Infernal Double Attack to (Attacking unit)
-
Set InfernalMaxIndex = (InfernalMaxIndex + 1)
-
Set InfernalAttackIndex[InfernalMaxIndex] = 1
-
Set InfernalUnit[InfernalMaxIndex] = (Attacking unit)
-
Else - Actions
-
Else - Actions
-
Infernal Attack Update
-
Events
-
Unit - A unit Is attacked
-
Conditions
-
Actions
-
For each (Integer InfernalUpdateInit) from 1 to InfernalMaxIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Attacking unit) Equal to InfernalUnit[InfernalUpdateInit]
-
((Attacking unit) is in InfernalUnitGroup) Equal to True
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
InfernalAttackIndex[InfernalUpdateInit] Equal to 1
-
Then - Actions
-
Set InfernalAttackIndex[InfernalUpdateInit] = 2
-
Else - Actions
-
Else - Actions
-
Infernal Attack Calc
-
Events
-
Time - Every 0.10 seconds of game time
-
Conditions
-
Actions
-
For each (Integer InfernalInit) from 1 to InfernalMaxIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
InfernalAttackIndex[InfernalUpdateInit] Equal to 2
-
Then - Actions
-
Unit Group - Remove InfernalUnit[InfernalInit] from InfernalUnitGroup
-
Unit - Add Infernal Double Attack to InfernalUnit[InfernalInit]
-
Set InfernalAttackIndex[InfernalInit] = InfernalAttackIndex[InfernalMaxIndex]
-
Set InfernalAttackIndex[InfernalMaxIndex] = 0
-
Set InfernalUnit[InfernalInit] = InfernalUnit[InfernalMaxIndex]
-
Set InfernalUnit[InfernalMaxIndex] = No unit
-
Set InfernalMaxIndex = (InfernalMaxIndex - 1)
-
Else - Actions
It doesn't work, but what this is suppose to do is basically when the Infernal Attacks, it gets an attack speed bonus that makes it's next attack come very quickly, then it's removed right after so it waits for it's normal attack cooldown.
Basically, the idea here is to make Multiple Attacks like Zealots in SC2. Zealots in SC2 do two attacks, one right after the other with a very small but still there delay, and then their actual attack cooldown kicks in.