Documentation for the core framework used in Zarillion's HandyNotes expansion plugins.
ns.requirement
Base Class for all Requirements
Requirement({text = 'Requirement Text'})
text (string) (default: ‘UNKNOWN’)
-- From project plugins - Requires specific achievement completion
ns.requirement.Achievement(40840) -- Adventurer of Azj-Kahet
-- Used in actual treasure nodes
map.nodes[65804182] = ns.node.Treasure({
quest = 82720,
requires = ns.requirement.Achievement(40840), -- Must complete zone achievement
rewards = {Item({item = 224582})} -- Nerubian Currency
})
id (int) (required)
Currency(id, count)
id (int) (required)
count (int) (required)
GarrisonTalent(id, text)
id (int) (required)
text (string)
GarrisonTalentRank(id, rank)
id (int) (required)
rank (int)
-- From Azj-Kahet plugin - Requires specific key item
ns.requirement.Item(224783) -- Web-Entangled Key
-- Used in actual treasure node
cot.nodes[67013019] = ns.node.Treasure({
quest = 82721,
label = '{item:224783}',
requires = ns.requirement.Item(224783), -- Web-Entangled Key needed
rewards = {
Item({item = 224584}), -- Memory Fragments
Transmog({item = 223921}) -- Nerubian Skitterer's Cord
}
}) -- Trapped Memory Cache
-- With quality for crafting materials
ns.requirement.Item(191784, 1, 5) -- Dragon Isles Blacksmithing Knowledge (Quality 5)
id (int) (required)
count (int)
quality (int) 1-5
{height=150}Profession(skillID, variantID, level)
skillID (int) (required)
variantID (int)
level (int)
-- From project plugins - Requires specific quest completion
ns.requirement.Quest(83287) -- A Spider's-Eye View
-- Used in profession treasure nodes
map.nodes[42835735] = ns.node.ProfessionTreasures.Alchemy({
quest = 83847,
id = 226272,
requires = ns.requirement.Quest(83287), -- Must complete story quest first
rewards = {Item({item = 224572})} -- Dark Apothecary's Vial
}) -- Alchemy Knowledge Treasure
-- Daily quest requirement
ns.requirement.Quest(57134, L['weekly_treasure'], true) -- Weekly treasure quest
id (int) (required)
text (string)
daily (boolean)
-- From Undermine plugin - Renown reputation requirement
ns.requirement.Reputation(2653, 6, true) -- The Cartels of Undermine (Renown 6)
-- From Dragonflight plugins - Traditional reputation levels
ns.requirement.Reputation(2507, 21, true) -- Dragonscale Expedition (Renown 21)
ns.requirement.Reputation(1272, 33600, false, true) -- Classic rep with point value
-- Used in actual treasure nodes
map.nodes[12345678] = ns.node.Treasure({
quest = 90488,
requires = ns.requirement.Reputation(2653, 6, true), -- Must be Renown 6
rewards = {Transmog({item = 235835, type = L['cloak']})}
}) -- Braided Wire Wrap treasure
id (int) (required)
level (int) (required)
isRenown (boolean)
-- From Siren Isle plugin - Requires buff/spell effect
ns.requirement.Spell(1216785) -- Glittering Vault Shard
-- From Karesh plugin - Phase Diving ability
ns.requirement.Spell(1214374) -- Phase Diving
-- From Ratt's Revenge plugin - Special goggles effect
ns.requirement.Spell(463749) -- Starry-Eyed Goggles
-- Used in treasure nodes requiring active spell effects
map.nodes[26502340] = ns.node.Treasure({
quest = 86732,
requires = ns.requirement.Spell(1216785), -- Must have Glittering Vault Shard buff
rewards = {Transmog({item = 233834, slot = L['dagger']})}
}) -- Stone Carver's Scramseax
id (int) (required)
-- From Ratt's Revenge plugin - Torch of Pyrreth toy requirement
ns.requirement.Toy(208092) -- Torch of Pyrreth
-- From Secrets of Azeroth - Various special toys
ns.requirement.Toy(206696) -- Tricked-Out Thinking Cap
ns.requirement.Toy(207730) -- Idol of Ohnahra
-- From Dragonflight plugins - Wyrmhole Generator
ns.requirement.Toy(198156) -- Wyrmhole Generator
-- Commonly used as constants
local TORCH = ns.requirement.Toy(208092) -- Torch of Pyrreth
-- Used in nodes requiring specific toys
map.nodes[12345678] = ns.node.Treasure({
requires = ns.requirement.Toy(209944), -- Special toy needed
rewards = {Item({item = 123456})}
})
id (int) (required)
-- From Dragonflight plugin - War Supply Chest
ns.requirement.WarMode
-- Used in PvP content nodes
map.nodes[12345678] = ns.node.Treasure({
label = '{npc:135238}',
rlabel = ns.GetIconLink('war_mode_swords', 16),
quest = {72376, 72377},
requires = ns.requirement.WarMode, -- Must have War Mode enabled
rewards = {
Currency({id = 1602}) -- Conquest Points
}
}) -- War Supply Chest