//modifyClass.js
(function () {
/* global AdventureJS A */
var p = AdventureJS.Game.prototype;
/**
* A method to modify a built-in asset class.
* @memberOf AdventureJS.Game
* @method AdventureJS.Game#modifyClass
* @kind function
* @param {Object} data A generic object with properties to copy into a new class definition.
* @param {String} data.extends The name of a parent class to subclass.
* @param {String} data.class The name of the new subclass.
* @returns {Object}
*/
p.modifyClass = function Game_modifyClass(data = {}) {
const ModifyClass =
AdventureJS[data.class] ||
AdventureJS.Assets[data.class] ||
AdventureJS.Helpers[data.class] ||
AdventureJS.Traits[data.class];
if (!ModifyClass) {
return null;
}
delete data.class;
A.FX.deepSet.call(this.game, data, ModifyClass);
};
})();