Skip to content

Trader-TF/tf2-currency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tf2-currency

Set of tools that manage operations with tf2 currency. Inspired by tf2-currencies made by Nicklason. Made as a drop in replacement for your plain currency object.

Advantages over tf2-currencies

  • Fully typed, written in typescript
  • Throughly tested, over 100 tests
  • More convenience methods for comparing/operating with currency

Installation

npm install tf2-currency or via yarn yarn add tf2-currency

Documentation

Following classes, types and functions are exported:

export {
    Currency, // Currency class that manages operations
    CurrencyError, // Error thrown by Currency class
    ICurrency, // Interface for currency
    c, // Create Currency object faster
    fixCurrency, // Fix partial currency objects
}

Currency is stored like this:

{
    keys: number,
    metalInWeapons: number,
}

uses weapons to avoid weird floating point issues. This way it's "immune" against conversion changes. If you want to use weapons / scrap value as storage, use toWeapons and toScrap methods to convert it to weapons or scrap.

Currency

Instantiation

new Currency(currency: ICurrency, metalInWeapons?: number)
  • currency represents plain currency object such as { keys: 12, metal: 52.11 }
  • metalInWeapons optional parameter that represents how much metal is in weapons, defaults to 0
    • Prioritized over currency.metal
Currency.fromWeapons(weapons: number, conversion?: number): Currency

Creates a Currency class from weapons value

  • weapons value you are creating currency from
  • conversion rate to be used to convert into keys (in metal)
Currency.fromScrap(scrap: number, conversion?: number): Currency

Creates a Currency class from scrap value

  • scrap value you are creating currency from
  • conversion rate to be used to convert into keys (in metal)
Currency.fromKeys(keys: number, conversion?: number): Currency

Creates a Currency class from key value

  • keys floating point number to create currency from
  • conversion rate to be used to convert into metal (in metal)
    • Required if keys is not an integer

Currency.prototype.toWeapons(conversion?: number): number

Converts currency to weapons

  • conversion to convert keys to weapons (in metal)
    • Required if keys are present

Currency.prototype.toScrap(conversion?: number): number

Converts currency to scrap

  • conversion to convert keys to scrap (in metal)
    • Required if keys are present

Currency.prototype.toKeys(conversion?: number): number

Converts currency to keys

  • conversion to convert metal to keys (in metal)
    • Required if metal is present

Currency.prototype.toString(): string

Builds a currency string readable for humans

Currency.prototype.toJSON(): ICurrency

Returns plain currency object, with keys & metal, for json serialization

Currency.prototype.toWeaponizedJSON(): ICurrency

Returns plain currency object, with keys & weapons, for json serialization

Currency.prototype.addWeapons(weapons: number, conversion?: number): Currency

Adds weapon value to the currency

  • weapons value you are adding to the currency
  • conversion rate to be used to convert exceeding metal value into keys (in metal)
    • Required if weapons is not an integer

Currency.prototype.addScrap(scrap: number, conversion?: number): Currency

Adds scrap value to the currency

  • scrap value you are adding to the currency
  • conversion rate to be used to convert exceeding metal value into keys (in metal)

Currency.prototype.addMetal(metal: number, conversion?: number): Currency

Adds metal value to the currency

  • metal value you are adding to the currency
  • conversion rate to be used to convert exceeding metal value into keys (in metal)

Currency.prototype.addKeys(keys: number, conversion?: number): Currency

Adds key value to the currency

  • keys value you are adding to the currency
  • conversion rate to be used to convert exceeding metal value into keys (in metal)
    • Required if keys is not an integer

Currency.prototype.addCurrency(currency: ICurrency, conversion?: number): Currency

Adds currency value to the currency

  • currency value you are adding to the currency
  • conversion rate to be used to convert exceeding metal value into keys

Currency.prototype.removeWeapons(weapons: number, conversion?: number): Currency

Removes weapon value from the currency

  • weapons value you are removing from the currency
  • conversion rate to be used to convert key into weapons (in metal)
    • Required when we go to negative values with weapons

Currency.prototype.removeScrap(scrap: number, conversion?: number): Currency

Removes scrap value from the currency

  • scrap value you are removing from the currency
  • conversion rate to be used to convert key into scrap
    • Required when we go to negative values with scrap

Currency.prototype.removeMetal(metal: number, conversion?: number): Currency

Removes metal value from the currency

  • metal value you are removing from the currency
  • conversion rate to be used to convert key into metal
    • Required when we go to negative values with scrap

Currency.prototype.removeKeys(scrap: number, conversion?: number): Currency

Removes key value from the currency

  • keys value you are removing from the currency
  • conversion rate to be used to convert key decimal to metal
    • Required when we go to negative values with scrap or when keys is not an integer

Currency.prototype.removeCurrency(currency: ICurrency, conversion?: number): Currency

Removes currency value from the currency

  • currency value you are removing from the currency
  • conversion rate to be used to convert key into metal
    • Required when we go to negative values with scrap

Currency.prototype.isEqual(currency: ICurrency): boolean

Compares current currency object with supplied one

  • currency we are comparing to

Currency.prototype.isBigger(currency: ICurrency): boolean

Compares current currency object with supplied one

  • currency we are comparing to

Currency.prototype.isSmaller(currency: ICurrency): boolean

Compares current currency object with supplied one

  • currency we are comparing to

Currency.prototype.isBiggerOrEqual(currency: ICurrency): boolean

Compares current currency object with supplied one

  • currency we are comparing to

Currency.prototype.isSmallerOrEqual(currency: ICurrency): boolean

Compares current currency object with supplied one

  • currency we are comparing to

Currency.prototype.compareTo(value: ICurrency): number

Compares current currency object with supplied one

  • value we are comparing to
  • Returns:
    • 0 if equal
    • 1 if current is bigger
    • -1 if current is smaller

Currency.prototype.wIsEqual(currency: IWeaponizedCurrency): boolean

Compares current currency object with supplied weaponized currency (keys and metalInWeapons instead of metal)

  • currency we are comparing to

Currency.prototype.wIsBigger(currency: IWeaponizedCurrency): boolean

Compares current currency object with supplied weaponized currency

  • currency we are comparing to

Currency.prototype.wIsSmaller(currency: IWeaponizedCurrency): boolean

Compares current currency object with supplied weaponized currency

  • currency we are comparing to

Currency.prototype.wIsBiggerOrEqual(currency: IWeaponizedCurrency): boolean

Compares current currency object with supplied weaponized currency

  • currency we are comparing to

Currency.prototype.wIsSmallerOrEqual(currency: IWeaponizedCurrency): boolean

Compares current currency object with supplied weaponized currency

  • currency we are comparing to

Currency.prototype.wCompareTo(value: IWeaponizedCurrency): number

Compares current currency object with supplied weaponized currency

  • value we are comparing to
  • Returns:
    • 0 if equal
    • 1 if current is bigger
    • -1 if current is smaller

Helpers

c(currency: Partial): Currency

Creates Currency object

  • currency from which we are creating the object

fixCurrency(currency: Partial): ICurrency

Fixes partial currency object

  • currency we are fixing

About

Set of tools that manage operations with tf2 currency.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •