mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
Consolidate helpers
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
import {each, defaults} from 'lodash';
|
||||
import capitalize from 'lodash.capitalize';
|
||||
import camelCase from 'lodash.camelcase';
|
||||
|
||||
require('coffee-script');
|
||||
import i18n from '../../../script/i18n.coffee';
|
||||
|
||||
export function translator(string, vars) {
|
||||
var func = function(lang) {
|
||||
if (vars == null) {
|
||||
vars = {
|
||||
a: 'a'
|
||||
};
|
||||
}
|
||||
//----------------------------------------
|
||||
// Translator Helper
|
||||
//----------------------------------------
|
||||
export function translator(string, vars={a: 'a'}) {
|
||||
let func = (lang) => {
|
||||
return i18n.t(string, vars, lang);
|
||||
};
|
||||
|
||||
@@ -16,3 +18,39 @@ export function translator(string, vars) {
|
||||
return func;
|
||||
};
|
||||
|
||||
//----------------------------------------
|
||||
// Formatting Helper
|
||||
//----------------------------------------
|
||||
|
||||
export function formatForTranslator(name) {
|
||||
let camelCasedName = camelCase(name);
|
||||
let capitalCamelCasedName = capitalize(camelCasedName);
|
||||
|
||||
return capitalCamelCasedName;
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
// Spell Helpers
|
||||
//----------------------------------------
|
||||
|
||||
export function diminishingReturns(bonus, max, halfway=max/2) {
|
||||
return max * (bonus / (bonus + halfway));
|
||||
};
|
||||
|
||||
export function calculateBonus(value, stat, crit=1, stat_scale=0.5) {
|
||||
return (value < 0 ? 1 : value + 1) + (stat * stat_scale * crit);
|
||||
};
|
||||
|
||||
export function setSpellDefaults (className, spells) {
|
||||
let capitalClassName = formatForTranslator(className);
|
||||
|
||||
each(spells, (spell, key) => {
|
||||
let capitalSpellKey = formatForTranslator(key);
|
||||
let spellDefaults = {
|
||||
text: translator(`spell${capitalClassName}${capitalSpellKey}Text`),
|
||||
notes: translator(`spell${capitalClassName}${capitalSpellKey}Notes`),
|
||||
};
|
||||
|
||||
defaults(spell, spellDefaults);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
import {translator as t} from '../helpers';
|
||||
import {diminishingReturns, calculateBonus, setSpellDefaults} from './spell-helper';
|
||||
import {
|
||||
translator as t,
|
||||
diminishingReturns,
|
||||
calculateBonus,
|
||||
setSpellDefaults
|
||||
} from '../helpers';
|
||||
|
||||
import {each} from 'lodash';
|
||||
|
||||
let heal = {
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
import {translator as t} from '../helpers';
|
||||
import {diminishingReturns, calculateBonus} from './spell-helper';
|
||||
|
||||
import wizard from './wizard';
|
||||
import warrior from './warrior';
|
||||
import healer from './healer';
|
||||
@@ -28,7 +25,6 @@ import special from './special';
|
||||
Note, user.stats.mp is docked after automatically (it's appended to functions automatically down below in an _.each)
|
||||
*/
|
||||
|
||||
|
||||
var spells = {
|
||||
wizard: wizard,
|
||||
warrior: warrior,
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import {translator as t} from '../helpers';
|
||||
import {diminishingReturns, calculateBonus, setSpellDefaults} from './spell-helper';
|
||||
import {
|
||||
translator as t,
|
||||
diminishingReturns,
|
||||
calculateBonus,
|
||||
setSpellDefaults
|
||||
} from '../helpers';
|
||||
import {each} from 'lodash';
|
||||
|
||||
let pickPocket = {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import {translator as t} from '../helpers';
|
||||
import {diminishingReturns, calculateBonus, setSpellDefaults} from './spell-helper';
|
||||
import { translator as t } from '../helpers';
|
||||
import {each} from 'lodash';
|
||||
|
||||
let snowball = {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import {translator as t} from '../helpers';
|
||||
import {diminishingReturns, calculateBonus, setSpellDefaults} from './spell-helper';
|
||||
import {
|
||||
translator as t,
|
||||
diminishingReturns,
|
||||
calculateBonus,
|
||||
setSpellDefaults
|
||||
} from '../helpers';
|
||||
import {each} from 'lodash';
|
||||
|
||||
let smash= {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import {translator as t} from '../helpers';
|
||||
import {diminishingReturns, calculateBonus, setSpellDefaults} from './spell-helper';
|
||||
import {
|
||||
translator as t,
|
||||
diminishingReturns,
|
||||
calculateBonus,
|
||||
setSpellDefaults
|
||||
} from '../helpers';
|
||||
import {each} from 'lodash';
|
||||
|
||||
let fireball = {
|
||||
|
||||
Reference in New Issue
Block a user