- Joined
- May 16, 2020
- Messages
- 662
Hi guys,
I'm trying to recreate Abaddon from Dota 2 in MUI, specifically Borrowed Time.
Abaddon.
From what I can tell the spell works correctly when only 1 unit is present. But with 2 units sometimes incoming damage is NOT absorbed when Borrowed Time is activated (either passively or actively). I spent a few hours now trying to understand what is wrong... but I don't see anything.
Can anyone please help?
Happy to send the map if it's easier.
I'm trying to recreate Abaddon from Dota 2 in MUI, specifically Borrowed Time.
Abaddon.
From what I can tell the spell works correctly when only 1 unit is present. But with 2 units sometimes incoming damage is NOT absorbed when Borrowed Time is activated (either passively or actively). I spent a few hours now trying to understand what is wrong... but I don't see anything.
Can anyone please help?
Happy to send the map if it's easier.
-
Borrowed Time Active
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Borrowed Time
-


BT_BooleanDuration[(Custom value of (Triggering unit))] Equal to False
-


BT_BooleanCooldown[(Custom value of (Triggering unit))] Equal to False
-
-

Actions
-


Set VariableSet BT_IndexA = (BT_IndexA + 1)
-


Set VariableSet BT_IndexB = (BT_IndexB + 1)
-


Set VariableSet BT_Caster[BT_IndexA] = (Triggering unit)
-


Set VariableSet BT_CS = (Custom value of BT_Caster[BT_IndexA])
-


Set VariableSet BT_BooleanDuration[BT_CS] = True
-


Set VariableSet BT_BooleanCooldown[BT_CS] = True
-


Set VariableSet BT_AphoticShield_Boolean[BT_CS] = True
-


Set VariableSet BT_Counter[BT_IndexA] = 0.00
-


Set VariableSet BT_Duration[BT_IndexA] = (3 + (Level of Borrowed Time for BT_Caster[BT_IndexA]))
-


Set VariableSet BT_Cooldown[BT_IndexA] = (70 - (10 x (Level of Borrowed Time for BT_Caster[BT_IndexA])))
-


Special Effect - Create a special effect attached to the origin of BT_Caster[BT_IndexA] using war3mapImported\AZ_Abaddon01_B.mdx
-


Set VariableSet BT_Specialeffect[BT_IndexA] = (Last created special effect)
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




BT_IndexA Equal to 1
-
-



Then - Actions
-




Game - Display to (All players) for 2.00 seconds the text: Borrowed Time on
-




Countdown Timer - Start BT_Timer as a Repeating timer that will expire in 0.10 seconds
-




Trigger - Turn on Borrowed Time Absorb <gen>
-




Trigger - Turn on Borrowed Time Loop <gen>
-
-



Else - Actions
-
-
-
-
Borrowed Time Passive
-

Events
-


Game - AfterDamageEvent becomes Equal to 1.00
-
-

Conditions
-


(Level of Borrowed Time for DamageEventTarget) Greater than 0
-


(Life of DamageEventTarget) Less than or equal to 400.00
-


(Life of DamageEventTarget) Greater than 0.00
-


BT_BooleanDuration[(Custom value of DamageEventTarget)] Equal to False
-


BT_BooleanCooldown[(Custom value of DamageEventTarget)] Equal to False
-
-

Actions
-


Set VariableSet BT_CS = (Custom value of DamageEventTarget)
-


Set VariableSet BT_BooleanDuration[BT_CS] = True
-


Set VariableSet BT_BooleanCooldown[BT_CS] = True
-


Set VariableSet BT_AphoticShield_Boolean[BT_CS] = True
-


Unit - For Unit DamageEventTarget, start cooldown of ability Borrowed Time " over "(70.00 - (10.00 x (Real((Level of Borrowed Time for DamageEventTarget))))) seconds.
-


Set VariableSet BT_IndexA = (BT_IndexA + 1)
-


Set VariableSet BT_IndexB = (BT_IndexB + 1)
-


