Files
optolith-client/js/utils/secondaryAttributes.js
T
Lukas Obermann 0602f421ba Cleaned up SCSS and character sheet print
- Normalized many SCSS files as deep as possible
- Fixed print css to display all 6 pages
- Fixed sheet header to match original sheet header
- Fixed issue with range property for ranged items
2016-12-26 16:16:49 +13:00

200 lines
3.6 KiB
JavaScript

import AttributeStore from '../stores/AttributeStore';
import { get, getPrimaryAttrID } from '../stores/ListStore';
const baseValues = () => AttributeStore.getBaseValues();
export const getLP = () => {
let base = baseValues().le + get('CON').value * 2;
let mod = 0;
let add = baseValues().leAdd;
let value;
if (get('ADV_25').active) {
mod += get('ADV_25').tier;
}
else if (get('DISADV_28').active) {
mod -= get('DISADV_28').tier;
}
value = base + mod + add;
return {
id: 'LP',
short: 'LE',
name: 'Lebensenergie',
calc: '(GW der Spezies + KO + KO)',
base,
mod,
value,
maxAdd: get('CON').value,
currentAdd: add
};
};
export const getAE = () => {
let primary = getPrimaryAttrID(1);
let base = 0;
let mod = 0;
let add = baseValues().aeAdd;
let value = '-';
if (primary !== 'ATTR_0') {
base = 20 + get(primary).value;
}
if (get('ADV_23').active) {
mod += get('ADV_23').tier;
}
else if (get('DISADV_26').active) {
mod -= get('DISADV_26').tier;
}
value = primary !== 'ATTR_0' ? base + mod + add : value;
return {
id: 'AE',
short: 'AE',
name: 'Astralenergie',
calc: '(20 durch Zauberer + Leiteigenschaft)',
base,
mod,
add,
value,
maxAdd: (get(primary) || {}).value,
currentAdd: add
};
};
export const getKP = () => {
let primary = getPrimaryAttrID(2);
let base = 0;
let mod = 0;
let add = baseValues().keAdd;
let value = '-';
if (primary !== 'ATTR_0') {
base = 20 + get(primary).value;
}
if (get('ADV_24').active) {
value += get('ADV_24').tier;
}
else if (get('DISADV_27').active) {
value -= get('DISADV_27').tier;
}
value = primary !== 'ATTR_0' ? base + mod + add : value;
return {
id: 'KP',
short: 'KE',
name: 'Karmaenergie',
calc: '(20 durch Geweiht + Leiteigenschaft)',
base,
mod,
add,
value,
maxAdd: (get(primary) || {}).value,
currentAdd: add
};
};
export const getSPI = () => {
let base = baseValues().sk + Math.round((get('COU').value + get('SGC').value + get('INT').value) / 6);
let mod = 0;
let value;
if (get('ADV_26').active) {
mod++;
}
else if (get('DISADV_29').active) {
mod--;
}
value = base + mod;
return {
id: 'SPI',
short: 'SK',
name: 'Seelenkraft',
calc: '(GW der Spezies + (MU + KL + IN)/6)',
base,
mod,
value
};
};
export const getTOU = () => {
let base = baseValues().zk + Math.round((get('CON').value * 2 + get('STR').value) / 6);
let mod = 0;
let value;
if (get('ADV_27').active) {
mod++;
}
else if (get('DISADV_30').active) {
mod--;
}
value = base + mod;
return {
id: 'TOU',
short: 'ZK',
name: 'Zähigkeit',
calc: '(GW der Spezies + (KO + KO + KK)/6)',
base,
mod,
value
};
};
export const getDO = () => ({
id: 'DO',
short: 'AW',
name: 'Ausweichen',
calc: '(GE/2)',
value: Math.round(get('AGI').value / 2)
});
export const getINI = () => ({
id: 'INI',
short: 'INI',
name: 'Initiative',
calc: '(MU + GE)/2',
value: Math.round((get('COU').value + get('AGI').value) / 2)
});
export const getMOV = () => {
let value = baseValues().gs;
if (get('DISADV_51').active.includes(3)) {
value = Math.round(value / 2);
}
return {
id: 'MOV',
short: 'GS',
name: 'Geschwindigkeit',
calc: '(GW der Spezies, mögl. Einbeinig)',
value
};
};
const _get = id => {
switch (id) {
case 'LP':
return getLP();
case 'AE':
return getAE();
case 'KP':
return getKP();
case 'SPI':
return getSPI();
case 'TOU':
return getTOU();
case 'DO':
return getDO();
case 'INI':
return getINI();
case 'MOV':
return getMOV();
}
};
export { _get as get };
export const getAll = () => [
getLP(),
getAE(),
getKP(),
getSPI(),
getTOU(),
getDO(),
getINI(),
getMOV()
];
export default getAll;