Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Table custom option #4708

Open
Causese opened this issue Nov 13, 2023 · 7 comments
Open

Table custom option #4708

Causese opened this issue Nov 13, 2023 · 7 comments
Labels
🎨 Feature Request This is a request for a new feature, or an expansion of an existing feature.

Comments

@Causese
Copy link
Contributor

Causese commented Nov 13, 2023

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???

@Causese Causese added the 🎨 Feature Request This is a request for a new feature, or an expansion of an existing feature. label Nov 13, 2023
@emptyrivers
Copy link
Contributor

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

@emptyrivers
Copy link
Contributor

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

@mrbuds
Copy link
Contributor

mrbuds commented Nov 13, 2023

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

@emptyrivers
Copy link
Contributor

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.

@emptyrivers
Copy link
Contributor

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

@Causese
Copy link
Contributor Author

Causese commented Sep 2, 2024

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
}

@emptyrivers
Copy link
Contributor

emptyrivers commented Oct 4, 2024

So, I'm pretty sure this would require a new control, but I do think we should do it. Mostly, because we have a bunch of list editors that kind of suck:

image

Having a real "edit this list of <thing>" interface would improve a lot of things in WA Options, I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎨 Feature Request This is a request for a new feature, or an expansion of an existing feature.
Projects
None yet
Development

No branches or pull requests

3 participants