WeakAuras

WeakAuras

200M Downloads

Table custom option

Causese opened this issue ยท 6 comments

commented

Is your feature request related to a problem? Please describe.
There's currently no great way to create for example an allow / blocklist in custom options that just allows you to check for a specified spellId by using aura_env.config.tablename[spellId].

Describe the solution you'd like

Simple key value based table that extends with each entry or w/e

Describe alternatives you've considered

currently players create a string option and use code to put all entered spellIds in a table or create an option per spell.
its not that easy to make edits since most players dont remember what each spellId stands for.
that's what having a value would be useful for

aura_env.spellIDs = {}
for match in aura_env.config.spellID:gmatch("%d+") do aura_env.spellIDs[match] = true end

Additional context

i like what plater did as solution

@emptyrivers <3???

commented

It's something i raised in an other ticket a while ago, with (bad?) idea to have an automated description field derived from a spellId field. Problem is that this solution would solve a specific problem but then you may want to do this with itemid? npcid? iconid? etc..

So what..

  • add a custom coded read-only field which take info from other fields? + generic is good | - doesn't sound fun to implement, niche and require knowledge to use
  • implement a list of premade id->description functions? + easy to use | - less generic but can be extended if needed | no idea about implementation
commented

hrm, i don't see the point? you can just put a couple lines of code in init to transform an array into the shape you want.

e.g. local blocked = {} for _, entry in ipairs(aura_env.config.blocklist) do blocked[entry.id] = true end would achieve your goal for this array (you can even write that into aura_env.config.spells if you want):
image

commented

It seems like the more relevant problem is this:

its not that easy to make edits since most players dont remember what each spellId stands for.

which could be solved in other ways

commented

well, a 'spell' type option has prior art in the trigger prototypes, so I would be ok with adding something like that in. items, too.

commented

like, an option that on the author side provided an item id (possibly a display name also? open to bikeshedding on that), but on the user side looked like this
image
would work IMO

commented

to expand a little:

for interruptible / ccable casts I'm currently using a table like this because it's easier/faster to maintain from a creator perspective compared to using custom options. users are asking for ways to disable specific casts / timers which can't really be done without giving up on convenience. (also not sure if current custom options can handle this many spells without lagging out at some point)

in my opinion, a mixed solution could be the way to go. like show spell icon for quick identification but also maybe do it in a table style + allow user to toggle off specific spells.

two example tables below of what I use:

CCable / interruptible casts

--categoryNumber can be used to differentiate between casts in the conditions for coloring etc
--role can be (ALL/DAMAGER/HEALER/TANK/MELEE/RANGE) and only shows the bar to that role

