diff --git a/api/v1/_meta/verduror-class-skills.json b/api/v1/_meta/verduror-class-skills.json new file mode 100644 index 00000000..d5ebd0c1 --- /dev/null +++ b/api/v1/_meta/verduror-class-skills.json @@ -0,0 +1,32 @@ +{ + "classId": "verduror", + "updated": "2026-08-30", + "icons": "/icons/skills/class/verduror/", + "prefabs": "/models/class-skills/", + "l0": [ + "Plant Seed", + "Vine Lash", + "Iguana" + ], + "uniqueIcons": { + "v_seed": "plant-seed.png", + "v_lash": "vine-lash.png", + "v_iguana": "iguana.png", + "v_bolt": "nature-bolt.png", + "v_vine": "vine-cast.png", + "v_bloom": "seed-bloom.png", + "v_cactus_trap": "barrel-cactus.png", + "v_tara": "green-tara.png", + "v_blink": "slip-step.png", + "v_flare": "seed-bloom.png", + "v_surge": "wild-surge.png", + "v_move_cast": "primal-cadence.png", + "v_grove": "living-grove.png", + "v_current": "primal-current.png", + "v_arcanum": "open-arcanum.png" + }, + "shared": { + "v_flare": "seed-bloom.png \u2014 Seedflare is a bloom burst; same art as Seed Bloom on purpose." + }, + "note": "Canonical Verduror tree. Not mistweaver. Unique painted icons \u2014 leftover skills no longer reuse iguana/seed/bolt." +} diff --git a/api/v1/classes.json b/api/v1/classes.json index 98303a31..1a6e2684 100644 --- a/api/v1/classes.json +++ b/api/v1/classes.json @@ -37,7 +37,12 @@ ], "dualWield": true, "equipmentRulesRef": "class-equipment-rules.json#classes.warrior", - "animPacks": ["sword_shield", "dual_wield", "two_handed", "unarmed"], + "animPacks": [ + "sword_shield", + "dual_wield", + "two_handed", + "unarmed" + ], "abilities": [ { "id": "slash", @@ -177,7 +182,7 @@ "iconUrl": "/icons/skills/class/barbarian/barbarian_07.png", "sourcePack": "barbarian" }, - "emoji": "⚔️", + "emoji": "\u2694\ufe0f", "iconUrl": "https://assets.grudge-studio.com/icons/warlords/classes/warrior.png", "sourcePack": "barbarian" }, @@ -187,7 +192,7 @@ "icon": "/icons/warlords/classes/mage.png", "color": "#8b5cf6", "description": "Master of arcane magic and divine healing arts.", - "lore": "Drawing power from ancient ley lines and forgotten gods, Mage Priests wield destructive magic alongside sacred healing — a balance few can master.", + "lore": "Drawing power from ancient ley lines and forgotten gods, Mage Priests wield destructive magic alongside sacred healing \u2014 a balance few can master.", "startingAttributes": { "Strength": 0, "Vitality": 1, @@ -212,7 +217,10 @@ ], "dualWield": false, "equipmentRulesRef": "class-equipment-rules.json#classes.mage", - "animPacks": ["magic_spell", "unarmed"], + "animPacks": [ + "magic_spell", + "unarmed" + ], "abilities": [ { "id": "arcane_bolt", @@ -309,7 +317,7 @@ "iconUrl": "/icons/skills/class/firemage/firemage_05.png", "sourcePack": "firemage" }, - "emoji": "🔮", + "emoji": "\ud83d\udd2e", "iconUrl": "https://assets.grudge-studio.com/icons/warlords/classes/mage.png", "sourcePack": "firemage" }, @@ -319,7 +327,7 @@ "icon": "/icons/warlords/classes/worge.png", "color": "#d97706", "description": "A shapeshifter who wields nature and storm magic in human form, then transforms into a devastating beast.", - "lore": "Worges walk between worlds — scholars of storm and root in mortal guise, unstoppable predators in beast form. Their mace and dagger channel primal energies until the wild within is unleashed.", + "lore": "Worges walk between worlds \u2014 scholars of storm and root in mortal guise, unstoppable predators in beast form. Their mace and dagger channel primal energies until the wild within is unleashed.", "startingAttributes": { "Strength": 2, "Vitality": 2, @@ -344,7 +352,12 @@ ], "dualWield": false, "equipmentRulesRef": "class-equipment-rules.json#classes.worge", - "animPacks": ["sword_shield", "magic_spell", "longbow", "unarmed"], + "animPacks": [ + "sword_shield", + "magic_spell", + "longbow", + "unarmed" + ], "abilities": [ { "id": "mace_strike", @@ -553,7 +566,7 @@ "iconUrl": "/icons/skills/class/necromancer/necromancer_11.png", "sourcePack": "necromancer" }, - "emoji": "🐺", + "emoji": "\ud83d\udc3a", "iconUrl": "https://assets.grudge-studio.com/icons/warlords/classes/worge.png", "sourcePack": "necromancer" }, @@ -589,7 +602,12 @@ ], "dualWield": false, "equipmentRulesRef": "class-equipment-rules.json#classes.ranger", - "animPacks": ["longbow", "rifle", "two_handed", "unarmed"], + "animPacks": [ + "longbow", + "rifle", + "two_handed", + "unarmed" + ], "abilities": [ { "id": "quick_shot", @@ -696,7 +714,7 @@ "iconUrl": "/icons/skills/class/hunter/hunter_06.png", "sourcePack": "hunter" }, - "emoji": "🏹", + "emoji": "\ud83c\udff9", "iconUrl": "https://assets.grudge-studio.com/icons/warlords/classes/ranger.png", "sourcePack": "hunter" }, @@ -706,19 +724,54 @@ "name": "Priest", "icon": "/icons/warlords/classes/priest.jpg", "color": "#fde68a", - "description": "Discipline healer — Atonement from damage, shields, mass dispel, pain reflect.", + "description": "Discipline healer \u2014 Atonement from damage, shields, mass dispel, pain reflect.", "lore": "Priests bind an ally and turn every holy bolt into a heal. They strip hexes, plant barriers before slams, and reflect pain back as light.", - "startingAttributes": { "Strength": 0, "Vitality": 1, "Endurance": 1, "Dexterity": 0, "Agility": 0, "Intellect": 2, "Wisdom": 5, "Tactics": 1 }, - "weaponTypes": ["holyStaves", "arcaneStaves", "tomes", "orbs", "claws"], - "armorTypes": ["cloth"], + "startingAttributes": { + "Strength": 0, + "Vitality": 1, + "Endurance": 1, + "Dexterity": 0, + "Agility": 0, + "Intellect": 2, + "Wisdom": 5, + "Tactics": 1 + }, + "weaponTypes": [ + "holyStaves", + "arcaneStaves", + "tomes", + "orbs", + "claws" + ], + "armorTypes": [ + "cloth" + ], "dualWield": false, "equipmentRulesRef": "class-equipment-rules.json#classes.priest", - "animPacks": ["magic_spell", "unarmed"], + "animPacks": [ + "magic_spell", + "unarmed" + ], "abilities": [ - { "id": "smite", "name": "Smite", "description": "Holy bolt that feeds Atonement", "type": "holy", "damage": 0.9, "manaCost": 8, "cooldown": 0 }, - { "id": "word_shield", "name": "Word Shield", "description": "Absorb shield; Atonement ticks through it", "type": "holy", "manaCost": 18, "cooldown": 8 } + { + "id": "smite", + "name": "Smite", + "description": "Holy bolt that feeds Atonement", + "type": "holy", + "damage": 0.9, + "manaCost": 8, + "cooldown": 0 + }, + { + "id": "word_shield", + "name": "Word Shield", + "description": "Absorb shield; Atonement ticks through it", + "type": "holy", + "manaCost": 18, + "cooldown": 8 + } ], - "emoji": "✚", + "emoji": "\u271a", "iconUrl": "/icons/warlords/classes/priest.jpg", "sourcePack": "firemage" }, @@ -730,17 +783,51 @@ "color": "#b91c1c", "description": "Two-hand parry tank and execute DPS. Timing is the armor.", "lore": "Raiders dropped the shield. Every swing opens a parry window; a catch becomes Overpower. They offtank slams and cut healing in the arena.", - "startingAttributes": { "Strength": 5, "Vitality": 2, "Endurance": 2, "Dexterity": 2, "Agility": 1, "Intellect": 0, "Wisdom": 0, "Tactics": 0 }, - "weaponTypes": ["greatswords", "greataxes", "hammers2h", "claws"], - "armorTypes": ["plate", "mail"], + "startingAttributes": { + "Strength": 5, + "Vitality": 2, + "Endurance": 2, + "Dexterity": 2, + "Agility": 1, + "Intellect": 0, + "Wisdom": 0, + "Tactics": 0 + }, + "weaponTypes": [ + "greatswords", + "greataxes", + "hammers2h", + "claws" + ], + "armorTypes": [ + "plate", + "mail" + ], "dualWield": false, "equipmentRulesRef": "class-equipment-rules.json#classes.raider", - "animPacks": ["two_handed", "unarmed"], + "animPacks": [ + "two_handed", + "unarmed" + ], "abilities": [ - { "id": "riposte", "name": "Riposte Stance", "description": "Parry window on every 2H swing", "type": "physical", "passive": true }, - { "id": "mortal_strike", "name": "Mortal Strike", "description": "Cut incoming heals on the target", "type": "physical", "damage": 1.4, "staminaCost": 15, "cooldown": 10 } + { + "id": "riposte", + "name": "Riposte Stance", + "description": "Parry window on every 2H swing", + "type": "physical", + "passive": true + }, + { + "id": "mortal_strike", + "name": "Mortal Strike", + "description": "Cut incoming heals on the target", + "type": "physical", + "damage": 1.4, + "staminaCost": 15, + "cooldown": 10 + } ], - "emoji": "⚔", + "emoji": "\u2694", "iconUrl": "/icons/warlords/classes/raider.jpg", "sourcePack": "barbarian" }, @@ -750,19 +837,54 @@ "name": "Thief", "icon": "/icons/warlords/classes/thief.jpg", "color": "#ca8a04", - "description": "Outlaw rogue — combo, pistol interrupt, blade flurry, smoke bomb peel.", + "description": "Outlaw rogue \u2014 combo, pistol interrupt, blade flurry, smoke bomb peel.", "lore": "Thieves fight dirty and close. A pistol shot stops a cast; a smoke bomb covers the healer; Between the Eyes spends the combo.", - "startingAttributes": { "Strength": 1, "Vitality": 1, "Endurance": 1, "Dexterity": 4, "Agility": 4, "Intellect": 0, "Wisdom": 0, "Tactics": 1 }, - "weaponTypes": ["daggers", "swords", "pistols", "claws"], - "armorTypes": ["leather"], + "startingAttributes": { + "Strength": 1, + "Vitality": 1, + "Endurance": 1, + "Dexterity": 4, + "Agility": 4, + "Intellect": 0, + "Wisdom": 0, + "Tactics": 1 + }, + "weaponTypes": [ + "daggers", + "swords", + "pistols", + "claws" + ], + "armorTypes": [ + "leather" + ], "dualWield": true, "equipmentRulesRef": "class-equipment-rules.json#classes.thief", - "animPacks": ["dual_wield", "rifle", "unarmed"], + "animPacks": [ + "dual_wield", + "rifle", + "unarmed" + ], "abilities": [ - { "id": "sinister", "name": "Sinister Strike", "description": "Combo builder", "type": "physical", "damage": 0.9, "staminaCost": 4 }, - { "id": "pistol_shot", "name": "Pistol Shot", "description": "Ranged interrupt", "type": "physical", "damage": 0.7, "staminaCost": 8, "cooldown": 6 } + { + "id": "sinister", + "name": "Sinister Strike", + "description": "Combo builder", + "type": "physical", + "damage": 0.9, + "staminaCost": 4 + }, + { + "id": "pistol_shot", + "name": "Pistol Shot", + "description": "Ranged interrupt", + "type": "physical", + "damage": 0.7, + "staminaCost": 8, + "cooldown": 6 + } ], - "emoji": "🗡", + "emoji": "\ud83d\udde1", "iconUrl": "/icons/warlords/classes/thief.jpg", "sourcePack": "hunter" }, @@ -772,21 +894,79 @@ "name": "Verduror", "icon": "/icons/warlords/classes/verduror.jpg", "color": "#86efac", - "description": "Mistweaver — jade mist, crane kicks that heal, detox, celestial forms.", - "lore": "Verduror walk in mist. They heal while they move, kick like a crane, and call a jade serpent to soothe the tank.", - "startingAttributes": { "Strength": 1, "Vitality": 2, "Endurance": 1, "Dexterity": 1, "Agility": 2, "Intellect": 1, "Wisdom": 3, "Tactics": 0 }, - "weaponTypes": ["natureStaves", "hammers1h", "claws"], - "armorTypes": ["leather", "cloth"], + "description": "Plant caster \u2014 oxygen seeds, vine lash, iguana crawl. Arcanum pages are cactus and Green Tara, found like spells.", + "lore": "Verduror drop living plants. Iguana is a level 0 skill, not a form. The Arcanum opens on Barrel Cactus; Green Tara is the heal mantra.", + "startingAttributes": { + "Strength": 1, + "Vitality": 2, + "Endurance": 1, + "Dexterity": 1, + "Agility": 2, + "Intellect": 1, + "Wisdom": 3, + "Tactics": 0 + }, + "weaponTypes": [ + "natureStaves", + "hammers1h", + "claws" + ], + "armorTypes": [ + "leather", + "cloth" + ], "dualWield": false, "equipmentRulesRef": "class-equipment-rules.json#classes.verduror", - "animPacks": ["magic_spell", "sword_shield", "unarmed"], + "animPacks": [ + "magic_spell", + "sword_shield", + "unarmed" + ], "abilities": [ - { "id": "soothing_mist", "name": "Soothing Mist", "description": "Channeled single heal", "type": "nature", "manaCost": 6 }, - { "id": "crane_kick", "name": "Crane Kick", "description": "Melee kick that splashes heal", "type": "nature", "damage": 0.8, "manaCost": 8 } + { + "id": "v_seed", + "name": "Plant Seed", + "description": "Drop an oxygen plant that heals in the bloom.", + "type": "nature", + "cooldown": 8, + "iconUrl": "/icons/skills/class/verduror/plant-seed.png", + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "icon": "/icons/skills/class/verduror/plant-seed.png" + }, + { + "id": "v_lash", + "name": "Vine Lash", + "description": "Lash an enemy; allies in the arc heal and a seed drops.", + "type": "nature", + "damage": 0.9, + "cooldown": 6, + "iconUrl": "/icons/skills/class/verduror/vine-lash.png", + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "icon": "/icons/skills/class/verduror/vine-lash.png" + }, + { + "id": "v_iguana", + "name": "Iguana", + "description": "Crawl and cast. Not a form page.", + "type": "nature", + "damage": 0.8, + "iconUrl": "/icons/skills/class/verduror/iguana.png", + "icon": "/icons/skills/class/verduror/iguana.png" + } ], - "emoji": "🌿", + "emoji": "\ud83c\udf3f", "iconUrl": "/icons/warlords/classes/verduror.jpg", - "sourcePack": "necromancer" + "sourcePack": "necromancer", + "signatureAbility": { + "id": "v_current", + "name": "Primal Current", + "description": "Seeds, cactus, and Tara at once.", + "type": "nature", + "role": "signature", + "iconUrl": "/icons/skills/class/verduror/primal-current.png", + "prefabUrl": "/models/class-skills/green-tara-mantra.glb", + "icon": "/icons/skills/class/verduror/primal-current.png" + } } }, "tiers": [ diff --git a/api/v1/master-skillTrees.json b/api/v1/master-skillTrees.json index 97323cac..4991723e 100644 --- a/api/v1/master-skillTrees.json +++ b/api/v1/master-skillTrees.json @@ -1,8 +1,8 @@ { "version": "3.0.0", - "generated": "2026-08-21T08:11:15.656Z", + "generated": "2026-08-30T03:45:53Z", "totalClasses": 8, - "totalSkills": 117, + "totalSkills": 1256, "skillTrees": { "warrior": { "uuid": "ITEM-20260621232130-000CDA-12518D41", @@ -558,7 +558,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Specialization.", + "description": "Path node \u2014 spend to open Level 5 - Specialization.", "skillId": null, "path": true, "bonuses": [], @@ -638,7 +638,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Advanced.", + "description": "Path node \u2014 spend to open Level 10 - Advanced.", "skillId": null, "path": true, "bonuses": [], @@ -758,7 +758,7 @@ "parent": 8, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Master.", + "description": "Path node \u2014 spend to open Level 15 - Master.", "skillId": null, "path": true, "bonuses": [], @@ -858,7 +858,7 @@ "parent": 14, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary.", + "description": "Path node \u2014 spend to open Level 20 - Legendary.", "skillId": null, "path": true, "bonuses": [], @@ -1535,7 +1535,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Elemental Arts.", + "description": "Path node \u2014 spend to open Level 5 - Elemental Arts.", "skillId": null, "path": true, "bonuses": [], @@ -1635,7 +1635,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Divine Power.", + "description": "Path node \u2014 spend to open Level 10 - Divine Power.", "skillId": null, "path": true, "bonuses": [], @@ -1755,7 +1755,7 @@ "parent": 9, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Grand Magus.", + "description": "Path node \u2014 spend to open Level 15 - Grand Magus.", "skillId": null, "path": true, "bonuses": [], @@ -1855,7 +1855,7 @@ "parent": 15, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary.", + "description": "Path node \u2014 spend to open Level 20 - Legendary.", "skillId": null, "path": true, "bonuses": [], @@ -2500,7 +2500,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Dual Nature.", + "description": "Path node \u2014 spend to open Level 5 - Dual Nature.", "skillId": null, "path": true, "bonuses": [], @@ -2600,7 +2600,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Shapeshifter.", + "description": "Path node \u2014 spend to open Level 10 - Shapeshifter.", "skillId": null, "path": true, "bonuses": [], @@ -2700,7 +2700,7 @@ "parent": 9, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Warden.", + "description": "Path node \u2014 spend to open Level 15 - Warden.", "skillId": null, "path": true, "bonuses": [], @@ -2800,7 +2800,7 @@ "parent": 14, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary.", + "description": "Path node \u2014 spend to open Level 20 - Legendary.", "skillId": null, "path": true, "bonuses": [], @@ -3468,7 +3468,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Hunter.", + "description": "Path node \u2014 spend to open Level 5 - Hunter.", "skillId": null, "path": true, "bonuses": [], @@ -3568,7 +3568,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Sharpshooter.", + "description": "Path node \u2014 spend to open Level 10 - Sharpshooter.", "skillId": null, "path": true, "bonuses": [], @@ -3668,7 +3668,7 @@ "parent": 9, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Elite.", + "description": "Path node \u2014 spend to open Level 15 - Elite.", "skillId": null, "path": true, "bonuses": [], @@ -3768,7 +3768,7 @@ "parent": 14, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary.", + "description": "Path node \u2014 spend to open Level 20 - Legendary.", "skillId": null, "path": true, "bonuses": [], @@ -4099,7 +4099,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Wards.", + "description": "Path node \u2014 spend to open Level 5 - Wards.", "skillId": null, "path": true, "bonuses": [], @@ -4159,7 +4159,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Discipline.", + "description": "Path node \u2014 spend to open Level 10 - Discipline.", "skillId": null, "path": true, "bonuses": [], @@ -4239,7 +4239,7 @@ "parent": 7, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Mastery.", + "description": "Path node \u2014 spend to open Level 15 - Mastery.", "skillId": null, "path": true, "bonuses": [], @@ -4299,7 +4299,7 @@ "parent": 11, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary Faith.", + "description": "Path node \u2014 spend to open Level 20 - Legendary Faith.", "skillId": null, "path": true, "bonuses": [], @@ -4631,7 +4631,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Specialization.", + "description": "Path node \u2014 spend to open Level 5 - Specialization.", "skillId": null, "path": true, "bonuses": [], @@ -4691,7 +4691,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Advanced Combat.", + "description": "Path node \u2014 spend to open Level 10 - Advanced Combat.", "skillId": null, "path": true, "bonuses": [], @@ -4771,7 +4771,7 @@ "parent": 7, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Master Raider.", + "description": "Path node \u2014 spend to open Level 15 - Master Raider.", "skillId": null, "path": true, "bonuses": [], @@ -4831,7 +4831,7 @@ "parent": 11, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary Raider.", + "description": "Path node \u2014 spend to open Level 20 - Legendary Raider.", "skillId": null, "path": true, "bonuses": [], @@ -4976,7 +4976,7 @@ "name": "Kidney Shot", "icon": "/icons/skill_nobg/Archerskill_07_nobg.png", "description": "Combo stun", - "effect": "1–4s", + "effect": "1\u20134s", "maxPoints": 2, "iconUrl": "/icons/skill_nobg/Archerskill_07_nobg.png", "sourcePack": "hunter" @@ -5161,7 +5161,7 @@ "parent": 1, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Specialization.", + "description": "Path node \u2014 spend to open Level 5 - Specialization.", "skillId": null, "path": true, "bonuses": [], @@ -5221,7 +5221,7 @@ "parent": 4, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Advanced Outlaw.", + "description": "Path node \u2014 spend to open Level 10 - Advanced Outlaw.", "skillId": null, "path": true, "bonuses": [], @@ -5301,7 +5301,7 @@ "parent": 7, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Master Thief.", + "description": "Path node \u2014 spend to open Level 15 - Master Thief.", "skillId": null, "path": true, "bonuses": [], @@ -5361,7 +5361,7 @@ "parent": 11, "branch": "Path", "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Legendary Outlaw.", + "description": "Path node \u2014 spend to open Level 20 - Legendary Outlaw.", "skillId": null, "path": true, "bonuses": [], @@ -5420,536 +5420,532 @@ } }, "verduror": { - "uuid": "ITEM-20260821120000-VERDUR-0001", + "uuid": "ITEM-20260830000000-VERDUR-SEED", "className": "Verduror", "color": "#86efac", "family": "worge", "tiers": [ { - "name": "Level 1 - Mist Arts", - "requiredLevel": 1, + "name": "Level 0 - Seed", + "requiredLevel": 0, "skills": [ { - "id": "v_jade_mist", - "name": "Jade Mist Form", - "icon": "/icons/skill_nobg/Druideskill_01_nobg.png", - "description": "Mist aura heals nearby allies while you melee", - "effect": "Stance HPS", - "maxPoints": 1, - "passive": true, - "iconUrl": "/icons/skill_nobg/Druideskill_01_nobg.png", - "sourcePack": "necromancer" + "id": "v_seed", + "name": "Plant Seed", + "description": "Drop an oxygen plant. It opens and heals whoever stands in the bloom.", + "icon": "/icons/skills/class/verduror/plant-seed.png", + "iconUrl": "/icons/skills/class/verduror/plant-seed.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 8, + "effect": "Seed", + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } }, { - "id": "v_soothing_mist", - "name": "Soothing Mist", - "icon": "/icons/skill_nobg/Druideskill_02_nobg.png", - "description": "Channeled single heal", - "effect": "Instant other heals on target", + "id": "v_lash", + "name": "Vine Lash", + "description": "Lash an enemy. Allies in the whip's arc heal, and a seed drops at their feet.", + "icon": "/icons/skills/class/verduror/vine-lash.png", + "iconUrl": "/icons/skills/class/verduror/vine-lash.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 3, - "iconUrl": "/icons/skill_nobg/Druideskill_02_nobg.png", - "sourcePack": "necromancer" + "damage": 0.9, + "cooldown": 6, + "effect": "Lash + seed", + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } }, { - "id": "v_crane_kick", - "name": "Crane Kick", - "icon": "/icons/skill_nobg/Druideskill_03_nobg.png", - "description": "Melee kick. Splashes Soothing Mist", - "effect": "Fistweaver filler", + "id": "v_iguana", + "name": "Iguana", + "description": "Level 0 skill \u2014 crawl and cast. Not a form page. Nature bolts while you move.", + "icon": "/icons/skills/class/verduror/iguana.png", + "iconUrl": "/icons/skills/class/verduror/iguana.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 3, - "iconUrl": "/icons/skill_nobg/Druideskill_03_nobg.png", - "sourcePack": "necromancer" + "damage": 0.8 } ] }, { - "name": "Level 5 - Envelop", + "name": "Level 1 - Sprout", + "requiredLevel": 1, + "skills": [ + { + "id": "v_bolt", + "name": "Nature Bolt", + "description": "Cast while moving. Builds wild mana for the next seed.", + "icon": "/icons/skills/class/verduror/nature-bolt.png", + "iconUrl": "/icons/skills/class/verduror/nature-bolt.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 0.9 + } + ] + }, + { + "name": "Level 5 - Grove", "requiredLevel": 5, "skills": [ { - "id": "v_enveloping", - "name": "Enveloping Mist", - "icon": "/icons/skill_nobg/Druideskill_04_nobg.png", - "description": "Hot + incoming reduced", - "effect": "-20% taken 6s", + "id": "v_vine", + "name": "Vine Cast", + "description": "Root a target while you move. A seed can grow on the root.", + "icon": "/icons/skills/class/verduror/vine-cast.png", + "iconUrl": "/icons/skills/class/verduror/vine-cast.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 3, - "iconUrl": "/icons/skill_nobg/Druideskill_04_nobg.png", - "sourcePack": "necromancer" + "cooldown": 8, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } }, { - "id": "v_rising_sun", - "name": "Rising Sun Kick", - "icon": "/icons/skill_nobg/Druideskill_05_nobg.png", - "description": "Next 3 Crane Kicks heal more", - "effect": "Loop", + "id": "v_bloom", + "name": "Seed Bloom", + "description": "Force every planted oxygen plant to open. Pulse heal.", + "icon": "/icons/skills/class/verduror/seed-bloom.png", + "iconUrl": "/icons/skills/class/verduror/seed-bloom.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 3, - "iconUrl": "/icons/skill_nobg/Druideskill_05_nobg.png", - "sourcePack": "necromancer" + "cooldown": 12, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_cactus_trap", + "name": "Barrel Trap", + "description": "Call the cactus page: plant a barrel cactus that swells and explodes.", + "icon": "/icons/skills/class/verduror/barrel-cactus.png", + "iconUrl": "/icons/skills/class/verduror/barrel-cactus.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 1.4, + "cooldown": 14, + "prefabUrl": "/models/class-skills/barrel-cactus.glb", + "prefab": { + "modelRef": "/models/class-skills/barrel-cactus.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } } ] }, { - "name": "Level 10 - Forms", + "name": "Level 10 - Mantra", "requiredLevel": 10, "skills": [ { - "id": "v_chiji", - "name": "Chi-Ji Form", - "icon": "/icons/skill_nobg/Druideskill_06_nobg.png", - "description": "Crane form. Gusts heal as you melee", - "effect": "+20% MS 20s", - "maxPoints": 2, - "iconUrl": "/icons/skill_nobg/Druideskill_06_nobg.png", - "sourcePack": "necromancer" + "id": "v_tara", + "name": "Green Tara", + "description": "Arcanum mantra. AOE heal in a green mandala.", + "icon": "/icons/skills/class/verduror/green-tara.png", + "iconUrl": "/icons/skills/class/verduror/green-tara.png", + "type": "holy", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 12, + "effect": "AOE heal", + "prefabUrl": "/models/class-skills/green-tara-mantra.glb", + "prefab": { + "modelRef": "/models/class-skills/green-tara-mantra.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } }, { - "id": "v_revival", - "name": "Revival", - "icon": "/icons/skill_nobg/Druideskill_07_nobg.png", - "description": "Party AoE heal", - "effect": "35% 15m", - "maxPoints": 2, - "iconUrl": "/icons/skill_nobg/Druideskill_07_nobg.png", - "sourcePack": "necromancer" + "id": "v_blink", + "name": "Slip Step", + "description": "Short teleport. Does not need an animal page.", + "icon": "/icons/skills/class/verduror/slip-step.png", + "iconUrl": "/icons/skills/class/verduror/slip-step.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 12 }, { - "id": "v_detox", - "name": "Detox", - "icon": "/icons/skill_nobg/Druideskill_08_nobg.png", - "description": "Dispel magic, poison, disease", - "effect": "2 dispels", + "id": "v_flare", + "name": "Seedflare", + "description": "Casting burst. Seeds in range bloom.", + "icon": "/icons/skills/class/verduror/seed-bloom.png", + "iconUrl": "/icons/skills/class/verduror/seed-bloom.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 3, - "iconUrl": "/icons/skill_nobg/Druideskill_08_nobg.png", - "sourcePack": "necromancer" + "damage": 1.3, + "cooldown": 10, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } } ] }, { - "name": "Level 15 - Focus", + "name": "Level 15 - Coil", "requiredLevel": 15, "skills": [ { - "id": "v_tea", - "name": "Thunder Focus Tea", - "icon": "/icons/skill_nobg/Druideskill_09_nobg.png", - "description": "Next heal instant and empowered", - "effect": "15s", - "maxPoints": 2, - "iconUrl": "/icons/skill_nobg/Druideskill_09_nobg.png", - "sourcePack": "necromancer" + "id": "v_surge", + "name": "Wild Surge", + "description": "Next three casts while moving are empowered.", + "icon": "/icons/skills/class/verduror/wild-surge.png", + "iconUrl": "/icons/skills/class/verduror/wild-surge.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 14 }, { - "id": "v_font", - "name": "Essence Font", - "icon": "/icons/skill_nobg/Druideskill_10_nobg.png", - "description": "Moving AoE heal", - "effect": "Walk the party", - "maxPoints": 2, - "iconUrl": "/icons/skill_nobg/Druideskill_10_nobg.png", - "sourcePack": "necromancer" + "id": "v_move_cast", + "name": "Primal Cadence", + "description": "Casting does not snare you. Iguana skill still crawls.", + "icon": "/icons/skills/class/verduror/primal-cadence.png", + "iconUrl": "/icons/skills/class/verduror/primal-cadence.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3 + }, + { + "id": "v_grove", + "name": "Living Grove", + "description": "Oxygen plants, cactus traps, and Tara rings persist longer.", + "icon": "/icons/skills/class/verduror/living-grove.png", + "iconUrl": "/icons/skills/class/verduror/living-grove.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } } ] }, { - "name": "Level 20 - Celestial", + "name": "Level 20 - Arcanum", "requiredLevel": 20, "skills": [ { - "id": "v_celestial", - "name": "Celestial Form", - "icon": "/icons/skill_nobg/Druideskill_11_nobg.png", - "description": "Mist heals double. You can still Crane Kick", - "effect": "16s", + "id": "v_current", + "name": "Primal Current", + "description": "Seeds, cactus, and Tara at once. No GCD for a burst.", + "icon": "/icons/skills/class/verduror/primal-current.png", + "iconUrl": "/icons/skills/class/verduror/primal-current.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 1, - "iconUrl": "/icons/skill_nobg/Druideskill_11_nobg.png", - "sourcePack": "necromancer" + "cooldown": 30, + "role": "signature", + "prefabUrl": "/models/class-skills/green-tara-mantra.glb", + "prefab": { + "modelRef": "/models/class-skills/green-tara-mantra.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } }, { - "id": "v_serpent", - "name": "Invoke Serpent", - "icon": "/icons/skill_nobg/Druideskill_12_nobg.png", - "description": "Jade serpent channels Soothing Mist while you melee", - "effect": "20s", + "id": "v_arcanum", + "name": "Open Arcanum", + "description": "Signature: the last plant you dropped refunds Seedflare.", + "icon": "/icons/skills/class/verduror/open-arcanum.png", + "iconUrl": "/icons/skills/class/verduror/open-arcanum.png", + "type": "nature", + "sourcePack": "verduror", "maxPoints": 1, - "iconUrl": "/icons/skill_nobg/Druideskill_12_nobg.png", - "sourcePack": "necromancer" + "role": "signature" } ] } ], "graph": { - "totalNodes": 16, - "branches": [ - { - "name": "Core", - "color": { - "stroke": "#fbbf24", - "fill": "rgba(251,191,36,0.25)" - }, - "nodeCount": 3 - }, - { - "name": "Path", - "color": { - "stroke": "#64748b", - "fill": "rgba(100,116,139,0.2)" - }, - "nodeCount": 4 - }, - { - "name": "Left", - "color": { - "stroke": "#f97316", - "fill": "rgba(249,115,22,0.2)" - }, - "nodeCount": 4 - }, - { - "name": "Right", - "color": { - "stroke": "#6366f1", - "fill": "rgba(99,102,241,0.2)" - }, - "nodeCount": 4 - }, - { - "name": "Center", - "color": { - "stroke": "#22c55e", - "fill": "rgba(34,197,94,0.2)" - }, - "nodeCount": 1 - } - ], + "totalNodes": 15, "nodes": [ { - "uuid": "NODE-CLASS-v_jade_mist", + "uuid": "NODE-CLASS-v_seed", "id": 1, - "name": "Jade Mist Form", - "x": 22, + "name": "Plant Seed", + "x": 22.0, "y": 92, - "reqLevel": 1, + "reqLevel": 0, "parent": null, "branch": "Core", - "nodeType": "effect", - "description": "Mist aura heals nearby allies while you melee", - "skillId": "v_jade_mist", + "nodeType": "combat", + "description": "Drop an oxygen plant. It opens and heals whoever stands in the bloom.", + "skillId": "v_seed", "l0": true, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#fbbf24", - "fill": "rgba(251,191,36,0.25)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_soothing_mist", + "uuid": "NODE-CLASS-v_lash", "id": 2, - "name": "Soothing Mist", - "x": 50, + "name": "Vine Lash", + "x": 50.0, "y": 92, - "reqLevel": 1, + "reqLevel": 0, "parent": null, "branch": "Core", "nodeType": "combat", - "description": "Channeled single heal", - "skillId": "v_soothing_mist", + "description": "Lash an enemy. Allies in the whip's arc heal, and a seed drops at their feet.", + "skillId": "v_lash", "l0": true, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#fbbf24", - "fill": "rgba(251,191,36,0.25)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_crane_kick", + "uuid": "NODE-CLASS-v_iguana", "id": 3, - "name": "Crane Kick", - "x": 78, + "name": "Iguana", + "x": 78.0, "y": 92, - "reqLevel": 1, + "reqLevel": 0, "parent": null, "branch": "Core", "nodeType": "combat", - "description": "Melee kick. Splashes Soothing Mist", - "skillId": "v_crane_kick", + "description": "Level 0 skill \u2014 crawl and cast. Not a form page. Nature bolts while you move.", + "skillId": "v_iguana", "l0": true, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#fbbf24", - "fill": "rgba(251,191,36,0.25)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-Verduror-P1", + "uuid": "NODE-CLASS-v_bolt", "id": 4, - "name": "Level 5 - Envelop", + "name": "Nature Bolt", "x": 50, - "y": 84, - "reqLevel": 4, - "parent": 1, - "branch": "Path", - "nodeType": "stat", - "description": "Path node — spend to open Level 5 - Envelop.", - "skillId": null, - "path": true, + "y": 80, + "reqLevel": 1, + "parent": 3, + "branch": "Center", + "nodeType": "combat", + "description": "Cast while moving. Builds wild mana for the next seed.", + "skillId": "v_bolt", + "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#64748b", - "fill": "rgba(100,116,139,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_enveloping", + "uuid": "NODE-CLASS-v_vine", "id": 5, - "name": "Enveloping Mist", - "x": 32, - "y": 76, + "name": "Vine Cast", + "x": 22.0, + "y": 68, "reqLevel": 5, "parent": 4, - "branch": "Left", + "branch": "Center", "nodeType": "combat", - "description": "Hot + incoming reduced", - "skillId": "v_enveloping", + "description": "Root a target while you move. A seed can grow on the root.", + "skillId": "v_vine", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#f97316", - "fill": "rgba(249,115,22,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_rising_sun", + "uuid": "NODE-CLASS-v_bloom", "id": 6, - "name": "Rising Sun Kick", - "x": 68, - "y": 76, + "name": "Seed Bloom", + "x": 50.0, + "y": 68, "reqLevel": 5, "parent": 4, - "branch": "Right", + "branch": "Center", "nodeType": "combat", - "description": "Next 3 Crane Kicks heal more", - "skillId": "v_rising_sun", + "description": "Force every planted oxygen plant to open. Pulse heal.", + "skillId": "v_bloom", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#6366f1", - "fill": "rgba(99,102,241,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-Verduror-P2", + "uuid": "NODE-CLASS-v_cactus_trap", "id": 7, - "name": "Level 10 - Forms", - "x": 50, + "name": "Barrel Trap", + "x": 78.0, "y": 68, - "reqLevel": 9, + "reqLevel": 5, "parent": 4, - "branch": "Path", - "nodeType": "stat", - "description": "Path node — spend to open Level 10 - Forms.", - "skillId": null, - "path": true, + "branch": "Center", + "nodeType": "combat", + "description": "Call the cactus page: plant a barrel cactus that swells and explodes.", + "skillId": "v_cactus_trap", + "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#64748b", - "fill": "rgba(100,116,139,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_chiji", + "uuid": "NODE-CLASS-v_tara", "id": 8, - "name": "Chi-Ji Form", - "x": 22, - "y": 60, + "name": "Green Tara", + "x": 22.0, + "y": 56, "reqLevel": 10, "parent": 7, - "branch": "Left", + "branch": "Center", "nodeType": "combat", - "description": "Crane form. Gusts heal as you melee", - "skillId": "v_chiji", + "description": "Arcanum mantra. AOE heal in a green mandala.", + "skillId": "v_tara", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#f97316", - "fill": "rgba(249,115,22,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_revival", + "uuid": "NODE-CLASS-v_blink", "id": 9, - "name": "Revival", - "x": 50, - "y": 60, + "name": "Slip Step", + "x": 50.0, + "y": 56, "reqLevel": 10, "parent": 7, - "branch": "Right", + "branch": "Center", "nodeType": "combat", - "description": "Party AoE heal", - "skillId": "v_revival", + "description": "Short teleport. Does not need an animal page.", + "skillId": "v_blink", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#6366f1", - "fill": "rgba(99,102,241,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_detox", + "uuid": "NODE-CLASS-v_flare", "id": 10, - "name": "Detox", - "x": 78, - "y": 60, + "name": "Seedflare", + "x": 78.0, + "y": 56, "reqLevel": 10, "parent": 7, "branch": "Center", "nodeType": "combat", - "description": "Dispel magic, poison, disease", - "skillId": "v_detox", + "description": "Casting burst. Seeds in range bloom.", + "skillId": "v_flare", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#22c55e", - "fill": "rgba(34,197,94,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-Verduror-P3", + "uuid": "NODE-CLASS-v_surge", "id": 11, - "name": "Level 15 - Focus", - "x": 50, - "y": 52, - "reqLevel": 14, - "parent": 7, - "branch": "Path", - "nodeType": "stat", - "description": "Path node — spend to open Level 15 - Focus.", - "skillId": null, - "path": true, + "name": "Wild Surge", + "x": 22.0, + "y": 44, + "reqLevel": 15, + "parent": 10, + "branch": "Center", + "nodeType": "combat", + "description": "Next three casts while moving are empowered.", + "skillId": "v_surge", + "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#64748b", - "fill": "rgba(100,116,139,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_tea", + "uuid": "NODE-CLASS-v_move_cast", "id": 12, - "name": "Thunder Focus Tea", - "x": 32, + "name": "Primal Cadence", + "x": 50.0, "y": 44, "reqLevel": 15, - "parent": 11, - "branch": "Left", + "parent": 10, + "branch": "Center", "nodeType": "combat", - "description": "Next heal instant and empowered", - "skillId": "v_tea", + "description": "Casting does not snare you. Iguana skill still crawls.", + "skillId": "v_move_cast", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#f97316", - "fill": "rgba(249,115,22,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_font", + "uuid": "NODE-CLASS-v_grove", "id": 13, - "name": "Essence Font", - "x": 68, + "name": "Living Grove", + "x": 78.0, "y": 44, "reqLevel": 15, - "parent": 11, - "branch": "Right", + "parent": 10, + "branch": "Center", "nodeType": "combat", - "description": "Moving AoE heal", - "skillId": "v_font", + "description": "Oxygen plants, cactus traps, and Tara rings persist longer.", + "skillId": "v_grove", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#6366f1", - "fill": "rgba(99,102,241,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-Verduror-P4", + "uuid": "NODE-CLASS-v_current", "id": 14, - "name": "Level 20 - Celestial", - "x": 50, - "y": 36, - "reqLevel": 19, - "parent": 11, - "branch": "Path", - "nodeType": "stat", - "description": "Path node — spend to open Level 20 - Celestial.", - "skillId": null, - "path": true, - "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#64748b", - "fill": "rgba(100,116,139,0.2)" - } - }, - { - "uuid": "NODE-CLASS-v_celestial", - "id": 15, - "name": "Celestial Form", - "x": 32, - "y": 28, + "name": "Primal Current", + "x": 22.0, + "y": 32, "reqLevel": 20, - "parent": 14, - "branch": "Left", + "parent": 13, + "branch": "Center", "nodeType": "combat", - "description": "Mist heals double. You can still Crane Kick", - "skillId": "v_celestial", + "description": "Seeds, cactus, and Tara at once. No GCD for a burst.", + "skillId": "v_current", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#f97316", - "fill": "rgba(249,115,22,0.2)" - } + "unlocks": [] }, { - "uuid": "NODE-CLASS-v_serpent", - "id": 16, - "name": "Invoke Serpent", - "x": 68, - "y": 28, + "uuid": "NODE-CLASS-v_arcanum", + "id": 15, + "name": "Open Arcanum", + "x": 78.0, + "y": 32, "reqLevel": 20, - "parent": 14, - "branch": "Right", + "parent": 13, + "branch": "Center", "nodeType": "combat", - "description": "Jade serpent channels Soothing Mist while you melee", - "skillId": "v_serpent", + "description": "Signature: the last plant you dropped refunds Seedflare.", + "skillId": "v_arcanum", "l0": false, "bonuses": [], - "unlocks": [], - "branchColor": { - "stroke": "#6366f1", - "fill": "rgba(99,102,241,0.2)" - } + "unlocks": [] } ] }, "specIdentity": { - "skillId": "v_jade_mist", - "name": "Jade Mist Form", - "description": "Mist aura heals nearby allies while you melee" + "skillId": "v_seed", + "name": "Plant Seed", + "description": "Drop an oxygen plant. It opens and heals whoever stands in the bloom." } } }, - "graphNote": "Each class.graph uses the same node schema as master-professionTrees (x/y 0–100, parent, branch, nodeType). Path nodes sit between pick tiers. L0 skill is spec identity — swap family spec by reset + different L0, or rewrite with the same L0." + "graphNote": "Each class.graph uses the same node schema as master-professionTrees (x/y 0\u2013100, parent, branch, nodeType). Path nodes sit between pick tiers. L0 skill is spec identity \u2014 swap family spec by reset + different L0, or rewrite with the same L0." } diff --git a/api/v1/skillTrees.json b/api/v1/skillTrees.json index 2f8b1156..70ef822d 100644 --- a/api/v1/skillTrees.json +++ b/api/v1/skillTrees.json @@ -1832,7 +1832,534 @@ ] } ] + }, + "verduror": { + "uuid": "ITEM-20260830000000-VERDUR-SEED", + "className": "Verduror", + "color": "#86efac", + "family": "worge", + "tiers": [ + { + "name": "Level 0 - Seed", + "requiredLevel": 0, + "skills": [ + { + "id": "v_seed", + "name": "Plant Seed", + "description": "Drop an oxygen plant. It opens and heals whoever stands in the bloom.", + "icon": "/icons/skills/class/verduror/plant-seed.png", + "iconUrl": "/icons/skills/class/verduror/plant-seed.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 8, + "effect": "Seed", + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_lash", + "name": "Vine Lash", + "description": "Lash an enemy. Allies in the whip's arc heal, and a seed drops at their feet.", + "icon": "/icons/skills/class/verduror/vine-lash.png", + "iconUrl": "/icons/skills/class/verduror/vine-lash.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 0.9, + "cooldown": 6, + "effect": "Lash + seed", + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_iguana", + "name": "Iguana", + "description": "Level 0 skill \u2014 crawl and cast. Not a form page. Nature bolts while you move.", + "icon": "/icons/skills/class/verduror/iguana.png", + "iconUrl": "/icons/skills/class/verduror/iguana.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 0.8 + } + ] + }, + { + "name": "Level 1 - Sprout", + "requiredLevel": 1, + "skills": [ + { + "id": "v_bolt", + "name": "Nature Bolt", + "description": "Cast while moving. Builds wild mana for the next seed.", + "icon": "/icons/skills/class/verduror/nature-bolt.png", + "iconUrl": "/icons/skills/class/verduror/nature-bolt.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 0.9 + } + ] + }, + { + "name": "Level 5 - Grove", + "requiredLevel": 5, + "skills": [ + { + "id": "v_vine", + "name": "Vine Cast", + "description": "Root a target while you move. A seed can grow on the root.", + "icon": "/icons/skills/class/verduror/vine-cast.png", + "iconUrl": "/icons/skills/class/verduror/vine-cast.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 8, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_bloom", + "name": "Seed Bloom", + "description": "Force every planted oxygen plant to open. Pulse heal.", + "icon": "/icons/skills/class/verduror/seed-bloom.png", + "iconUrl": "/icons/skills/class/verduror/seed-bloom.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 12, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_cactus_trap", + "name": "Barrel Trap", + "description": "Call the cactus page: plant a barrel cactus that swells and explodes.", + "icon": "/icons/skills/class/verduror/barrel-cactus.png", + "iconUrl": "/icons/skills/class/verduror/barrel-cactus.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 1.4, + "cooldown": 14, + "prefabUrl": "/models/class-skills/barrel-cactus.glb", + "prefab": { + "modelRef": "/models/class-skills/barrel-cactus.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + } + ] + }, + { + "name": "Level 10 - Mantra", + "requiredLevel": 10, + "skills": [ + { + "id": "v_tara", + "name": "Green Tara", + "description": "Arcanum mantra. AOE heal in a green mandala.", + "icon": "/icons/skills/class/verduror/green-tara.png", + "iconUrl": "/icons/skills/class/verduror/green-tara.png", + "type": "holy", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 12, + "effect": "AOE heal", + "prefabUrl": "/models/class-skills/green-tara-mantra.glb", + "prefab": { + "modelRef": "/models/class-skills/green-tara-mantra.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_blink", + "name": "Slip Step", + "description": "Short teleport. Does not need an animal page.", + "icon": "/icons/skills/class/verduror/slip-step.png", + "iconUrl": "/icons/skills/class/verduror/slip-step.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 12 + }, + { + "id": "v_flare", + "name": "Seedflare", + "description": "Casting burst. Seeds in range bloom.", + "icon": "/icons/skills/class/verduror/seed-bloom.png", + "iconUrl": "/icons/skills/class/verduror/seed-bloom.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "damage": 1.3, + "cooldown": 10, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + } + ] + }, + { + "name": "Level 15 - Coil", + "requiredLevel": 15, + "skills": [ + { + "id": "v_surge", + "name": "Wild Surge", + "description": "Next three casts while moving are empowered.", + "icon": "/icons/skills/class/verduror/wild-surge.png", + "iconUrl": "/icons/skills/class/verduror/wild-surge.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "cooldown": 14 + }, + { + "id": "v_move_cast", + "name": "Primal Cadence", + "description": "Casting does not snare you. Iguana skill still crawls.", + "icon": "/icons/skills/class/verduror/primal-cadence.png", + "iconUrl": "/icons/skills/class/verduror/primal-cadence.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3 + }, + { + "id": "v_grove", + "name": "Living Grove", + "description": "Oxygen plants, cactus traps, and Tara rings persist longer.", + "icon": "/icons/skills/class/verduror/living-grove.png", + "iconUrl": "/icons/skills/class/verduror/living-grove.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 3, + "prefabUrl": "/models/class-skills/oxygen-plant.glb", + "prefab": { + "modelRef": "/models/class-skills/oxygen-plant.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + } + ] + }, + { + "name": "Level 20 - Arcanum", + "requiredLevel": 20, + "skills": [ + { + "id": "v_current", + "name": "Primal Current", + "description": "Seeds, cactus, and Tara at once. No GCD for a burst.", + "icon": "/icons/skills/class/verduror/primal-current.png", + "iconUrl": "/icons/skills/class/verduror/primal-current.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 1, + "cooldown": 30, + "role": "signature", + "prefabUrl": "/models/class-skills/green-tara-mantra.glb", + "prefab": { + "modelRef": "/models/class-skills/green-tara-mantra.glb", + "vfxRef": null, + "impactRef": null, + "animationClip": null + } + }, + { + "id": "v_arcanum", + "name": "Open Arcanum", + "description": "Signature: the last plant you dropped refunds Seedflare.", + "icon": "/icons/skills/class/verduror/open-arcanum.png", + "iconUrl": "/icons/skills/class/verduror/open-arcanum.png", + "type": "nature", + "sourcePack": "verduror", + "maxPoints": 1, + "role": "signature" + } + ] + } + ], + "graph": { + "totalNodes": 15, + "nodes": [ + { + "uuid": "NODE-CLASS-v_seed", + "id": 1, + "name": "Plant Seed", + "x": 22.0, + "y": 92, + "reqLevel": 0, + "parent": null, + "branch": "Core", + "nodeType": "combat", + "description": "Drop an oxygen plant. It opens and heals whoever stands in the bloom.", + "skillId": "v_seed", + "l0": true, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_lash", + "id": 2, + "name": "Vine Lash", + "x": 50.0, + "y": 92, + "reqLevel": 0, + "parent": null, + "branch": "Core", + "nodeType": "combat", + "description": "Lash an enemy. Allies in the whip's arc heal, and a seed drops at their feet.", + "skillId": "v_lash", + "l0": true, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_iguana", + "id": 3, + "name": "Iguana", + "x": 78.0, + "y": 92, + "reqLevel": 0, + "parent": null, + "branch": "Core", + "nodeType": "combat", + "description": "Level 0 skill \u2014 crawl and cast. Not a form page. Nature bolts while you move.", + "skillId": "v_iguana", + "l0": true, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_bolt", + "id": 4, + "name": "Nature Bolt", + "x": 50, + "y": 80, + "reqLevel": 1, + "parent": 3, + "branch": "Center", + "nodeType": "combat", + "description": "Cast while moving. Builds wild mana for the next seed.", + "skillId": "v_bolt", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_vine", + "id": 5, + "name": "Vine Cast", + "x": 22.0, + "y": 68, + "reqLevel": 5, + "parent": 4, + "branch": "Center", + "nodeType": "combat", + "description": "Root a target while you move. A seed can grow on the root.", + "skillId": "v_vine", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_bloom", + "id": 6, + "name": "Seed Bloom", + "x": 50.0, + "y": 68, + "reqLevel": 5, + "parent": 4, + "branch": "Center", + "nodeType": "combat", + "description": "Force every planted oxygen plant to open. Pulse heal.", + "skillId": "v_bloom", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_cactus_trap", + "id": 7, + "name": "Barrel Trap", + "x": 78.0, + "y": 68, + "reqLevel": 5, + "parent": 4, + "branch": "Center", + "nodeType": "combat", + "description": "Call the cactus page: plant a barrel cactus that swells and explodes.", + "skillId": "v_cactus_trap", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_tara", + "id": 8, + "name": "Green Tara", + "x": 22.0, + "y": 56, + "reqLevel": 10, + "parent": 7, + "branch": "Center", + "nodeType": "combat", + "description": "Arcanum mantra. AOE heal in a green mandala.", + "skillId": "v_tara", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_blink", + "id": 9, + "name": "Slip Step", + "x": 50.0, + "y": 56, + "reqLevel": 10, + "parent": 7, + "branch": "Center", + "nodeType": "combat", + "description": "Short teleport. Does not need an animal page.", + "skillId": "v_blink", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_flare", + "id": 10, + "name": "Seedflare", + "x": 78.0, + "y": 56, + "reqLevel": 10, + "parent": 7, + "branch": "Center", + "nodeType": "combat", + "description": "Casting burst. Seeds in range bloom.", + "skillId": "v_flare", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_surge", + "id": 11, + "name": "Wild Surge", + "x": 22.0, + "y": 44, + "reqLevel": 15, + "parent": 10, + "branch": "Center", + "nodeType": "combat", + "description": "Next three casts while moving are empowered.", + "skillId": "v_surge", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_move_cast", + "id": 12, + "name": "Primal Cadence", + "x": 50.0, + "y": 44, + "reqLevel": 15, + "parent": 10, + "branch": "Center", + "nodeType": "combat", + "description": "Casting does not snare you. Iguana skill still crawls.", + "skillId": "v_move_cast", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_grove", + "id": 13, + "name": "Living Grove", + "x": 78.0, + "y": 44, + "reqLevel": 15, + "parent": 10, + "branch": "Center", + "nodeType": "combat", + "description": "Oxygen plants, cactus traps, and Tara rings persist longer.", + "skillId": "v_grove", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_current", + "id": 14, + "name": "Primal Current", + "x": 22.0, + "y": 32, + "reqLevel": 20, + "parent": 13, + "branch": "Center", + "nodeType": "combat", + "description": "Seeds, cactus, and Tara at once. No GCD for a burst.", + "skillId": "v_current", + "l0": false, + "bonuses": [], + "unlocks": [] + }, + { + "uuid": "NODE-CLASS-v_arcanum", + "id": 15, + "name": "Open Arcanum", + "x": 78.0, + "y": 32, + "reqLevel": 20, + "parent": 13, + "branch": "Center", + "nodeType": "combat", + "description": "Signature: the last plant you dropped refunds Seedflare.", + "skillId": "v_arcanum", + "l0": false, + "bonuses": [], + "unlocks": [] + } + ] + }, + "specIdentity": { + "skillId": "v_seed", + "name": "Plant Seed", + "description": "Drop an oxygen plant. It opens and heals whoever stands in the bloom." + } } }, - "totalClasses": 4 + "totalClasses": 5 } diff --git a/icons/skills/class/verduror/barrel-cactus.png b/icons/skills/class/verduror/barrel-cactus.png new file mode 100644 index 00000000..e0e05237 Binary files /dev/null and b/icons/skills/class/verduror/barrel-cactus.png differ diff --git a/icons/skills/class/verduror/green-tara.png b/icons/skills/class/verduror/green-tara.png new file mode 100644 index 00000000..b37a2cd7 Binary files /dev/null and b/icons/skills/class/verduror/green-tara.png differ diff --git a/icons/skills/class/verduror/iguana.png b/icons/skills/class/verduror/iguana.png new file mode 100644 index 00000000..810e6f97 Binary files /dev/null and b/icons/skills/class/verduror/iguana.png differ diff --git a/icons/skills/class/verduror/living-grove.png b/icons/skills/class/verduror/living-grove.png new file mode 100644 index 00000000..17417faf Binary files /dev/null and b/icons/skills/class/verduror/living-grove.png differ diff --git a/icons/skills/class/verduror/nature-bolt.png b/icons/skills/class/verduror/nature-bolt.png new file mode 100644 index 00000000..bd8cd675 Binary files /dev/null and b/icons/skills/class/verduror/nature-bolt.png differ diff --git a/icons/skills/class/verduror/open-arcanum.png b/icons/skills/class/verduror/open-arcanum.png new file mode 100644 index 00000000..535e676b Binary files /dev/null and b/icons/skills/class/verduror/open-arcanum.png differ diff --git a/icons/skills/class/verduror/plant-seed.png b/icons/skills/class/verduror/plant-seed.png new file mode 100644 index 00000000..7eed703b Binary files /dev/null and b/icons/skills/class/verduror/plant-seed.png differ diff --git a/icons/skills/class/verduror/primal-cadence.png b/icons/skills/class/verduror/primal-cadence.png new file mode 100644 index 00000000..d3048797 Binary files /dev/null and b/icons/skills/class/verduror/primal-cadence.png differ diff --git a/icons/skills/class/verduror/primal-current.png b/icons/skills/class/verduror/primal-current.png new file mode 100644 index 00000000..4223672f Binary files /dev/null and b/icons/skills/class/verduror/primal-current.png differ diff --git a/icons/skills/class/verduror/seed-bloom.png b/icons/skills/class/verduror/seed-bloom.png new file mode 100644 index 00000000..d375fb44 Binary files /dev/null and b/icons/skills/class/verduror/seed-bloom.png differ diff --git a/icons/skills/class/verduror/slip-step.png b/icons/skills/class/verduror/slip-step.png new file mode 100644 index 00000000..babb8e12 Binary files /dev/null and b/icons/skills/class/verduror/slip-step.png differ diff --git a/icons/skills/class/verduror/vine-cast.png b/icons/skills/class/verduror/vine-cast.png new file mode 100644 index 00000000..44463629 Binary files /dev/null and b/icons/skills/class/verduror/vine-cast.png differ diff --git a/icons/skills/class/verduror/vine-lash.png b/icons/skills/class/verduror/vine-lash.png new file mode 100644 index 00000000..95e7415a Binary files /dev/null and b/icons/skills/class/verduror/vine-lash.png differ diff --git a/icons/skills/class/verduror/wild-surge.png b/icons/skills/class/verduror/wild-surge.png new file mode 100644 index 00000000..9ed98de4 Binary files /dev/null and b/icons/skills/class/verduror/wild-surge.png differ diff --git a/models/class-skills/barrel-cactus.glb b/models/class-skills/barrel-cactus.glb new file mode 100644 index 00000000..bd9a703d Binary files /dev/null and b/models/class-skills/barrel-cactus.glb differ diff --git a/models/class-skills/green-tara-mantra.glb b/models/class-skills/green-tara-mantra.glb new file mode 100644 index 00000000..c2364f7d Binary files /dev/null and b/models/class-skills/green-tara-mantra.glb differ diff --git a/models/class-skills/oxygen-plant.glb b/models/class-skills/oxygen-plant.glb new file mode 100644 index 00000000..ec71bef3 Binary files /dev/null and b/models/class-skills/oxygen-plant.glb differ