πŸ₯”
Briefing: Beezlebop's Blunder
  • πŸ‘‹Welcome to Beezlebop's Briefing!
    • #️⃣Table of Contents
    • πŸ§™Core Design Features
    • πŸ—οΈBuild Phases
  • πŸ“–The Story
    • πŸŒͺ️The Blunder
  • πŸ‘ΎGame Mechanics
    • ℹ️Gameplay Overview
    • ⁉️Collaborative Questing
    • πŸ“œCharacter Sheet
      • πŸ’ͺAttributes
      • ➰Aspects & Futhark
        • πŸ₯”Body Aspects
        • πŸ¦„Class Aspects
        • β­•Null Aspects
      • πŸͺƒAbilities
        • πŸŽ„Ability Tree
        • πŸ“„Beezlebop's Blunder Ability List
    • πŸ—‘οΈCombat
      • πŸ”ͺDamage Types & Status Effects
      • πŸŒ€Portal World
        • πŸ—ΊοΈMap
        • πŸ‘½Monsters
        • πŸͺ€Traps
    • πŸŽ’Items
      • βš”οΈEquipment
      • πŸ›οΈBeth's Bazaar
      • πŸ₯‘Consumables
        • 🍢Cola and Coco
      • πŸŸͺPocket Dimension
      • πŸ”¨Crafting
    • πŸͺœLadder
    • πŸͺ™Tokenomics
      • πŸ₯“Beezle Tokens
      • πŸ”·Ronin Tokens
  • πŸ› οΈAbout
    • ✨w0nd3r - Core Dev
Powered by GitBook
On this page
  • Ability Tree
  • Ability Tree Pseudocode
  1. Game Mechanics
  2. Character Sheet
  3. Abilities

Ability Tree

Each Character Sheet also exposes an Ability Tree with ability count and dynamic node/branch structure along with a leveling mechanic. Games may use a standardized Ability Tree or implement their own.

Ability Tree

During the mint process, the Character Sheet NFT takes a JSON object as input with the minter's desired Node/Branch Structure. After minting, the new Character Sheet NFT's Ability Tree may be read from the blockchain to import it's state. Any number of games may then be designed around and implement a particular standard structure as a form of interoperability.

Each Node within an Ability Tree holds 3 components:

  • An _unlock value which designates the Power Level of the Character Sheet required to access the node

  • A single Ability with a _level value which tracks the number of Ability Points spent on that Ability

  • Any number of Branches, each of which leads to a singular Node

As the Character Sheet NFT is designed to be game agnostic, the only value that is incremented across the entire Ability Tree is the _level of each Ability (via interactions with ecosystem Tokens, see Tokenomics for more info). Specific games may insert additional game-relevant data (such as ability name, type, damage range, attributes, etc. or defining a node as active, passive, or null) into an imported Ability Tree once it is read from the Character Sheet NFT contract.

Ability Tree Pseudocode

// exampleTree.json
// Character Sheet ERC721 Node/Branch Structure input JSON Object
{
    _node1: {
        _unlock: 1,                  // specified by a standard
        _ability: {            
            // _level: 0,            // Defaults to 0 at mint
            ...
        },
        _branch1_n1: {
            _node1_b1_n1: {
                _unlock: 6,
                _ability: {                    
                    // _level: 0,
                    ...
                },
                _branch1_n1_b1_n1: {...},
                _branch2_n1_b1_n1: {...},
            }
        },
        _branch2_n1: {
            _node1_b2_n1: {...},
            ...
        }
    },
    _node2: {...},
    ...,
    _nodeN: {...}
}
// GormielAbilityTree.json
// Example section of Gormiel's Character Sheet Ability Tree in-game
{
    _node1: {
        _unlock: 1,
        _ability: {            
            _level: 1,
            level: 5,              // level tracked during a game session
            name: "Tiny Fan",
            type: "melee",            
            cooldown: 4,
            radius: 0,            // degrees, i.e. single target
            damage: {
                physical: {
                    min: 2,
                    max: 4
                },
                frost: {
                    min: 1,
                    max: 2
                }
            },
            ...
        },
        ...
    },
    ...,
    _nodeN: {...}
}
PreviousAbilitiesNextBeezlebop's Blunder Ability List

Last updated 1 year ago

πŸ‘Ύ
πŸ“œ
πŸͺƒ
πŸŽ„