--[spellID] = {"name",category,"soundFile","role", "show target" (true/false)},
aura_env.spellIDs = {
    
    --Boralus
    
    [257063] = {"BOLT",1,"","ALL",true}, --Brackish Bolt
    [272581] = {"BOLT",1,"","ALL",true}, --Water Bolt
    [454440] = {"VOMIT",1,"","ALL",true}, --Stinky Vomit
    [256639] = {"BOMB",2,"","ALL",true}, --Fire Bomb
    [257641] = {"SLUG",2,"","ALL",true}, --Molten Slug
    [272528] = {"SHOT",2,"","ALL",true}, --Shoot
    [272542] = {"RICO",2,"","ALL",true}, --Ricochet
    --[272546] = {"BANANA",2,"","ALL",false}, --Banana Rampage
    [256957] = {"SHELL",0,"","ALL",false}, --Watertight Shell
    [272571] = {"CHOKE",0,"","ALL",true}, --Choking Waters
    --[256709] = {"BUSTER",2,"","ALL",true,}, --Singing Steel (tank)
    --[268230] = {"BUSTER",2,"","ALL",true,}, --Crimson Swipe (tank)
    --[272588] = {"BUSTER",2,"","ALL",true,}, --Rotting Wounds (tank)
    --[275835] = {"BUSTER",2,"","ALL",true,}, --Stinging Venom Coating (tank)
    [275826] = {"SHOUT",0,"","ALL",false}, --Bolstering Shout
    
    --Ara-Kara
    
    [438618] = {"SPIT",2,"","ALL",true}, --Venomous Spit
    [448248] = {"VOLLEY",0,"","ALL",false}, --Revolting Volley
    [433841] = {"VOLLEY",0,"","ALL",false}, --Venom Volley
    [448239] = {"WEB",0,"","ALL",true}, --Web Wrap
    [434802] = {"FEAR",0,"","ALL",false}, --Horrifying Shrill
    [434793] = {"BARRAGE",0,"","ALL",false}, --Resonant Barrage
    [434786] = {"BOLT",1,"","ALL",true,}, --Web Bolt
    [432967] = {"ALARM",2,"","ALL",false,}, --Alarm Shrill
    --[436322] = {"BOLT",1,"","ALL",true,}, --Poison Bolt (tank)
    --[433002] = {"BUSTER",2,"","ALL",true,}, --Extraction Strike (tank)
    
    --Mists
    
    --[322557] = {"BUSTER",2,"","TANK",true}, --Soul Split
    --[463248] = {"EXPEL",2,"","ALL",true}, --Expel
    --[463256] = {"POOL",2,"","ALL",true}, --Mist Ward
    [325418] = {"DOT",2,"","ALL",true}, --Volatile Acid
    [325223] = {"LEAP",2,"","ALL",true}, --Anima Injection
    [322767] = {"BOLT",1,"","ALL",true}, --Spirit Bolt
    [326319] = {"BOLT",1,"","ALL",true}, --Spirit Bolt
    [322938] = {"HARVEST",0,"","ALL",true}, --Harvest Essence
    [324776] = {"SHIELD",0,"","ALL",false}, --Bramblethorn Coat
    [324914] = {"HEAL",0,"","ALL",false}, --Nourish the Forest
    [326046] = {"SHIELD",0,"","ALL",false}, --Stimulate Resistance
    [340544] = {"HEAL",0,"","ALL",false}, --Stimulate Regeneration
    
    --Dawnbreaker
    
    [431303] = {"BOLT",1,"","ALL",true}, --Night Bolt
    [451113] = {"BOLT",1,"","ALL",true}, --Web Bolt
    [431309] = {"CURSE",0,"","ALL",true}, --Ensnaring Shadows
    [450756] = {"HOWL",0,"","ALL",false}, --Abyssal Howl
    [431333] = {"BEAM",1,"","ALL",true}, --Tormenting Beam
    --[431637] = {"BUSTER",2,"","TANK", true}, --Umbral Rush (tank)
    [432520] = {"SHIELD",2,"","ALL",false}, --Umbral Barrier
    [451097] = {"SHELL",0,"","ALL",false}, --Silken Shell
    --[452099] = {"BOLT",1,"","ALL",true}, --Congealed Darkness (tank)
    
    --Grim Batol
    
    [451261] = {"BOLT",1,"","ALL",true}, --Earth Bolt
    [76369] = {"BOLT",1,"","ALL",true}, --Shadowflame Bolt
    [451871] = {"TREMOR",0,"","ALL",false}, --Mass Tremor
    [76711] = {"SEAR",0,"","ALL",true}, --Sear Mind
    [451224] = {"FLAME",2,"","ALL",true}, --Enveloping Shadowflame
    [451241] = {"BUSTER",2,"","ALL",true}, --Shadowflame Slash
    
    --Necrotic Wake
    
    [334747] = {"THROW",2,"","ALL",true}, --Throw Flesh
    [321780] = {"ANIMATE",2,"","ALL",false}, --Animate Dead
    --[327393] = {"GRIM",2,"","ALL",false}, --Grim Fate
    [334748] = {"DRAIN",0,"","ALL",true}, --Drain Fluids
    [320462] = {"BOLT",1,"","ALL",true}, --Necrotic Bolt
    [333602] = {"BOLT",1,"","ALL",true}, --Frostbolt
    [328667] = {"VOLLEY",0,"","ALL",false}, --Frostbolt Volley
    [333629] = {"SHOOT",2,"","ALL",true}, --Shoot
    [328687] = {"SHOOT",2,"","ALL",true}, --Shoot
    [335143] = {"MEND",1,"","ALL",false}, --Bonemend
    [327130] = {"REPAIR",0,"","ALL",false}, --Repair Flesh
    [324293] = {"FEAR",0,"","ALL",false}, --Rasping Scream
    --[320571] = {"POOL",1,"","ALL",false}, --Shadow Well
    
    --Stonevault
    
    [426283] = {"ARC",1,"","ALL",true}, --Arcing Void
    [426308] = {"CURSE",1,"","ALL",true}, --Void Infection
    [449455] = {"FEAR",0,"","ALL",false}, --Howling Fear
    [429545] = {"GEAR",0,"","ALL",true}, --Censoring Gear
    [445207] = {"WAIL",0,"","ALL",false}, --Piercing Wail
    [447141] = {"LEAP",2,"","ALL",false}, --Pulverizing Pounce
    --[427382] = {"BUSTER",2,"","ALL",false}, --Concussive Smash (tank)
    [429110] = {"BOLT",1,"","ALL",true}, --Alloy Bolt
    --[429422] = {"BOLT",1,"","ALL",true}, --Stone Bolt (tank)
    [429427] = {"TOTEM",2,"","ALL",false}, --Earth Burst Totem
    [429109] = {"HEAL",0,"","ALL",false}, --Restoring Metals
    
    --City of Threads
    
    [443427] = {"BOLT",1,"","ALL",true}, --Web Bolt
    [434122] = {"BOLT",1,"","ALL",true}, --Void Bolt
    [440160] = {"BOLT",1,"","ALL",true}, --Poison Bolt
    [443430] = {"BIND",0,"","ALL",true}, --Silk Binding
    --[443397] = {"BUSTER",2,"","ALL",true}, --Venom Strike (tank)
    [443433] = {"TWIST",0,"","ALL",true}, --Twist Thoughts
    [448030] = {"THROW",2,"","ALL",true}, --Knife Throw
    [442536] = {"BLAST",1,"","ALL",true}, --Grimweave Blast
    [452162] = {"HEAL",0,"","ALL",false}, --Mending Web
    [446086] = {"KNOCK",1,"","ALL",false}, --Void Wave
    --[451238] = {"BUSTER",2,"","ALL",true}, --Brutal Jab (tank)
    [453840] = {"ALARM",0,"","ALL",false}, --Awakening Calling
}

