@casual-simulation/aux-common

Common library for AUX projects

Usage no npm install needed!

<script type="module">
  import casualSimulationAuxCommon from 'https://cdn.skypack.dev/@casual-simulation/aux-common';
</script>

README

AUX Common

npm (scoped)

A library that contains common operations needed to modify and understand AUX files.

Installation

$ npm install @casual-simulation/aux-common

Usage

Calculate a formula for some bots

import {
    createBot,
    createCalculationContext,
    calculateFormulaValue,
} from '@casual-simulation/aux-common';

const file1 = createBot('test1', {
    quantity: 10,
});
const file2 = createBot('test2', {
    quantity: 5,
});
const file3 = createBot('test3', {
    quantity: 5,
});

const context = createCalculationContext([file1, file2, file3]);

const formula = '=math.sum(getBotTagValues("#quantity"))';
const result = calculateFormulaValue(context, formula);

console.log(result);

// Outputs:
// 20

Calculate events for an action script

import {
    createBot,
    createCalculationContext,
    calculateFormulaEvents,
} from '@casual-simulation/aux-common';

const state = {
    test1: createBot('test1', {
        quantity: 10,
    }),
    test2: createBot('test2', {
        quantity: 5,
    }),
    test3: createBot('test3', {
        quantity: 5,
    }),
};

const formula = `
    let total = math.sum(getBotTagValues("#quantity"));
    player.toast("The total is " + total);
`;
const events = calculateFormulaEvents(state, formula);

for (let event of events) {
    if (event.type === 'local') {
        if (event.name === 'show_toast') {
            console.log('[Toast]', event.message);
        }
    }
}

// Outputs:
// [Toast] The total is 5