Well, the idea behind this is to create an Attacks # system like in StarCraft II. That solution would cause A LOT of bloat! Like, a RIDICULOUS amount.
These are the triggers (Using looking_for_help's DDS at the moment):
-
Tank First Attack
-
Events
-
Game - damageEventTrigger becomes Equal to 1.00
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
-
(Unit-type of source) Equal to Arcane Tank
-
(Unit-type of source) Equal to Arcane Tank (Deployed)
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(source is in TankUnitGroup) Equal to False
-
Then - Actions
-
Unit Group - Add source to TankUnitGroup
-
Unit - Add Arcane Tank Second Attack to source
-
Set TankMaxIndex = (TankMaxIndex + 1)
-
Set TankUnit[TankMaxIndex] = source
-
Else - Actions
-
Else - Actions
-
Tank Attack Update
-
Events
-
Game - damageEventTrigger becomes Equal to 1.00
-
Conditions
-
Actions
-
For each (Integer TankUpdateInit) from 1 to TankMaxIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TankAttackCooldown[TankUpdateInit] Less than or equal to 166
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
source Equal to TankUnit[TankUpdateInit]
-
(source is in TankUnitGroup) Equal to True
-
Then - Actions
-
Game - Display to (All players) the text: FIRED!
-
Set TankAttackIndex[TankUpdateInit] = (TankAttackIndex[TankUpdateInit] + 1)
-
Game - Display to (All players) the text: (ATTACK INDEX SET TO + (String(TankAttackIndex[TankUpdateInit]))) \\Debug text is debug text
-
Else - Actions
-
Else - Actions
-
Tank Attack Calc
-
Events
-
Time - Every 0.03 seconds of game time
-
Conditions
-
Actions
-
For each (Integer TankInit) from 1 to TankMaxIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TankAttackIndex[TankInit] Greater than or equal to 1
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TankAttackCooldown[TankInit] Less than 166
-
Then - Actions
-
Set TankAttackCooldown[TankInit] = (TankAttackCooldown[TankInit] + 1)
-
Game - Display to (All players) the text: (COOLDOWN AT + (String(TankAttackCooldown[TankInit]))) \\Debug text is debug text
-
Else - Actions
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TankAttackCooldown[TankInit] Equal to 166
-
TankAttackIndex[TankInit] Less than 2
-
Then - Actions
-
Unit Group - Remove TankUnit[TankInit] from TankUnitGroup
-
Unit - Remove Arcane Tank Second Attack from TankUnit[TankInit]
-
Set TankAttackIndex[TankInit] = TankAttackIndex[TankMaxIndex]
-
Set TankAttackIndex[TankMaxIndex] = 0
-
Set TankAttackCooldown[TankInit] = TankAttackCooldown[TankMaxIndex]
-
Set TankAttackCooldown[TankMaxIndex] = 0
-
Set TankUnit[TankInit] = TankUnit[TankMaxIndex]
-
Set TankUnit[TankMaxIndex] = No unit
-
Set TankMaxIndex = (TankMaxIndex - 1)
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TankAttackIndex[TankInit] Equal to 2
-
Then - Actions
-
Unit Group - Remove TankUnit[TankInit] from TankUnitGroup
-
Unit - Remove Arcane Tank Second Attack from TankUnit[TankInit]
-
Set TankAttackIndex[TankInit] = TankAttackIndex[TankMaxIndex]
-
Set TankAttackIndex[TankMaxIndex] = 0
-
Set TankAttackCooldown[TankInit] = TankAttackCooldown[TankMaxIndex]
-
Set TankAttackCooldown[TankMaxIndex] = 0
-
Set TankUnit[TankInit] = TankUnit[TankMaxIndex]
-
Set TankUnit[TankMaxIndex] = No unit
-
Set TankMaxIndex = (TankMaxIndex - 1)
-
Else - Actions
Basically, just change "TankAttackIndex[TankInit] Less than 2" and "TankAttackIndex[TankInit] Equal to 2" and it'll do however many attacks you want, at the speed you want in a copied Gloves of Haste, and then stop for it's normal cooldown, then repeat.
I call the number of attacks Attack Indexes and the actual set of attacks before each real cooldown Attack Instances.
But here lies the problem, Gloves of Haste cannot reduce Attack Speed below ~0.22. This is quite a big limit, and in fact will make "Volleys" near-to-impossible unless you use Barrage, but those will all go to separate units and not to the same unit. That's what this is suppose to do. Doing what you suggested, doing this for multiple units, will cause a HORRIBLE amount of bloat, greatly increasing the loading time of maps, the only fix possible would be using a map optimizer.
So there's just gotta be a better way. xD
EDIT: There may be a way to use Barrage to actually do this right, however the damage from Barrage cannot be made into a range (10 - 20 damage) so that'll have to be blank and the damage be scripted for this to work 100% properly.
EDIT2: After messing around with it, it does not seem to be so. =\