showIdleState(duration) {
    return this.whenRequiredResourcesReady().then((requestId) => {
      if (!this.getAreResourcesValid(requestId)) return; // load invalidated or resources changed

      if (duration == null) { duration = 0.0; }

      this._idleParticles.resumeSystem();
      this._idleParticles2.resumeSystem();

      if (!this._flareBehindCrate.isVisible()) {
        this._flareBehindCrate.setVisible(true);
        this._flareBehindCrate.setPhase(1.0);
        this._flareBehindCrate.setColor(cc.color(133, 255, 255));
        this._flareBehindCrate.setOpacity(0.0);
        this._flareBehindCrate.fadeTo(duration, 255.0);
      }

      // Loop the loot crate around in a figure eight repeating
      if (this._repeatingFigureEightAction == null) {
        const centerPosition = this.getCenterPosition();
        this._repeatingFigureEightAction = FigureEight.create(10.0, 2, 5, centerPosition).repeatForever();
        this._lootCrateContainerNode.runAction(this._repeatingFigureEightAction);
      } else {
        this._repeatingFigureEightAction.setDuration(10.0);
      }
    });
  }
Shows the loot crate idling.
@param {Number} [duration=0.0]
@public
@return {Promise}