Statistic Plugin

The statistic plugin provides tracking for numeric statistics in two flavors: scalar and map. Scalars are single numeric values, while Maps allows you to track multiple values indexed by a key.

Demo

Statistic Plugin
[scalar] Total of all currencies: 0 [map] Total per currency
{}
Currency Plugin

Usage

import { StatisticPlugin } from '@123ishatest/ludiek';

const statistic = new StatisticPlugin();
statistic.loadContent([
  { id: '/statistic/total-currency', type: 'scalar' },
  { id: '/statistic/currencies', type: 'map' },
]);

// Increment scalar total currency by 3
statistic.incrementStatistic('/statistic/total-currency', 3);

// Increment map statistic currencies money by 4
statistic.incrementMapStatistic('/statistic/currencies', '/currency/money', 4);


// And read them back
statistic.getStatistic('/statistic/total-currency'); // 3
statistic.getMapStatistic('/statistic/currencies', '/currency/money'); // 4

// Unset map keys return 0
statistic.getMapStatistic('/statistic/currencies', '/currency/gems'); // 0

Connect incrementing statistics to existing events.

currency.onCurrencyGain.subscribe(({ id, amount }) => {
  // Track the global total
  statistic.incrementStatistic('/statistic/total-currency', amount);
  
  // Track total per currency
  statistic.incrementMapStatistic('/statistic/currencies', id, amount);
});

Links