rendered paste bodyobjectdef oClass inherits oBase
{
;Shaman Spell settings - set these
variable string WeapEnchant = "Flametongue Weapon" ;What weapon enchant to use, ex Windfury Weapon
variable string OffhandEnchant = "Frostbrand Weapon" ;What offhand enchant to use if dualwielding
variable bool RandomizeWeapEnchant = TRUE ;Whether or not to randomize the enchants
variable string ShockToUse = "Earth Shock" ;What shock to use, ex Frost Shock
variable bool RandomizeShock = TRUE ;Whether or not to randomize the shock
variable bool CastInsteadOfMelee = FALSE ;Cast (lightning bolt/shocks) instead of melee
variable bool LightningPull = FALSE ;Pull with lightning instead of shocks
variable bool DualWielding = FALSE ;Whether or not you're using two weapons
;More shaman settings - don't touch these
variable int NumberWeapEnchants
variable int NumberShocks
variable int RandomInt
variable string MainHandEnchant
variable string OffHandEnchant
variable string RandomShock
variable string RandomEnchant
variable int AntiDoublecast
;----------------------
;--- Rest Variables ---
;----------------------
variable int RestHP = 80
variable int RestMP = 80
variable int StandHP = 95
variable int StandMP = 95
;----------------------
;--- Range Settings ---
;----------------------
variable int PullRange = 19 ;This needs to be set at or under 20 for shock
;pulling, and at or under 30 for lightning.
variable int MaxRanged = 19
variable int MinRanged = 10
variable int MaxMelee = 4.9
variable int MinMelee = 1.9
method Initialize()
{
}
;Stealthy's shaman members
method SetNumberEnchants()
{
echo "set num enchants"
if ${Spell["Windfury Weapon"](exists)}
{
NumberWeapEnchants:Set[4]
}
if ${Spell["Frostbrand Weapon"](exists)} && !${Spell["Windfury Weapon"](exists)}
{
echo "weap enchants 3"
NumberWeapEnchants:Set[3]
}
if ${Spell["Flametongue Weapon"](exists)} && !${Spell["Frostbrand Weapon"](exists)}
{
NumberWeapEnchants:Set[2]
}
if ${Spell["Rockbiter Weapon"](exists)} && !${Spell["Flametongue Weapon"](exists)}
{
NumberWeapEnchants:Set[1]
}
if !${Spell["Rockbiter Weapon"](exists)}
{
NumberWeapEnchants:Set[0]
}
}
method SetNumberShocks()
{
if ${Spell["Frost Shock"](exists)}
{
NumberShocks:Set[3]
}
if ${Spell["Flame Shock"](exists)} && !${Spell["Frost Shock"](exists)}
{
NumberShocks:Set[2]
}
if ${Spell["Earth Shock"](exists)} && !${Spell["Flame Shock"](exists)}
{
NumberShocks:Set[1]
}
if !${Spell["Earth Shock"](exists)}
{
NumberShocks:Set[0]
}
}
method GetRandomShock()
{
This:SetNumberShocks
if ${NumberShocks} == 3
{
RandomInt:Set[${Math.Calc[${Math.Rand[3]}+1]}]
if ${RandomInt} == 3
{
return "Frost Shock"
}
if ${RandomInt} == 2
{
return "Flame Shock"
}
if ${RandomInt} == 1
{
return "Earth Shock"
}
}
if ${NumberShocks} == 2
{
RandomInt:Set[${Math.Calc[${Math.Rand[2]}+1]}]
if ${RandomInt} == 2
{
return "Flame Shock"
}
if ${RandomInt} == 1
{
return "Earth Shock"
}
}
if ${NumberShocks} == 1
{
return "Earth Shock"
}
if ${NumberShocks} == 0
{
return "Lightning Bolt"
}
}
method GetRandomEnchant()
{
echo "get random"
This:SetNumberEnchants
if ${NumberWeapEnchants} == 4
{
RandomInt:Set[${Math.Calc[${Math.Rand[4]}+1]}]
if ${RandomInt} == 4
{
This.RandomEnchant:Set[Windfury]
return
}
if ${RandomInt} == 3
{
This.RandomEnchant:Set[Frostbrand]
return
}
if ${RandomInt} == 2
{
This.RandomEnchant:Set[Flametongue]
return
}
if ${RandomInt} == 1
{
This.RandomEnchant:Set[Rockbiter]
return
}
}
if ${NumberWeapEnchants} == 3
{
RandomInt:Set[${Math.Calc[${Math.Rand[3]}+1]}]
if ${RandomInt} == 3
{
This.RandomEnchant:Set[Frostbrand]
return
}
if ${RandomInt} == 2
{
This.RandomEnchant:Set[Flametongue]
return
}
if ${RandomInt} == 1
{
This.RandomEnchant:Set[Rockbiter]
return
}
}
if ${NumberWeapEnchants} == 2
{
RandomInt:Set[${Math.Calc[${Math.Rand[2]}+1]}]
if ${RandomInt} == 2
{
This.RandomEnchant:Set[Flametongue]
return
}
if ${RandomInt} == 1
{
This.RandomEnchant:Set[Rockbiter]
return
}
}
if ${NumberWeapEnchants} == 1
{
This.RandomEnchant:Set[Rockbiter]
return
}
}
;------------------
;--- Rest SetUp ---
;------------------
member NeedRest()
{
if ${Me.PctHPs} < ${RestHP}
{
return TRUE
}
if ${Me.PctHPs} < ${StandHP} && ${Me.Sitting}
{
return TRUE
}
return FALSE
}
method RestPulse()
{
if !${Me.Buff[Food](exists)} && !${Me.Buff[Drink](exists)}
{
Toon:Standup
}
if ${Me.CurrentMana} >= ${Spell["Healing Wave"].Mana} && ${Me.PctHPs} < ${This.StandHP} && ${Spell["Healing Wave"](exists)}
{
Toon:CastSpell[Healing Wave]
}
elseif ${Me.CurrentMana} >= ${Spell["Lesser Healing Wave"].Mana} && ${Me.PctHPs} < ${This.StandHP} && ${Spell["Lesser Healing Wave"](exists)}
{
Toon:CastSpell[Lesser Healing Wave]
}
Toon:Sitdown
if ${Movement.Speed}
{
Move -stop
}
if ${Me.PctHPs} >= ${StandHP} && ${Me.Sitting}
{
Toon:Standup
}
return
if ${Consumable.HasFood} && ${Me.PctHPs} < ${This.StandHP} && !${Me.Buff[Food](exists)}
{
Consumable:useFood
}
if ${Consumbale.HasFood} && ${Me.PctMana} < ${This.StandMP} && !${Me.Buff[Drink](exists)}
{
Consumable:useDrink
}
}
;------------------
;--- Buff SetUp ---
;------------------
member NeedBuff()
{
if !${DualWielding} && !${Me.Equip[mainhand].Enchantment[${This.MainHandEnchant}](exists)} && !${Me.Equip[mainhand].Enchantment[${This.WeapEnchant}](exists)}
{
return TRUE
}
if ${DualWielding} && !${Me.Equip[mainhand].Enchantment[${MainHandEnchant}](exists)} || !${Me.Equip[offhand].Enchantment[${OffHandEnchant}](exists)}
{
return TRUE
}
return FALSE
}
method BuffPulse()
{
if ${Me.Sitting}
{
Toon:Standup
}
if !${DualWielding}
{
if ${RandomizeWeapEnchant}
{
This:GetRandomEnchant
Toon:CastSpell[${RandomEnchant} Weapon]
This:Output["Random weapon enchant: ${RandomEnchant}"]
This.MainHandEnchant:Set[${RandomEnchant} Weapon ${Spell[${RandomEnchant} Weapon].Rank}]
return
}
elseif !${RandomizeWeapEnchant}
{
This:CastSpell[${WeapEnchant}]
This:Output["Weapon Enchant: ${WeapEnchant}"]
This.MainHandEnchant:Set[${WeapEnchant}]
return
}
}
elseif ${DualWielding}
{
if ${RandomizeWeapEnchant}
{
This:SetNumberEnchants
This:GetRandomEnchant
This:CastSpell[${Return}]
This.MainHandEnchant:Set[${Return}]
This:Output["Random mainhand weapon enchant is: ${Return}"]
This:GetRandomEnchant
This:CastSpell[${Return}]
This.OffHandEnchant:Set[${Return}]
This:Output["Random offhand weapon enchant is: ${Return}"]
return
}
if !${RandomizeWeapEnchant}
{
This:CastSpell[${WeapEnchant}]
This:Output["Mainhand Enchant: ${WeapEnchant}"]
This.MainHandEnchant:Set[${WeapEnchant}]
This:CastSpell[${OffhandEnchant}]
This:Output["Offhand Enchant: ${OffhandEnchant}"]
This.OffHandEnchant:Set[${OffhandEnchant}]
return
}
}
}
;------------------
;--- Pull SetUp ---
;------------------
member NeedPullBuff()
{
return FALSE
}
method PullBuffPulse()
{
}
;------------------------
;--- CombatBuff SetUp ---
;------------------------
member NeedCombatBuff()
{
if !${Me.Buff["Lightning Shield"](exists)}
{
return TRUE
}
return FALSE
}
method CombatBuffPulse()
{
if !${Me.Buff["Lightning Shield"](exists)} && ${Spell["Lightning Shield"](exists)}
{
Toon:CastSpell[Lightning Shield]
return
}
}
;------------------
;--- Pull SetUp ---
;------------------
method PullPulse()
{
if ${Math.Distance[${Me.Location},${Target.Location}]} > ${PullRange}
{
move forward
do
{
}
while ${Math.Distance[${Me.Location},${Target.Location}]} > ${PullRange}
move -stop
}
if ${LightningPull}
{
Toon:CastSpell[Lightning Bolt]
This:Output["Pulling: Lightning Bolt"]
return
}
if !${LightningPull} && ${RandomizeShock}
{
This:GetRandomShock
Toon:CastSpell[${Return}]
This:Output["Pulling: ${Return}"]
return
}
if !${LightningPull} && !${RandomizeShock}
{
Toon:CastSpell[${ShockToUse}]
This:Output["Pulling: ${ShockToUse}"]
return
}
}
;--------------------
;--- Combat SetUp ---
;--------------------
method AttackPulse()
{
}
}