Nonlinear Performance Magnification

    drop-loot

    1.1.3 • Public • Published

    DropTable

    A loot/drop implementation in NodeJS that can be used for receiving loots in games.

    Create & loot from droptables which can include items, or other droptables using their weights. Weights are arbitrary, not percentages, and don't need to add up to 100. Read overview of drop tables on Lost Garden.

    //Create Items
    let gold = createItem('gold');
    let silver = createItem('silver');
    let sword = createItem('sword');
    let helmet = createItem('helmet');
    //Create Loot Table
    let equipmentTable = createLootTable('equipments', dropCount);
    //Add Loot Table Entry
    equipmentTable.add(sword, { isUnique: true });
    equipmentTable.add(helmet, { isUnique: true });
    //Create Another Loot Table
    let chestOne = createLootTable('gold chest', dropCount);
    //Add Loot Table Entry
    chestOne.add(gold, { isAlways: true, minStack: 10, maxStack: 50 });
    chestOne.add(equipmentTable, { weight: 8, isUnique: true });
    //Create Another Loot Table
    let chestTwo = createLootTable('silver chest', dropCount);
    //Add Loot Table Entry
    chestTwo.add(silver, { isAlways: true, minStack: 5, maxStack: 50 });
    chestTwo.add(equipmentTable, { weight: 8, isUnique: true });
    //Drop Loot from Chest One
    let drops = await chestOne.dropLoot();
    console.log('chest one loots:');
    drops.forEach(drop => {
        console.log(drop.item.name + ' ' + drop.stack);
    });
    //Drop Loot from Chest Two
    drops = await chestTwo.dropLoot();
    console.log('chest two loots:');
    drops.forEach(drop => {
        console.log(drop.item.name + ' ' + drop.stack);
    });

    Check out tests/dropTest.js to get more idea on feature set.

    Install

    npm i drop-loot

    DownloadsWeekly Downloads

    2

    Version

    1.1.3

    License

    GPL-3.0-or-later

    Unpacked Size

    9.78 kB

    Total Files

    6

    Last publish

    Collaborators

    • beefncheddar