There is only 1 unit type of every unit inside these unit groups, so it's okay if the unit groups are nested, right? Other wise, how would I set this up without nested unit groups? What would be most efficient? And is this leakless as well?
-
Change Job - Ninja
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Ninja
-
(Owner of (Triggering unit)) Equal to Player 1 (Red)
-
(Triggering unit) Equal to SoldierRED[1]
-
-
Actions
-
Set TempUnit = (Triggering unit)
-
Set TempAttribute_STR = (Strength of TempUnit (Exclude bonuses))
-
Set TempAttribute_AGI = (Agility of TempUnit (Exclude bonuses))
-
Set TempAttribute_INT = (Intelligence of TempUnit (Exclude bonuses))
-
Unit - Remove Change Job from TempUnit
-
Set TempPoint = (Position of TempUnit)
-
Set TempPoint2 = (Center of JOBS RED GROUP1 <gen>)
-
Unit - Move TempUnit instantly to TempPoint2, facing 270.00 degrees
-
Custom script: call RemoveLocation( udg_TempPoint2)
-
Set TempUnitGroup = (Units in JOBS RED GROUP1 <gen> matching ((Unit-type of (Matching unit)) Equal to Thief))
-
Unit Group - Pick every unit in TempUnitGroup and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Hero level of (Picked unit)) Greater than or equal to 4
-
-
Then - Actions
-
Set TempUnitGroup2 = (Units in JOBS RED GROUP1 <gen> matching ((Unit-type of (Matching unit)) Equal to Archer))
-
Unit Group - Pick every unit in TempUnitGroup2 and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Hero level of (Picked unit)) Greater than or equal to 3
-
-
Then - Actions
-
Set TempUnitGroup3 = (Units in JOBS RED GROUP1 <gen> matching ((Unit-type of (Matching unit)) Equal to Oracle))
-
Unit Group - Pick every unit in TempUnitGroup3 and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Hero level of (Picked unit)) Greater than or equal to 2
-
-
Then - Actions
-
Set TempUnitGroup4 = (Units in JOBS RED GROUP1 <gen> matching ((Unit-type of (Matching unit)) Equal to Ninja))
-
Unit Group - Pick every unit in TempUnitGroup4 and do (Actions)
-
Loop - Actions
-
Set SoldierRED[1] = (Picked unit)
-
Hero - Modify Strength of SoldierRED[1]: Set to TempAttribute_STR
-
Hero - Modify Agility of SoldierRED[1]: Set to TempAttribute_AGI
-
Hero - Modify Intelligence of SoldierRED[1]: Set to TempAttribute_INT
-
Unit - Move SoldierRED[1] instantly to TempPoint, facing 270.00 degrees
-
Selection - Select SoldierRED[1] for (Owner of TempUnit)
-
Special Effect - Create a special effect attached to the origin of SoldierRED[1] using Abilities\Spells\Undead\DeathPact\DeathPactTarget.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Custom script: call DestroyGroup(udg_TempUnitGroup4)
-
-
Else - Actions
-
-
-
-
Custom script: call DestroyGroup(udg_TempUnitGroup3)
-
-
Else - Actions
-
-
-
-
Custom script: call DestroyGroup(udg_TempUnitGroup2)
-
-
Else - Actions
-
-
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Unit-type of SoldierRED[1]) Equal to Ninja
-
-
Then - Actions
-
Unit - Add Change Job to TempUnit
-
-
Else - Actions
-
Unit - Move TempUnit instantly to TempPoint, facing 270.00 degrees
-
Set TempPlayerGroup = (Player group((Owner of TempUnit)))
-
Game - Display to TempPlayerGroup for 0.50 seconds the text: |cffffcc00You don't...
-
Game - Display to TempPlayerGroup for 0.50 seconds the text:
-
Custom script: call DestroyForce(udg_TempPlayerGroup)
-
-
-
Custom script: call RemoveLocation( udg_TempPoint)
-
Custom script: call DestroyGroup(udg_TempUnitGroup)
-
-