trash cd timers (2 dimensional)

--category is used to color the bars in the conditions, apply countdown only to certain categories etc etc
--role can be ALL/TANK/DAMAGER/HEALER (to only show bars to that role. this requires being in a dungeon group, otherwise you have no role)

--{["npcID"] = {[spellID] = {"event", "category", role, "name", "initialTimer", "recastTimer", "delay" (optional, recastTimer)}}
aura_env.timers = {
    
    --Mists of Tirna Scithe
    
    --["164929"] = {[322486] = {"SPELL_CAST_START", 2, "ALL", "Growth Inc", 11.2, 15.2}}, --Overgrowth
    ["164920"] = {[322557] = {"SPELL_CAST_START", 4, "ALL", "Buster Inc", 4.6, 14.7}}, --Soul Split
    --["164926"] = {[324923] = {"SPELL_CAST_START", 5, "ALL", "Move Inc", 7.8, 14.6}}, --Bramble Burst
    --["166301"] = {[324986] = {"SPELL_CAST_START", 2, "ALL", "Leap Inc", 4.4, 14.6}}, --Mistveil Bite
    ["171772"] = {[463248] = {"SPELL_CAST_START", 2, "ALL", "Knock Inc", 4.4, 18.2}}, --Expel
    ["163058"] = {[463248] = {"SPELL_CAST_START", 2, "ALL", "Knock Inc", 4.4, 18.2}}, --Expel
    ["166276"] = {[463217] = {"SPELL_CAST_START", 4, "TANK", "Buster Inc", 6, 14.5}}, --Anima Slash
    ["167111"] = {[460092] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 8.7, 21.6}}, --Acid Nova
    ["167116"] = {[326090] = {"SPELL_CAST_SUCCESS", 2, "ALL", "Leap Inc", 6.9, 10.1}}, --Stinging Assault
    
    --Necrotic Wake
    
    --["166302"] = {[334748] = {"SPELL_CAST_START", 6, "ALL", "Drain Inc", 4.7, 15.8}}, --Corpse Harvester
    --["173016"] = {[334748] = {"SPELL_CAST_START", 6, "ALL", "Drain Inc", 9.1, 17}}, --Corpse Collector
    ["165919"] = {[324293] = {"SPELL_CAST_START", 6, "ALL", "Fear Inc", 12.1, 18.1}}, --Rasping Scream
    ["163621"] = {[333477] = {"SPELL_CAST_START", 1, "ALL", "Dodge Inc", 10.8, 14.5}}, --Gut Slice
    ["163620"] = {[333479] = {"SPELL_CAST_START", 0, "ALL", "Pool Inc", 8, 12.1}}, --Rotspew
    
    --Dawnbreaker
    
    ["214761"] = {[432448] = {"SPELL_CAST_START", 2, "ALL", "Seed Inc", 8.3, 21.8}}, --Stygian Seed
    ["210966"] = {[451107] = {"SPELL_CAST_START", 2, "ALL", "Cocoon Inc", 4.9, 16.9}}, --Bursting Cocoon
    ["211261"] = {
        [451102] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 2.7, 25.5}, --Shadowy Decay
        [451119] = {"SPELL_CAST_START", 2, "ALL", "Blast Inc", 12.1, 10.9}, --Abyssal Blast
        
    },
    ["211262"] = {
        [451119] = {"SPELL_CAST_START", 2, "ALL", "Blast Inc", 3.9, 10.9}, --Abyssal Blast
        --[451117] = {"SPELL_CAST_START", 4, "ALL", "Buster Inc", 8.7, 24.2}, --Terrifying Slam
    },
    ["211263"] = {
        [451119] = {"SPELL_CAST_START", 2, "ALL", "Blast Inc", 4.9, 10.9},--Abyssal Blast
        [450854] = {"SPELL_CAST_START", 1, "ALL", "Orb Inc", 12.1, 21.8}, --Dark Orb
    },
    
    --Ara-kara
    
    --["216293"] = {[434793] = {"SPELL_CAST_SUCCESS", 6, "ALL", "Barrage Inc", 4, 17}}, --Resonant Barrage
    ["217531"] = {[434802] = {"SPELL_CAST_START", 6, "ALL", "Fear Inc", 12.1, 14.5}}, --Horrifying Shrill
    ["218324"] = {[438877] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 5.5, 26.7}}, --Call of the Brood
    ["216338"] = {[465012] = {"SPELL_CAST_START", 1, "ALL", "AoE Inc", 11.6, 25.5}}, --Slam
    ["228015"] = {[465012] = {"SPELL_CAST_START", 1, "ALL", "AoE Inc", 11.6, 25.5}}, --Slam
    --["223253"] = {[448248] = {"SPELL_CAST_START", 6, "ALL", "Volley Inc", 4.8, 19.4}}, --Revolting Volley
    --["216364"] = {[433841] = {"SPELL_CAST_START", 6, "ALL", "Volley Inc", 5.8, 19.4}}, --Venom Volley
    ["217039"] = {[434252] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 3.4, 15.7}}, --Massive Slam
    
    --City of Threads
    
    ["220197"] = {[443507] = {"SPELL_CAST_START", 1, "ALL", "DoTs Inc", 12.3, 17.5}}, --Ravenous Swarm
    ["220423"] = {[443507] = {"SPELL_CAST_START", 1, "ALL", "DoTs Inc", 12.3, 17.5}}, --Ravenous Swarm
    ["220003"] = {[451222] = {"SPELL_CAST_START", 1, "ALL", "DoTs Inc", 6.9, 18.2}}, --Void Rush
    ["216328"] = {[436205] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 15.4, 26.8}}, --Fierce Stomping
    ["221103"] = {
        [447271] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 10, 23}, --Tremor Slam
        [443507] = {"SPELL_CAST_START", 2, "ALL", "DoT Inc", 1, 18.2}, --Ravenous Swarm
    },
    ["220730"] = {[434137] = {"SPELL_CAST_START", 0, "ALL", "Poison Inc", 5.9, 24.2}}, --Venomous Spray
    ["221102"] = {[446717] = {"SPELL_CAST_START", 2, "ALL", "Root Inc", 4.8, 23}}, --Umbral Weave
    
    --The Stonevault
    
    ["210109"] = {[425974] = {"SPELL_CAST_START", 1, "ALL", "AoE Inc", 15.5, 21.8}}, --Ground Pound
    ["212453"] = {[449455] = {"SPELL_CAST_START", 6, "ALL", "Fear Inc", 6.9, 26.3}}, --Howling Fear
    ["212765"] = {
        [426771] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 7, 27.5}, --Void Outburst
        [459210] = {"SPELL_CAST_START", 4, "TANK", "Buster Inc", 3, 13.3}, --Shadow Claw
    },
    --["221979"] = {[445207] = {"SPELL_CAST_START", 6, "ALL", "Wail Inc", 4.8, 23}}, --Piercing Wail
    ["214264"] = {[428894] = {"SPELL_CAST_START", 4, "TANK", "Buster Inc", 14.5, 18.2}}, --Stonebreaker Strike
    ["213954"] = {[428879] = {"SPELL_CAST_START", 0, "ALL", "Knock Inc", 12.1, 23}}, --Smash Rock
    ["213343"] = {[449154] = {"SPELL_CAST_START", 2, "ALL", "Mortar Inc", 15.4, 23}}, --Molten Mortar
    
    --Grim Batol
    
    ["224609"] = {
        [451612] = {"SPELL_CAST_START", 2, "ALL", "Flame Inc", 3.3, 19.7}, --Twilight Flame
        [451939] = {"SPELL_CAST_START", 0, "ALL", "Knock Inc", 8.3, 21.7}, --Umbral Wind
    },
    --["224219"] = {[451871] = {"SPELL_CAST_START", 6, "ALL", "Tremor Inc", 9.8, 21.8}}, --Mass Tremor
    ["224221"] = {
        [451379] = {"SPELL_CAST_START", 7, "ALL", "Enrage Inc", 8.5, 13.3}, --Reckless Tactic
        --[451378] = {"SPELL_CAST_START", 4, "TANK", "Buster Inc", 3.5, 18.1}, --Rive
    },
    ["224240"] = {[451241] = {"SPELL_CAST_START", 4, "TANK", "Buster Inc", 9.5, 18.1}}, --Shadowflame Slash
    ["40166"] = {[451965] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 5.4, 18.1}}, --Molten Wake
    ["224249"] = {[456713] = {"SPELL_CAST_START", 1, "ALL", "Spread Inc", 8.5, 21.8}}, --Dark Eruption
    ["39392"] = {[451395] = {"SPELL_CAST_START", 2, "ALL", "Corrupt Inc", 9.6, 16.9}}, --Corrupt
    
    --Siege of Boralus
    
    ["129369"] = {[272662] = {"SPELL_CAST_START", 0, "ALL", "Hook Inc", 3.2, 19.4}}, --Iron Hook
    ["128969"] = {[275826] = {"SPELL_CAST_START", 6, "ALL", "Shout Inc", 8.8, 16.5}}, --Bolstering Shout
    ["135245"] = {[272711] = {"SPELL_CAST_START", 0, "ALL", "AoE Inc", 4.4, 20.2}}, --Crushing Slam
    --["135263"] = {[272422] = {"SPELL_CAST_START", 5, "ALL", "Artillery Inc", 1, 12.1}}, --Sighted Artillery
    --["138255"] = {[272422] = {"SPELL_CAST_START", 5, "ALL", "Artillery Inc", 1, 12.1}}, --Sighted Artillery
}