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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.3
    3
    • latest

Version History

Package Sidebar

Install

npm i drop-loot

Weekly Downloads

3

Version

1.1.3

License

GPL-3.0-or-later

Unpacked Size

9.78 kB

Total Files

6

Last publish

Collaborators

  • beefncheddar