function UsePetAbilities() { if (${Math.Calc[${Math.Distance[${Me.Pet.ToPawn.Location.X},${Me.Pet.ToPawn.Location.Y},${Pawn[id,${PetsTarget}].Location.X},${Pawn[id,${PetsTarget}].Location.Y}].Int}/100]}<=10) { if ${Math.Calc[${Math.Distance[${Me.Pet.ToPawn.Location.X},${Me.Pet.ToPawn.Location.Y},${Me.ToPawn.Location.X},${Me.ToPawn.Location.Y}].Int}/100]}>=${PullBackDist} { Call BackoffPet } if ${Me.Pet.Ability[1].IsReady} && ${doPetAbility1} { Me.Pet.Ability[1]:Use Wait 3 } if ${Me.Pet.Ability[2].IsReady} && ${doPetAbility2} { Me.Pet.Ability[2]:Use Wait 3 } if ${Me.Pet.Ability[3].IsReady} && ${doPetAbility3} { Me.Pet.Ability[3]:Use Wait 3 } if ${Me.Pet.Ability[4].IsReady} && ${doPetAbility4} { Me.Pet.Ability[4]:Use Wait 3 } if ${Me.Pet.Ability[5].IsReady} && ${doPetAbility5} { Me.Pet.Ability[5]:Use Wait 3 } if ${Me.Pet.Ability[6].IsReady} && ${doPetAbility6} { Me.Pet.Ability[6]:Use Wait 3 } } } function AngroPet() { PetsTarget:Set[${Me.Target.ID}] while ${Me.Pet.ToPawn.CombatState}==1 { Call UseCombatAbilities Call UsePetAbilities Call UseDotAbilities } } function UseCombatAbilities() { if !${Me.IsCasting} && ${Me.Ability[${CombatA1}].IsReady} && ${doCombatA1} && ${Me.Target.ID} && ${Me.Energy}>${Me.Ability[${CombatA1}].EnergyCost} { Me.Ability[${CombatA1}]:Use call MeCasting return } if !${Me.IsCasting} && ${Me.Ability[${CombatA2}].IsReady} && ${doCombatA2} && ${Me.Target.ID} && ${Me.Energy}>${Me.Ability[${CombatA2}].EnergyCost} { Me.Ability[${CombatA2}]:Use call MeCasting return } if !${Me.IsCasting} && ${Me.Ability[${CombatA3}].IsReady} && ${doCombatA3} && ${Me.Target.ID} && ${Me.Energy}>${Me.Ability[${CombatA3}].EnergyCost} { Me.Ability[${CombatA3}]:Use call MeCasting return } if !${Me.IsCasting} && ${Me.Ability[${CombatA4}].IsReady} && ${doCombatA4} && ${Me.Target.ID} && ${Me.Energy}>${Me.Ability[${CombatA4}].EnergyCost} { face waitframe Me.Ability[${CombatA4}]:Use call MeCasting return } } function UseDotAbilities() { if !${Me.IsCasting} && ${Me.Ability[${Dot1}].IsReady} && ${doDot1} && ${Me.Energy}>${Me.Ability[${CombatA3}].EnergyCost} { if !${Me.TargetEffect[${Dot1}](exists)} && ${Me.Target.ID} { face waitframe Me.Ability[${Dot1}]:Use call MeCasting return } } if !${Me.IsCasting} && ${Me.Ability[${Dot2}].IsReady} && ${doDot2} && ${Me.Energy}>${Me.Ability[${CombatA3}].EnergyCost} { if !${Me.TargetEffect[${Dot2}](exists)} && ${Me.Target.ID} { face waitframe Me.Ability[${Dot2}]:Use call MeCasting return } } if !${Me.IsCasting} && ${Me.Ability[${Dot3}].IsReady} && ${doDot3} && ${Me.Energy}>${Me.Ability[${CombatA3}].EnergyCost} { if !${Me.TargetEffect[${Dot3}](exists)} && ${Me.Target.ID} { face waitframe Me.Ability[${Dot3}]:Use call MeCasting return } } if !${Me.IsCasting} && ${Me.Ability[${Dot4}].IsReady} && ${doDot4} && ${Me.Energy}>${Me.Ability[${CombatA3}].EnergyCost} { if !${Me.TargetEffect[${Dot4}](exists)} && ${Me.Target.ID} { face waitframe Me.Ability[${Dot4}]:Use call MeCasting return } } }