DopingControl v0.6.4

This commit is contained in:
2026-08-30 15:37:17 +02:00
parent ecab5ba845
commit 695dd9dcd4
23 changed files with 2278 additions and 296 deletions
+194 -56
View File
@@ -35,6 +35,27 @@
-- (built programmatically below, so id-matched and name-matched
-- players are both covered), and every gear entry TABLE carries
-- texture + name + quality -- test mode showcases the icon feature.
-- * SCHOOL PROTECTION carriers, one per school, ALL by spell ID:
-- Simtank SR (17548), Simsteel FrR (17544), Simsham NR (17546),
-- Simheala HR (7245), Simmage AR (17549) -- plus the seeded FR
-- carriers. Their columns stay hidden under the shipped defaults; demo
-- mode (core/demo.lua) switches all six on at once and these five are
-- what makes that view show HAS cells rather than an empty block. Held
-- by ID on purpose: "Shadow Protection" is ALSO the priest class buff
-- (data/consumables.lua:312), so a name-based carrier would fake an SR
-- fulfillment the moment the column is visible.
-- * v6 SLOT MODEL (17 active default columns of the 22-slot table --
-- the five school protection slots FrR/NR/SR/HR/AR default off and
-- stay hidden) + identification-ladder showcase: the
-- four TANKs run the full KG tank set (green pill across all 17
-- columns); every new column (BL/ZANZA/GAE/SCHOOL/DREAMT/SHARD/ALC)
-- has HAS, MISSING and NOTEXP cells somewhere in the roster. Generic
-- "Well Fed" carriers split three ways for the matrix ladder:
-- effect line resolving to an ICON-carrying item (Simwall Dumplings,
-- Simrogue Squid, Simmage Danonzo's Delight), effect line resolving
-- to an item WITHOUT a sourced icon (Simheala Herbal Salad ->
-- slot-generic icon, tooltip names the item), and no effects table
-- at all (Simsteel and others -> "item unknown" fallback).
-- * DEBUFFS tab: exactly 3 afflicted players
-- -- Simrogue + Simtree share "Resurrection Sickness" (afflicted=2 =>
-- first column, count sorting testable), Simfrost carries "Curse of
@@ -191,13 +212,29 @@ end
-- one shared list is safe to reuse across every role and class.
-- cleanAuras() returns a FRESH table on every call (set() already builds
-- a new table each time); the source list itself is read-only.
--
-- SPROT is filled by "Prayer of Shadow Protection" and NEVER by the bare
-- "Shadow Protection": that bare name belongs to BOTH the priest buff
-- (data/classbuffs.lua SPROT) and the lesser SR potion aura
-- (data/consumables.lua:312, spell 7242). These players carry no aura IDs
-- at all (ids = {}), so the model's ID-before-name rule cannot fire
-- (core/model.lua: haveIds == false) and the bare name would satisfy the
-- SR POTION column as well. Live that stays invisible because SR ships
-- default-off -- but demo mode (core/demo.lua) switches SR on for
-- everyone, which is exactly where the false HAS would show up. The
-- Prayer variant maps to SPROT only (classbuffs.lua:51, ids {27683}) and
-- is the raid-wide form anyway, so the class-buff showcase is unchanged
-- while the SR column stays honest.
-- ------------------------------------------------------------------
local CLEAN_AURA_NAMES = {
"Flask of the Titans", "Well Fed", "Juju Might", "Juju Power",
"Elixir of the Mongoose", "Greater Arcane Elixir", "Mageblood Potion",
"Elixir of Superior Defense", "Elixir of Fortitude",
"Elixir of the Mongoose", "R.O.I.D.S.", "Spirit of Zanza",
"Greater Arcane Elixir", "Elixir of Shadow Power", "Dreamtonic",
"Dreamshard Elixir", "Mageblood Potion",
"Elixir of Superior Defense", "Elixir of Fortitude", "Medivh's Merlot",
"Greater Fire Protection", "Mark of the Wild", "Power Word: Fortitude",
"Shadow Protection", "Arcane Intellect", "Soulstone Resurrection",
"Prayer of Shadow Protection", "Arcane Intellect",
"Soulstone Resurrection",
}
local function cleanAuras()
@@ -225,31 +262,59 @@ local ICONS = {
["Juju Power"] = "Interface\\Icons\\INV_Misc_MonsterScales_11",
["Elixir of Giants"] = "Interface\\Icons\\INV_Potion_61",
["Elixir of the Giants"] = "Interface\\Icons\\INV_Potion_61",
["Strike of the Scorpok"] = "Interface\\Icons\\INV_Misc_MonsterScales_09",
["Rage of Ages"] = "Interface\\Icons\\INV_Scroll_03",
-- AGI
["Elixir of the Mongoose"] = "Interface\\Icons\\INV_Potion_32",
["Elixir of Greater Agility"] = "Interface\\Icons\\INV_Potion_94",
["Greater Agility"] = "Interface\\Icons\\INV_Potion_94",
-- SP
-- BL (aura names + item-alias keys, like the data table)
["Rage of Ages"] = "Interface\\Icons\\INV_Stone_15",
["R.O.I.D.S."] = "Interface\\Icons\\INV_Stone_15",
["Strike of the Scorpok"] = "Interface\\Icons\\INV_Misc_Dust_02",
["Ground Scorpok Assay"] = "Interface\\Icons\\INV_Misc_Dust_02",
["Spirit of Boar"] = "Interface\\Icons\\INV_Drink_12",
["Lung Juice Cocktail"] = "Interface\\Icons\\INV_Drink_12",
["Infallible Mind"] = "Interface\\Icons\\INV_Potion_32",
["Spiritual Domination"] = "Interface\\Icons\\INV_Misc_Food_30",
["Gizzard Gum"] = "Interface\\Icons\\INV_Misc_Food_30",
-- ZANZA
["Spirit of Zanza"] = "Interface\\Icons\\INV_Potion_30",
-- GAE / SCHOOL / DREAMT / SHARD (split out of the old SP column)
["Greater Arcane Elixir"] = "Interface\\Icons\\INV_Potion_25",
["Arcane Elixir"] = "Interface\\Icons\\INV_Potion_30",
["Elixir of Shadow Power"] = "Interface\\Icons\\INV_Potion_46",
["Elixir of Frost Power"] = "Interface\\Icons\\INV_Potion_03",
["Greater Frost Power"] = "Interface\\Icons\\INV_Potion_13",
["Dreamtonic"] = "Interface\\Icons\\INV_Potion_10",
["Dreamshard Elixir"] = "Interface\\Icons\\INV_Potion_12",
-- MP5 (both TWoW name variants share the item icon)
["Mageblood Potion"] = "Interface\\Icons\\INV_Potion_45",
["Mageblood"] = "Interface\\Icons\\INV_Potion_45",
-- ARM
["Elixir of Superior Defense"] = "Interface\\Icons\\INV_Potion_66",
["Elixir of Greater Defense"] = "Interface\\Icons\\INV_Potion_43",
-- HP
-- HPELX
["Elixir of Fortitude"] = "Interface\\Icons\\INV_Potion_44",
["Health II"] = "Interface\\Icons\\INV_Potion_44",
-- ALC (alcohol column, split out of the old HP column)
["Rumsey Rum Black Label"] = "Interface\\Icons\\INV_Drink_04",
["Rumsey Rum"] = "Interface\\Icons\\INV_Drink_08",
["Medivh's Merlot"] = "Interface\\Icons\\INV_Drink_Waterskin_05",
["Medivh's Merlot Blue"] = "Interface\\Icons\\INV_Drink_Waterskin_01",
["Medivh's Merlot Blue Label"] = "Interface\\Icons\\INV_Drink_Waterskin_01",
["Kreeg's Stout Beatdown"] = "Interface\\Icons\\INV_Drink_05",
-- FR
["Greater Fire Protection"] = "Interface\\Icons\\INV_Potion_24",
["Fire Protection"] = "Interface\\Icons\\INV_Potion_16",
-- FrR/NR/SR/HR/AR (school protection showcase -- these columns are
-- hidden until their expectation is enabled per role/class, and demo
-- mode switches all six on at once; the carriers hold their potion by
-- SPELL ID, never by name -- "Shadow Protection" is also the priest
-- class buff, so a name-based carrier would fake an SR fulfillment)
["Greater Shadow Protection"] = "Interface\\Icons\\INV_Potion_23",
["Greater Frost Protection"] = "Interface\\Icons\\INV_Potion_20",
["Greater Nature Protection"] = "Interface\\Icons\\INV_Potion_22",
["Holy Protection"] = "Interface\\Icons\\INV_Potion_09",
["Greater Arcane Protection"] = "Interface\\Icons\\INV_Potion_83",
-- class buffs
["Arcane Intellect"] = "Interface\\Icons\\Spell_Holy_MagicalSentry",
["Arcane Brilliance"] = "Interface\\Icons\\Spell_Holy_ArcaneIntellect",
@@ -257,7 +322,17 @@ local ICONS = {
["Gift of the Wild"] = "Interface\\Icons\\Spell_Nature_GiftoftheWild",
["Power Word: Fortitude"] = "Interface\\Icons\\Spell_Holy_WordFortitude",
["Prayer of Fortitude"] = "Interface\\Icons\\Spell_Holy_PrayerOfFortitude",
-- the bare name stays: ID-bearing SPROT carriers resolve through
-- idToName (976/10957/10958 -> "Shadow Protection") and texturesFor
-- looks the icon up under THAT name. Name-only players use the Prayer
-- variant instead (see CLEAN_AURA_NAMES).
-- both spellings share the vanilla Shadow Protection art (the same
-- alias convention the AP/STR/MP5 entries above use). Deliberately NOT
-- a "Spell_Holy_PrayerofShadowProtection" path: the Prayer rank is not
-- a stock 1.12 spell, so that texture cannot be assumed to exist in
-- the client, and a missing path renders an empty icon.
["Shadow Protection"] = "Interface\\Icons\\Spell_Shadow_AntiShadow",
["Prayer of Shadow Protection"] = "Interface\\Icons\\Spell_Shadow_AntiShadow",
["Soulstone Resurrection"] = "Interface\\Icons\\Spell_Shadow_SoulGem",
}
@@ -335,9 +410,10 @@ local HIT_MAIN_SUB = {
DRUID = "Staves",
}
-- All 16 equipment slots the scan reads (11 enchant + neck + 2 rings +
-- 2 trinket invSlots).
local INV_SLOTS = { 1, 2, 3, 15, 5, 9, 10, 7, 8, 16, 17, 18, 11, 12, 13, 14 }
-- All 17 equipment slots the scan reads (12 armor enchant, WAIST
-- included -- 2026-08-30 owner decision, WAIST is worn equipment like
-- any other slot now -- + neck + 2 rings + 2 trinket invSlots).
local INV_SLOTS = { 1, 2, 3, 15, 5, 6, 9, 10, 7, 8, 16, 17, 18, 11, 12, 13, 14 }
-- Per-slot base item cosmetics: EVERY gear entry table carries texture,
-- name and quality (the UI renders item icons).
@@ -347,6 +423,7 @@ local SLOT_BASE = {
[3] = { name = "Simulated Spaulders", quality = 3, texture = "Interface\\Icons\\INV_Shoulder_01" },
[15] = { name = "Simulated Drape", quality = 3, texture = "Interface\\Icons\\INV_Misc_Cape_16" },
[5] = { name = "Simulated Breastplate", quality = 4, texture = "Interface\\Icons\\INV_Chest_Plate04" },
[6] = { name = "Simulated Girdle", quality = 3, texture = "Interface\\Icons\\INV_Belt_03" },
[9] = { name = "Simulated Bracers", quality = 3, texture = "Interface\\Icons\\INV_Bracer_13" },
[10] = { name = "Simulated Gauntlets", quality = 3, texture = "Interface\\Icons\\INV_Gauntlets_28" },
[7] = { name = "Simulated Legplates", quality = 4, texture = "Interface\\Icons\\INV_Pants_04" },
@@ -365,6 +442,9 @@ local SLOT_BASE = {
-- SLOT_BASE. Table overrides are MERGED with the slot cosmetics (missing
-- name/quality/texture filled in from SLOT_BASE, everything else -- id,
-- enchant, subType, own cosmetics -- kept); "EMPTY" stays "EMPTY".
-- WAIST (6) is treated like the plain armor slots here -- always
-- enchanted in the base gear, expected by default for every role -- NOT
-- grouped with the enchant-free neck/rings/trinkets below.
-- Neck/rings (2/11/12) default to enchant=0 like trinkets -- but unlike
-- trinkets they ARE enchantable on this server (data/enchants.lua, kind
-- "ench"), so Simtank's override below demonstrates a real neck enchant
@@ -438,10 +518,15 @@ function DC_Sim.buildStore()
add{ name = "Simtank", class = "WARRIOR", online = true,
guid = "0xF530000000000001", subgroup = 1,
aurasRead = true,
auras = { names = {}, ids = set({ 17626, 15852, 16323, 17538,
11348, 3593, 17543, 9885, 10938, 10958 }) },
-- FLASK Titans, FOOD Chili, STR JujuPower, AGI Mongoose, ARM SupDef,
-- HP Fortitude, FR GFPP, MOTW r7, PWF r6, SPROT r3
auras = { names = {}, ids = set({ 17626, 15852, 17038, 16323,
17538, 10667, 24382, 11348, 3593, 25804, 17543, 17548,
9885, 10938, 10958 }) },
-- FLASK Titans, FOOD Chili, AP Firewater, STR JujuPower,
-- AGI Mongoose, BL RageOfAges(ROIDS), ZANZA, ARM SupDef,
-- HPELX Fortitude, ALC RumseyBlack, FR GFPP, SR GSPP (shadow-boss
-- prep -- NOTEXP/hidden until the SR expectation is enabled, then
-- the column lights up green for him), MOTW r7, PWF r6,
-- SPROT r3 -- the full KG tank set, 0 gaps (green pill)
weaponMain = true, weaponMainName = "Dense Sharpening Stone",
gearRead = true,
resistsRead = true, resists = { [2] = 315 },
@@ -476,10 +561,16 @@ function DC_Sim.buildStore()
guid = "0xF530000000000002", subgroup = 1,
aurasRead = true,
auras = { names = set({ "Flask of the Titans", "Well Fed",
"Juju Power", "Elixir of the Mongoose",
"Winterfall Firewater", "Juju Power", "Elixir of the Mongoose",
"R.O.I.D.S.", "Spirit of Zanza",
"Elixir of Superior Defense", "Elixir of Fortitude",
"Greater Fire Protection", "Mark of the Wild",
"Power Word: Fortitude", "Shadow Protection" }), ids = {} },
"Medivh's Merlot", "Greater Fire Protection",
"Mark of the Wild", "Power Word: Fortitude",
-- Prayer variant, not the bare name: see CLEAN_AURA_NAMES
"Prayer of Shadow Protection" }), ids = {},
-- effect line for the generic "Well Fed": the identification
-- ladder resolves it to Smoked Desert Dumplings in the matrix
effects = { ["Well Fed"] = "Increases Strength by 20." } },
weaponMain = true, gearRead = true,
resistsRead = true, resists = { [2] = 240 },
-- hit: the BELOW-cap showcase -- a human swordsman, so the racial
@@ -505,10 +596,15 @@ function DC_Sim.buildStore()
guid = "0xF530000000000003", subgroup = 1,
aurasRead = true,
auras = { names = set({ "Well Fed" }),
ids = set({ 17629, 11405, 11334, 11349, 25804, 7233,
21849, 21562, 10957 }) },
-- FLASK ChromRes, STR Giants, AGI GreaterAgi, ARM GreaterDef,
-- HP RumseyBlack, FR FireProt, MOTW Gift, PWF Prayer, SPROT r2
ids = set({ 17629, 16329, 11405, 11334, 10669, 24382,
11349, 3593, 25804, 7233, 17544, 21849, 21562, 10957 }) },
-- FLASK ChromRes, AP JujuMight, STR Giants, AGI GreaterAgi,
-- BL Scorpok, ZANZA, ARM GreaterDef, HPELX Fortitude(HealthII),
-- ALC RumseyBlack, FR FireProt, FrR GFrPP (17544 -- the frost
-- carrier of the six-school demo view, hidden by default),
-- MOTW Gift, PWF Prayer, SPROT r2.
-- NO effects table: his "Well Fed" stays unresolvable -- the
-- matrix ladder's slot-generic-icon floor ("item unknown")
weaponMain = true, gearRead = true,
resistsRead = true, resists = { [2] = 180 },
-- hit: the BOOK showcase -- an orc axeman (racial +5 => cap 7.0);
@@ -553,9 +649,13 @@ function DC_Sim.buildStore()
guid = "0xF530000000000005", subgroup = 2,
aurasRead = true,
auras = { names = set({ "Well Fed" }),
ids = set({ 16329, 17538, 16323, 3593, 9885, 10938 }) },
-- AP JujuMight, AGI Mongoose, STR JujuPower, HP Fortitude,
-- MOTW r7, PWF r6
ids = set({ 17626, 16329, 17538, 16323, 10692, 24382,
3593, 9885, 10938 }),
-- +10 Agility resolves to Grilled Squid through the ladder
effects = { ["Well Fed"] = "Increases Agility by 10." } },
-- FLASK Titans, AP JujuMight, AGI Mongoose, STR JujuPower,
-- BL Cortex(InfallibleMind), ZANZA, HPELX Fortitude (NOTEXP for
-- MELEE, harmless), MOTW r7, PWF r6
debuffs = debuffsOf({ "Resurrection Sickness" }, { 15007 }),
weaponMain = true, gearRead = true,
-- hit: the DUAL-WIELD showcase -- two weapon subtypes, so the cell
@@ -612,10 +712,12 @@ function DC_Sim.buildStore()
add{ name = "Simstab", class = "ROGUE", online = true,
guid = "0xF530000000000007", subgroup = 2,
aurasRead = true,
auras = { names = set({ "Well Fed", "Juju Might", "Juju Power",
"Elixir of Greater Agility", "Elixir of Fortitude",
"Fire Protection", "Mark of the Wild",
"Power Word: Fortitude", "Shadow Protection" }), ids = {} },
auras = { names = set({ "Flask of the Titans", "Well Fed",
"Juju Might", "Juju Power", "Elixir of Greater Agility",
"Lung Juice Cocktail", "Spirit of Zanza",
"Elixir of Fortitude", "Fire Protection", "Mark of the Wild",
"Power Word: Fortitude",
"Prayer of Shadow Protection" }), ids = {} },
weaponMain = false, gearRead = true,
gear = gearWith({
[9] = { id = 5169, enchant = 0 }, -- wrist enchant missing
@@ -650,10 +752,15 @@ function DC_Sim.buildStore()
guid = "0xF530000000000009", subgroup = 2,
aurasRead = true,
auras = { names = set({ "Well Fed" }),
ids = set({ 17038, 11405, 17538, 25804, 17543,
9885, 10938, 10958 }) },
-- AP Firewater, STR Giants, AGI Mongoose, HP RumseyBlack, FR GFPP,
-- MOTW r7, PWF r6, SPROT r3
ids = set({ 17626, 17038, 11405, 17538, 10693, 24382,
25804, 17543, 17546, 9885, 10938, 10958 }) },
-- FLASK Titans, AP Firewater, STR Giants, AGI Mongoose,
-- BL Gizzard(SpiritualDomination), ZANZA, ALC RumseyBlack
-- (NOTEXP for MELEE, harmless), FR GFPP, NR GNPP (17546 -- the
-- nature carrier of the six-school demo view), MOTW r7, PWF r6,
-- SPROT r3 (the priest buff by ID -- he holds no SR potion, which
-- is exactly the name-collision case the demo view must not
-- mistake for a fulfilled SR column)
weaponMain = true, gearRead = true,
gear = gearWith({
[17] = { id = 5197, enchant = 917, subType = "Shields", quality = 3 },
@@ -694,9 +801,12 @@ function DC_Sim.buildStore()
guid = "0xF53000000000000B", subgroup = 3, distance = 31,
aurasRead = true,
auras = { names = set({ "Well Fed", "Juju Might",
"Elixir of Greater Agility", "Rumsey Rum",
"Elixir of Greater Agility", "Ground Scorpok Assay",
"Spirit of Zanza", "Rumsey Rum",
"Greater Fire Protection", "Mark of the Wild",
"Power Word: Fortitude", "Shadow Protection" }), ids = {} },
"Power Word: Fortitude",
"Prayer of Shadow Protection" }), ids = {} },
-- ALC (Rumsey Rum) is NOTEXP for RANGED -- harmless extra
weaponMain = true, gearRead = true,
-- hit: the RANGED showcase -- a real bow, so the ranged column is
-- a question at all; 8 meets its 8.0 cap (a dwarf's racial is on
@@ -727,8 +837,15 @@ function DC_Sim.buildStore()
guid = "0xF53000000000000D", subgroup = 4,
aurasRead = true,
auras = { names = set({ "Well Fed" }),
ids = set({ 17628, 23028, 17539, 24363, 9885, 10938, 10958 }) },
-- FLASK Supreme, AI Brilliance, SP GAE, MP5 Mageblood, MOTW, PWF, SPROT
ids = set({ 17628, 23028, 17539, 21920, 45489, 45427, 24382,
24363, 17549, 9885, 10938, 10958 }),
-- +22 spell damage -> Danonzo's Tel'Abim Delight (ladder)
effects = { ["Well Fed"] =
"Increases spell damage by up to 22." } },
-- FLASK Supreme, AI Brilliance, GAE, SCHOOL FrostPower,
-- DREAMT, SHARD, ZANZA, MP5 Mageblood, AR GAPP (17549 -- the
-- arcane carrier of the six-school demo view), MOTW, PWF, SPROT --
-- the full KG caster set except FR (her designed gap)
weaponMain = true, weaponMainName = "Brilliant Wizard Oil",
gearRead = true,
resistsRead = true, resists = { [4] = 85, [6] = 45 },
@@ -795,7 +912,9 @@ function DC_Sim.buildStore()
guid = "0xF530000000000010", subgroup = 5,
aurasRead = true,
auras = { names = set({ "Well Fed", "Flask of Supreme Power",
"Greater Arcane Elixir", "Mageblood", "Fire Protection",
"Greater Arcane Elixir", "Elixir of Shadow Power",
"Dreamtonic", "Dreamshard Elixir", "Spirit of Zanza",
"Mageblood", "Fire Protection",
"Arcane Intellect", "Mark of the Wild",
"Power Word: Fortitude" }),
ids = {} },
@@ -838,10 +957,12 @@ function DC_Sim.buildStore()
guid = "0xF530000000000012", subgroup = 5,
aurasRead = true,
auras = { names = set({ "Shadowform", "Flask of Supreme Power",
"Well Fed", "Elixir of Shadow Power", "Mageblood Potion",
"Well Fed", "Greater Arcane Elixir", "Elixir of Shadow Power",
"Dreamtonic", "Dreamshard Elixir", "Spirit of Zanza",
"Mageblood Potion",
"Greater Fire Protection", "Arcane Intellect",
"Mark of the Wild", "Power Word: Fortitude",
"Shadow Protection" }), ids = {} },
"Prayer of Shadow Protection" }), ids = {} },
weaponMain = true, gearRead = true,
gear = gearWith({
[18] = { id = 5238, enchant = 0, subType = "Wands" },
@@ -868,10 +989,21 @@ function DC_Sim.buildStore()
guid = "0xF530000000000014", subgroup = 6,
aurasRead = true,
auras = { names = set({ "Well Fed" }),
ids = set({ 17627, 20765, 24363, 3593, 7233,
10157, 9885, 10938, 10958 }) },
-- FLASK Wisdom, SOUL r5, MP5 Mageblood, HP Fortitude, FR FireProt,
-- AI r5, MOTW r7, PWF r6, SPROT r3
ids = set({ 17627, 20765, 24363, 45427, 24382, 22790,
3593, 7233, 7245, 10157, 9885, 10938, 10958 }),
-- mid-ladder showcase: Le Fishe Au Chocolat resolves by its
-- dodge effect line but has NO sourced icon in the data (icon
-- is a questionmark placeholder even upstream) -> the matrix
-- shows the slot-generic FOOD icon while the tooltip still
-- names the item. (Herbal Salad carried this showcase until
-- its icon was sourced on 2026-08-11.)
effects = { ["Well Fed"] =
"Increases your chance to dodge by 1% and Defense by 4." } },
-- FLASK Wisdom, SOUL r5, MP5 Mageblood, SHARD, ZANZA,
-- ALC Kreeg's, HPELX Fortitude (NOTEXP for HEALER, harmless),
-- FR FireProt, HR HPP (7245 -- the holy carrier of the six-school
-- demo view; no Greater tier exists for holy), AI r5, MOTW r7,
-- PWF r6, SPROT r3
weaponMain = true, gearRead = true,
gear = gearWith({
[17] = { id = 5257, enchant = 0, subType = "Miscellaneous",
@@ -895,7 +1027,8 @@ function DC_Sim.buildStore()
aurasRead = true,
auras = { names = set({ "Flask of Distilled Wisdom", "Well Fed",
"Mageblood", "Arcane Intellect", "Mark of the Wild",
"Power Word: Fortitude", "Shadow Protection" }), ids = {} },
"Power Word: Fortitude",
"Prayer of Shadow Protection" }), ids = {} },
debuffs = debuffsOf({ "Resurrection Sickness" }, { 15007 }),
weaponMain = false, gearRead = true,
gear = gearWith({
@@ -908,9 +1041,10 @@ function DC_Sim.buildStore()
guid = "0xF530000000000017", subgroup = 7,
aurasRead = true,
auras = { names = set({ "Well Fed" }),
ids = set({ 17627, 24363, 25804, 7233, 10156, 9885, 10938 }) },
-- FLASK Wisdom, MP5 Mageblood, HP RumseyBlack, FR FireProt,
-- AI r4, MOTW r7, PWF r6
ids = set({ 17627, 24363, 45427, 24382, 25804, 7233,
10156, 9885, 10938 }) },
-- FLASK Wisdom, MP5 Mageblood, SHARD, ZANZA, ALC RumseyBlack,
-- FR FireProt, AI r4, MOTW r7, PWF r6
weaponMain = true, gearRead = true,
gear = gearWith({
[17] = { id = 5277, enchant = 917, subType = "Shields", quality = 3 },
@@ -923,10 +1057,12 @@ function DC_Sim.buildStore()
guid = "0xF530000000000018", subgroup = 7,
aurasRead = true,
auras = { names = set({ "Flask of Distilled Wisdom", "Well Fed",
"Mageblood Potion", "Elixir of Fortitude",
"Mageblood Potion", "Dreamshard Elixir", "Spirit of Zanza",
"Kreeg's Stout Beatdown", "Elixir of Fortitude",
"Greater Fire Protection", "Arcane Intellect",
"Mark of the Wild", "Power Word: Fortitude",
"Shadow Protection", "Soulstone Resurrection" }), ids = {} },
"Prayer of Shadow Protection",
"Soulstone Resurrection" }), ids = {} },
weaponMain = true, gearRead = true,
gear = gearWith({
[5] = { id = 5285, enchant = 0 },
@@ -935,16 +1071,18 @@ function DC_Sim.buildStore()
[18] = "EMPTY",
}) }
-- Simglow: HP via the id-less "Rumsey Rum" name entry (spellID 0) WHILE
-- ids are present -- exercises exactly the model rule that id-less
-- names still count for players with ids. SPROT missing, EMPTY ranged.
-- Simglow: ALC via the id-less "Medivh's Merlot Blue" name entry
-- (spellID 0) WHILE ids are present -- exercises exactly the model
-- rule that id-less names still count for players with ids.
-- SPROT missing, EMPTY ranged.
add{ name = "Simglow", class = "PALADIN", online = true,
guid = "0xF530000000000019", subgroup = 7,
aurasRead = true,
auras = { names = set({ "Well Fed", "Rumsey Rum" }),
ids = set({ 17627, 21850, 21564, 24363, 7233, 1461, 20762 }) },
-- FLASK Wisdom, MOTW Gift, PWF Prayer, MP5 Mageblood, FR FireProt,
-- AI r3, SOUL r2
auras = { names = set({ "Well Fed", "Medivh's Merlot Blue" }),
ids = set({ 17627, 21850, 21564, 24363, 45427, 24382,
7233, 1461, 20762 }) },
-- FLASK Wisdom, MOTW Gift, PWF Prayer, MP5 Mageblood, SHARD,
-- ZANZA, FR FireProt, AI r3, SOUL r2
weaponMain = true, gearRead = true,
gear = gearWith({
[17] = { id = 5297, enchant = 917, subType = "Shields", quality = 3 },