Home Reference Source Repository

app/entities/DamageTypes.js

var DAMAGE_TYPES = [
    'MELEE_PHYSICAL',
    'RANGED_PHYSICAL',
    'FIRE',
    'COLD',
    'ELECTRICAL',
    'ENERGY',
    'POISON'
];

var TYPE_MAP = DAMAGE_TYPES.reduce((obj, type) => {
    obj[type] = type;
    return obj;
}, {});

DAMAGE_TYPES = (typeof Proxy === 'undefined') ? TYPE_MAP : new Proxy(TYPE_MAP, {
    get: function(obj, prop) {
        var value = obj[prop];
        if(typeof value === 'undefined') {
            throw new Error(`Unrecognized damage type: ${prop}. Choose from: ${Object.keys(obj)}`);
        } else {
            return value;
        }
    }
});

export default DAMAGE_TYPES;