Skip to content

maynull/droptable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published