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()publicclass 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 = 0function 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)whileTRUE
iter =FirstOfGroup(g)if iter ==nullbreakifIsPlayerEnemy(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)destroythis