Advertisement
Guest User

Slime Trail Lua

a guest
Dec 21st, 2015
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.68 KB | None | 0 0
  1. function SlimeTrailInitializeCaster( keys )
  2.     local caster = keys.caster
  3.     local ability = keys.ability
  4.    
  5.     local vision_aoe = ability:GetLevelSpecialValueFor("radius", (ability:GetLevel() - 1)) + 25
  6.     local duration = ability:GetLevelSpecialValueFor("duration", (ability:GetLevel() - 1))
  7.    
  8.     caster.slime_puddle = caster:GetAbsOrigin()
  9.    
  10.     ability:CreateVisibilityNode(caster.slime_puddle, vision_aoe, duration)
  11.    
  12. end
  13.  
  14. function SlimeTrailDistanceCheck( keys )
  15.     local caster = keys.caster
  16.     local ability = keys.ability
  17.     local damage_percent = keys.damage
  18.    
  19.     local caster_location = caster:GetAbsOrigin()
  20.     local thinker_location = caster.slime_puddle
  21.  
  22.     local distance = (caster_location - thinker_location):Length2D()
  23.     local slime_distance = ability:GetLevelSpecialValueFor("slime_distance", (ability:GetLevel() - 1))
  24.    
  25.     if distance >= slime_distance then
  26.         caster:RemoveModifierByName("modifier_slime_puddle_creator")
  27.         local damage_table = {}
  28.  
  29.         damage_table.attacker = caster
  30.         damage_table.damage_type = DAMAGE_TYPE_PURE
  31.         damage_table.ability = ability
  32.         damage_table.victim = caster
  33.  
  34.         damage_table.damage = caster:GetBaseMaxHealth() * damage_percent / 100
  35.  
  36.     ApplyDamage(damage_table)
  37.     end
  38. end
  39.  
  40. function SlimeTrailDisablePhase( keys )
  41.     local caster = keys.caster
  42.     local ability = keys.ability
  43.    
  44.     local attacker = keys.attacker
  45.     local damage = keys.damage
  46.    
  47.     if attacker:IsHero() and attacker:GetPlayerOwner() ~= caster:GetPlayerOwner() then
  48.         caster:RemoveModifierByName("modifier_slime_puddle_phased")
  49.         caster:RemoveModifierByName("modifier_slime_puddle_phase_timer")
  50.         ability:ApplyDataDrivenModifier(caster, caster, "modifier_slime_puddle_phase_timer", {})
  51.     end
  52. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement