Skip to content

Commit

Permalink
added pet attack code
Browse files Browse the repository at this point in the history
  • Loading branch information
DerpleMQ2 committed Dec 30, 2023
1 parent 2f99996 commit b01fdf5
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 20 deletions.
1 change: 1 addition & 0 deletions class_configs/shd_class_config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1835,6 +1835,7 @@ local _ClassConfig = {
['BurnSize'] = { DisplayName = "Burn Size", Tooltip = "1=Small, 2=Medium, 3=Large", Default = 1, Min = 1, Max = 3 },
['BurnAuto'] = { DisplayName = "Auto Burn", Tooltip = "Automatically burn", Default = false },
['DoPet'] = { DisplayName = "Cast Pet", Tooltip = "Enable casting Pet spells.", Default = true },
['PetEngagePct'] = { DisplayName = "Pet Engage HPs", Tooltip = "Send in pet when target hits [x] HP %.", Default = 90, Min = 1, Max = 100 },
['BurnMobCount'] = { DisplayName = "Burn Mob Count", Tooltip = "Number of haters before we start burning.", Default = 3, Min = 1, Max = 10 },
['BurnNamed'] = { DisplayName = "Burn Named", Tooltip = "Automatically burn named mobs.", Default = false },
},
Expand Down
28 changes: 8 additions & 20 deletions modules/shd.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ local shdClassConfig = require("rgmercs.class_configs.shd_class_config")
local Module = { _version = '0.1a', name = "ShadowKnight", author = 'Derple' }
Module.__index = Module
Module.Tanking = false
Module.LastPetCmd = 0
Module.SpellLoadOut = {}
Module.ResolvedActionMap = {}

Expand Down Expand Up @@ -41,26 +42,9 @@ function Module:LoadSettings()
end

-- Setup Defaults
self.settings.Mode = self.settings.Mode or shdClassConfig.DefaultConfig.Mode.Default
self.settings.DoTorrent = self.settings.DoTorrent or shdClassConfig.DefaultConfig.DoTorrent.Default
self.settings.DoDiretap = self.settings.DoDiretap or shdClassConfig.DefaultConfig.DoDiretap.Default
self.settings.DoBandolier = self.settings.DoBandolier or shdClassConfig.DefaultConfig.DoBandolier.Default
self.settings.DoBurn = self.settings.DoBurn or shdClassConfig.DefaultConfig.DoBurn.Default
self.settings.DoSnare = self.settings.DoSnare or shdClassConfig.DefaultConfig.DoSnare.Default
self.settings.DoDot = self.settings.DoDot or shdClassConfig.DefaultConfig.DoDot.Default
self.settings.DoAE = self.settings.DoAE or shdClassConfig.DefaultConfig.DoAE.Default
self.settings.AeTauntCnt = self.settings.AeTauntCnt or shdClassConfig.DefaultConfig.AeTauntCnt.Default
self.settings.HPStopDOT = self.settings.HPStopDOT or shdClassConfig.DefaultConfig.HPStopDOT.Default
self.settings.TLP = self.settings.TLP or shdClassConfig.DefaultConfig.TLP.Default
self.settings.ManaToNuke = self.settings.ManaToNuke or shdClassConfig.DefaultConfig.ManaToNuke.Default
self.settings.FlashHP = self.settings.FlashHP or shdClassConfig.DefaultConfig.FlashHP.Default
self.settings.StartBigTap = self.settings.StartBigTap or shdClassConfig.DefaultConfig.StartBigTap.Default
self.settings.StartLifeTap = self.settings.StartLifeTap or shdClassConfig.DefaultConfig.StartLifeTap.Default
self.settings.BurnSize = self.settings.BurnSize or shdClassConfig.DefaultConfig.BurnSize.Default
self.settings.BurnAuto = self.settings.BurnAuto or shdClassConfig.DefaultConfig.BurnAuto.Default
self.settings.DoPet = self.settings.DoPet or shdClassConfig.DefaultConfig.DoPet.Default
self.settings.BurnMobCount = self.settings.BurnMobCount or shdClassConfig.DefaultConfig.BurnMobCount.Default
self.settings.BurnNamed = self.settings.BurnNamed or shdClassConfig.DefaultConfig.BurnNamed.Default
for k, v in pairs(shdClassConfig.DefaultConfig) do
self.settings[k] = self.settings[k] or v.Default
end

for rot, rot_entry in pairs(shdClassConfig.DefaultRotations) do
RGMercsLogger.log_debug("Appending new entry for rotation %s", rot)
Expand Down Expand Up @@ -203,6 +187,10 @@ function Module:GiveTime(combat_state)
RGMercUtils.RunRotation(self, shdClassConfig.Rotations.DPS.Rotation.Downtime, Module.ResolvedActionMap)
end
else
if Module.Tanking and ((os.clock() - Module.LastPetCmd) > 2) then
Module.LastPetCmd = os.clock()
RGMercUtils.PetAttack(self.settings, mq.TLO.Target)
end
end
end

Expand Down
15 changes: 15 additions & 0 deletions utils/rgmercs_utils.lua
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,21 @@ function Utils.BigBurn(config)
return config.BurnSize >= 3
end

function Utils.PetAttack(config, target)
if not config.DoPet then return end

local pet = mq.TLO.Me.Pet

if not target() then return end
if not pet() then return end

if (not pet.Combat() or pet.Target.ID() ~= target.ID()) and target.Type() == "NPC" and (target.PctHPs() <= config.PetEngagePct) then
mq.cmdf("/squelch /pet attack")
mq.cmdf("/squelch /pet swarm")
RGMercsLogger.log_debug("Pet sent to attack target: %s!", target.Name())
end
end

function Utils.DetAACheck(aaId)
if not mq.TLO.Target.ID() then return false end
local Target = mq.TLO.Target
Expand Down

0 comments on commit b01fdf5

Please sign in to comment.