- 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
-
If - Conditions
-
Events
-
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
-
If - Conditions
-
Events
-
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
-
Conditions
-
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
-
If - Conditions
- Else - Actions
-
If - Conditions
- -------- 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
-
If - Conditions
- Else - Actions
-
If - Conditions
-
Loop - Actions
-
For each (Integer BT_Integer) from 1 to BT_IndexA, do (Actions)
-
Events
-
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)
-
Events