- Joined
- May 16, 2020
- Messages
- 660
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)
-
-