- Joined
- May 16, 2020
- Messages
- 660
Hi guys,
I'm trying to copy dota 2's Orchid spell: Orchid Malevolence
However, this part of the description is giving me troubles:
I'm guessing this will require a group, to connect the target to the caster. And if a new caster casts the ability on the same unit, to remap the target to the new caster and remove its connection to the old caster. But I don't know how to adjust the below trigger for this (if it's even possible with this structure that is).
Can anyone please help?
Starting the trigger:
I'm trying to copy dota 2's Orchid spell: Orchid Malevolence
Silences the target unit for 5 seconds. At the end of the silence, 30% of the damage received while silenced is inflicted as bonus magical damage.
- Does not directly amplify damage as it is dealt, but rather saves all damage values and deals 30% of it 5 seconds after cast.
- This means that the damage can be avoided by becoming spell immune or invulnerable/hidden at the end of the duration.
- The damage is applied as soon as the debuff expires. Dispelling the debuff, however, skips the damage entirely.
- Recasting Soul Burn on the same target refreshes the duration.
- Doing this delays the damage further, and gives more time to deal damage to the target.
- The damage is credited to the last caster of Soul Burn on the target.
However, this part of the description is giving me troubles:
- The damage is credited to the last caster of Soul Burn on the target.
I'm guessing this will require a group, to connect the target to the caster. And if a new caster casts the ability on the same unit, to remap the target to the new caster and remove its connection to the old caster. But I don't know how to adjust the below trigger for this (if it's even possible with this structure that is).
Can anyone please help?
Starting the trigger:
-
Orchid Malevolence
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Orchid Malevolence (Effect)
-
Actions
- Set VariableSet Orchid_Index = (Orchid_Index + 1)
- Set VariableSet Orchid_Target[Orchid_Index] = (Target unit of ability being cast)
- Set VariableSet Orchid_Caster[Orchid_Index] = (Triggering unit)
- Set VariableSet Orchid_Counter[Orchid_Index] = 0
- -------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Orchid_Index Equal to 1
-
Then - Actions
- Countdown Timer - Start Orchid_Timer as a Repeating timer that will expire in 0.10 seconds
- Trigger - Turn on Orchid Malevolence Damage <gen>
- Trigger - Turn on Orchid Malevolence Loop <gen>
- Else - Actions
-
If - Conditions
-
Events
-
Orchid Malevolence Damage
-
Events
- Game - DamageEvent becomes Equal to 1.00
-
Conditions
- (DamageEventTarget has buff Soul Burn (Item)) Equal to True
-
Actions
- Set VariableSet Orchid_CV = (Custom value of DamageEventTarget)
- Set VariableSet Orchid_DamageTaken[Orchid_CV] = (Orchid_DamageTaken[Orchid_CV] + DamageEventAmount)
-
Events
-
Orchid Malevolence Loop
-
Events
- Time - Orchid_Timer expires
- Conditions
-
Actions
-
For each (Integer Orchid_Integer) from 1 to Orchid_Index, do (Actions)
-
Loop - Actions
- Set VariableSet Orchid_Counter[Orchid_Integer] = (Orchid_Counter[Orchid_Integer] + 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- Orchid_Counter[Orchid_Integer] Greater than or equal to 50
- (Orchid_Target[Orchid_Integer] has buff Soul Burn (Item)) Equal to False
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Orchid_Target[Orchid_Integer] has buff Soul Burn (Item)) Equal to True
-
Then - Actions
- Set VariableSet Orchid_CV = (Custom value of Orchid_Target[Orchid_Integer])
- Unit - Cause Orchid_Caster[Orchid_Integer] to damage Orchid_Target[Orchid_Integer], dealing (0.30 x Orchid_DamageTaken[Orchid_CV]) damage of attack type Spells and damage type Magic
- Else - Actions
-
If - Conditions
- Set VariableSet Orchid_DamageTaken[Orchid_CV] = 0.00
- -------- --------
- Set VariableSet Orchid_Target[Orchid_Integer] = Orchid_Target[Orchid_Index]
- Set VariableSet Orchid_Counter[Orchid_Integer] = Orchid_Counter[Orchid_Index]
- -------- --------
- Set VariableSet Orchid_Index = (Orchid_Index - 1)
- Set VariableSet Orchid_Integer = (Orchid_Integer - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Orchid_Index Equal to 0
-
Then - Actions
- Countdown Timer - Pause Orchid_Timer
- Trigger - Turn off Orchid Malevolence Damage <gen>
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
Loop - Actions
-
For each (Integer Orchid_Integer) from 1 to Orchid_Index, do (Actions)
-
Events
Last edited: