a datum that keeps your numbers correctly within a range
CoffeeScript JavaScript
Latest commit f4caf59 Jun 24, 2016 @seiyria bump to 1.1.0
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
Gruntfile.coffee
LICENSE
README.md
RestrictedNumber.coffee
RestrictedNumber.js
RestrictedNumberTest.coffee
index.js
package.json

README.md

restricted-number

A nice little tool to keep your numbers in a certain range. This was primarily designed for game developers with data like HP, MP, etc that should be kept within a range. It also provides a booster utility to add extra data that doesn't count towards the maximum, like a buff or debuff would.

Why use this? It saves you from typing this over and over:

if(hp <= 0) { hp=0; die(); }

if(hp > maxHp) hp = maxHp

Here's an example usage for a player:

var hp = new RestrictedNumber(0, 100, 100);

if(hp.sub(20).atMin()) die();

Or maybe for AI:

var hp = new RestrictedNumber(0, 100, 100);

if(hp.ltePercent(66)) flee();

Installation

Install with npm:

npm install --save restricted-number

Install with bower:

bower install --save restricted-number

Testing

From the repo root:

npm install
npm test

Developing

From the repo root:

grunt dev

Functions

Function Description
new RestrictedNumber(min, max, current, booster) construct a RestrictedNumber
set(num) set the datum to num - mostly used internally
add(num) add num to the datum
sub(num) subtract num from the datum
addOverMaximum(num) add num to both the datum and the range
subUnderMinimum(num) subtract num from both the datum and the range
toMaximum() set the datum to the max value
toMinimum() set the datum to the min value
getTotal(), getValue() get the current value of the datum
atMaximum() returns true if the datum is at the maximum
atMinimum() returns true if the datum is at the minimum
equals(num) returns true if the datum equals num
greaterThan(num) returns true if the datum is greater than num
gte(num) returns true if the datum is greater than or equal to num
lessThan(num) returns true if the datum is less than num
lte(num) returns true if the datum is less than num
setToPercent(perc) set the datum to be at perc (the range between min and max)
addPercent(perc) add perc of the datum's maximum value to the datum
subPercent(perc) subtract perc of the datum's maximum value from the datum
asPercent() get the value of the datum as a percentage
greaterThanPercent(perc) returns true if datum as a percentage of maximum is greater than perc
gtePercent(perc) returns true if datum as a percentage of maximum is greater than or equal toperc
lessThanPercent(perc) returns true if datum as a percentage of maximum is less than perc
ltePercent(perc) returns true if datum as a percentage of maximum is less than or equal to perc
equalsPercent(perc) returns true if datum as a percentage of maximum is equal to perc