Documentation for the core framework used in Zarillion's HandyNotes expansion plugins.
The base class for all nodes.
ns.node.Node({
label = 'Example Node',
icon = 'peg_yw',
note = 'This is a Note on the Example Node.'
})
ns.node.Node has the following properties by default:
label (string) (default: ‘UNKNOWN’)
minimap (boolean) (default: true)
alpha (float) (default: 1.0)
scale (float) (default: 1.0)
icon (string / int) (default: ‘default’)
group (group) (default: ns.groups.MISC)
ns.node.Node supports the following optional properties that affect a node’s tootlip:
sublabel (string)
rlabel (string)
questCount (boolean)
rlabel.location (string)
note (string)
requires (Requirement / Requirement)
rewards (Reward)
ns.node.Node supports the following optional properties that affect a node’s visibility:
class (string)
'DEATHKNIGHT''DEMONHUNTER''DRUID''EVOKER''HUNTER''MAGE''MONK''PALADIN''PRIEST''ROGUE''SHAMAN''WARLOCK''WARRIOR'faction (string)
'Alliance''Horde'quest (int / int[ ])
questID in quest have been completed.questAny (boolean)(default: all)
questID in quest have been completed.questDeps (int / int[ ])
questID in questDeps have been completed.ns.node.Node supports the following optional properties that affect a node’s interaction:
fgroup (string)
parent (int)
mapID to display this node on.parent ([ ])
parent property also supports some basic Node properties.id (int)(required)
mapID to display this node on.note (string)
pois (POI)
pois (POI)
-- From Azj-Kahet plugin - Kej Pet Vendor
map.nodes[59235348] = ns.node.KejPetVendor({
id = 218187,
note = L['kej_pet_vendor_note'],
group = ns.groups.VENDOR,
rewards = {
Pet({item = 221546, id = 4486}), -- Colossal Warsquid
Pet({item = 221547, id = 4487}), -- Kej'ra Wool Krolusk
Pet({item = 221548, id = 4485}), -- Invasive Kej'ra Drone
Pet({item = 221549, id = 4484}) -- Ominous K'arthok Broodling
}
}) -- Kej
-- From The War Within - Collectible with custom behavior
cot.nodes[63892774] = ns.node.Collectible({
id = 218649,
note = L['collector_kah_note'],
group = ns.groups.VENDOR,
rewards = {
Item({item = 224051}), -- Artisan's Consortium Market Board
Item({item = 224052}), -- Artisan's Consortium Supply Cache
Item({item = 224053}) -- Artisan's Consortium Ledger
}
}) -- Collector Kah-Nah
ns.node.Collectible supports the following properties:
id (int)
npcID for the NPC who offers the collectible. This will be used for the label property.item (int)
itemID for the colectible. This will be used for the label property.Please note that the label for ns.node.Collectible can also come from the criteria for the first listed achievement in rewards.
local MawIntro = Class('MawIntro', ns.node.Intro, {
quest = 62907, -- Eye of the Jailor activation
label = L['return_to_the_maw'],
note = L['maw_intro_note']
})
map.intro = MawIntro({
rewards = {
Quest({
id = {
62882, -- Setting the Ground Rules
60287 -- Rule 1: Have an Escape Plan
}
})
}
})
map.nodes[80306280] = map.intro
ns.node.Intro has the following properties set by default:
scale (float) (default: 3)
icon (string / int) (default: ‘quest_ay’)
group (group) (default: ns.groups.QUEST)
minimap (boolean) (default: false)
ns.node.Intro supports the following properties:
quest (int)
questID of the Intro Quest. This will be used for the label property.map.nodes[78175317] = ns.node.Item({
id = 189418,
quest = 65327,
sublabel = '{spell:366368}',
icon = 132599,
group = ns.groups.PROTOFORM_SCHEMATICS
note = L['schematic_ambystan_darter_note']
}) -- Ambystan Darter
ns.node.Item requires the following properties:
id (int)
itemID for the item. This will be used for the label property.-- From Azj-Kahet plugin - Vendor NPC
cot.nodes[58463084] = ns.node.NPC({
id = 220867,
note = L['memory_cache_merchant_note'],
group = ns.groups.VENDOR,
rewards = {
Item({item = 223924}), -- Web-Woven Hood
Item({item = 223925}), -- Silken Binding Wrap
Item({item = 223926}), -- Chitin Studded Boots
Item({item = 223927}) -- Reinforced Web Grips
}
}) -- Memory Cache Merchant
-- From The War Within - NPC with faction requirement
map.nodes[41057311] = ns.node.NPC({
id = 207471,
faction = 'Alliance',
note = L['alliance_vendor_note'],
group = ns.groups.VENDOR,
rewards = {
Item({item = 212345}), -- Alliance Banner
Mount({item = 212346, id = 2174}) -- Alliance War Horse
}
}) -- Alliance Quartermaster
ns.node.NPC requires the following properties:
id (int)
npcID for the NPC. This will be used for the label property.map.nodes[13095369] = ns.node.PetBattle({
id = 200689,
rewards = {Achievement({id = 17541, criteria = 58574})} -- Global Swarming
}) -- Wildfire
ns.node.PetBattle has the following properties set by default:
scale (float) (default: 1.2)
icon (string / int) (default: ‘paw_y’)
group (group) (default: ns.groups.PETBATTLE)
ns.node.PetBattle requires the following properties:
id (int)
npcID for the NPC who offers the pet battle. This will be used for the label property.map.nodes[53486145] = Quest({
quest = 55743,
questDeps = 56117,
daily = true,
minimap = false,
scale = 1.8,
rewards = {
Achievement({id = 13708, criteria = {45772, 45775, 45776, 45777, 45778}}), -- Most Minis Wins
Item({item = 169848, weekly = 57134}) -- Azeroth Mini Pack: Bondo's Yard
}
})
ns.node.Quest has the following properties set by default:
icon (string / int) (default: ‘quest_ay’)
ns.node.Quest supports the following properties:
id (int)
questID of the Quest. This will be used for the label property.daily (boolean)
icon property, when it is true the icon will set it to 'quest_ab'.-- From Azj-Kahet plugin - Rare with multiple rewards
map.nodes[61411274] = ns.node.Rare({
id = 221327,
quest = 81705,
note = L['tka_fleshripper_note'],
rewards = {
Achievement({id = 40840, criteria = 69392}), -- Adventurer of Azj-Kahet
Item({item = 223006}), -- Nerubian Slayer's Cleaver
Item({item = 223920}) -- Chitin-Wrapped Bindings
}
}) -- Tka'ktath Fleshripper
-- From The War Within - Rare with vignette tracking
cot.nodes[71632032] = ns.node.Rare({
id = 220159,
quest = 81634,
vignette = 6142,
note = L['webspeaker_grik_note'],
rewards = {
Achievement({id = 40840, criteria = 69389}), -- Adventurer of Azj-Kahet
Item({item = 223005}), -- Nerubian Ritualist's Dagger
Item({item = 223916}) -- Silk-Lined Cowl
}
}) -- Webspeaker Grik'ik
ns.node.Rare has the following properties set by default:
scale (float) (default: 1.2)
icon (string / int) (default: ‘skull_b’)
'skull_w' when all rewards have been collected.group (group) (default: ns.groups.RARE)
ns.node.Rare requires the following properties:
id (int)
npcID for the rare. This will be used for the label property.It is highly recommended that you add the quest property to rares and use the hidden questID used by Blizzard to track if a rare has been killed for the day.
quest (int)
questID used to track the daily kill.-- From Azj-Kahet plugin - Standard treasure
map.nodes[62601430] = ns.node.Treasure({
quest = 82718,
note = L['concealed_contraband_note'],
rewards = {
Achievement({id = 40625, criteria = 68993}), -- Azj-Kahet Treasures
Item({item = 224581}) -- Nerubian Doubloons
}
}) -- Concealed Contraband
-- From The War Within - Treasure with requirements
cot.nodes[67013019] = ns.node.Treasure({
quest = 82721,
label = '{item:224783}',
note = L['memory_cache_note'],
requires = ns.requirement.Item(224783), -- Web-Entangled Key
rewards = {
Achievement({id = 40625, criteria = 68994}), -- Azj-Kahet Treasures
Item({item = 224584}), -- Memory Fragments
Transmog({item = 223921}) -- Nerubian Skitterer's Cord
},
pois = {POI({67303040})} -- Key location
}) -- Trapped Memory Cache
ns.node.Treasure has the following properties set by default:
scale (float) (default: 1.3)
icon (string / int) (default: ‘chest_gy’)
group (group) (default: ns.groups.TREASURE)
It is highly recommended that you add the quest property to rares and use the hidden questID used by Blizzard to track if a treasure has been collected.
quest (int)
questID used to track a the collected treasure.Please note that by default the label for ns.node.Treasure comes from the criteria for the first listed achievement in rewards.