// DarkPlasma_GenerateArmorList 1.0.0
// Copyright (c) 2021 DarkPlasma

/**
 * 2021/07/10 1.0.0 初版
 */

/*:ja
 * @plugindesc 防具タイプと装備タイプで防具一覧を検索する
 * @author DarkPlasma
 * @license No License
 *
 * @target MZ
 *
 * @param equipType
 * @desc 装備タイプの名前
 * @text 装備タイプ
 * @type string
 *
 * @param armorType
 * @desc 防具タイプの名前
 * @text 防具タイプ
 * @type string
 *
 * @help
 * version: 1.0.0
 * 本プラグインは開発用です。リリースする際には必ずOFFにしてください。
 *
 * 防具タイプと装備タイプで防具一覧を検索します。
 * 検索結果は、ゲーム起動時にプロジェクトフォルダ内にテキストファイルとして出力されます。
 */

(() => {
  'use strict';

  const pluginName = document.currentScript.src.replace(/^.*\/(.*).js$/, function () {
    return arguments[1];
  });

  const pluginParameters = PluginManager.parameters(pluginName);

  const settings = {
    equipType: String(pluginParameters.equipType || ''),
    armorType: String(pluginParameters.armorType || ''),
  };

  const _Scene_Boot_start = Scene_Boot.prototype.start;
  Scene_Boot.prototype.start = function () {
    _Scene_Boot_start.call(this);
    const equipTypeId = $dataSystem.equipTypes.findIndex((equipType) => equipType === settings.equipType);
    const armorTypeId = $dataSystem.armorTypes.findIndex((armorType) => armorType === settings.armorType);
    if (equipTypeId >= 0 && armorTypeId >= 0) {
      const data = $dataArmors
        .filter((armor) => armor && armor.etypeId === equipTypeId && armor.atypeId === armorTypeId)
        .map((armor) => `${armor.id}: ${armor.name}`)
        .join('\n');
      /**
       * TODO: fsをrequireするとうまいことrollupできないので、なんとかする
       */
      require('fs').writeFileSync(`./${$dataSystem.equipTypes[equipTypeId]}_${$dataSystem.armorTypes[armorTypeId]}.txt`, data);
    }
  };
})();
