Pre-release
AdventureJS Docs Downloads
Score: 0 Moves: 0
// createDeferredAssets.js

(function () {
  /* global adventurejs A */

  var p = adventurejs.Game.prototype;

  /**
   * Create assets - mainly exits - that were defined
   * within other unclassed generic objects.
   * <br><br>
   * Assets created here also need to be validated,
   * since they were added to the deferred list during
   * the initial validation pass and therefore missed validation.
   * @method adventurejs.Game#createDeferredAssets
   * @memberOf adventurejs.Game
   */
  p.createDeferredAssets = function Game_createDeferredAssets() {
    for (var i = 0; i < this.deferred_assets.length; i++) {
      var asset = this.game.createAsset(this.deferred_assets[i]);

      if (false === asset) {
        const msg = `createDeferredAssets received a bad value.`;
        this.game.log("L1638", "error", 0, msg, "Game");
        return false;
      }

      if (false === asset.validate(this)) {
        const msg = `createDeferredAssets failed to validate asset.`;
        this.game.log("L1639", "error", 0, msg, "Game");
        return false;
      }

      // @TODO any special handling for platonics?

      asset.is.validated = true;
    }
    this.deferred_assets = [];
    return true;
  };
})();