init registerSpellEffectEvent('A01M',function spellCast) timerIterateSpell.startPeriodic(0.03,function spellLoop) timerIterateSpell2.startPeriodic(0.03,function spellLoop2)
function spellCast() vec2 target = vec2(GetLocationX(GetSpellTargetLoc()),GetLocationY(GetSpellTargetLoc())) //print(target.toString())
vec2 origin = GetTriggerUnit().getPos()
let uvy = origin.distToVec(target)
//print(uvy.toString())
let agi = GetHeroAgi(GetTriggerUnit(),true).toReal()
let str = GetHeroStr(GetTriggerUnit(),true).toReal()
GetTriggerUnit().addAbility('Amrf')
GetTriggerUnit().addAbility('A01N')
GetTriggerUnit().getOwner().setAbilityAvailable('Amrf',false)
//let u = createUnit(GetTriggerUnit().getOwner(),'n011',GetTriggerUnit().getPos(),origin.angleTo(target))
//print(u.getName())
//GetTriggerUnit().issuePointOrder("move",target)
//u.setVertexColor(255,255,255,155)
//u.setTimeScale(3.5)
let lev = GetTriggerUnit().getAbilityLevel('A01M').toReal()
spellList.add(new Spell(GetTriggerUnit(),agi,str,lev,uvy,GetTriggerUnit(),vec2(0,0).polarOffset(origin.angleTo(target),27)))
function spellLoop2() for x in spellList2 x.setTime()
function spellLoop()
for x in spellList
x.setTime()
public class Spell
real time
real xtime
real agi
real str
real lvl
unit u
unit caster
vec2 veloc
construct(unit c,real a,real g,real b,real d,unit cast,vec2 velo)
time = d
xtime = d
u = c
agi = a
str = g
lvl = b
caster = cast
veloc = velo
//i = 0
function setTime()
time = time - 27
//SetUnitAnimation(u, "walk")
//u.setVertexColor(255,255,255,(time/4.71).toInt())
u.setFlyHeight(((time)*(xtime-time))/500,0)
u.setXY(u.getPos()+veloc)
if time <= 0
u.setFlyHeight(0,0)
u.removeAbility('Amrf')
u.removeAbility('A01N')
if caster.isAlive()
//caster.setPos(u.getPos())
//u.kill()
g.enumUnitsInRange(u.getPos(),200)
while TRUE
iter = FirstOfGroup(g)
if iter == null
break
if IsPlayerEnemy(iter.getOwner(),u.getOwner())
caster.damageTarget(iter,100)
spellList2.add(new Spell2(vec2(0,0).polarOffset(caster.getPos().angleTo(iter.getPos()),24),iter))
g.removeUnit(iter)
let m = "Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl"
DestroyEffect(AddSpecialEffect(m,caster.getX(),caster.getY()))
spellList.remove(this)
destroy this