forked from Bastion/Bastion
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
726 lines
29 KiB
726 lines
29 KiB
local Tinkr, Bastion = ...
|
|
|
|
local DiscModule = Bastion.Module:New('disc')
|
|
local Evaluator = Tinkr.Util.Evaluator
|
|
local Player = Bastion.UnitManager:Get('player')
|
|
local None = Bastion.UnitManager:Get('none')
|
|
local Target = Bastion.UnitManager:Get('target')
|
|
|
|
local myconf = Tinkr.Util.Config:New('disc_priest')
|
|
|
|
local AngelicFeather = Bastion.SpellBook:GetSpell(121536)
|
|
local DesperatePrayer = Bastion.SpellBook:GetSpell(19236)
|
|
local DispelMagic = Bastion.SpellBook:GetSpell(528)
|
|
local Fade = Bastion.SpellBook:GetSpell(586)
|
|
local FlashHeal = Bastion.SpellBook:GetSpell(2061)
|
|
local LeapofFaith = Bastion.SpellBook:GetSpell(73325)
|
|
local Levitate = Bastion.SpellBook:GetSpell(1706)
|
|
local MassDispel = Bastion.SpellBook:GetSpell(32375)
|
|
local MindBlast = Bastion.SpellBook:GetSpell(8092)
|
|
local MindSoothe = Bastion.SpellBook:GetSpell(453)
|
|
local MindVision = Bastion.SpellBook:GetSpell(2096)
|
|
local PowerInfusion = Bastion.SpellBook:GetSpell(10060)
|
|
local PowerWordFortitude = Bastion.SpellBook:GetSpell(21562)
|
|
local PowerWordLife = Bastion.SpellBook:GetSpell(373481)
|
|
local PowerWordShield = Bastion.SpellBook:GetSpell(17)
|
|
local PsychicScream = Bastion.SpellBook:GetSpell(8122)
|
|
local Renew = Bastion.SpellBook:GetSpell(139)
|
|
local Resurrection = Bastion.SpellBook:GetSpell(2006)
|
|
local ShadowWordDeath = Bastion.SpellBook:GetSpell(32379)
|
|
local Shadowfiend = Bastion.SpellBook:GetSpell(34433)
|
|
local Smite = Bastion.SpellBook:GetSpell(585)
|
|
local VampiricEmbrace = Bastion.SpellBook:GetSpell(15286)
|
|
local VoidTendrils = Bastion.SpellBook:GetSpell(108920)
|
|
local FocusedWill = Bastion.SpellBook:GetSpell(45243)
|
|
local BoonoftheAscended = Bastion.SpellBook:GetSpell(325013)
|
|
|
|
local Apotheosis = Bastion.SpellBook:GetSpell(392941)
|
|
local DivineStar = Bastion.SpellBook:GetSpell(110744)
|
|
local MassResurrection = Bastion.SpellBook:GetSpell(212036)
|
|
local PainSuppression = Bastion.SpellBook:GetSpell(33206)
|
|
local Penance = Bastion.SpellBook:GetSpell(47540)
|
|
local PowerWordBarrier = Bastion.SpellBook:GetSpell(62618)
|
|
local PowerWordRadiance = Bastion.SpellBook:GetSpell(194509)
|
|
local PurgetheWicked = Bastion.SpellBook:GetSpell(204197)
|
|
local Purify = Bastion.SpellBook:GetSpell(527)
|
|
local Rapture = Bastion.SpellBook:GetSpell(47536)
|
|
local Schism = Bastion.SpellBook:GetSpell(214621)
|
|
local ShadowCovenant = Bastion.SpellBook:GetSpell(314867)
|
|
local Atonement = Bastion.SpellBook:GetSpell(81749)
|
|
local MasteryGrace = Bastion.SpellBook:GetSpell(271534)
|
|
local SinsoftheMany = Bastion.SpellBook:GetSpell(280391)
|
|
local Apotheosis = Bastion.SpellBook:GetSpell(392941)
|
|
local DivineStar = Bastion.SpellBook:GetSpell(110744)
|
|
local MassResurrection = Bastion.SpellBook:GetSpell(212036)
|
|
local Purify = Bastion.SpellBook:GetSpell(527)
|
|
local ShadowWordPain = Bastion.SpellBook:GetSpell(204197)
|
|
local DivineStar = Bastion.SpellBook:GetSpell(110744)
|
|
local ShadowWordPain = Bastion.SpellBook:GetSpell(204197)
|
|
|
|
local Lowest = Bastion.UnitManager:CreateCustomUnit('lowest', function(unit)
|
|
local lowest = nil
|
|
local lowestHP = math.huge
|
|
|
|
Bastion.UnitManager:EnumFriends(function(unit)
|
|
if unit:IsDead() then
|
|
return false
|
|
end
|
|
|
|
if Player:GetDistance(unit) > 40 then
|
|
return false
|
|
end
|
|
|
|
if not Player:CanSee(unit) then
|
|
return false
|
|
end
|
|
|
|
local hp = unit:GetHP()
|
|
if hp < lowestHP then
|
|
lowest = unit
|
|
lowestHP = hp
|
|
end
|
|
end)
|
|
|
|
if not lowest then
|
|
lowest = Player
|
|
end
|
|
|
|
return lowest
|
|
end)
|
|
|
|
local PurgeTarget = Bastion.UnitManager:CreateCustomUnit('purge', function(unit)
|
|
local purge = nil
|
|
|
|
Bastion.UnitManager:EnumEnemies(function(unit)
|
|
if unit:IsDead() then
|
|
return false
|
|
end
|
|
|
|
if not Player:CanSee(unit) then
|
|
return false
|
|
end
|
|
|
|
if Player:GetDistance(unit) > 40 then
|
|
return false
|
|
end
|
|
|
|
if not unit:IsDead() and Player:CanSee(unit) and
|
|
unit:GetAuras():HasAnyStealableAura() then
|
|
purge = unit
|
|
return true
|
|
end
|
|
end)
|
|
|
|
if purge == nil then
|
|
purge = None
|
|
end
|
|
|
|
return purge
|
|
end)
|
|
local DispelTarget = Bastion.UnitManager:CreateCustomUnit('dispel', function(unit)
|
|
local lowest = nil
|
|
local lowestHP = math.huge
|
|
|
|
Bastion.UnitManager:EnumFriends(function(unit)
|
|
if unit:IsDead() then
|
|
return false
|
|
end
|
|
|
|
if not Player:CanSee(unit) then
|
|
return false
|
|
end
|
|
|
|
if Player:GetDistance(unit) > 40 then
|
|
return false
|
|
end
|
|
|
|
if not unit:IsDead() and Player:CanSee(unit) and
|
|
unit:GetAuras():HasAnyDispelableAura(Purify) then
|
|
|
|
local hp = unit:GetHP()
|
|
if hp < lowestHP then
|
|
lowest = unit
|
|
lowestHP = hp
|
|
end
|
|
end
|
|
end)
|
|
|
|
if lowest == nil then
|
|
lowest = None
|
|
end
|
|
|
|
return lowest
|
|
end)
|
|
local Tank = Bastion.UnitManager:CreateCustomUnit('tank', function(unit)
|
|
local tank = nil
|
|
Bastion.UnitManager:EnumFriends(function(unit)
|
|
if Player:GetDistance(unit) > 40 then return false end
|
|
if not Player:CanSee(unit) then return false end
|
|
if unit:IsDead() then return false end
|
|
if unit:IsTank() then
|
|
tank = unit
|
|
return true
|
|
end
|
|
return false
|
|
end)
|
|
if tank == nil then
|
|
tank = None
|
|
end
|
|
return tank
|
|
end)
|
|
local Explosive = Bastion.UnitManager:CreateCustomUnit('explosive', function(unit)
|
|
local explosive = nil
|
|
Bastion.UnitManager:EnumEnemies(function(unit)
|
|
if unit:IsDead() then return false end
|
|
if not Player:CanSee(unit) then return false end
|
|
if Player:GetDistance(unit) > 40 then return false end
|
|
if Player:InMelee(unit) and unit:GetID() == 120651 and Player:IsFacing(unit) then
|
|
explosive = unit
|
|
return true
|
|
end
|
|
end)
|
|
if explosive == nil then
|
|
explosive = None
|
|
end
|
|
return explosive
|
|
end)
|
|
local RenewUnit = Bastion.UnitManager:CreateCustomUnit('renew', function(unit)
|
|
local lowest = nil
|
|
local lowestHP = math.huge
|
|
|
|
Bastion.UnitManager:EnumFriends(function(unit)
|
|
if unit:IsDead() then
|
|
return false
|
|
end
|
|
|
|
if not Player:CanSee(unit) then
|
|
return false
|
|
end
|
|
|
|
if Player:GetDistance(unit) > 40 then
|
|
return false
|
|
end
|
|
|
|
if not unit:IsDead() and Player:CanSee(unit) and
|
|
(
|
|
not unit:GetAuras():FindMy(Renew):IsUp() or
|
|
unit:GetAuras():FindMy(Renew):GetRemainingTime() <= 1.6) then
|
|
|
|
local hp = unit:GetHP()
|
|
if hp < lowestHP then
|
|
lowest = unit
|
|
lowestHP = hp
|
|
end
|
|
end
|
|
|
|
end)
|
|
|
|
|
|
if lowest == nil then
|
|
lowest = Player
|
|
end
|
|
|
|
return lowest
|
|
end)
|
|
|
|
local PshieldUnit = Bastion.UnitManager:CreateCustomUnit('pshield', function(unit)
|
|
local lowest = nil
|
|
local lowestHP = math.huge
|
|
|
|
Bastion.UnitManager:EnumFriends(function(unit)
|
|
if unit:IsDead() then
|
|
return false
|
|
end
|
|
|
|
if not Player:CanSee(unit) then
|
|
return false
|
|
end
|
|
|
|
if Player:GetDistance(unit) > 40 then
|
|
return false
|
|
end
|
|
|
|
if not unit:IsDead() and Player:CanSee(unit) and
|
|
(
|
|
not unit:GetAuras():FindMy(PowerWordShield):IsUp()) then
|
|
|
|
local hp = unit:GetHP()
|
|
if hp < lowestHP then
|
|
lowest = unit
|
|
lowestHP = hp
|
|
end
|
|
end
|
|
|
|
end)
|
|
|
|
|
|
if lowest == nil then
|
|
lowest = Player
|
|
end
|
|
|
|
return lowest
|
|
end)
|
|
|
|
|
|
|
|
local DefaultAPL = Bastion.APL:New('default')
|
|
DefaultAPL:AddSpell(
|
|
PowerWordFortitude:CastableIf(function(self)
|
|
return usepwf and self:IsKnownAndUsable() and
|
|
not Player:IsCastingOrChanneling() and not Player:GetAuras():FindMy(PowerWordFortitude):IsUp() and not IsMounted()
|
|
end):SetTarget(Player)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
ShadowCovenant:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Player)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
ShadowWordPain:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and not Target:GetAuras():FindMy(ShadowWordPain):IsUp()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PowerWordShield:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and
|
|
not Player:IsCastingOrChanneling() and not Player:GetAuras():FindMy(PowerWordShield):IsUp() and not IsMounted() and Player:GetHealth() < 80
|
|
end):SetTarget(Player)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Shadowfiend:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PowerInfusion:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Player)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
ShadowWordDeath:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and Target:GetHealthPercent() <= 20
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
MindBlast:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Smite:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PurgeTheWicked:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and not Target:GetAuras():PurgeTheWicked()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Schism:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Penance:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
end):SetTarget(Target)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Penance:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and Lowest:GetHP() <= 70
|
|
end):SetTarget(Lowest)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
DispelMagic:CastableIf(function(self)
|
|
return PurgeTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and
|
|
self:IsInRange(PurgeTarget) and PurgeTarget:GetAuras():HasAnyStealableAura()
|
|
end):SetTarget(PurgeTarget)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Purify:CastableIf(function(self)
|
|
return DispelTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and
|
|
self:IsInRange(DispelTarget) and DispelTarget:GetAuras():HasAnyDispelableAura(Purify)
|
|
end):SetTarget(DispelTarget)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PainSuppression:CastableIf(function(self)
|
|
return Tank:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
and Player:CanSee(Tank) and Tank:GetHP() <= 30
|
|
end):SetTarget(Tank)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
FlashHeal:CastableIf(function(self)
|
|
return Lowest:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
and Player:CanSee(Lowest) and Lowest:GetHP() <= 65
|
|
end):SetTarget(Lowest)
|
|
)
|
|
|
|
DefaultAPL:AddSpell(
|
|
PowerWordLife:CastableIf(function(self)
|
|
return Lowest:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
and Player:CanSee(Lowest) and Lowest:GetHP() <= 35
|
|
end):SetTarget(Lowest)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
Renew:CastableIf(function(self)
|
|
return RenewUnit:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
and Player:CanSee(RenewUnit) and RenewUnit:GetHP() <= 95
|
|
|
|
end):SetTarget(RenewUnit)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PowerWordShield:CastableIf(function(self)
|
|
return PshieldUnit:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
|
|
and Player:CanSee(PshieldUnit) and PshieldUnit:GetHP() <= 70
|
|
|
|
end):SetTarget(PshieldUnit)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PowerWordRadiance:CastableIf(function(self)
|
|
return Player:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and Player:IsInParty() and
|
|
self:IsInRange(Player) and Player:GetPartyHPAround(50) >= 3
|
|
end):SetTarget(Player)
|
|
)
|
|
DefaultAPL:AddSpell(
|
|
PowerWordBarrier:CastableIf(function(self)
|
|
return Player:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and Player:IsInParty() and
|
|
self:IsInRange(Player) and Player:GetPartyHPAround(40) >= 3
|
|
end):SetTarget(Player)
|
|
)
|
|
OpenerAPL:AddSpell(
|
|
DivineStar:CastableIf(function(self)
|
|
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling() and Player:IsFacing(target)
|
|
end):SetTarget(None):OnCast(function(self)
|
|
local loc = Target:GetPosition()
|
|
self:Click(loc)
|
|
end)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DiscModule:Sync(function()
|
|
if Player:IsAffectingCombat() then
|
|
DefaultAPL:Execute()
|
|
end
|
|
end)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bastion:Register(DiscModule)
|
|
|
|
|
|
local tab1 =
|
|
{
|
|
layoutConfig = { padding = { top = 40 } },
|
|
rows = {
|
|
|
|
|
|
[1] = { resto = { type = 'header', label = 'DPS Options' } },
|
|
|
|
[2] = { dps1 = { type = 'slider', label = 'DPS Health Threshold', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('dpshealth', 85),
|
|
onValueChanged = function(_, value) myconf:Write('dpshealth', value) end },
|
|
|
|
dps2 = { type = 'slider', label = 'Player Mana Threshold', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('playermana', 85),
|
|
onValueChanged = function(_, value) myconf:Write('playermana', value) end }, },
|
|
|
|
|
|
|
|
[3] = { autoform = { type = 'header', label = 'Natures Cure' } },
|
|
[4] = { pummel = { type = 'checkbox', label = 'Dispell', column = 6,
|
|
initialValue = myconf:Read('naturescure1', false),
|
|
onValueChanged = function(_, flag) myconf:Write('naturescure1', flag) end }, },
|
|
|
|
[5] = { resto = { type = 'header', label = 'Soothe' } },
|
|
|
|
[6] = { incombat = { type = 'checkbox', label = 'Shoote Target', column = 12, order = 1,
|
|
initialValue = myconf:Read('soothe', false),
|
|
onValueChanged = function(_, flag) myconf:Write('soothe', flag) end }, },
|
|
|
|
[7] = { resto = { type = 'header', label = 'Dispel Delay Time' } },
|
|
|
|
[8] = { delay = { type = 'slider', label = 'In seconds', column = 6, order = 1,
|
|
min = 0.5, max = 2, precision = 1,
|
|
initialValue = myconf:Read('dispeldelay', 1),
|
|
onValueChanged = function(_, value) myconf:Write('dispeldelay', value) end }, },
|
|
|
|
[9] = { innervate1 = { type = 'checkbox', label = 'Innervate', column = 6, order = 1,
|
|
initialValue = myconf:Read('innervate', false),
|
|
onValueChanged = function(_, flag) myconf:Write('innervate', flag) end },
|
|
|
|
innervate2 = { type = 'slider', label = 'Player Mana', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('innervatemana', 35),
|
|
onValueChanged = function(_, value) myconf:Write('innervatemana', value) end }, },
|
|
|
|
[10] = { frostmage = { type = 'header', label = 'Trinkets' } },
|
|
[11] = { pummel = { type = 'checkbox', label = 'Use Trinkets', column = 6,
|
|
initialValue = myconf:Read('trinkets', false),
|
|
onValueChanged = function(_, flag) myconf:Write('trinkets', flag) end }, },
|
|
|
|
[12] = { autoform = { type = 'header', label = 'Auto Form' } },
|
|
[13] = { pummel = { type = 'checkbox', label = 'Use Auto Form', column = 6,
|
|
initialValue = myconf:Read('autoform', false),
|
|
onValueChanged = function(_, flag) myconf:Write('autoform', flag) end }, },
|
|
|
|
},
|
|
}
|
|
|
|
local tab2 =
|
|
{
|
|
layoutConfig = { padding = { top = 40 } },
|
|
rows = {
|
|
[1] = { resto = { type = 'header', label = 'Player Healing' } },
|
|
|
|
[2] = { incombat = { type = 'checkbox', label = 'In Combat Healing', column = 6, order = 1,
|
|
initialValue = myconf:Read('playericheal', false),
|
|
onValueChanged = function(_, flag) myconf:Write('playericheal', flag) end },
|
|
|
|
outcombat = { type = 'checkbox', label = 'Out of Combat Healing', column = 6, order = 2,
|
|
initialValue = myconf:Read('playeroocheal', false),
|
|
onValueChanged = function(_, flag) myconf:Write('playeroocheal', flag) end }, },
|
|
|
|
[3] = { shadowmend1 = { type = 'checkbox', label = 'Regrowth', column = 6, order = 1,
|
|
initialValue = myconf:Read('shadowmend', false),
|
|
onValueChanged = function(_, flag) myconf:Write('shadowmend', flag) end },
|
|
|
|
shadowmend2 = { type = 'slider', label = 'Player Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('shadowmendpercent', 35),
|
|
onValueChanged = function(_, value) myconf:Write('shadowmendpercent', value) end }, },
|
|
|
|
[4] = { resto = { type = 'header', label = 'Defensives' } },
|
|
|
|
[5] = { bark1 = { type = 'checkbox', label = 'Barkskin', column = 6, order = 1,
|
|
initialValue = myconf:Read('barkskin', false),
|
|
onValueChanged = function(_, flag) myconf:Write('barkskin', flag) end },
|
|
|
|
bark2 = { type = 'slider', label = 'Player Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('barkskinpercent', 35),
|
|
onValueChanged = function(_, value) myconf:Write('barkskinpercent', value) end }, },
|
|
|
|
},
|
|
}
|
|
|
|
local tab3 =
|
|
{
|
|
layoutConfig = { padding = { top = 40 } },
|
|
rows = {
|
|
[1] = { incombat = { type = 'checkbox', label = 'In Combat Healing', column = 6, order = 1,
|
|
initialValue = myconf:Read('groupicheal', false),
|
|
onValueChanged = function(_, flag) myconf:Write('groupicheal', flag) end },
|
|
|
|
outcombat = { type = 'checkbox', label = 'Out of Combat Healing', column = 6, order = 2,
|
|
initialValue = myconf:Read('groupoocheal', false),
|
|
onValueChanged = function(_, flag) myconf:Write('groupoocheal', flag) end }, },
|
|
|
|
[2] = { lifebloom1 = { type = 'dropdown', label = 'Lifebloom on', column = 6, order = 1,
|
|
options = {
|
|
{ text = 'Tank Only', value = 'tank'},
|
|
{ text = 'All Party', value = 'party'},
|
|
{ text = 'Player', value = 'player'},
|
|
{ text = 'None', value = 'none'},
|
|
},
|
|
initialValue = myconf:Read('lifebloomtarget', 'tank'),
|
|
onValueChanged = function(_, value) myconf:Write('lifebloomtarget', value) end }, },
|
|
|
|
[3] = { resto = { type = 'header', label = 'AOE Heals' } },
|
|
|
|
[4] = { tranq1 = { type = 'checkbox', label = 'Tranquility', column = 6, order = 1,
|
|
initialValue = myconf:Read('grptranq', false),
|
|
onValueChanged = function(_, flag) myconf:Write('grptranq', flag) end }, },
|
|
|
|
[5] = { tranq2 = { type = 'slider', label = 'Number of Targets', column = 6, order = 2,
|
|
min = 1, max = 10, precision = 0,
|
|
initialValue = myconf:Read('tranqtargets', 3),
|
|
onValueChanged = function(_, value) myconf:Write('tranqtargets', value) end },
|
|
|
|
tranq3 = { type = 'slider', label = 'Target Health', column = 6, order = 1,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('tranqpercent', 50),
|
|
onValueChanged = function(_, value) myconf:Write('tranqpercent', value) end }, },
|
|
|
|
[6] = { flourish1 = { type = 'checkbox', label = 'Flourish', column = 6, order = 1,
|
|
initialValue = myconf:Read('flourish', false),
|
|
onValueChanged = function(_, flag) myconf:Write('flourish', flag) end }, },
|
|
|
|
[7] = { flourish2 = { type = 'slider', label = 'Number of Targets', column = 6, order = 2,
|
|
min = 1, max = 10, precision = 0,
|
|
initialValue = myconf:Read('flourishtargets', 3),
|
|
onValueChanged = function(_, value) myconf:Write('flourishtargets', value) end },
|
|
|
|
flourish3 = { type = 'slider', label = 'Target Health', column = 6, order = 1,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('flourishpercent', 50),
|
|
onValueChanged = function(_, value) myconf:Write('flourishpercent', value) end }, },
|
|
|
|
[8] = { convoke1 = { type = 'checkbox', label = 'Convoke The Spirits', column = 6, order = 1,
|
|
initialValue = myconf:Read('convoke', false),
|
|
onValueChanged = function(_, flag) myconf:Write('convoke', flag) end }, },
|
|
|
|
[9] = { convoke2 = { type = 'slider', label = 'Number of Targets', column = 6, order = 2,
|
|
min = 1, max = 10, precision = 0,
|
|
initialValue = myconf:Read('convoketargets', 3),
|
|
onValueChanged = function(_, value) myconf:Write('convoketargets', value) end },
|
|
|
|
convoke3 = { type = 'slider', label = 'Target Health', column = 6, order = 1,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('convokepercent', 50),
|
|
onValueChanged = function(_, value) myconf:Write('convokepercent', value) end }, },
|
|
|
|
[10] = { wild1 = { type = 'checkbox', label = 'Wild Growth', column = 6, order = 1,
|
|
initialValue = myconf:Read('grpwildgrowth', false),
|
|
onValueChanged = function(_, flag) myconf:Write('grpwildgrowth', flag) end }, },
|
|
|
|
[11] = { wild2 = { type = 'slider', label = 'Number of Targets', column = 6, order = 2,
|
|
min = 1, max = 10, precision = 0,
|
|
initialValue = myconf:Read('wildgrowthtargets', 3),
|
|
onValueChanged = function(_, value) myconf:Write('wildgrowthtargets', value) end },
|
|
|
|
wild3 = { type = 'slider', label = 'Target Health', column = 6, order = 1,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('wildgrowthpercent', 80),
|
|
onValueChanged = function(_, value) myconf:Write('wildgrowthpercent', value) end }, },
|
|
|
|
|
|
|
|
[12] = { incarnationtree1 = { type = 'checkbox', label = 'Incarnation: Tree of Life', column = 6, order = 1,
|
|
initialValue = myconf:Read('incarnationtree', false),
|
|
onValueChanged = function(_, flag) myconf:Write('incarnationtree', flag) end }, },
|
|
|
|
[13] = { convoke2 = { type = 'slider', label = 'Number of Targets', column = 6, order = 2,
|
|
min = 1, max = 10, precision = 0,
|
|
initialValue = myconf:Read('incarnationtreetargets', 3),
|
|
onValueChanged = function(_, value) myconf:Write('incarnationtreetargets', value) end },
|
|
|
|
convoke3 = { type = 'slider', label = 'Target Health', column = 6, order = 1,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('incarnationtreepercent', 50),
|
|
onValueChanged = function(_, value) myconf:Write('incarnationtreepercent', value) end }, }
|
|
|
|
|
|
},
|
|
}
|
|
local tab4 =
|
|
{
|
|
layoutConfig = { padding = { top = 40 } },
|
|
rows = {
|
|
[1] = { resto = { type = 'header', label = 'AOE Heals ' } },
|
|
|
|
[2] = { ironbark1 = { type = 'dropdown', label = 'Ironbark on', column = 6, order = 1,
|
|
options = {
|
|
{ text = 'Tank Only', value = 'tank'},
|
|
{ text = 'All Party', value = 'party'},
|
|
{ text = 'None', value = 'none'},
|
|
},
|
|
initialValue = myconf:Read('ironbarktarget', 'tank'),
|
|
onValueChanged = function(_, value) myconf:Write('ironbarktarget', value) end },
|
|
|
|
ironbark2 = { type = 'slider', label = 'Target Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('ironbarkpercent', 30),
|
|
onValueChanged = function(_, value) myconf:Write('ironbarkpercent', value) end }, },
|
|
|
|
[3] = { ward1 = { type = 'dropdown', label = 'Cenarion Ward on', column = 6, order = 1,
|
|
options = {
|
|
{ text = 'Tank Only', value = 'tank'},
|
|
{ text = 'All Party', value = 'party'},
|
|
{ text = 'None', value = 'none'},
|
|
},
|
|
initialValue = myconf:Read('wardtarget', 'tank'),
|
|
onValueChanged = function(_, value) myconf:Write('wardtarget', value) end },
|
|
|
|
ward2 = { type = 'slider', label = 'Target Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('wardpercent', 30),
|
|
onValueChanged = function(_, value) myconf:Write('wardpercent', value) end }, },
|
|
|
|
[4] = { natswift1 = { type = 'checkbox', label = 'Natures Swiftness', column = 6, order = 1,
|
|
initialValue = myconf:Read('grpnatswift', false),
|
|
onValueChanged = function(_, flag) myconf:Write('grpnatswift', flag) end },
|
|
|
|
natswift2 = { type = 'slider', label = 'Target Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('grpnatswiftpercent', 40),
|
|
onValueChanged = function(_, value) myconf:Write('grpnatswiftpercent', value) end }, },
|
|
|
|
[5] = { swift1 = { type = 'checkbox', label = 'Swiftmend', column = 6, order = 1,
|
|
initialValue = myconf:Read('grpswiftmend', false),
|
|
onValueChanged = function(_, flag) myconf:Write('grpswiftmend', flag) end },
|
|
|
|
swift2 = { type = 'slider', label = 'Target Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('grpswiftmendpercent', 60),
|
|
onValueChanged = function(_, value) myconf:Write('grpswiftmendpercent', value) end }, },
|
|
|
|
[6] = { regrowth1 = { type = 'checkbox', label = 'Regrowth', column = 6, order = 1,
|
|
initialValue = myconf:Read('grpregrowth', false),
|
|
onValueChanged = function(_, flag) myconf:Write('grpregrowth', flag) end },
|
|
|
|
regrowth2 = { type = 'slider', label = 'Target Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('grpregrowthpercent', 65),
|
|
onValueChanged = function(_, value) myconf:Write('grpregrowthpercent', value) end }, },
|
|
|
|
[7] = { rejuv1 = { type = 'checkbox', label = 'Rejuvenation', column = 6, order = 1,
|
|
initialValue = myconf:Read('grprejuv', false),
|
|
onValueChanged = function(_, flag) myconf:Write('grprejuv', flag) end },
|
|
|
|
rejuv2 = { type = 'slider', label = 'Target Health', column = 6, order = 2,
|
|
min = 1, max = 100, precision = 0,
|
|
initialValue = myconf:Read('grprejuvpercent', 85),
|
|
onValueChanged = function(_, value) myconf:Write('grprejuvpercent', value) end }, },
|
|
|
|
},
|
|
}
|
|
|
|
local discpriestconfig = {
|
|
layoutConfig = { padding = { top = 30 } },
|
|
rows = {
|
|
[1] = {
|
|
container = {
|
|
type = 'tab',
|
|
fullSize = true,
|
|
tabs = {
|
|
{
|
|
name = 'player',
|
|
title = 'Player Settings',
|
|
layout = tab1
|
|
},
|
|
{
|
|
name = 'playerhealing',
|
|
title = 'Player Healing',
|
|
layout = tab2
|
|
},
|
|
{
|
|
name = 'group',
|
|
title = 'Group Healing',
|
|
layout = tab3
|
|
},
|
|
{
|
|
name = 'group2',
|
|
title = 'AOE Healing ',
|
|
layout = tab4
|
|
}
|
|
},
|
|
}
|
|
},
|
|
},
|
|
}
|
|
Bastion.settingstemplate(discpriestconfig, 'Disc Priest', 460, 780, 1.00, 0.49, 0.04) |