Set VariableSet BT_Caster[BT_IndexA] = DamageEventTarget
-


Set VariableSet BT_Counter[BT_IndexA] = 0.00
-


Set VariableSet BT_Duration[BT_IndexA] = (3 + (Level of Borrowed Time for DamageEventTarget))
-


Set VariableSet BT_Cooldown[BT_IndexA] = (70 - (10 x (Level of Borrowed Time for DamageEventTarget)))
-


Special Effect - Create a special effect attached to the origin of DamageEventTarget using war3mapImported\AZ_Abaddon01_B.mdx
-


Set VariableSet BT_Specialeffect[BT_IndexA] = (Last created special effect)
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




BT_IndexA Equal to 1
-
-



Then - Actions
-




Game - Display to (All players) for 2.00 seconds the text: Borrowed Time on
-




Countdown Timer - Start BT_Timer as a Repeating timer that will expire in 0.10 seconds
-




Trigger - Turn on Borrowed Time Absorb <gen>
-




Trigger - Turn on Borrowed Time Loop <gen>
-
-



Else - Actions
-
-
-
-
Borrowed Time Loop
-

Events
-


Time - BT_Timer expires
-
-

Conditions
-

Actions
-


For each (Integer BT_Integer) from 1 to BT_IndexA, do (Actions)
-



Loop - Actions
-




Set VariableSet BT_CS = (Custom value of BT_Caster[BT_Integer])
-




Set VariableSet BT_Counter[BT_Integer] = (BT_Counter[BT_Integer] + 0.10)
-




-------- CHECK IF DURATION OVER --------
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






BT_BooleanDuration[BT_CS] Equal to True
-






Or - Any (Conditions) are true
-







Conditions
-








BT_Counter[BT_Integer] Greater than or equal to (Real(BT_Duration[BT_Integer]))
-








(BT_Caster[BT_Integer] is alive) Equal to False
-
-
-
-





Then - Actions
-






Set VariableSet BT_BooleanDuration[BT_CS] = False
-






Set VariableSet BT_AphoticShield_Boolean[BT_CS] = False
-






Special Effect - Destroy BT_Specialeffect[BT_Integer]
-






Set VariableSet BT_IndexB = (BT_IndexB - 1)
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








BT_IndexB Equal to 0
-
-







Then - Actions
-








Game - Display to (All players) for 2.00 seconds the text: Borrowed Time off
-








Trigger - Turn off Borrowed Time Absorb <gen>
-
-







Else - Actions
-
-
-





Else - Actions
-
-




-------- CHECK IF COOLDOWN OVER --------
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






BT_BooleanCooldown[BT_CS] Equal to True
-






BT_Counter[BT_Integer] Greater than or equal to (Real(BT_Cooldown[BT_Integer]))
-
-





Then - Actions
-






Set VariableSet BT_BooleanCooldown[BT_CS] = False
-






Set VariableSet BT_Caster[BT_Integer] = BT_Caster[BT_IndexA]
-






Set VariableSet BT_Counter[BT_Integer] = BT_Counter[BT_IndexA]
-






Set VariableSet BT_IndexA = (BT_IndexA - 1)
-






Set VariableSet BT_Integer = (BT_Integer - 1)
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








BT_IndexA Equal to 0
-
-







Then - Actions
-








Game - Display to (All players) for 2.00 seconds the text: Cooldown OVER
-








Countdown Timer - Pause BT_Timer
-








Trigger - Turn off (This trigger)
-
-







Else - Actions
-
-
-





Else - Actions
-
-
-
-
-
-
Borrowed Time Absorb
-

Events
-


Game - DamageModifierEvent becomes Equal to 4.00
-
-

Conditions
-


(Level of Borrowed Time for DamageEventTarget) Greater than 0
-


BT_BooleanDuration[(Custom value of DamageEventTarget)] Equal to True
-
-

Actions
-


Set VariableSet DamageEventAmount = (-1.00 x DamageEventAmount)
-
-
