scribe-rpg-coin-purse
v1.2.4
Published
Fantasy RPG Currency Exchange
Downloads
1
Readme
Scribe Coin Purse
A Fantasy RPG Currency Exchange.
Getting started
npm install --save scribe-rpg-coin-purse
Features
This project makes it easy to:
- Add and subtract multiple denominations
- Parse strings for value denomination pairs
- Keep your coins organized
Documentation
config
Most functions accept a config object.
Supported config values:
denominations
An array of denomination objects
Schema:
{
name: String,
abrv: String, (must be two uppercase letters)
copperValue: Number,
}
Default:
[
{
name: 'copper',
abrv: 'CP',
copperValue: 1,
},
{
name: 'silver',
abrv: 'SP',
copperValue: 10,
},
{
name: 'electrum',
abrv: 'EP',
copperValue: 50,
},
{
name: 'gold',
abrv: 'GP',
copperValue: 100,
},
{
name: 'platinum',
abrv: 'PP',
copperValue: 1000,
},
]
copperValue(string, config)
Description
Returns the total copper value of string.
Usage
copperValue(string, config)
string {string} required
- A string with value denomination pairs in it to be parsed
config {object} optional
- an object containing configuration options
- default value: { denominations }
@return {number} sum of all value denomination pairs in string
Example
const val = copperValue('This sword is worth 20gp');
val === 200;
parser(exp, config)
Description
Returns an array of objects describing each denomination value pair found within exp.
Usage
parser(exp, config)
exp {string} required
- A string containing value denomination pairs
config {object} optional
- an object containing configuration options
- default value: { denominations }
@return {array}
[
{
match: String, // the match found
value: String, // the value in the found match
denomination: String, // the denomination in the found match
},
...
]
Example
const val = parser('This sword is worth 20gp');
val === { match: '20gp', value: '20', denomination: 'GP' };
subUnits(coppers, config)
Description
Takes a copper value and returns and object containing each denomination and their value.
Usage
subUnits(coppers, config)
exp {number} required
- A number representing the total copper value to be parsed
config {object} optional
- an object containing configuration options
- default value: { denominations }
@return {object} [contains a key for each denomination in denominations]
{
CP: 0,
SP: 0,
EP: 0,
GP: 0,
PP: 0,
}
Example
const val = subUnits(1161);
val === {
CP: 1,
SP: 1,
EP: 1,
GP: 1,
PP: 1,
};
total(array, config)
Description
Returns the total copper value of all expressions in array
Usage
total(array, config)
array {array} required
- An array of strings containing value denomination pairs
config {object} optional
- an object containing configuration options
- default value: { denominations }
@return {number}
Example
const val = total(['1CP', '1CP']);
val === 2;
values(copperValue, config)
Description
Returns each total denomination value within given copperValue
Usage
total(array, config)
array {array} required
- An array of strings containing value denomination pairs
config {object} optional
- an object containing configuration options
- default value: { denominations }
@return {number}
Example:
const vals = values(1161);
vals === {
CP: 1161,
SP: 116,
EP: 23,
GP: 11,
PP: 1,
}
Contributing
Feature requests, issues, and contributions are all welcome.