1.2.4 • Published 7 years ago

scribe-rpg-coin-purse v1.2.4

Weekly downloads
6
License
MIT
Repository
github
Last release
7 years ago

Scribe Coin Purse Build Status

NPM

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)

{
  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.

issues

1.2.4

7 years ago

1.2.3

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.3

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago