Advertisement
ICF-Soft

ICF-Soft Params Core 1.05 RPG Maker MV

Oct 22nd, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============================================================================
  2. // ICF-Soft Plugins - Params Core
  3. // ICFSoft_ParamsCore.js
  4. //=============================================================================
  5.  
  6. var Imported = Imported || {};
  7. Imported.ICFSoft_ParamCore = true;
  8.  
  9. var ICF = ICF || {};
  10. ICF.ParamCore = ICF.ParamCore || {};
  11. ICF.NotetagsProcessor = ICF.NotetagsProcessor || {};
  12.  
  13. ICF.ParamCore.Version = 105; // 1.05
  14.  
  15. //=============================================================================
  16.  /*:
  17.  * @plugindesc v1.05a This plugin allow to add new full custom params and
  18.  * more basic and x/sparam control.
  19.  * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
  20.  *
  21.  * @param Use New Param System
  22.  * @desc Use the new way to add nparams and pparams.
  23.  * @default true
  24.  *
  25.  * @param NParams
  26.  * @desc New way to add NParams.
  27.  * @type struct<NormalParams>[]
  28.  * @default ["{\"Name\":\"\",\"Full Name\":\"\",\"Base\":\"30 15\",\"Base Eval\":\"\",\"Limits\":\"(this.isActor())? [0, 999, 1200] : [0, 999, 1200]\",\"Buff Icons\":\"\",\"Debuff Icons\":\"\"}"]
  29.  *
  30.  * @param PParams
  31.  * @desc New way to add PParams.
  32.  * @type struct<PlainParams>[]
  33.  * @default ["{\"Name\":\"\",\"Full Name\":\"\",\"Base\":\"0\",\"Limits\":\"(this.isActor())? [0, 999] : [0, 999]\"}"]
  34.  *
  35.  * @param NParam0 Name
  36.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  37.  * @default
  38.  *
  39.  * @param NParam0 Full Name
  40.  * @desc Name that will be shown for this new param.
  41.  * @default
  42.  *
  43.  * @param NParam0 Base
  44.  * @desc How this new param is configured by default. See help.
  45.  * @default 30 15
  46.  *
  47.  * @param NParam0 Limits
  48.  * @desc Formula for min and max value for this new param. See help.
  49.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  50.  *
  51.  * @param NParam0 Buff Icons
  52.  * @desc Icons for each buff stack. Empty to don't use. See help.
  53.  * @default
  54.  *
  55.  * @param NParam0 Debuff Icons
  56.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  57.  * @default
  58.  *
  59.  * @param NParam1 Name
  60.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  61.  * @default
  62.  *
  63.  * @param NParam1 Full Name
  64.  * @desc Name that will be shown for this new param.
  65.  * @default
  66.  *
  67.  * @param NParam1 Base
  68.  * @desc How this new param is configured by default. See help.
  69.  * @default 30 15
  70.  *
  71.  * @param NParam1 Limits
  72.  * @desc Formula for min and max value for this new param. See help.
  73.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  74.  *
  75.  * @param NParam1 Buff Icons
  76.  * @desc Icons for each buff stack. Empty to don't use. See help.
  77.  * @default
  78.  *
  79.  * @param NParam1 Debuff Icons
  80.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  81.  * @default
  82.  *
  83.  * @param NParam2 Name
  84.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  85.  * @default
  86.  *
  87.  * @param NParam2 Full Name
  88.  * @desc Name that will be shown for this new param.
  89.  * @default
  90.  *
  91.  * @param NParam2 Base
  92.  * @desc How this new param is configured by default. See help.
  93.  * @default 30 15
  94.  *
  95.  * @param NParam2 Limits
  96.  * @desc Formula for min and max value for this new param. See help.
  97.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  98.  *
  99.  * @param NParam2 Buff Icons
  100.  * @desc Icons for each buff stack. Empty to don't use. See help.
  101.  * @default
  102.  *
  103.  * @param NParam2 Debuff Icons
  104.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  105.  * @default
  106.  *
  107.  * @param NParam3 Name
  108.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  109.  * @default
  110.  *
  111.  * @param NParam3 Full Name
  112.  * @desc Name that will be shown for this new param.
  113.  * @default
  114.  *
  115.  * @param NParam3 Base
  116.  * @desc How this new param is configured by default. See help.
  117.  * @default 30 15
  118.  *
  119.  * @param NParam3 Limits
  120.  * @desc Formula for min and max value for this new param. See help.
  121.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  122.  *
  123.  * @param NParam3 Buff Icons
  124.  * @desc Icons for each buff stack. Empty to don't use. See help.
  125.  * @default
  126.  *
  127.  * @param NParam3 Debuff Icons
  128.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  129.  * @default
  130.  *
  131.  * @param NParam4 Name
  132.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  133.  * @default
  134.  *
  135.  * @param NParam4 Full Name
  136.  * @desc Name that will be shown for this new param.
  137.  * @default
  138.  *
  139.  * @param NParam4 Base
  140.  * @desc How this new param is configured by default. See help.
  141.  * @default 30 15
  142.  *
  143.  * @param NParam4 Limits
  144.  * @desc Formula for min and max value for this new param. See help.
  145.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  146.  *
  147.  * @param NParam4 Buff Icons
  148.  * @desc Icons for each buff stack. Empty to don't use. See help.
  149.  * @default
  150.  *
  151.  * @param NParam4 Debuff Icons
  152.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  153.  * @default
  154.  *
  155.  * @param NParam5 Name
  156.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  157.  * @default
  158.  *
  159.  * @param NParam5 Full Name
  160.  * @desc Name that will be shown for this new param.
  161.  * @default
  162.  *
  163.  * @param NParam5 Base
  164.  * @desc How this new param is configured by default. See help.
  165.  * @default 30 15
  166.  *
  167.  * @param NParam5 Limits
  168.  * @desc Formula for min and max value for this new param. See help.
  169.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  170.  *
  171.  * @param NParam5 Buff Icons
  172.  * @desc Icons for each buff stack. Empty to don't use. See help.
  173.  * @default
  174.  *
  175.  * @param NParam5 Debuff Icons
  176.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  177.  * @default
  178.  *
  179.  * @param NParam6 Name
  180.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  181.  * @default
  182.  *
  183.  * @param NParam6 Full Name
  184.  * @desc Name that will be shown for this new param.
  185.  * @default
  186.  *
  187.  * @param NParam6 Base
  188.  * @desc How this new param is configured by default. See help.
  189.  * @default 30 15
  190.  *
  191.  * @param NParam6 Limits
  192.  * @desc Formula for min and max value for this new param. See help.
  193.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  194.  *
  195.  * @param NParam6 Buff Icons
  196.  * @desc Icons for each buff stack. Empty to don't use. See help.
  197.  * @default
  198.  *
  199.  * @param NParam6 Debuff Icons
  200.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  201.  * @default
  202.  *
  203.  * @param NParam7 Name
  204.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  205.  * @default
  206.  *
  207.  * @param NParam7 Full Name
  208.  * @desc Name that will be shown for this new param.
  209.  * @default
  210.  *
  211.  * @param NParam7 Base
  212.  * @desc How this new param is configured by default. See help.
  213.  * @default 30 15
  214.  *
  215.  * @param NParam7 Limits
  216.  * @desc Formula for min and max value for this new param. See help.
  217.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  218.  *
  219.  * @param NParam7 Buff Icons
  220.  * @desc Icons for each buff stack. Empty to don't use. See help.
  221.  * @default
  222.  *
  223.  * @param NParam7 Debuff Icons
  224.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  225.  * @default
  226.  *
  227.  * @param NParam8 Name
  228.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  229.  * @default
  230.  *
  231.  * @param NParam8 Full Name
  232.  * @desc Name that will be shown for this new param.
  233.  * @default
  234.  *
  235.  * @param NParam8 Base
  236.  * @desc How this new param is configured by default. See help.
  237.  * @default 30 15
  238.  *
  239.  * @param NParam8 Limits
  240.  * @desc Formula for min and max value for this new param. See help.
  241.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  242.  *
  243.  * @param NParam8 Buff Icons
  244.  * @desc Icons for each buff stack. Empty to don't use. See help.
  245.  * @default
  246.  *
  247.  * @param NParam8 Debuff Icons
  248.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  249.  * @default
  250.  *
  251.  * @param NParam9 Name
  252.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  253.  * @default
  254.  *
  255.  * @param NParam9 Full Name
  256.  * @desc Name that will be shown for this new param.
  257.  * @default
  258.  *
  259.  * @param NParam9 Base
  260.  * @desc How this new param is configured by default. See help.
  261.  * @default 30 15
  262.  *
  263.  * @param NParam9 Limits
  264.  * @desc Formula for min and max value for this new param. See help.
  265.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  266.  *
  267.  * @param NParam9 Buff Icons
  268.  * @desc Icons for each buff stack. Empty to don't use. See help.
  269.  * @default
  270.  *
  271.  * @param NParam9 Debuff Icons
  272.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  273.  * @default
  274.  *
  275.  * @param NParam10 Name
  276.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  277.  * @default
  278.  *
  279.  * @param NParam10 Full Name
  280.  * @desc Name that will be shown for this new param.
  281.  * @default
  282.  *
  283.  * @param NParam10 Base
  284.  * @desc How this new param is configured by default. See help.
  285.  * @default 30 15
  286.  *
  287.  * @param NParam10 Limits
  288.  * @desc Formula for min and max value for this new param. See help.
  289.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  290.  *
  291.  * @param NParam10 Buff Icons
  292.  * @desc Icons for each buff stack. Empty to don't use. See help.
  293.  * @default
  294.  *
  295.  * @param NParam10 Debuff Icons
  296.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  297.  * @default
  298.  *
  299.  * @param NParam11 Name
  300.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  301.  * @default
  302.  *
  303.  * @param NParam11 Full Name
  304.  * @desc Name that will be shown for this new param.
  305.  * @default
  306.  *
  307.  * @param NParam11 Base
  308.  * @desc How this new param is configured by default. See help.
  309.  * @default 30 15
  310.  *
  311.  * @param NParam11 Limits
  312.  * @desc Formula for min and max value for this new param. See help.
  313.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  314.  *
  315.  * @param NParam11 Buff Icons
  316.  * @desc Icons for each buff stack. Empty to don't use. See help.
  317.  * @default
  318.  *
  319.  * @param NParam11 Debuff Icons
  320.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  321.  * @default
  322.  *
  323.  * @param NParam12 Name
  324.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  325.  * @default
  326.  *
  327.  * @param NParam12 Full Name
  328.  * @desc Name that will be shown for this new param.
  329.  * @default
  330.  *
  331.  * @param NParam12 Base
  332.  * @desc How this new param is configured by default. See help.
  333.  * @default 30 15
  334.  *
  335.  * @param NParam12 Limits
  336.  * @desc Formula for min and max value for this new param. See help.
  337.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  338.  *
  339.  * @param NParam12 Buff Icons
  340.  * @desc Icons for each buff stack. Empty to don't use. See help.
  341.  * @default
  342.  *
  343.  * @param NParam12 Debuff Icons
  344.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  345.  * @default
  346.  *
  347.  * @param NParam13 Name
  348.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  349.  * @default
  350.  *
  351.  * @param NParam13 Full Name
  352.  * @desc Name that will be shown for this new param.
  353.  * @default
  354.  *
  355.  * @param NParam13 Base
  356.  * @desc How this new param is configured by default. See help.
  357.  * @default 30 15
  358.  *
  359.  * @param NParam13 Limits
  360.  * @desc Formula for min and max value for this new param. See help.
  361.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  362.  *
  363.  * @param NParam13 Buff Icons
  364.  * @desc Icons for each buff stack. Empty to don't use. See help.
  365.  * @default
  366.  *
  367.  * @param NParam13 Debuff Icons
  368.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  369.  * @default
  370.  *
  371.  * @param NParam14 Name
  372.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  373.  * @default
  374.  *
  375.  * @param NParam14 Full Name
  376.  * @desc Name that will be shown for this new param.
  377.  * @default
  378.  *
  379.  * @param NParam14 Base
  380.  * @desc How this new param is configured by default. See help.
  381.  * @default 30 15
  382.  *
  383.  * @param NParam14 Limits
  384.  * @desc Formula for min and max value for this new param. See help.
  385.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  386.  *
  387.  * @param NParam14 Buff Icons
  388.  * @desc Icons for each buff stack. Empty to don't use. See help.
  389.  * @default
  390.  *
  391.  * @param NParam14 Debuff Icons
  392.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  393.  * @default
  394.  *
  395.  * @param NParam15 Name
  396.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  397.  * @default
  398.  *
  399.  * @param NParam15 Full Name
  400.  * @desc Name that will be shown for this new param.
  401.  * @default
  402.  *
  403.  * @param NParam15 Base
  404.  * @desc How this new param is configured by default. See help.
  405.  * @default 30 15
  406.  *
  407.  * @param NParam15 Limits
  408.  * @desc Formula for min and max value for this new param. See help.
  409.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  410.  *
  411.  * @param NParam15 Buff Icons
  412.  * @desc Icons for each buff stack. Empty to don't use. See help.
  413.  * @default
  414.  *
  415.  * @param NParam15 Debuff Icons
  416.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  417.  * @default
  418.  *
  419.  * @param NParam16 Name
  420.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  421.  * @default
  422.  *
  423.  * @param NParam16 Full Name
  424.  * @desc Name that will be shown for this new param.
  425.  * @default
  426.  *
  427.  * @param NParam16 Base
  428.  * @desc How this new param is configured by default. See help.
  429.  * @default 30 15
  430.  *
  431.  * @param NParam16 Limits
  432.  * @desc Formula for min and max value for this new param. See help.
  433.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  434.  *
  435.  * @param NParam16 Buff Icons
  436.  * @desc Icons for each buff stack. Empty to don't use. See help.
  437.  * @default
  438.  *
  439.  * @param NParam16 Debuff Icons
  440.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  441.  * @default
  442.  *
  443.  * @param NParam17 Name
  444.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  445.  * @default
  446.  *
  447.  * @param NParam17 Full Name
  448.  * @desc Name that will be shown for this new param.
  449.  * @default
  450.  *
  451.  * @param NParam17 Base
  452.  * @desc How this new param is configured by default. See help.
  453.  * @default 30 15
  454.  *
  455.  * @param NParam17 Limits
  456.  * @desc Formula for min and max value for this new param. See help.
  457.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  458.  *
  459.  * @param NParam17 Buff Icons
  460.  * @desc Icons for each buff stack. Empty to don't use. See help.
  461.  * @default
  462.  *
  463.  * @param NParam17 Debuff Icons
  464.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  465.  * @default
  466.  *
  467.  * @param NParam18 Name
  468.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  469.  * @default
  470.  *
  471.  * @param NParam18 Full Name
  472.  * @desc Name that will be shown for this new param.
  473.  * @default
  474.  *
  475.  * @param NParam18 Base
  476.  * @desc How this new param is configured by default. See help.
  477.  * @default 30 15
  478.  *
  479.  * @param NParam18 Limits
  480.  * @desc Formula for min and max value for this new param. See help.
  481.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  482.  *
  483.  * @param NParam18 Buff Icons
  484.  * @desc Icons for each buff stack. Empty to don't use. See help.
  485.  * @default
  486.  *
  487.  * @param NParam18 Debuff Icons
  488.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  489.  * @default
  490.  *
  491.  * @param NParam19 Name
  492.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  493.  * @default
  494.  *
  495.  * @param NParam19 Full Name
  496.  * @desc Name that will be shown for this new param.
  497.  * @default
  498.  *
  499.  * @param NParam19 Base
  500.  * @desc How this new param is configured by default. See help.
  501.  * @default 30 15
  502.  *
  503.  * @param NParam19 Limits
  504.  * @desc Formula for min and max value for this new param. See help.
  505.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  506.  *
  507.  * @param NParam19 Buff Icons
  508.  * @desc Icons for each buff stack. Empty to don't use. See help.
  509.  * @default
  510.  *
  511.  * @param NParam19 Debuff Icons
  512.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  513.  * @default
  514.  *
  515.  * @param NParam20 Name
  516.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  517.  * @default
  518.  *
  519.  * @param NParam20 Full Name
  520.  * @desc Name that will be shown for this new param.
  521.  * @default
  522.  *
  523.  * @param NParam20 Base
  524.  * @desc How this new param is configured by default. See help.
  525.  * @default 30 15
  526.  *
  527.  * @param NParam20 Limits
  528.  * @desc Formula for min and max value for this new param. See help.
  529.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  530.  *
  531.  * @param NParam20 Buff Icons
  532.  * @desc Icons for each buff stack. Empty to don't use. See help.
  533.  * @default
  534.  *
  535.  * @param NParam20 Debuff Icons
  536.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  537.  * @default
  538.  *
  539.  * @param NParam21 Name
  540.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  541.  * @default
  542.  *
  543.  * @param NParam21 Full Name
  544.  * @desc Name that will be shown for this new param.
  545.  * @default
  546.  *
  547.  * @param NParam21 Base
  548.  * @desc How this new param is configured by default. See help.
  549.  * @default 30 15
  550.  *
  551.  * @param NParam21 Limits
  552.  * @desc Formula for min and max value for this new param. See help.
  553.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  554.  *
  555.  * @param NParam21 Buff Icons
  556.  * @desc Icons for each buff stack. Empty to don't use. See help.
  557.  * @default
  558.  *
  559.  * @param NParam21 Debuff Icons
  560.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  561.  * @default
  562.  *
  563.  * @param NParam22 Name
  564.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  565.  * @default
  566.  *
  567.  * @param NParam22 Full Name
  568.  * @desc Name that will be shown for this new param.
  569.  * @default
  570.  *
  571.  * @param NParam22 Base
  572.  * @desc How this new param is configured by default. See help.
  573.  * @default 30 15
  574.  *
  575.  * @param NParam22 Limits
  576.  * @desc Formula for min and max value for this new param. See help.
  577.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  578.  *
  579.  * @param NParam22 Buff Icons
  580.  * @desc Icons for each buff stack. Empty to don't use. See help.
  581.  * @default
  582.  *
  583.  * @param NParam22 Debuff Icons
  584.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  585.  * @default
  586.  *
  587.  * @param NParam23 Name
  588.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  589.  * @default
  590.  *
  591.  * @param NParam23 Full Name
  592.  * @desc Name that will be shown for this new param.
  593.  * @default
  594.  *
  595.  * @param NParam23 Base
  596.  * @desc How this new param is configured by default. See help.
  597.  * @default 30 15
  598.  *
  599.  * @param NParam23 Limits
  600.  * @desc Formula for min and max value for this new param. See help.
  601.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  602.  *
  603.  * @param NParam23 Buff Icons
  604.  * @desc Icons for each buff stack. Empty to don't use. See help.
  605.  * @default
  606.  *
  607.  * @param NParam23 Debuff Icons
  608.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  609.  * @default
  610.  *
  611.  * @param NParam24 Name
  612.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  613.  * @default
  614.  *
  615.  * @param NParam24 Full Name
  616.  * @desc Name that will be shown for this new param.
  617.  * @default
  618.  *
  619.  * @param NParam24 Base
  620.  * @desc How this new param is configured by default. See help.
  621.  * @default 30 15
  622.  *
  623.  * @param NParam24 Limits
  624.  * @desc Formula for min and max value for this new param. See help.
  625.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  626.  *
  627.  * @param NParam24 Buff Icons
  628.  * @desc Icons for each buff stack. Empty to don't use. See help.
  629.  * @default
  630.  *
  631.  * @param NParam24 Debuff Icons
  632.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  633.  * @default
  634.  *
  635.  * @param NParam25 Name
  636.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  637.  * @default
  638.  *
  639.  * @param NParam25 Full Name
  640.  * @desc Name that will be shown for this new param.
  641.  * @default
  642.  *
  643.  * @param NParam25 Base
  644.  * @desc How this new param is configured by default. See help.
  645.  * @default 30 15
  646.  *
  647.  * @param NParam25 Limits
  648.  * @desc Formula for min and max value for this new param. See help.
  649.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  650.  *
  651.  * @param NParam25 Buff Icons
  652.  * @desc Icons for each buff stack. Empty to don't use. See help.
  653.  * @default
  654.  *
  655.  * @param NParam25 Debuff Icons
  656.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  657.  * @default
  658.  *
  659.  * @param NParam26 Name
  660.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  661.  * @default
  662.  *
  663.  * @param NParam26 Full Name
  664.  * @desc Name that will be shown for this new param.
  665.  * @default
  666.  *
  667.  * @param NParam26 Base
  668.  * @desc How this new param is configured by default. See help.
  669.  * @default 30 15
  670.  *
  671.  * @param NParam26 Limits
  672.  * @desc Formula for min and max value for this new param. See help.
  673.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  674.  *
  675.  * @param NParam26 Buff Icons
  676.  * @desc Icons for each buff stack. Empty to don't use. See help.
  677.  * @default
  678.  *
  679.  * @param NParam26 Debuff Icons
  680.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  681.  * @default
  682.  *
  683.  * @param NParam27 Name
  684.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  685.  * @default
  686.  *
  687.  * @param NParam27 Full Name
  688.  * @desc Name that will be shown for this new param.
  689.  * @default
  690.  *
  691.  * @param NParam27 Base
  692.  * @desc How this new param is configured by default. See help.
  693.  * @default 30 15
  694.  *
  695.  * @param NParam27 Limits
  696.  * @desc Formula for min and max value for this new param. See help.
  697.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  698.  *
  699.  * @param NParam27 Buff Icons
  700.  * @desc Icons for each buff stack. Empty to don't use. See help.
  701.  * @default
  702.  *
  703.  * @param NParam27 Debuff Icons
  704.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  705.  * @default
  706.  *
  707.  * @param NParam28 Name
  708.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  709.  * @default
  710.  *
  711.  * @param NParam28 Full Name
  712.  * @desc Name that will be shown for this new param.
  713.  * @default
  714.  *
  715.  * @param NParam28 Base
  716.  * @desc How this new param is configured by default. See help.
  717.  * @default 30 15
  718.  *
  719.  * @param NParam28 Limits
  720.  * @desc Formula for min and max value for this new param. See help.
  721.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  722.  *
  723.  * @param NParam28 Buff Icons
  724.  * @desc Icons for each buff stack. Empty to don't use. See help.
  725.  * @default
  726.  *
  727.  * @param NParam28 Debuff Icons
  728.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  729.  * @default
  730.  *
  731.  * @param NParam29 Name
  732.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  733.  * @default
  734.  *
  735.  * @param NParam29 Full Name
  736.  * @desc Name that will be shown for this new param.
  737.  * @default
  738.  *
  739.  * @param NParam29 Base
  740.  * @desc How this new param is configured by default. See help.
  741.  * @default 30 15
  742.  *
  743.  * @param NParam29 Limits
  744.  * @desc Formula for min and max value for this new param. See help.
  745.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  746.  *
  747.  * @param NParam29 Buff Icons
  748.  * @desc Icons for each buff stack. Empty to don't use. See help.
  749.  * @default
  750.  *
  751.  * @param NParam29 Debuff Icons
  752.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  753.  * @default
  754.  *
  755.  * @param PParam0 Name
  756.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  757.  * @default
  758.  *
  759.  * @param PParam0 Full Name
  760.  * @desc Name that will be shown for this plain param.
  761.  * @default
  762.  *
  763.  * @param PParam0 Base
  764.  * @desc Formula for base value for this plain param.
  765.  * @default 0
  766.  *
  767.  * @param PParam1 Name
  768.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  769.  * @default
  770.  *
  771.  * @param PParam1 Full Name
  772.  * @desc Name that will be shown for this plain param.
  773.  * @default
  774.  *
  775.  * @param PParam1 Base
  776.  * @desc Formula for base value for this plain param.
  777.  * @default 0
  778.  *
  779.  * @param PParam2 Name
  780.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  781.  * @default
  782.  *
  783.  * @param PParam2 Full Name
  784.  * @desc Name that will be shown for this plain param.
  785.  * @default
  786.  *
  787.  * @param PParam2 Base
  788.  * @desc Formula for base value for this plain param.
  789.  * @default 0
  790.  *
  791.  * @param PParam3 Name
  792.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  793.  * @default
  794.  *
  795.  * @param PParam3 Full Name
  796.  * @desc Name that will be shown for this plain param.
  797.  * @default
  798.  *
  799.  * @param PParam3 Base
  800.  * @desc Formula for base value for this plain param.
  801.  * @default 0
  802.  *
  803.  * @param PParam4 Name
  804.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  805.  * @default
  806.  *
  807.  * @param PParam4 Full Name
  808.  * @desc Name that will be shown for this plain param.
  809.  * @default
  810.  *
  811.  * @param PParam4 Base
  812.  * @desc Formula for base value for this plain param.
  813.  * @default 0
  814.  *
  815.  * @param PParam5 Name
  816.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  817.  * @default
  818.  *
  819.  * @param PParam5 Full Name
  820.  * @desc Name that will be shown for this plain param.
  821.  * @default
  822.  *
  823.  * @param PParam5 Base
  824.  * @desc Formula for base value for this plain param.
  825.  * @default 0
  826.  *
  827.  * @param PParam6 Name
  828.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  829.  * @default
  830.  *
  831.  * @param PParam6 Full Name
  832.  * @desc Name that will be shown for this plain param.
  833.  * @default
  834.  *
  835.  * @param PParam6 Base
  836.  * @desc Formula for base value for this plain param.
  837.  * @default 0
  838.  *
  839.  * @param PParam7 Name
  840.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  841.  * @default
  842.  *
  843.  * @param PParam7 Full Name
  844.  * @desc Name that will be shown for this plain param.
  845.  * @default
  846.  *
  847.  * @param PParam7 Base
  848.  * @desc Formula for base value for this plain param.
  849.  * @default 0
  850.  *
  851.  * @param PParam8 Name
  852.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  853.  * @default
  854.  *
  855.  * @param PParam8 Full Name
  856.  * @desc Name that will be shown for this plain param.
  857.  * @default
  858.  *
  859.  * @param PParam8 Base
  860.  * @desc Formula for base value for this plain param.
  861.  * @default 0
  862.  *
  863.  * @param PParam9 Name
  864.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  865.  * @default
  866.  *
  867.  * @param PParam9 Full Name
  868.  * @desc Name that will be shown for this plain param.
  869.  * @default
  870.  *
  871.  * @param PParam9 Base
  872.  * @desc Formula for base value for this plain param.
  873.  * @default 0
  874.  *
  875.  * @param PParam10 Name
  876.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  877.  * @default
  878.  *
  879.  * @param PParam10 Full Name
  880.  * @desc Name that will be shown for this plain param.
  881.  * @default
  882.  *
  883.  * @param PParam10 Base
  884.  * @desc Formula for base value for this plain param.
  885.  * @default 0
  886.  *
  887.  * @param PParam11 Name
  888.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  889.  * @default
  890.  *
  891.  * @param PParam11 Full Name
  892.  * @desc Name that will be shown for this plain param.
  893.  * @default
  894.  *
  895.  * @param PParam11 Base
  896.  * @desc Formula for base value for this plain param.
  897.  * @default 0
  898.  *
  899.  * @param PParam12 Name
  900.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  901.  * @default
  902.  *
  903.  * @param PParam12 Full Name
  904.  * @desc Name that will be shown for this plain param.
  905.  * @default
  906.  *
  907.  * @param PParam12 Base
  908.  * @desc Formula for base value for this plain param.
  909.  * @default 0
  910.  *
  911.  * @param PParam13 Name
  912.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  913.  * @default
  914.  *
  915.  * @param PParam13 Full Name
  916.  * @desc Name that will be shown for this plain param.
  917.  * @default
  918.  *
  919.  * @param PParam13 Base
  920.  * @desc Formula for base value for this plain param.
  921.  * @default 0
  922.  *
  923.  * @param PParam14 Name
  924.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  925.  * @default
  926.  *
  927.  * @param PParam14 Full Name
  928.  * @desc Name that will be shown for this plain param.
  929.  * @default
  930.  *
  931.  * @param PParam14 Base
  932.  * @desc Formula for base value for this plain param.
  933.  * @default 0
  934.  *
  935.  * @param PParam15 Name
  936.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  937.  * @default
  938.  *
  939.  * @param PParam15 Full Name
  940.  * @desc Name that will be shown for this plain param.
  941.  * @default
  942.  *
  943.  * @param PParam15 Base
  944.  * @desc Formula for base value for this plain param.
  945.  * @default 0
  946.  *
  947.  * @param PParam16 Name
  948.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  949.  * @default
  950.  *
  951.  * @param PParam16 Full Name
  952.  * @desc Name that will be shown for this plain param.
  953.  * @default
  954.  *
  955.  * @param PParam16 Base
  956.  * @desc Formula for base value for this plain param.
  957.  * @default 0
  958.  *
  959.  * @param PParam17 Name
  960.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  961.  * @default
  962.  *
  963.  * @param PParam17 Full Name
  964.  * @desc Name that will be shown for this plain param.
  965.  * @default
  966.  *
  967.  * @param PParam17 Base
  968.  * @desc Formula for base value for this plain param.
  969.  * @default 0
  970.  *
  971.  * @param PParam18 Name
  972.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  973.  * @default
  974.  *
  975.  * @param PParam18 Full Name
  976.  * @desc Name that will be shown for this plain param.
  977.  * @default
  978.  *
  979.  * @param PParam18 Base
  980.  * @desc Formula for base value for this plain param.
  981.  * @default 0
  982.  *
  983.  * @param PParam19 Name
  984.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  985.  * @default
  986.  *
  987.  * @param PParam19 Full Name
  988.  * @desc Name that will be shown for this plain param.
  989.  * @default
  990.  *
  991.  * @param PParam19 Base
  992.  * @desc Formula for base value for this plain param.
  993.  * @default 0
  994.  *
  995.  * @param PParam20 Name
  996.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  997.  * @default
  998.  *
  999.  * @param PParam20 Full Name
  1000.  * @desc Name that will be shown for this plain param.
  1001.  * @default
  1002.  *
  1003.  * @param PParam20 Base
  1004.  * @desc Formula for base value for this plain param.
  1005.  * @default 0
  1006.  *
  1007.  * @param PParam21 Name
  1008.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1009.  * @default
  1010.  *
  1011.  * @param PParam21 Full Name
  1012.  * @desc Name that will be shown for this plain param.
  1013.  * @default
  1014.  *
  1015.  * @param PParam21 Base
  1016.  * @desc Formula for base value for this plain param.
  1017.  * @default 0
  1018.  *
  1019.  * @param PParam22 Name
  1020.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1021.  * @default
  1022.  *
  1023.  * @param PParam22 Full Name
  1024.  * @desc Name that will be shown for this plain param.
  1025.  * @default
  1026.  *
  1027.  * @param PParam22 Base
  1028.  * @desc Formula for base value for this plain param.
  1029.  * @default 0
  1030.  *
  1031.  * @param PParam23 Name
  1032.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1033.  * @default
  1034.  *
  1035.  * @param PParam23 Full Name
  1036.  * @desc Name that will be shown for this plain param.
  1037.  * @default
  1038.  *
  1039.  * @param PParam23 Base
  1040.  * @desc Formula for base value for this plain param.
  1041.  * @default 0
  1042.  *
  1043.  * @param PParam24 Name
  1044.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1045.  * @default
  1046.  *
  1047.  * @param PParam24 Full Name
  1048.  * @desc Name that will be shown for this plain param.
  1049.  * @default
  1050.  *
  1051.  * @param PParam24 Base
  1052.  * @desc Formula for base value for this plain param.
  1053.  * @default 0
  1054.  *
  1055.  * @param PParam25 Name
  1056.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1057.  * @default
  1058.  *
  1059.  * @param PParam25 Full Name
  1060.  * @desc Name that will be shown for this plain param.
  1061.  * @default
  1062.  *
  1063.  * @param PParam25 Base
  1064.  * @desc Formula for base value for this plain param.
  1065.  * @default 0
  1066.  *
  1067.  * @param PParam26 Name
  1068.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1069.  * @default
  1070.  *
  1071.  * @param PParam26 Full Name
  1072.  * @desc Name that will be shown for this plain param.
  1073.  * @default
  1074.  *
  1075.  * @param PParam26 Base
  1076.  * @desc Formula for base value for this plain param.
  1077.  * @default 0
  1078.  *
  1079.  * @param PParam27 Name
  1080.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1081.  * @default
  1082.  *
  1083.  * @param PParam27 Full Name
  1084.  * @desc Name that will be shown for this plain param.
  1085.  * @default
  1086.  *
  1087.  * @param PParam27 Base
  1088.  * @desc Formula for base value for this plain param.
  1089.  * @default 0
  1090.  *
  1091.  * @param PParam28 Name
  1092.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1093.  * @default
  1094.  *
  1095.  * @param PParam28 Full Name
  1096.  * @desc Name that will be shown for this plain param.
  1097.  * @default
  1098.  *
  1099.  * @param PParam28 Base
  1100.  * @desc Formula for base value for this plain param.
  1101.  * @default 0
  1102.  *
  1103.  * @param PParam29 Name
  1104.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  1105.  * @default
  1106.  *
  1107.  * @param PParam29 Full Name
  1108.  * @desc Name that will be shown for this plain param.
  1109.  * @default
  1110.  *
  1111.  * @param PParam29 Base
  1112.  * @desc Formula for base value for this plain param.
  1113.  * @default 0
  1114.  *
  1115.  * @param BParam0 Name
  1116.  * @desc Alias for this basic param. You can to redefine it.
  1117.  * @default mhp
  1118.  *
  1119.  * @param BParam0 Base Eval
  1120.  * @desc A formula to use instead of default base given in MV.
  1121.  * Empty to use default.
  1122.  * @default
  1123.  *
  1124.  * @param BParam0 Limits
  1125.  * @desc Formula for min and max value for this param. See help.
  1126.  * Hit points
  1127.  * @default (this.isActor())? [1, 9999, 12000] : [1, 999999, 1200000]
  1128.  *
  1129.  * @param BParam1 Name
  1130.  * @desc Alias for this basic param. You can to redefine it.
  1131.  * @default mmp
  1132.  *
  1133.  * @param BParam1 Base Eval
  1134.  * @desc A formula to use instead of default base given in MV.
  1135.  * Empty to use default.
  1136.  * @default
  1137.  *
  1138.  * @param BParam1 Limits
  1139.  * @desc Formula for min and max value for this param. See help.
  1140.  * Magic points
  1141.  * @default (this.isActor())? [0, 9999, 12000] : [0, 9999, 12000]
  1142.  *
  1143.  * @param BParam2 Name
  1144.  * @desc Alias for this basic param. You can to redefine it.
  1145.  * @default atk
  1146.  *
  1147.  * @param BParam2 Base Eval
  1148.  * @desc A formula to use instead of default base given in MV.
  1149.  * Empty to use default.
  1150.  * @default
  1151.  *
  1152.  * @param BParam2 Limits
  1153.  * @desc Formula for min and max value for this param. See help.
  1154.  * Attack
  1155.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  1156.  *
  1157.  * @param BParam3 Name
  1158.  * @desc Alias for this basic param. You can to redefine it.
  1159.  * @default def
  1160.  *
  1161.  * @param BParam3 Base Eval
  1162.  * @desc A formula to use instead of default base given in MV.
  1163.  * Empty to use default.
  1164.  * @default
  1165.  *
  1166.  * @param BParam3 Limits
  1167.  * @desc Formula for min and max value for this param. See help.
  1168.  * Defense
  1169.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  1170.  *
  1171.  * @param BParam4 Name
  1172.  * @desc Alias for this basic param. You can to redefine it.
  1173.  * @default mat
  1174.  *
  1175.  * @param BParam4 Base Eval
  1176.  * @desc A formula to use instead of default base given in MV.
  1177.  * Empty to use default.
  1178.  * @default
  1179.  *
  1180.  * @param BParam4 Limits
  1181.  * @desc Formula for min and max value for this param. See help.
  1182.  * Magic attack
  1183.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  1184.  *
  1185.  * @param BParam5 Name
  1186.  * @desc Alias for this basic param. You can to redefine it.
  1187.  * @default mdf
  1188.  *
  1189.  * @param BParam5 Base Eval
  1190.  * @desc A formula to use instead of default base given in MV.
  1191.  * Empty to use default.
  1192.  * @default
  1193.  *
  1194.  * @param BParam5 Limits
  1195.  * @desc Formula for min and max value for this param. See help.
  1196.  * Magic defense
  1197.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  1198.  *
  1199.  * @param BParam6 Name
  1200.  * @desc Alias for this basic param. You can to redefine it.
  1201.  * @default agi
  1202.  *
  1203.  * @param BParam6 Base Eval
  1204.  * @desc A formula to use instead of default base given in MV.
  1205.  * Empty to use default.
  1206.  * @default
  1207.  *
  1208.  * @param BParam6 Limits
  1209.  * @desc Formula for min and max value for this param. See help.
  1210.  * Agility
  1211.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  1212.  *
  1213.  * @param BParam7 Name
  1214.  * @desc Alias for this basic param. You can to redefine it.
  1215.  * @default luk
  1216.  *
  1217.  * @param BParam7 Base Eval
  1218.  * @desc A formula to use instead of default base given in MV.
  1219.  * Empty to use default.
  1220.  * @default
  1221.  *
  1222.  * @param BParam7 Limits
  1223.  * @desc Formula for min and max value for this param. See help.
  1224.  * Luck
  1225.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  1226.  *
  1227.  * @param XParam0 Full Name
  1228.  * @desc Name that will be shown for this extra param.
  1229.  * @default Hit rate
  1230.  *
  1231.  * @param XParam0 Base
  1232.  * @desc Formula for base value for x param hit (HIT rate).
  1233.  * @default 0
  1234.  *
  1235.  * @param XParam1 Full Name
  1236.  * @desc Name that will be shown for this extra param.
  1237.  * @default Evasion rate
  1238.  *
  1239.  * @param XParam1 Base
  1240.  * @desc Formula for base value for x param eva (EVAsion rate).
  1241.  * @default 0
  1242.  *
  1243.  * @param XParam2 Full Name
  1244.  * @desc Name that will be shown for this extra param.
  1245.  * @default Critical rate
  1246.  *
  1247.  * @param XParam2 Base
  1248.  * @desc Formula for base value for x param cri (CRItical rate).
  1249.  * @default 0
  1250.  *
  1251.  * @param XParam3 Full Name
  1252.  * @desc Name that will be shown for this extra param.
  1253.  * @default Critical evasion rate
  1254.  *
  1255.  * @param XParam3 Base
  1256.  * @desc Formula for base value for x param cev (Critical Evasion Rate).
  1257.  * @default 0
  1258.  *
  1259.  * @param XParam4 Full Name
  1260.  * @desc Name that will be shown for this extra param.
  1261.  * @default Magic evasion rate
  1262.  *
  1263.  * @param XParam4 Base
  1264.  * @desc Formula for base value for x param mev (Magic EVasion rate).
  1265.  * @default 0
  1266.  *
  1267.  * @param XParam5 Full Name
  1268.  * @desc Name that will be shown for this extra param.
  1269.  * @default Magic reflection rate
  1270.  *
  1271.  * @param XParam5 Base
  1272.  * @desc Formula for base value for x param mrf (Magic ReFlection rate).
  1273.  * @default 0
  1274.  *
  1275.  * @param XParam6 Full Name
  1276.  * @desc Name that will be shown for this extra param.
  1277.  * @default Counter-attack rate
  1278.  *
  1279.  * @param XParam6 Base
  1280.  * @desc Formula for base value for x param cnt (CouNTer attack rate).
  1281.  * @default 0
  1282.  *
  1283.  * @param XParam7 Full Name
  1284.  * @desc Name that will be shown for this extra param.
  1285.  * @default Hp-regen rate
  1286.  *
  1287.  * @param XParam7 Base
  1288.  * @desc Formula for base value for x param hrg (Hp ReGeneration rate).
  1289.  * @default 0
  1290.  *
  1291.  * @param XParam8 Full Name
  1292.  * @desc Name that will be shown for this extra param.
  1293.  * @default Mp-regen rate
  1294.  *
  1295.  * @param XParam8 Base
  1296.  * @desc Formula for base value for x param mrg (Mp ReGeneration rate).
  1297.  * @default 0
  1298.  *
  1299.  * @param XParam9 Full Name
  1300.  * @desc Name that will be shown for this extra param.
  1301.  * @default Tp-regen rate
  1302.  *
  1303.  * @param XParam9 Base
  1304.  * @desc Formula for base value for x param trg (Tp ReGeneration rate).
  1305.  * @default 0
  1306.  *
  1307.  * @param SParam0 Full Name
  1308.  * @desc Name that will be shown for this special param.
  1309.  * @default Targeted rate
  1310.  *
  1311.  * @param SParam0 Base
  1312.  * @desc Formula for base value for x param tgr (TarGet Rate).
  1313.  * @default 1
  1314.  *
  1315.  * @param SParam1 Full Name
  1316.  * @desc Name that will be shown for this special param.
  1317.  * @default Guard rate
  1318.  *
  1319.  * @param SParam1 Base
  1320.  * @desc Formula for base value for s param grd (GuaRD effect rate).
  1321.  * @default 1
  1322.  *
  1323.  * @param SParam2 Full Name
  1324.  * @desc Name that will be shown for this special param.
  1325.  * @default Recovery rate
  1326.  *
  1327.  * @param SParam2 Base
  1328.  * @desc Formula for base value for s param rec (RECovery effect rate).
  1329.  * @default 1
  1330.  *
  1331.  * @param SParam3 Full Name
  1332.  * @desc Name that will be shown for this special param.
  1333.  * @default Pharmacology
  1334.  *
  1335.  * @param SParam3 Base
  1336.  * @desc Formula for base value for s param pha (PHArmacology).
  1337.  * @default 1
  1338.  *
  1339.  * @param SParam4 Full Name
  1340.  * @desc Name that will be shown for this special param.
  1341.  * @default Mp cost rate
  1342.  *
  1343.  * @param SParam4 Base
  1344.  * @desc Formula for base value for s param mcr (Mp Cost Rate).
  1345.  * @default 1
  1346.  *
  1347.  * @param SParam5 Full Name
  1348.  * @desc Name that will be shown for this special param.
  1349.  * @default Tp cost rate
  1350.  *
  1351.  * @param SParam5 Base
  1352.  * @desc Formula for base value for s param tcr (Tp Cost Rate).
  1353.  * @default 1
  1354.  *
  1355.  * @param SParam6 Full Name
  1356.  * @desc Name that will be shown for this special param.
  1357.  * @default Phisical damage rate
  1358.  *
  1359.  * @param SParam6 Base
  1360.  * @desc Formula for base value for s param pdr (Physical Damage Rate).
  1361.  * @default 1
  1362.  *
  1363.  * @param SParam7 Full Name
  1364.  * @desc Name that will be shown for this special param.
  1365.  * @default Magical damage rate
  1366.  *
  1367.  * @param SParam7 Base
  1368.  * @desc Formula for base value for s param mdr (Magical Damage Rate).
  1369.  * @default 1
  1370.  *
  1371.  * @param SParam8 Full Name
  1372.  * @desc Name that will be shown for this special param.
  1373.  * @default Floor damage rate
  1374.  *
  1375.  * @param SParam8 Base
  1376.  * @desc Formula for base value for s param fdr (Floor Damage Rate).
  1377.  * @default 1
  1378.  *
  1379.  * @param SParam9 Full Name
  1380.  * @desc Name that will be shown for this special param.
  1381.  * @default Experience rate
  1382.  *
  1383.  * @param SParam9 Base
  1384.  * @desc Formula for base value for s param exr (EXperience Rate).
  1385.  * @default 1
  1386.  *
  1387.  * @param Developer HaltJS
  1388.  * @desc When true it throws an error if a custom class param/nparam
  1389.  * javascript doesn't work.   NO - false     YES - true
  1390.  * @default false
  1391.  *
  1392.  * @help
  1393.  * ============================================================================
  1394.  * Introduction
  1395.  *
  1396.  * By default there are some fixed types of params, there are usefull but
  1397.  * have specified purposes and limits the way you can use them.
  1398.  *
  1399.  * With this plugin you can add new params that can be used in your formulas
  1400.  * and every use you can imagine.
  1401.  *
  1402.  * There are 2 new param types:
  1403.  *  -New/Normal Params: Level based params like the default ones,
  1404.  *   with buff/debuff effects and trait modifiers.
  1405.  *   Plus an option that can be used in some enemy levels plugins.
  1406.  *
  1407.  *  -Plain Params: Non level based params, these work as x/sparams
  1408.  *   with trait modifiers.
  1409.  *
  1410.  * Now there are more customization and control for basic, x and s params.
  1411.  * And a new double cap feature.
  1412.  *
  1413.  * ============================================================================
  1414.  * How to use
  1415.  * ============================================================================
  1416.  *
  1417.  * NParams and PParams are calculated with their respective formulas:
  1418.  *
  1419.  * NParam = (Base + Plus) * Rate * XRate * Buff + Flat + XFlat
  1420.  * PParam = (Base + Plus) * Rate + Flat
  1421.  *
  1422.  *   -Base is different for n and pparams. For NParams is a level based value.
  1423.  *    For PParam is a fixed value used to emulate x/sparams (0 and 1).
  1424.  *   -Plus is the sum of all plus traits attached to a battler. In case of
  1425.  *    NParam there is an extra added by script calls and item effects.
  1426.  *   -Rate is the product of all trait multipliers attached to a battler.
  1427.  *   -XRate is the product of all trait x-multipliers attached to a battler.
  1428.  *   -Buff is de effect of buff/debuff.
  1429.  *   -Flat is the sum of all flat trais attached to a battler. It isn't affected
  1430.  *    by any rate.
  1431.  *   -XFlat is the sum of all x-flat trais attached to a battler. It isn't affected
  1432.  *    by any rate.
  1433.  *
  1434.  * XRate, XFlat and Buff can make param to pass througth first max cap.
  1435.  *
  1436.  * To make XParams and SParams more customizable I've changed a little
  1437.  * their formulas:
  1438.  *
  1439.  * Param  = (Base + Plus) * Rate * XRate * Buff + Flat + XFlat
  1440.  * XParam = (Base + Plus) * Rate + Flat
  1441.  * SParam = (Base + Plus) * Rate + Flat
  1442.  *
  1443.  * They still work as usual but now you can add traits to have more control.
  1444.  *
  1445.  * To add traits you can use notetags inside data.
  1446.  *
  1447.  * Actors, classes and enemies only:
  1448.  *
  1449.  * <NPARAM: NParam Base Grow HGrow Cap>
  1450.  *    -Overrides default NParam for specified actor/class/enemy.
  1451.  *     NParam can be referenced by it's name or index.
  1452.  *     Base is the initial value in level 1.
  1453.  *     Grow is how much is increased per level. If empty it will be fixed.
  1454.  *     HGrow is similar to Grow but in an exponential way.
  1455.  *     Cap is the level at wich NParam stops growing.
  1456.  *     You can use decimal numbers.
  1457.  *    
  1458.  *
  1459.  * Weapons and armors only:
  1460.  *
  1461.  * <NPARAM: NParam Value>
  1462.  *    -Set default NParam given for specified weapon/armor.
  1463.  *     NParam can be referenced by it's name or index.
  1464.  *    
  1465.  *
  1466.  * Actors, classes, enemies, weapons, armors and states:
  1467.  *
  1468.  * <NDEBUFFRATE: NParam Rate>
  1469.  *    -This is used for nparam debuff resistance, it's the chance of
  1470.  *     succes debuff.
  1471.  *     0.5 means 50% debuff succes, 0.2 is 20% and so on.
  1472.  *
  1473.  *
  1474.  * <NPARAMPLUS: NParam Plus>
  1475.  * <NPARAMRATE: NParam Rate>
  1476.  * <NPARAMXRATE: NParam XRate>
  1477.  * <NPARAMFLAT: NParam Flat>
  1478.  * <NPARAMXFLAT: NParam Flat>
  1479.  *    -There are plus, rate, xrate and flat modifiers for nparam.
  1480.  *
  1481.  * <PPARAMPLUS: PParam Plus>
  1482.  * <PPARAMRATE: PParam Rate>
  1483.  * <PPARAMFLAT: PParam Flat>
  1484.  *    -There are plus, rate and flat modifiers for pparam.
  1485.  *
  1486.  * <PARAMPLUS: Param Plus>
  1487.  * <PARAMRATE: Param Rate>
  1488.  * <PARAMXRATE: Param XRate>
  1489.  * <PARAMFLAT: Param Flat>
  1490.  * <PARAMXFLAT: Param Flat>
  1491.  * <xPARAMPLUS: XParam Plus>
  1492.  * <XPARAMRATE: XParam Rate>
  1493.  * <XPARAMFLAT: XParam Flat>
  1494.  * <SPARAMPLUS: SParam Plus>
  1495.  * <SPARAMRATE: SParam Rate>
  1496.  * <SPARAMFLAT: SParam Flat>
  1497.  *    -There are plus, rate, xrate and flat modifiers for x and sparam.
  1498.  *     I have included these to give more control.
  1499.  *
  1500.  *
  1501.  * Skills and items only:
  1502.  *
  1503.  * <NBUFF: NParam turns>
  1504.  * <NDEBUFF: NParam turns>
  1505.  * <REMOVE NBUFF: NParam>
  1506.  * <REMOVE NDEBUFF: NParam>
  1507.  *    -There are buff/debuff effects to attach to skills and items.
  1508.  *
  1509.  * <NPARAM GROW: NParam amount>
  1510.  *    -Allow to increase/decrease nparam by a specified amount.
  1511.  *
  1512.  * <PPARAM GROW: PParam amount>
  1513.  *    -Allow to increase/decrease pparam by a specified amount.
  1514.  *
  1515.  * ============================================================================
  1516.  * Lunatic Mode
  1517.  * ============================================================================
  1518.  *
  1519.  * Knowing javascript you can redefine specific base value for params
  1520.  * and nparams for actors, classes and enemies through lunatic mode.
  1521.  *
  1522.  * It also work in notetags:
  1523.  *
  1524.  * <CUSTOM NPARAM BASE NPARAM>
  1525.  * value = 2;
  1526.  * value += 25;
  1527.  * </CUSTOM NPARAM BASE>
  1528.  *
  1529.  * <CUSTOM PARAM BASE PARAM>
  1530.  * value = base;
  1531.  * value += 25;
  1532.  * </CUSTOM PARAM BASE>
  1533.  *
  1534.  * Those params defined will use their formula instead of normal base
  1535.  * value calculation. You can use javascript between these tags to alter
  1536.  * the final result.
  1537.  * Base params also allow to use word 'base' inside formula. It takes the
  1538.  * value it could have at level 1.
  1539.  *
  1540.  * value - This is the value you want to alter with your own formula.
  1541.  *         It starts at 0.
  1542.  *
  1543.  * Equipment notetags:
  1544.  *
  1545.  * <CUSTOM NPARAMS>
  1546.  * javascript
  1547.  * javascript
  1548.  * 0 = $gameVariables.value(35)
  1549.  * int = $gameSwitches.value(12)? 50 : 1
  1550.  * </CUSTOM NPARAMS>
  1551.  *
  1552.  * <CUSTOM PPARAMS>
  1553.  * javascript
  1554.  * javascript
  1555.  * 0 = $gameVariables.value(35)
  1556.  * int = $gameSwitches.value(12)? 50 : 1
  1557.  * </CUSTOM PPARAMS>
  1558.  *
  1559.  * <CUSTOM PARAMS>
  1560.  * javascript
  1561.  * javascript
  1562.  * 0 = $gameVariables.value(35)
  1563.  * mhp = $gameSwitches.value(12)? 50 : 1
  1564.  * </CUSTOM PARAMS>
  1565.  *
  1566.  * Add evaluate values for nparams, pparams and basic params to weapons and
  1567.  * armors.
  1568.  * First you use the javascript code that can affect all params. Then you
  1569.  * Use an identifier that can be a number or param name, an equal and the
  1570.  * formula that should be evaluated for this equipment piece.
  1571.  *
  1572.  * Example:
  1573.  * <CUSTOM PARAMS>
  1574.  * var bonus = this.level;
  1575.  * var restrict = 5;
  1576.  * mhp = $gameVariables.value(35) + bonus * 5 - restrict
  1577.  * mmp = ($gameSwitches.value(12)? 50 : 1) + bonus / restrict
  1578.  * </CUSTOM PARAMS>
  1579.  *
  1580.  * ============================================================================
  1581.  * Parameters
  1582.  * ============================================================================
  1583.  *
  1584.  * Use New Param System: Since MV version 1.5.0 there is a new way to setup
  1585.  * plugin parameters and this is made to use them.
  1586.  * You can create up to 100 of each type with indexes from 0 to 99.
  1587.  * Old system allows up to 30 params of each type with indexes from 0 to 29 and
  1588.  * is tedious to maintain and improve. Old system will be removed in a future
  1589.  * version.
  1590.  *
  1591.  * NParam/PParam/Bparam Name: internal name you give to specified nparam,
  1592.  * pparam and basic param. It will be used in formulas and can be used to
  1593.  * reference a notetag. Leave empty to skip.
  1594.  *
  1595.  * - Note: Bparams already exist and this param allow to alias or redefine them.
  1596.  *
  1597.  * NParam/PParam/XParam/SParam Full Name: the name you give to specified nparam.
  1598.  * There are not used here but are usefull for plugins that need this.
  1599.  *
  1600.  * NParam Base: the default formula for classes/enemies if they haven't.
  1601.  * First number is the value at level 1. Second is the amount gained
  1602.  * each level. Third is a level exponential grow and fourth is the level at
  1603.  * wich will stop growing.
  1604.  *
  1605.  * PParam/XParam/SParam Base: is a base value that allow pparams to emulate
  1606.  * x/sparams, and give more control for x/sparams. 0 is used for a xparam and 1
  1607.  * for a sparam. It works as a formula so you can do it param based.
  1608.  *
  1609.  * NParam/BParam Base Eval: allow to use nparams and bparams as formulas like
  1610.  * p/x/sparams. If defined this formula will be used instead of default mode
  1611.  * given in MV for BParams and the default traditional mode for NParams I made.
  1612.  * It works as a formula so you can do it param based.
  1613.  * Base params also allow to use word 'base' inside formula. It takes the
  1614.  * value it could have at level 1.
  1615.  *
  1616.  * NParam/BParam Limits: the min and max value a param can be. It's used now
  1617.  * as a formula and needs 3 values.
  1618.  * First is min, second is normal max and third is X-max.
  1619.  * By default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1620.  *
  1621.  * PParam Limits: same as previous but only uses 2 values (min and max).
  1622.  * By default (this.isActor())? [0, 999] : [0, 999]
  1623.  *
  1624.  * NParam Buff Icons:
  1625.  * This is an array of icons separated by spaces. When specified param is
  1626.  * affected by a positive buff will be shown. Is starts with first and
  1627.  * use next for each buff stack. If you don't want to use it leave Empty.
  1628.  *
  1629.  * NParam Debuff Icons:
  1630.  * Same as previous but with debuff stack. Empty to don't use.
  1631.  *
  1632.  * Developer HaltJS: This is a development variable usefull to check if there is
  1633.  * a wrong javascript nparam or basic param.
  1634.  * When true will throw an error when it found a wrong javascript in lunatic
  1635.  * mode and tell specified param.
  1636.  * When false it will be ignored and game continues.
  1637.  *
  1638.  * ============================================================================
  1639.  * More Params
  1640.  * ============================================================================
  1641.  *
  1642.  * ---Old nparam and pparam mode---
  1643.  * When Main Core released you will be able to add more params.
  1644.  *
  1645.  * Use "NParam" and "PParam" commands to add them.
  1646.  * Note: Database fields that reffers to param indexes higher than 29 must
  1647.  * reffer to number. Javascript code can still reffer to param names.
  1648.  *
  1649.  * NParam 30 crea Creativity
  1650.  * base 30 12 0.3 50
  1651.  * limit (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1652.  * buff 1 2 3 4 5 6 7
  1653.  *
  1654.  * PParam 30 parry Arrow Parry
  1655.  * base 0.2
  1656.  *
  1657.  * ============================================================================
  1658.  * Incompatibilities
  1659.  * ============================================================================
  1660.  *
  1661.  * There's no known incompatible plugins yet.
  1662.  *
  1663.  * ============================================================================
  1664.  * Known isues
  1665.  * ============================================================================
  1666.  *
  1667.  * Not yet.
  1668.  *
  1669.  * ============================================================================
  1670.  * Changelog
  1671.  * ============================================================================
  1672.  *
  1673.  * Version 1.05:
  1674.  * - Evaluable params for equipment.
  1675.  * - Set nparams for equipment.
  1676.  * - Expanded lunatic mode to include enemy classes and actors.
  1677.  * - Allow to grow pparams.
  1678.  * - Allow default formulas for base params and nparams.
  1679.  * - Use of 1.5.0 new plugin parameters.
  1680.  *
  1681.  * Version 1.04:
  1682.  * - Allow ICF-Soft Main Core.
  1683.  * - Expanded lunatic mode to include enemies.
  1684.  * - More nparam control.
  1685.  *
  1686.  * Version 1.03:
  1687.  * - Added XFlat for the double cap.
  1688.  * - Increased n/pparams to 30.
  1689.  * - Allow names for x/sparams.
  1690.  *
  1691.  * Version 1.02:
  1692.  * - Allow to aliasing or redefining MV basic params.
  1693.  *
  1694.  * Version 1.01:
  1695.  * - Use of ICF-Soft Main Utility.
  1696.  * - Added lunatic mode for custom params and nparams.
  1697.  * - Changed how min and max limits work.
  1698.  * - Added double cap.
  1699.  * - Added more traits.
  1700.  * - Use of base params.
  1701.  *
  1702.  * Version 1.00:
  1703.  * - Finished plugin!
  1704.  *
  1705.  * ============================================================================
  1706.  *
  1707.  * For commercial and non-commercial games.
  1708.  * Credit to ICF-Soft.
  1709.  * This entire header must be included with plugin.
  1710.  *
  1711.  * ============================================================================
  1712. */
  1713. //=============================================================================
  1714.  /*:es
  1715.  * @plugindesc v1.05a Este complemento permite añadir nuevos parámetros
  1716.  * personalizables y mayor control sobre los parámetros del MV.
  1717.  * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
  1718.  *
  1719.  * @param Use New Param System
  1720.  * @desc Usar el nuevo modo de añadir nparams y pparams.
  1721.  * @default true
  1722.  *
  1723.  * @param NParams
  1724.  * @desc Nuevo modo de añadir NParams.
  1725.  * @type struct<NormalParams>[]
  1726.  * @default ["{\"Name\":\"\",\"Full Name\":\"\",\"Base\":\"30 15\",\"Base Eval\":\"\",\"Limits\":\"(this.isActor())? [0, 999, 1200] : [0, 999, 1200]\",\"Buff Icons\":\"\",\"Debuff Icons\":\"\"}"]
  1727.  *
  1728.  * @param PParams
  1729.  * @desc Nuevo modo de añadir PParams.
  1730.  * @type struct<PlainParams>[]
  1731.  * @default ["{\"Name\":\"\",\"Full Name\":\"\",\"Base\":\"0\",\"Limits\":\"(this.isActor())? [0, 999] : [0, 999]\"}"]
  1732.  *
  1733.  * @param NParam0 Name
  1734.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1735.  * @default
  1736.  *
  1737.  * @param NParam0 Full Name
  1738.  * @desc Nombre mostrado para este nuevo parámetro.
  1739.  * @default
  1740.  *
  1741.  * @param NParam0 Base
  1742.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1743.  * @default 30 15
  1744.  *
  1745.  * @param NParam0 Limits
  1746.  * @desc Una fórmula para los valores mínimo y máximos para este
  1747.  * nuevo parámetro. Ver ayuda.
  1748.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1749.  *
  1750.  * @param NParam0 Buff Icons
  1751.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1752.  * Vacío no usar ninguno. Ver ayuda.
  1753.  * @default
  1754.  *
  1755.  * @param NParam0 Debuff Icons
  1756.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1757.  * Vacío no usar ninguno. Ver ayuda.
  1758.  * @default
  1759.  *
  1760.  * @param NParam1 Name
  1761.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1762.  * @default
  1763.  *
  1764.  * @param NParam1 Full Name
  1765.  * @desc Nombre mostrado para este nuevo parámetro.
  1766.  * @default
  1767.  *
  1768.  * @param NParam1 Base
  1769.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1770.  * @default 30 15
  1771.  *
  1772.  * @param NParam1 Limits
  1773.  * @desc Una fórmula para los valores mínimo y máximos para este
  1774.  * nuevo parámetro. Ver ayuda.
  1775.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1776.  *
  1777.  * @param NParam1 Buff Icons
  1778.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1779.  * Vacío no usar ninguno. Ver ayuda.
  1780.  * @default
  1781.  *
  1782.  * @param NParam1 Debuff Icons
  1783.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1784.  * Vacío no usar ninguno. Ver ayuda.
  1785.  * @default
  1786.  *
  1787.  * @param NParam2 Name
  1788.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1789.  * @default
  1790.  *
  1791.  * @param NParam2 Full Name
  1792.  * @desc Nombre mostrado para este nuevo parámetro.
  1793.  * @default
  1794.  *
  1795.  * @param NParam2 Base
  1796.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1797.  * @default 30 15
  1798.  *
  1799.  * @param NParam2 Limits
  1800.  * @desc Una fórmula para los valores mínimo y máximos para este
  1801.  * nuevo parámetro. Ver ayuda.
  1802.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1803.  *
  1804.  * @param NParam2 Buff Icons
  1805.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1806.  * Vacío no usar ninguno. Ver ayuda.
  1807.  * @default
  1808.  *
  1809.  * @param NParam2 Debuff Icons
  1810.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1811.  * Vacío no usar ninguno. Ver ayuda.
  1812.  * @default
  1813.  *
  1814.  * @param NParam3 Name
  1815.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1816.  * @default
  1817.  *
  1818.  * @param NParam3 Full Name
  1819.  * @desc Nombre mostrado para este nuevo parámetro.
  1820.  * @default
  1821.  *
  1822.  * @param NParam3 Base
  1823.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1824.  * @default 30 15
  1825.  *
  1826.  * @param NParam3 Limits
  1827.  * @desc Una fórmula para los valores mínimo y máximos para este
  1828.  * nuevo parámetro. Ver ayuda.
  1829.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1830.  *
  1831.  * @param NParam3 Buff Icons
  1832.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1833.  * Vacío no usar ninguno. Ver ayuda.
  1834.  * @default
  1835.  *
  1836.  * @param NParam3 Debuff Icons
  1837.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1838.  * Vacío no usar ninguno. Ver ayuda.
  1839.  * @default
  1840.  *
  1841.  * @param NParam4 Name
  1842.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1843.  * @default
  1844.  *
  1845.  * @param NParam4 Full Name
  1846.  * @desc Nombre mostrado para este nuevo parámetro.
  1847.  * @default
  1848.  *
  1849.  * @param NParam4 Base
  1850.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1851.  * @default 30 15
  1852.  *
  1853.  * @param NParam4 Limits
  1854.  * @desc Una fórmula para los valores mínimo y máximos para este
  1855.  * nuevo parámetro. Ver ayuda.
  1856.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1857.  *
  1858.  * @param NParam4 Buff Icons
  1859.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1860.  * Vacío no usar ninguno. Ver ayuda.
  1861.  * @default
  1862.  *
  1863.  * @param NParam4 Debuff Icons
  1864.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1865.  * Vacío no usar ninguno. Ver ayuda.
  1866.  * @default
  1867.  *
  1868.  * @param NParam5 Name
  1869.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1870.  * @default
  1871.  *
  1872.  * @param NParam5 Full Name
  1873.  * @desc Nombre mostrado para este nuevo parámetro.
  1874.  * @default
  1875.  *
  1876.  * @param NParam5 Base
  1877.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1878.  * @default 30 15
  1879.  *
  1880.  * @param NParam5 Limits
  1881.  * @desc Una fórmula para los valores mínimo y máximos para este
  1882.  * nuevo parámetro. Ver ayuda.
  1883.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1884.  *
  1885.  * @param NParam5 Buff Icons
  1886.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1887.  * Vacío no usar ninguno. Ver ayuda.
  1888.  * @default
  1889.  *
  1890.  * @param NParam5 Debuff Icons
  1891.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1892.  * Vacío no usar ninguno. Ver ayuda.
  1893.  * @default
  1894.  *
  1895.  * @param NParam6 Name
  1896.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1897.  * @default
  1898.  *
  1899.  * @param NParam6 Full Name
  1900.  * @desc Nombre mostrado para este nuevo parámetro.
  1901.  * @default
  1902.  *
  1903.  * @param NParam6 Base
  1904.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1905.  * @default 30 15
  1906.  *
  1907.  * @param NParam6 Limits
  1908.  * @desc Una fórmula para los valores mínimo y máximos para este
  1909.  * nuevo parámetro. Ver ayuda.
  1910.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1911.  *
  1912.  * @param NParam6 Buff Icons
  1913.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1914.  * Vacío no usar ninguno. Ver ayuda.
  1915.  * @default
  1916.  *
  1917.  * @param NParam6 Debuff Icons
  1918.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1919.  * Vacío no usar ninguno. Ver ayuda.
  1920.  * @default
  1921.  *
  1922.  * @param NParam7 Name
  1923.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1924.  * @default
  1925.  *
  1926.  * @param NParam7 Full Name
  1927.  * @desc Nombre mostrado para este nuevo parámetro.
  1928.  * @default
  1929.  *
  1930.  * @param NParam7 Base
  1931.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1932.  * @default 30 15
  1933.  *
  1934.  * @param NParam7 Limits
  1935.  * @desc Una fórmula para los valores mínimo y máximos para este
  1936.  * nuevo parámetro. Ver ayuda.
  1937.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1938.  *
  1939.  * @param NParam7 Buff Icons
  1940.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1941.  * Vacío no usar ninguno. Ver ayuda.
  1942.  * @default
  1943.  *
  1944.  * @param NParam7 Debuff Icons
  1945.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1946.  * Vacío no usar ninguno. Ver ayuda.
  1947.  * @default
  1948.  *
  1949.  * @param NParam8 Name
  1950.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1951.  * @default
  1952.  *
  1953.  * @param NParam8 Full Name
  1954.  * @desc Nombre mostrado para este nuevo parámetro.
  1955.  * @default
  1956.  *
  1957.  * @param NParam8 Base
  1958.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1959.  * @default 30 15
  1960.  *
  1961.  * @param NParam8 Limits
  1962.  * @desc Una fórmula para los valores mínimo y máximos para este
  1963.  * nuevo parámetro. Ver ayuda.
  1964.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1965.  *
  1966.  * @param NParam8 Buff Icons
  1967.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1968.  * Vacío no usar ninguno. Ver ayuda.
  1969.  * @default
  1970.  *
  1971.  * @param NParam8 Debuff Icons
  1972.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  1973.  * Vacío no usar ninguno. Ver ayuda.
  1974.  * @default
  1975.  *
  1976.  * @param NParam9 Name
  1977.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  1978.  * @default
  1979.  *
  1980.  * @param NParam9 Full Name
  1981.  * @desc Nombre mostrado para este nuevo parámetro.
  1982.  * @default
  1983.  *
  1984.  * @param NParam9 Base
  1985.  * @desc Modo predeterminado de configuración. Ver ayuda.
  1986.  * @default 30 15
  1987.  *
  1988.  * @param NParam9 Limits
  1989.  * @desc Una fórmula para los valores mínimo y máximos para este
  1990.  * nuevo parámetro. Ver ayuda.
  1991.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  1992.  *
  1993.  * @param NParam9 Buff Icons
  1994.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  1995.  * Vacío no usar ninguno. Ver ayuda.
  1996.  * @default
  1997.  *
  1998.  * @param NParam9 Debuff Icons
  1999.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2000.  * Vacío no usar ninguno. Ver ayuda.
  2001.  * @default
  2002.  *
  2003.  * @param NParam10 Name
  2004.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2005.  * @default
  2006.  *
  2007.  * @param NParam10 Full Name
  2008.  * @desc Nombre mostrado para este nuevo parámetro.
  2009.  * @default
  2010.  *
  2011.  * @param NParam10 Base
  2012.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2013.  * @default 30 15
  2014.  *
  2015.  * @param NParam10 Limits
  2016.  * @desc Una fórmula para los valores mínimo y máximos para este
  2017.  * nuevo parámetro. Ver ayuda.
  2018.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2019.  *
  2020.  * @param NParam10 Buff Icons
  2021.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2022.  * Vacío no usar ninguno. Ver ayuda.
  2023.  * @default
  2024.  *
  2025.  * @param NParam10 Debuff Icons
  2026.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2027.  * Vacío no usar ninguno. Ver ayuda.
  2028.  * @default
  2029.  *
  2030.  * @param NParam11 Name
  2031.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2032.  * @default
  2033.  *
  2034.  * @param NParam11 Full Name
  2035.  * @desc Nombre mostrado para este nuevo parámetro.
  2036.  * @default
  2037.  *
  2038.  * @param NParam11 Base
  2039.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2040.  * @default 30 15
  2041.  *
  2042.  * @param NParam11 Limits
  2043.  * @desc Una fórmula para los valores mínimo y máximos para este
  2044.  * nuevo parámetro. Ver ayuda.
  2045.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2046.  *
  2047.  * @param NParam11 Buff Icons
  2048.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2049.  * Vacío no usar ninguno. Ver ayuda.
  2050.  * @default
  2051.  *
  2052.  * @param NParam11 Debuff Icons
  2053.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2054.  * Vacío no usar ninguno. Ver ayuda.
  2055.  * @default
  2056.  *
  2057.  * @param NParam12 Name
  2058.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2059.  * @default
  2060.  *
  2061.  * @param NParam12 Full Name
  2062.  * @desc Nombre mostrado para este nuevo parámetro.
  2063.  * @default
  2064.  *
  2065.  * @param NParam12 Base
  2066.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2067.  * @default 30 15
  2068.  *
  2069.  * @param NParam12 Limits
  2070.  * @desc Una fórmula para los valores mínimo y máximos para este
  2071.  * nuevo parámetro. Ver ayuda.
  2072.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2073.  *
  2074.  * @param NParam12 Buff Icons
  2075.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2076.  * Vacío no usar ninguno. Ver ayuda.
  2077.  * @default
  2078.  *
  2079.  * @param NParam12 Debuff Icons
  2080.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2081.  * Vacío no usar ninguno. Ver ayuda.
  2082.  * @default
  2083.  *
  2084.  * @param NParam13 Name
  2085.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2086.  * @default
  2087.  *
  2088.  * @param NParam13 Full Name
  2089.  * @desc Nombre mostrado para este nuevo parámetro.
  2090.  * @default
  2091.  *
  2092.  * @param NParam13 Base
  2093.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2094.  * @default 30 15
  2095.  *
  2096.  * @param NParam13 Limits
  2097.  * @desc Una fórmula para los valores mínimo y máximos para este
  2098.  * nuevo parámetro. Ver ayuda.
  2099.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2100.  *
  2101.  * @param NParam13 Buff Icons
  2102.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2103.  * Vacío no usar ninguno. Ver ayuda.
  2104.  * @default
  2105.  *
  2106.  * @param NParam13 Debuff Icons
  2107.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2108.  * Vacío no usar ninguno. Ver ayuda.
  2109.  * @default
  2110.  *
  2111.  * @param NParam14 Name
  2112.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2113.  * @default
  2114.  *
  2115.  * @param NParam14 Full Name
  2116.  * @desc Nombre mostrado para este nuevo parámetro.
  2117.  * @default
  2118.  *
  2119.  * @param NParam14 Base
  2120.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2121.  * @default 30 15
  2122.  *
  2123.  * @param NParam14 Limits
  2124.  * @desc Una fórmula para los valores mínimo y máximos para este
  2125.  * nuevo parámetro. Ver ayuda.
  2126.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2127.  *
  2128.  * @param NParam14 Buff Icons
  2129.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2130.  * Vacío no usar ninguno. Ver ayuda.
  2131.  * @default
  2132.  *
  2133.  * @param NParam14 Debuff Icons
  2134.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2135.  * Vacío no usar ninguno. Ver ayuda.
  2136.  * @default
  2137.  *
  2138.  * @param NParam15 Name
  2139.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2140.  * @default
  2141.  *
  2142.  * @param NParam15 Full Name
  2143.  * @desc Nombre mostrado para este nuevo parámetro.
  2144.  * @default
  2145.  *
  2146.  * @param NParam15 Base
  2147.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2148.  * @default 30 15
  2149.  *
  2150.  * @param NParam15 Limits
  2151.  * @desc Una fórmula para los valores mínimo y máximos para este
  2152.  * nuevo parámetro. Ver ayuda.
  2153.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2154.  *
  2155.  * @param NParam15 Buff Icons
  2156.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2157.  * Vacío no usar ninguno. Ver ayuda.
  2158.  * @default
  2159.  *
  2160.  * @param NParam15 Debuff Icons
  2161.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2162.  * Vacío no usar ninguno. Ver ayuda.
  2163.  * @default
  2164.  *
  2165.  * @param NParam16 Name
  2166.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2167.  * @default
  2168.  *
  2169.  * @param NParam16 Full Name
  2170.  * @desc Nombre mostrado para este nuevo parámetro.
  2171.  * @default
  2172.  *
  2173.  * @param NParam16 Base
  2174.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2175.  * @default 30 15
  2176.  *
  2177.  * @param NParam16 Limits
  2178.  * @desc Una fórmula para los valores mínimo y máximos para este
  2179.  * nuevo parámetro. Ver ayuda.
  2180.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2181.  *
  2182.  * @param NParam16 Buff Icons
  2183.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2184.  * Vacío no usar ninguno. Ver ayuda.
  2185.  * @default
  2186.  *
  2187.  * @param NParam16 Debuff Icons
  2188.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2189.  * Vacío no usar ninguno. Ver ayuda.
  2190.  * @default
  2191.  *
  2192.  * @param NParam17 Name
  2193.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2194.  * @default
  2195.  *
  2196.  * @param NParam17 Full Name
  2197.  * @desc Nombre mostrado para este nuevo parámetro.
  2198.  * @default
  2199.  *
  2200.  * @param NParam17 Base
  2201.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2202.  * @default 30 15
  2203.  *
  2204.  * @param NParam17 Limits
  2205.  * @desc Una fórmula para los valores mínimo y máximos para este
  2206.  * nuevo parámetro. Ver ayuda.
  2207.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2208.  *
  2209.  * @param NParam17 Buff Icons
  2210.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2211.  * Vacío no usar ninguno. Ver ayuda.
  2212.  * @default
  2213.  *
  2214.  * @param NParam17 Debuff Icons
  2215.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2216.  * Vacío no usar ninguno. Ver ayuda.
  2217.  * @default
  2218.  *
  2219.  * @param NParam18 Name
  2220.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2221.  * @default
  2222.  *
  2223.  * @param NParam18 Full Name
  2224.  * @desc Nombre mostrado para este nuevo parámetro.
  2225.  * @default
  2226.  *
  2227.  * @param NParam18 Base
  2228.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2229.  * @default 30 15
  2230.  *
  2231.  * @param NParam18 Limits
  2232.  * @desc Una fórmula para los valores mínimo y máximos para este
  2233.  * nuevo parámetro. Ver ayuda.
  2234.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2235.  *
  2236.  * @param NParam18 Buff Icons
  2237.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2238.  * Vacío no usar ninguno. Ver ayuda.
  2239.  * @default
  2240.  *
  2241.  * @param NParam18 Debuff Icons
  2242.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2243.  * Vacío no usar ninguno. Ver ayuda.
  2244.  * @default
  2245.  *
  2246.  * @param NParam19 Name
  2247.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2248.  * @default
  2249.  *
  2250.  * @param NParam19 Full Name
  2251.  * @desc Nombre mostrado para este nuevo parámetro.
  2252.  * @default
  2253.  *
  2254.  * @param NParam19 Base
  2255.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2256.  * @default 30 15
  2257.  *
  2258.  * @param NParam19 Limits
  2259.  * @desc Una fórmula para los valores mínimo y máximos para este
  2260.  * nuevo parámetro. Ver ayuda.
  2261.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2262.  *
  2263.  * @param NParam19 Buff Icons
  2264.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2265.  * Vacío no usar ninguno. Ver ayuda.
  2266.  * @default
  2267.  *
  2268.  * @param NParam19 Debuff Icons
  2269.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2270.  * Vacío no usar ninguno. Ver ayuda.
  2271.  * @default
  2272.  *
  2273.  * @param NParam20 Name
  2274.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2275.  * @default
  2276.  *
  2277.  * @param NParam20 Full Name
  2278.  * @desc Nombre mostrado para este nuevo parámetro.
  2279.  * @default
  2280.  *
  2281.  * @param NParam20 Base
  2282.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2283.  * @default 30 15
  2284.  *
  2285.  * @param NParam20 Limits
  2286.  * @desc Una fórmula para los valores mínimo y máximos para este
  2287.  * nuevo parámetro. Ver ayuda.
  2288.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2289.  *
  2290.  * @param NParam20 Buff Icons
  2291.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2292.  * Vacío no usar ninguno. Ver ayuda.
  2293.  * @default
  2294.  *
  2295.  * @param NParam20 Debuff Icons
  2296.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2297.  * Vacío no usar ninguno. Ver ayuda.
  2298.  * @default
  2299.  *
  2300.  * @param NParam21 Name
  2301.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2302.  * @default
  2303.  *
  2304.  * @param NParam21 Full Name
  2305.  * @desc Nombre mostrado para este nuevo parámetro.
  2306.  * @default
  2307.  *
  2308.  * @param NParam21 Base
  2309.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2310.  * @default 30 15
  2311.  *
  2312.  * @param NParam21 Limits
  2313.  * @desc Una fórmula para los valores mínimo y máximos para este
  2314.  * nuevo parámetro. Ver ayuda.
  2315.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2316.  *
  2317.  * @param NParam21 Buff Icons
  2318.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2319.  * Vacío no usar ninguno. Ver ayuda.
  2320.  * @default
  2321.  *
  2322.  * @param NParam21 Debuff Icons
  2323.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2324.  * Vacío no usar ninguno. Ver ayuda.
  2325.  * @default
  2326.  *
  2327.  * @param NParam22 Name
  2328.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2329.  * @default
  2330.  *
  2331.  * @param NParam22 Full Name
  2332.  * @desc Nombre mostrado para este nuevo parámetro.
  2333.  * @default
  2334.  *
  2335.  * @param NParam22 Base
  2336.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2337.  * @default 30 15
  2338.  *
  2339.  * @param NParam22 Limits
  2340.  * @desc Una fórmula para los valores mínimo y máximos para este
  2341.  * nuevo parámetro. Ver ayuda.
  2342.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2343.  *
  2344.  * @param NParam22 Buff Icons
  2345.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2346.  * Vacío no usar ninguno. Ver ayuda.
  2347.  * @default
  2348.  *
  2349.  * @param NParam22 Debuff Icons
  2350.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2351.  * Vacío no usar ninguno. Ver ayuda.
  2352.  * @default
  2353.  *
  2354.  * @param NParam23 Name
  2355.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2356.  * @default
  2357.  *
  2358.  * @param NParam23 Full Name
  2359.  * @desc Nombre mostrado para este nuevo parámetro.
  2360.  * @default
  2361.  *
  2362.  * @param NParam23 Base
  2363.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2364.  * @default 30 15
  2365.  *
  2366.  * @param NParam23 Limits
  2367.  * @desc Una fórmula para los valores mínimo y máximos para este
  2368.  * nuevo parámetro. Ver ayuda.
  2369.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2370.  *
  2371.  * @param NParam23 Buff Icons
  2372.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2373.  * Vacío no usar ninguno. Ver ayuda.
  2374.  * @default
  2375.  *
  2376.  * @param NParam23 Debuff Icons
  2377.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2378.  * Vacío no usar ninguno. Ver ayuda.
  2379.  * @default
  2380.  *
  2381.  * @param NParam24 Name
  2382.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2383.  * @default
  2384.  *
  2385.  * @param NParam24 Full Name
  2386.  * @desc Nombre mostrado para este nuevo parámetro.
  2387.  * @default
  2388.  *
  2389.  * @param NParam24 Base
  2390.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2391.  * @default 30 15
  2392.  *
  2393.  * @param NParam24 Limits
  2394.  * @desc Una fórmula para los valores mínimo y máximos para este
  2395.  * nuevo parámetro. Ver ayuda.
  2396.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2397.  *
  2398.  * @param NParam24 Buff Icons
  2399.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2400.  * Vacío no usar ninguno. Ver ayuda.
  2401.  * @default
  2402.  *
  2403.  * @param NParam24 Debuff Icons
  2404.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2405.  * Vacío no usar ninguno. Ver ayuda.
  2406.  * @default
  2407.  *
  2408.  * @param NParam25 Name
  2409.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2410.  * @default
  2411.  *
  2412.  * @param NParam25 Full Name
  2413.  * @desc Nombre mostrado para este nuevo parámetro.
  2414.  * @default
  2415.  *
  2416.  * @param NParam25 Base
  2417.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2418.  * @default 30 15
  2419.  *
  2420.  * @param NParam25 Limits
  2421.  * @desc Una fórmula para los valores mínimo y máximos para este
  2422.  * nuevo parámetro. Ver ayuda.
  2423.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2424.  *
  2425.  * @param NParam25 Buff Icons
  2426.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2427.  * Vacío no usar ninguno. Ver ayuda.
  2428.  * @default
  2429.  *
  2430.  * @param NParam25 Debuff Icons
  2431.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2432.  * Vacío no usar ninguno. Ver ayuda.
  2433.  * @default
  2434.  *
  2435.  * @param NParam26 Name
  2436.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2437.  * @default
  2438.  *
  2439.  * @param NParam26 Full Name
  2440.  * @desc Nombre mostrado para este nuevo parámetro.
  2441.  * @default
  2442.  *
  2443.  * @param NParam26 Base
  2444.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2445.  * @default 30 15
  2446.  *
  2447.  * @param NParam26 Limits
  2448.  * @desc Una fórmula para los valores mínimo y máximos para este
  2449.  * nuevo parámetro. Ver ayuda.
  2450.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2451.  *
  2452.  * @param NParam26 Buff Icons
  2453.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2454.  * Vacío no usar ninguno. Ver ayuda.
  2455.  * @default
  2456.  *
  2457.  * @param NParam26 Debuff Icons
  2458.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2459.  * Vacío no usar ninguno. Ver ayuda.
  2460.  * @default
  2461.  *
  2462.  * @param NParam27 Name
  2463.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2464.  * @default
  2465.  *
  2466.  * @param NParam27 Full Name
  2467.  * @desc Nombre mostrado para este nuevo parámetro.
  2468.  * @default
  2469.  *
  2470.  * @param NParam27 Base
  2471.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2472.  * @default 30 15
  2473.  *
  2474.  * @param NParam27 Limits
  2475.  * @desc Una fórmula para los valores mínimo y máximos para este
  2476.  * nuevo parámetro. Ver ayuda.
  2477.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2478.  *
  2479.  * @param NParam27 Buff Icons
  2480.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2481.  * Vacío no usar ninguno. Ver ayuda.
  2482.  * @default
  2483.  *
  2484.  * @param NParam27 Debuff Icons
  2485.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2486.  * Vacío no usar ninguno. Ver ayuda.
  2487.  * @default
  2488.  *
  2489.  * @param NParam28 Name
  2490.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2491.  * @default
  2492.  *
  2493.  * @param NParam28 Full Name
  2494.  * @desc Nombre mostrado para este nuevo parámetro.
  2495.  * @default
  2496.  *
  2497.  * @param NParam28 Base
  2498.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2499.  * @default 30 15
  2500.  *
  2501.  * @param NParam28 Limits
  2502.  * @desc Una fórmula para los valores mínimo y máximos para este
  2503.  * nuevo parámetro. Ver ayuda.
  2504.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2505.  *
  2506.  * @param NParam28 Buff Icons
  2507.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2508.  * Vacío no usar ninguno. Ver ayuda.
  2509.  * @default
  2510.  *
  2511.  * @param NParam28 Debuff Icons
  2512.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2513.  * Vacío no usar ninguno. Ver ayuda.
  2514.  * @default
  2515.  *
  2516.  * @param NParam29 Name
  2517.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  2518.  * @default
  2519.  *
  2520.  * @param NParam29 Full Name
  2521.  * @desc Nombre mostrado para este nuevo parámetro.
  2522.  * @default
  2523.  *
  2524.  * @param NParam29 Base
  2525.  * @desc Modo predeterminado de configuración. Ver ayuda.
  2526.  * @default 30 15
  2527.  *
  2528.  * @param NParam29 Limits
  2529.  * @desc Una fórmula para los valores mínimo y máximos para este
  2530.  * nuevo parámetro. Ver ayuda.
  2531.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  2532.  *
  2533.  * @param NParam29 Buff Icons
  2534.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  2535.  * Vacío no usar ninguno. Ver ayuda.
  2536.  * @default
  2537.  *
  2538.  * @param NParam29 Debuff Icons
  2539.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  2540.  * Vacío no usar ninguno. Ver ayuda.
  2541.  * @default
  2542.  *
  2543.  * @param PParam0 Name
  2544.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2545.  * @default
  2546.  *
  2547.  * @param PParam0 Full Name
  2548.  * @desc Nombre para mostrar para este parámetro plano.
  2549.  * @default
  2550.  *
  2551.  * @param PParam0 Base
  2552.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2553.  * @default 0
  2554.  *
  2555.  * @param PParam1 Name
  2556.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2557.  * @default
  2558.  *
  2559.  * @param PParam1 Full Name
  2560.  * @desc Nombre para mostrar para este parámetro plano.
  2561.  * @default
  2562.  *
  2563.  * @param PParam1 Base
  2564.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2565.  * @default 0
  2566.  *
  2567.  * @param PParam2 Name
  2568.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2569.  * @default
  2570.  *
  2571.  * @param PParam2 Full Name
  2572.  * @desc Nombre para mostrar para este parámetro plano.
  2573.  * @default
  2574.  *
  2575.  * @param PParam2 Base
  2576.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2577.  * @default 0
  2578.  *
  2579.  * @param PParam3 Name
  2580.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2581.  * @default
  2582.  *
  2583.  * @param PParam3 Full Name
  2584.  * @desc Nombre para mostrar para este parámetro plano.
  2585.  * @default
  2586.  *
  2587.  * @param PParam3 Base
  2588.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2589.  * @default 0
  2590.  *
  2591.  * @param PParam4 Name
  2592.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2593.  * @default
  2594.  *
  2595.  * @param PParam4 Full Name
  2596.  * @desc Nombre para mostrar para este parámetro plano.
  2597.  * @default
  2598.  *
  2599.  * @param PParam4 Base
  2600.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2601.  * @default 0
  2602.  *
  2603.  * @param PParam5 Name
  2604.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2605.  * @default
  2606.  *
  2607.  * @param PParam5 Full Name
  2608.  * @desc Nombre para mostrar para este parámetro plano.
  2609.  * @default
  2610.  *
  2611.  * @param PParam5 Base
  2612.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2613.  * @default 0
  2614.  *
  2615.  * @param PParam6 Name
  2616.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2617.  * @default
  2618.  *
  2619.  * @param PParam6 Full Name
  2620.  * @desc Nombre para mostrar para este parámetro plano.
  2621.  * @default
  2622.  *
  2623.  * @param PParam6 Base
  2624.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2625.  * @default 0
  2626.  *
  2627.  * @param PParam7 Name
  2628.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2629.  * @default
  2630.  *
  2631.  * @param PParam7 Full Name
  2632.  * @desc Nombre para mostrar para este parámetro plano.
  2633.  * @default
  2634.  *
  2635.  * @param PParam7 Base
  2636.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2637.  * @default 0
  2638.  *
  2639.  * @param PParam8 Name
  2640.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2641.  * @default
  2642.  *
  2643.  * @param PParam8 Full Name
  2644.  * @desc Nombre para mostrar para este parámetro plano.
  2645.  * @default
  2646.  *
  2647.  * @param PParam8 Base
  2648.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2649.  * @default 0
  2650.  *
  2651.  * @param PParam9 Name
  2652.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2653.  * @default
  2654.  *
  2655.  * @param PParam9 Full Name
  2656.  * @desc Nombre para mostrar para este parámetro plano.
  2657.  * @default
  2658.  *
  2659.  * @param PParam9 Base
  2660.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2661.  * @default 0
  2662.  *
  2663.  * @param PParam10 Name
  2664.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2665.  * @default
  2666.  *
  2667.  * @param PParam10 Full Name
  2668.  * @desc Nombre para mostrar para este parámetro plano.
  2669.  * @default
  2670.  *
  2671.  * @param PParam10 Base
  2672.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2673.  * @default 0
  2674.  *
  2675.  * @param PParam11 Name
  2676.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2677.  * @default
  2678.  *
  2679.  * @param PParam11 Full Name
  2680.  * @desc Nombre para mostrar para este parámetro plano.
  2681.  * @default
  2682.  *
  2683.  * @param PParam11 Base
  2684.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2685.  * @default 0
  2686.  *
  2687.  * @param PParam12 Name
  2688.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2689.  * @default
  2690.  *
  2691.  * @param PParam12 Full Name
  2692.  * @desc Nombre para mostrar para este parámetro plano.
  2693.  * @default
  2694.  *
  2695.  * @param PParam12 Base
  2696.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2697.  * @default 0
  2698.  *
  2699.  * @param PParam13 Name
  2700.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2701.  * @default
  2702.  *
  2703.  * @param PParam13 Full Name
  2704.  * @desc Nombre para mostrar para este parámetro plano.
  2705.  * @default
  2706.  *
  2707.  * @param PParam13 Base
  2708.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2709.  * @default 0
  2710.  *
  2711.  * @param PParam14 Name
  2712.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2713.  * @default
  2714.  *
  2715.  * @param PParam14 Full Name
  2716.  * @desc Nombre para mostrar para este parámetro plano.
  2717.  * @default
  2718.  *
  2719.  * @param PParam14 Base
  2720.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2721.  * @default 0
  2722.  *
  2723.  * @param PParam15 Name
  2724.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2725.  * @default
  2726.  *
  2727.  * @param PParam15 Full Name
  2728.  * @desc Nombre para mostrar para este parámetro plano.
  2729.  * @default
  2730.  *
  2731.  * @param PParam15 Base
  2732.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2733.  * @default 0
  2734.  *
  2735.  * @param PParam16 Name
  2736.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2737.  * @default
  2738.  *
  2739.  * @param PParam16 Full Name
  2740.  * @desc Nombre para mostrar para este parámetro plano.
  2741.  * @default
  2742.  *
  2743.  * @param PParam16 Base
  2744.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2745.  * @default 0
  2746.  *
  2747.  * @param PParam17 Name
  2748.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2749.  * @default
  2750.  *
  2751.  * @param PParam17 Full Name
  2752.  * @desc Nombre para mostrar para este parámetro plano.
  2753.  * @default
  2754.  *
  2755.  * @param PParam17 Base
  2756.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2757.  * @default 0
  2758.  *
  2759.  * @param PParam18 Name
  2760.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2761.  * @default
  2762.  *
  2763.  * @param PParam18 Full Name
  2764.  * @desc Nombre para mostrar para este parámetro plano.
  2765.  * @default
  2766.  *
  2767.  * @param PParam18 Base
  2768.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2769.  * @default 0
  2770.  *
  2771.  * @param PParam19 Name
  2772.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2773.  * @default
  2774.  *
  2775.  * @param PParam19 Full Name
  2776.  * @desc Nombre para mostrar para este parámetro plano.
  2777.  * @default
  2778.  *
  2779.  * @param PParam19 Base
  2780.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2781.  * @default 0
  2782.  *
  2783.  * @param PParam20 Name
  2784.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2785.  * @default
  2786.  *
  2787.  * @param PParam20 Full Name
  2788.  * @desc Nombre para mostrar para este parámetro plano.
  2789.  * @default
  2790.  *
  2791.  * @param PParam20 Base
  2792.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2793.  * @default 0
  2794.  *
  2795.  * @param PParam21 Name
  2796.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2797.  * @default
  2798.  *
  2799.  * @param PParam21 Full Name
  2800.  * @desc Nombre para mostrar para este parámetro plano.
  2801.  * @default
  2802.  *
  2803.  * @param PParam21 Base
  2804.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2805.  * @default 0
  2806.  *
  2807.  * @param PParam22 Name
  2808.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2809.  * @default
  2810.  *
  2811.  * @param PParam22 Full Name
  2812.  * @desc Nombre para mostrar para este parámetro plano.
  2813.  * @default
  2814.  *
  2815.  * @param PParam22 Base
  2816.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2817.  * @default 0
  2818.  *
  2819.  * @param PParam23 Name
  2820.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2821.  * @default
  2822.  *
  2823.  * @param PParam23 Full Name
  2824.  * @desc Nombre para mostrar para este parámetro plano.
  2825.  * @default
  2826.  *
  2827.  * @param PParam23 Base
  2828.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2829.  * @default 0
  2830.  *
  2831.  * @param PParam24 Name
  2832.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2833.  * @default
  2834.  *
  2835.  * @param PParam24 Full Name
  2836.  * @desc Nombre para mostrar para este parámetro plano.
  2837.  * @default
  2838.  *
  2839.  * @param PParam24 Base
  2840.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2841.  * @default 0
  2842.  *
  2843.  * @param PParam25 Name
  2844.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2845.  * @default
  2846.  *
  2847.  * @param PParam25 Full Name
  2848.  * @desc Nombre para mostrar para este parámetro plano.
  2849.  * @default
  2850.  *
  2851.  * @param PParam25 Base
  2852.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2853.  * @default 0
  2854.  *
  2855.  * @param PParam26 Name
  2856.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2857.  * @default
  2858.  *
  2859.  * @param PParam26 Full Name
  2860.  * @desc Nombre para mostrar para este parámetro plano.
  2861.  * @default
  2862.  *
  2863.  * @param PParam26 Base
  2864.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2865.  * @default 0
  2866.  *
  2867.  * @param PParam27 Name
  2868.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2869.  * @default
  2870.  *
  2871.  * @param PParam27 Full Name
  2872.  * @desc Nombre para mostrar para este parámetro plano.
  2873.  * @default
  2874.  *
  2875.  * @param PParam27 Base
  2876.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2877.  * @default 0
  2878.  *
  2879.  * @param PParam28 Name
  2880.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2881.  * @default
  2882.  *
  2883.  * @param PParam28 Full Name
  2884.  * @desc Nombre para mostrar para este parámetro plano.
  2885.  * @default
  2886.  *
  2887.  * @param PParam28 Base
  2888.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2889.  * @default 0
  2890.  *
  2891.  * @param PParam29 Name
  2892.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  2893.  * @default
  2894.  *
  2895.  * @param PParam29 Full Name
  2896.  * @desc Nombre para mostrar para este parámetro plano.
  2897.  * @default
  2898.  *
  2899.  * @param PParam29 Base
  2900.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  2901.  * @default 0
  2902.  *
  2903.  * @param BParam0 Name
  2904.  * @desc Alias para este parámetro. Puedes redefirlo.
  2905.  * @default mhp
  2906.  *
  2907.  * @param BParam0 Base Eval
  2908.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2909.  * En blanco para usar el modo predeterminado.
  2910.  * @default
  2911.  *
  2912.  * @param BParam0 Limits
  2913.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2914.  * Vida
  2915.  * @default (this.isActor())? [1, 9999, 12000] : [1, 999999, 1200000]
  2916.  *
  2917.  * @param BParam1 Name
  2918.  * @desc Alias para este parámetro. Puedes redefirlo.
  2919.  * @default mmp
  2920.  *
  2921.  * @param BParam1 Base Eval
  2922.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2923.  * En blanco para usar el modo predeterminado.
  2924.  * @default
  2925.  *
  2926.  * @param BParam1 Limits
  2927.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2928.  * Magia
  2929.  * @default (this.isActor())? [0, 9999, 12000] : [0, 9999, 12000]
  2930.  *
  2931.  * @param BParam2 Name
  2932.  * @desc Alias para este parámetro. Puedes redefirlo.
  2933.  * @default atk
  2934.  *
  2935.  * @param BParam2 Base Eval
  2936.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2937.  * En blanco para usar el modo predeterminado.
  2938.  * @default
  2939.  *
  2940.  * @param BParam2 Limits
  2941.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2942.  * Ataque
  2943.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  2944.  *
  2945.  * @param BParam3 Name
  2946.  * @desc Alias para este parámetro. Puedes redefirlo.
  2947.  * @default def
  2948.  *
  2949.  * @param BParam3 Base Eval
  2950.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2951.  * En blanco para usar el modo predeterminado.
  2952.  * @default
  2953.  *
  2954.  * @param BParam3 Limits
  2955.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2956.  * Defensa
  2957.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  2958.  *
  2959.  * @param BParam4 Name
  2960.  * @desc Alias para este parámetro. Puedes redefirlo.
  2961.  * @default mat
  2962.  *
  2963.  * @param BParam4 Base Eval
  2964.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2965.  * En blanco para usar el modo predeterminado.
  2966.  * @default
  2967.  *
  2968.  * @param BParam4 Limits
  2969.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2970.  * Ataque mágico
  2971.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  2972.  *
  2973.  * @param BParam5 Name
  2974.  * @desc Alias para este parámetro. Puedes redefirlo.
  2975.  * @default mdf
  2976.  *
  2977.  * @param BParam5 Base Eval
  2978.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2979.  * En blanco para usar el modo predeterminado.
  2980.  * @default
  2981.  *
  2982.  * @param BParam5 Limits
  2983.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2984.  * Defensa mágica
  2985.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  2986.  *
  2987.  * @param BParam6 Name
  2988.  * @desc Alias para este parámetro. Puedes redefirlo.
  2989.  * @default agi
  2990.  *
  2991.  * @param BParam6 Base Eval
  2992.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  2993.  * En blanco para usar el modo predeterminado.
  2994.  * @default
  2995.  *
  2996.  * @param BParam6 Limits
  2997.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  2998.  * Agilidad
  2999.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  3000.  *
  3001.  * @param BParam7 Name
  3002.  * @desc Alias para este parámetro. Puedes redefirlo.
  3003.  * @default luk
  3004.  *
  3005.  * @param BParam7 Base Eval
  3006.  * @desc Una fórmula para usar en lugar del modo predeterminado del MV.
  3007.  * En blanco para usar el modo predeterminado.
  3008.  * @default
  3009.  *
  3010.  * @param BParam7 Limits
  3011.  * @desc Una fórmula para los valores mínimo y máximos. Ver ayuda.
  3012.  * Suerte
  3013.  * @default (this.isActor())? [1, 999, 1200]   : [1, 999, 1200]
  3014.  *
  3015.  * @param XParam0 Full Name
  3016.  * @desc Nombre mostrado para este parámetro extra.
  3017.  * @default Puntería
  3018.  *
  3019.  * @param XParam0 Base
  3020.  * @desc Fórmula para el parámetro-x hit (Puntería).
  3021.  * @default 0
  3022.  *
  3023.  * @param XParam1 Full Name
  3024.  * @desc Nombre mostrado para este parámetro extra.
  3025.  * @default Evasión
  3026.  *
  3027.  * @param XParam1 Base
  3028.  * @desc Fórmula para el parámetro-x eva (EVAsión).
  3029.  * @default 0
  3030.  *
  3031.  * @param XParam2 Full Name
  3032.  * @desc Nombre mostrado para este parámetro extra.
  3033.  * @default Probabilidad de crítico
  3034.  *
  3035.  * @param XParam2 Base
  3036.  * @desc Fórmula para el parámetro-x cri (probabilidad de CRÍtico).
  3037.  * @default 0
  3038.  *
  3039.  * @param XParam3 Full Name
  3040.  * @desc Nombre mostrado para este parámetro extra.
  3041.  * @default Evadir crítico
  3042.  *
  3043.  * @param XParam3 Base
  3044.  * @desc Fórmula para el parámetro-x cev (evadir Crítico).
  3045.  * @default 0
  3046.  *
  3047.  * @param XParam4 Full Name
  3048.  * @desc Nombre mostrado para este parámetro extra.
  3049.  * @default Evasión mágica
  3050.  *
  3051.  * @param XParam4 Base
  3052.  * @desc Fórmula para el parámetro-x param mev (evasión Mágica).
  3053.  * @default 0
  3054.  *
  3055.  * @param XParam5 Full Name
  3056.  * @desc Nombre mostrado para este parámetro extra.
  3057.  * @default Reflejo mágico
  3058.  *
  3059.  * @param XParam5 Base
  3060.  * @desc Fórmula para el parámetro-x mrf (reflejar Magia).
  3061.  * @default 0
  3062.  *
  3063.  * @param XParam6 Full Name
  3064.  * @desc Nombre mostrado para este parámetro extra.
  3065.  * @default Contraataque
  3066.  *
  3067.  * @param XParam6 Base
  3068.  * @desc Fórmula para el parámetro-x cnt (CoNTraataque).
  3069.  * @default 0
  3070.  *
  3071.  * @param XParam7 Full Name
  3072.  * @desc Nombre mostrado para este parámetro extra.
  3073.  * @default Regenerar vida
  3074.  *
  3075.  * @param XParam7 Base
  3076.  * @desc Fórmula para el parámetro-x hrg (regeneración de vida).
  3077.  * @default 0
  3078.  *
  3079.  * @param XParam8 Full Name
  3080.  * @desc Nombre mostrado para este parámetro extra.
  3081.  * @default Regenerar magia
  3082.  *
  3083.  * @param XParam8 Base
  3084.  * @desc Fórmula para el parámetro-x mrg (regeneración de magia).
  3085.  * @default 0
  3086.  *
  3087.  * @param XParam9 Full Name
  3088.  * @desc Nombre mostrado para este parámetro extra.
  3089.  * @default Regenerar turbo
  3090.  *
  3091.  * @param XParam9 Base
  3092.  * @desc Fórmula para el parámetro-x trg (regeneración de tp).
  3093.  * @default 0
  3094.  *
  3095.  * @param SParam0 Full Name
  3096.  * @desc Nombre mostrado para este parámetro especial.
  3097.  * @default Ser el objetivo
  3098.  *
  3099.  * @param SParam0 Base
  3100.  * @desc Fórmula para el parámetro-s tgr (ser el objetivo).
  3101.  * @default 1
  3102.  *
  3103.  * @param SParam1 Full Name
  3104.  * @desc Nombre mostrado para este parámetro especial.
  3105.  * @default Efecto defensivo
  3106.  *
  3107.  * @param SParam1 Base
  3108.  * @desc Fórmula para el parámetro-s grd (efecto de defensa).
  3109.  * @default 1
  3110.  *
  3111.  * @param SParam2 Full Name
  3112.  * @desc Nombre mostrado para este parámetro especial.
  3113.  * @default Efecto de recuperación
  3114.  *
  3115.  * @param SParam2 Base
  3116.  * @desc Fórmula para el parámetro-s rec (efecto de RECuperación).
  3117.  * @default 1
  3118.  *
  3119.  * @param SParam3 Full Name
  3120.  * @desc Nombre mostrado para este parámetro especial.
  3121.  * @default Farmacología
  3122.  *
  3123.  * @param SParam3 Base
  3124.  * @desc Fórmula para el parámetro-s pha (PHArmacología).
  3125.  * @default 1
  3126.  *
  3127.  * @param SParam4 Full Name
  3128.  * @desc Nombre mostrado para este parámetro especial.
  3129.  * @default Coste de mp
  3130.  *
  3131.  * @param SParam4 Base
  3132.  * @desc Fórmula para el parámetro-s mcr (coste de Mp).
  3133.  * @default 1
  3134.  *
  3135.  * @param SParam5 Full Name
  3136.  * @desc Nombre mostrado para este parámetro especial.
  3137.  * @default Coste de tp
  3138.  *
  3139.  * @param SParam5 Base
  3140.  * @desc Fórmula para el parámetro-s tcr (coste de Tp).
  3141.  * @default 1
  3142.  *
  3143.  * @param SParam6 Full Name
  3144.  * @desc Nombre mostrado para este parámetro especial.
  3145.  * @default Daño físico recibido
  3146.  *
  3147.  * @param SParam6 Base
  3148.  * @desc Fórmula para el parámetro-s pdr (daño físico recibido).
  3149.  * @default 1
  3150.  *
  3151.  * @param SParam7 Full Name
  3152.  * @desc Nombre mostrado para este parámetro especial.
  3153.  * @default Daño mágico recibido
  3154.  *
  3155.  * @param SParam7 Base
  3156.  * @desc Fórmula para el parámetro-s mdr (daño Mágico recibido).
  3157.  * @default 1
  3158.  *
  3159.  * @param SParam8 Full Name
  3160.  * @desc Nombre mostrado para este parámetro especial.
  3161.  * @default Daño por el terreno
  3162.  *
  3163.  * @param SParam8 Base
  3164.  * @desc Fórmula para el parámetro-s fdr (daño por el suelo).
  3165.  * @default 1
  3166.  *
  3167.  * @param SParam9 Full Name
  3168.  * @desc Nombre mostrado para este parámetro especial.
  3169.  * @default Experiencia obtenible
  3170.  *
  3171.  * @param SParam9 Base
  3172.  * @desc Fórmula para el parámetro-s exr (EXperiencia obtenida).
  3173.  * @default 1
  3174.  *
  3175.  * @param Developer HaltJS
  3176.  * @desc Si está activado salta cuando una función personalizada
  3177.  * da error.   No - false   Si - true
  3178.  * @default false
  3179.  *
  3180.  * @help
  3181.  * ============================================================================
  3182.  * Introducción
  3183.  * ============================================================================
  3184.  *
  3185.  * El RPG Maker MV viene con unos tipos fijos de parámetros, son útiles pero
  3186.  * tienen sus propósitos específicos y limita el modo en que los puedes usar.
  3187.  *
  3188.  * Coneste complemento puedes añadir nuevos para usarlos en tus fórmulas
  3189.  * y cualquier uso que puedas imaginar.
  3190.  *
  3191.  * Existen 2 nuevos tipos de parámetros:
  3192.  *  -Nuevo/Normal Params: Basados en el nivel igual que los que vienen por
  3193.  *   defecto, con los efectos de fortalecer/debilitar y modificadores.
  3194.  *   Además de una opción que puede servir en distintos complementos
  3195.  *   de niveles de enemigos.
  3196.  *
  3197.  *  -Planos Params: No basados en nivel, funcionan como los x/sparams
  3198.  *   con modificadores.
  3199.  *
  3200.  * Además se ha añadido personalización para los x/sparams que permite mayor
  3201.  * control.
  3202.  * Y una nueva característica que permite 2 topes para los params y nparams.
  3203.  *
  3204.  * ============================================================================
  3205.  * Uso
  3206.  * ============================================================================
  3207.  *
  3208.  * Los NParams y PParams son calculados mediante sus respectivas fórmulas:
  3209.  *
  3210.  * NParam = (Base + Plus) * Rate * XRate * Buff + Flat + XFlat
  3211.  * PParam = (Base + Plus) * Rate + Flat
  3212.  *
  3213.  *   -Base es distinto entre ambas. Para los NParams está basado en el nivel.
  3214.  *    Para los PParam el valor es fijo emulando los x/sparams (0 y 1).
  3215.  *   -Plus es la suma de todas las características plus que atañen al personaje.
  3216.  *    En el caso de NParam existe un extra añadido mediante llamadas a script
  3217.  *    y efectos de los objetos.
  3218.  *   -Rate es el producto de todos los multiplicadores que atañen al personaje.
  3219.  *   -XRate es el producto de todos los multiplicadores especiales que atañen
  3220.  *    al personaje.
  3221.  *   -Buff es el efecto de fortalecer/debilitar.
  3222.  *   -Flat es la suma de todas las características flat que atañen al personaje.
  3223.  *    No se ve afectado por los multiplicadores.
  3224.  *   -XFlat es la suma de todas las características flat especiales que atañen
  3225.  *    al personaje. No se ve afectado por los multiplicadores.
  3226.  *
  3227.  *
  3228.  * XRate, XFlat y Buff permiten ir más allá del primer límite.
  3229.  *
  3230.  * Para hacer los XParams y SParams más personalizables he cambiado un poco
  3231.  * sus fórmulas:
  3232.  *
  3233.  * Param  = (Base + Plus) * Rate * XRate * Buff + Flat + XFlat
  3234.  * XParam = (Base + Plus) * Rate + Flat
  3235.  * SParam = (Base + Plus) * Rate + Flat
  3236.  *
  3237.  * Siguen funcionando como de costumbre pero ahora puedes añadir más
  3238.  * características para tener un mayor control.
  3239.  *
  3240.  * Para añadir características basta con añadir etiquetas en los cuadros de notas
  3241.  * respectivos.
  3242.  *
  3243.  * Héroes, clases y enemigos solo:
  3244.  *
  3245.  * <NPARAM: NParam Base Grow HGrow Cap>
  3246.  *    -Cambia la base predeterminada del NParam por una específica.
  3247.  *     NParam se puede referenciar por su nombre o índice.
  3248.  *     Base es el valor inicial en el nivel 1.
  3249.  *     Grow es cuanto se incrementa por nivel. Si está vacío cuenta como 0.
  3250.  *     HGrow es similar a Grow pero de crecimiento exponencial.
  3251.  *     Cap es el nivel en el cual el NParam deja de subir.
  3252.  *     Puedes usar números decimales.
  3253.  *    
  3254.  *
  3255.  * Armas y armaduras solo:
  3256.  *
  3257.  * <NPARAM: NParam Value>
  3258.  *    -Set default NParam given for specified weapon/armor.
  3259.  *     NParam can be referenced by it's name or index.
  3260.  *    
  3261.  *
  3262.  * Héroes, clases, enemigos, armas, armaduras y estados alterados:
  3263.  *
  3264.  * <NDEBUFFRATE: NParam Rate>
  3265.  *    -Se usa para la resistencia al debilitamiento en dicho nparam debuff,
  3266.  *     básicamente es la probabilidad de acierto.
  3267.  *     0.5 significa 50% acierto, 0.2 es 20%, etc.
  3268.  *
  3269.  *
  3270.  * <NPARAMPLUS: NParam Plus>
  3271.  * <NPARAMRATE: NParam Rate>
  3272.  * <NPARAMXRATE: NParam XRate>
  3273.  * <NPARAMFLAT: NParam Flat>
  3274.  * <NPARAMXFLAT: NParam XFlat>
  3275.  *    -Modificadores para el nparam.
  3276.  *
  3277.  * <PPARAMPLUS: PParam Plus>
  3278.  * <PPARAMRATE: PParam Rate>
  3279.  * <PPARAMFLAT: PParam Flat>
  3280.  *    -Modificadores para el pparam.
  3281.  *
  3282.  * <PARAMPLUS: Param Plus>
  3283.  * <PARAMRATE: Param Rate>
  3284.  * <PARAMXRATE: Param XRate>
  3285.  * <PARAMFLAT: Param Flat>
  3286.  * <PARAMXFLAT: Param XFlat>
  3287.  * <xPARAMPLUS: XParam Plus>
  3288.  * <XPARAMRATE: XParam Rate>
  3289.  * <XPARAMFLAT: XParam Flat>
  3290.  * <SPARAMPLUS: SParam Plus>
  3291.  * <SPARAMRATE: SParam Rate>
  3292.  * <SPARAMFLAT: SParam Flat>
  3293.  *    -Modificadores para los parámetros básicos, x e y.
  3294.  *     Los he incluido para dar más control.
  3295.  *
  3296.  *
  3297.  * Habilidades y objetos solo:
  3298.  *
  3299.  * <NBUFF: NParam turns>
  3300.  * <NDEBUFF: NParam turns>
  3301.  * <REMOVE NBUFF: NParam>
  3302.  * <REMOVE NDEBUFF: NParam>
  3303.  *    -Efectos de añadir y quitar fortalecimiento/debilitamiento.
  3304.  *
  3305.  * <NPARAM GROW: NParam amount>
  3306.  *    -Permite incrementar/decrementar el nparam una cantidad específica.
  3307.  *
  3308.  * <PPARAM GROW: PParam amount>
  3309.  *    -Permite incrementar/decrementar el pparam una cantidad específica.
  3310.  *
  3311.  * ============================================================================
  3312.  * Lunatic Mode
  3313.  * ============================================================================
  3314.  *
  3315.  * Para aquellos que quieren utilizar un modo personalizado para calcular
  3316.  * los parámetros he añadido el modo lunático.
  3317.  * El modo lunático permite utilizar código javascript diréctamente.
  3318.  *
  3319.  * Usa las siguientes etiquetas en las clases y enemigos:
  3320.  *
  3321.  * <CUSTOM NPARAM BASE NPARAM>
  3322.  * value = 2;
  3323.  * value += 25;
  3324.  * </CUSTOM NPARAM BASE>
  3325.  *
  3326.  * <CUSTOM PARAM BASE PARAM>
  3327.  * value = base;
  3328.  * value += 25;
  3329.  * </CUSTOM PARAM BASE>
  3330.  *
  3331.  * Dicho código se ejecutará en lugar de la fórmula predeterminada.
  3332.  * Los parámetros básicos además permiten usar la variable 'base' dentro de su
  3333.  * fórmula. Equivale al valor que tendría en el nivel 1.
  3334.  *
  3335.  * value - Esta es la variable donde se almacena el resultado.
  3336.  *         Si no se especifica será 0.
  3337.  *
  3338.  * Etiquetas para equipamiento:
  3339.  *
  3340.  * <CUSTOM NPARAMS>
  3341.  * javascript
  3342.  * javascript
  3343.  * 0 = $gameVariables.value(35)
  3344.  * int = $gameSwitches.value(12)? 50 : 1
  3345.  * </CUSTOM NPARAMS>
  3346.  *
  3347.  * <CUSTOM PPARAMS>
  3348.  * javascript
  3349.  * javascript
  3350.  * 0 = $gameVariables.value(35)
  3351.  * int = $gameSwitches.value(12)? 50 : 1
  3352.  * </CUSTOM PPARAMS>
  3353.  *
  3354.  * <CUSTOM PARAMS>
  3355.  * javascript
  3356.  * javascript
  3357.  * 0 = $gameVariables.value(35)
  3358.  * mhp = $gameSwitches.value(12)? 50 : 1
  3359.  * </CUSTOM PARAMS>
  3360.  *
  3361.  * Añade valores evaluables para nparams, pparams y params básicos a armas y
  3362.  * armaduras.
  3363.  * Primero se añade código javascript que afecta todos los parámetros de su
  3364.  * tipo. Después se utiliza un identificador que puede ser un número o el
  3365.  * nombre del parámetro, un igual y la fórmula que se va a evaluar.
  3366.  *
  3367.  * Ejemplo:
  3368.  * <CUSTOM PARAMS>
  3369.  * var bonus = this.level;
  3370.  * var restrict = 5;
  3371.  * mhp = $gameVariables.value(35) + bonus * 5 - restrict
  3372.  * mmp = ($gameSwitches.value(12)? 50 : 1) + bonus / restrict
  3373.  * </CUSTOM PARAMS>
  3374.  *
  3375.  * ============================================================================
  3376.  * Parámetros
  3377.  * ============================================================================
  3378.  *
  3379.  * Use New Param System: Con la llegada de la versión 1.5.0 del MV se ha
  3380.  * introducido un nuevo modo de configurar los parámetros del plugin que
  3381.  * pretendo aprovechar.
  3382.  * Puedes crear hasta 100 de cada tipo con índices del 0 al 99.
  3383.  * El sistema antiguo permite 30 de cada tipo con índices del 0 al 29 y es
  3384.  * tedioso de mantener y mejorar. Dicho sistema se eliminará en una versión
  3385.  * futura.
  3386.  *
  3387.  * NParam/PParam/Bparam Name: el nombre interno que le vas a dar al parámetro.
  3388.  * Se utilizará en fórmulas y se puede usar como referencia en las etiquetas en
  3389.  * las notas. Dejar vacío si no se quiere usar.
  3390.  *
  3391.  * - Nota: Los bparams existen de por sí pero se pueden redefinir.
  3392.  *
  3393.  * NParam/PParam/XParam/SParam Full Name: el nombre que quieres dar al nparam.
  3394.  * Por el momento no se usa aquí pero sirve para los plugins que usen este.
  3395.  *
  3396.  * NParam Base: la fórmula predeterminada para clases y enemigos que no tengan.
  3397.  * El primer númber es el valor en el nivel 1. El segundo es cuanto sube
  3398.  * cada nivel. El tercero es de crecimiento exponencial y el cuarto es el nivel
  3399.  * en el cual va a dejar de subir.
  3400.  *
  3401.  * PParam/XParam/SParam Base: es un valor básico con el que los pparam pueden
  3402.  * emular los x/sparams, y dar más control a los x/sparams mediante fórmulas.
  3403.  * 0 suele ser el valor de un xparam y 1 el de un sparam.
  3404.  *
  3405.  * NParam/BParam Base Eval: permite el uso de formulas para los nparams y
  3406.  * bparams, al igual que los p/x/sparams. Si se define una fórmula se utilizará
  3407.  * en lugar del modo predeterminado del MV para los BParams o del modo
  3408.  * tradicional de los NParams.
  3409.  * Los parámetros básicos además permiten usar la variable 'base' dentro de su
  3410.  * fórmula. Equivale al valor que tendría en el nivel 1.
  3411.  *
  3412.  * NParam/BParam Limits: los valores mínimo y máximo que puede tener el nparam.
  3413.  * Ahora se utiliza como fórmula que da 3 valores.
  3414.  * El primero es el mínimo, el segundo es máximo normal y el tercero es
  3415.  * el extra máximo.
  3416.  * (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  3417.  *
  3418.  * PParam Limits: igual que el anterior pero solo usa 2 valores (mínimo y máximo).
  3419.  * (this.isActor())? [0, 999] : [0, 999]
  3420.  *
  3421.  * NParam Buff Icons: conjunto de iconos separados por espacios.
  3422.  * Cuando dicho parámetro se vea afectado por un fortalecimiento se mostrará
  3423.  * el icono correspondiente al fortalecimiento acumulado.
  3424.  * Si se deja en blanco no se usará.
  3425.  *
  3426.  * NParam Debuff Icons: igual que el anterior pero para los
  3427.  * debilitamientos del parámetro.
  3428.  *
  3429.  * Developer HaltJS: Esta es una variable de uso durante el desarrollo del juego
  3430.  * útil cuando quieres comprobar si hay alguna función personalizada incorrecta.
  3431.  * Cuando está activado al encontrar un error el juego se para y muestra
  3432.  * en qué parámetro se encuentra el error.
  3433.  * Cuando está desactivado ignora el error y el juego continúa.
  3434.  *
  3435.  * ============================================================================
  3436.  * Más Parámetros
  3437.  * ============================================================================
  3438.  *
  3439.  * ---Modo antiguo---
  3440.  * Si el Main Core está disponible puedes añadir más parámetros.
  3441.  *
  3442.  * Mediante los comandos "NParam" y "PParam" es posible añadirlos.
  3443.  * Nota: Los campos de la base de datos que hacen referencia a parámetros cuyos
  3444.  * índices son mayores del 29 deben hacer referencia por número. El código
  3445.  * javascript, en cambio, sí que puede hacer referencia por el nombre.
  3446.  *
  3447.  * NParam 30 crea Creatividad
  3448.  * base 30 12 0.3 50
  3449.  * limit (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  3450.  * buff 1 2 3 4 5 6 7
  3451.  *
  3452.  * PParam 30 parry Bloqueo de flechas
  3453.  * base 0.2
  3454.  *
  3455.  * ============================================================================
  3456.  * Incompatibilidades
  3457.  * ============================================================================
  3458.  *
  3459.  * No se conocen complementos que sean incompatibles hasta la fecha.
  3460.  *
  3461.  * ============================================================================
  3462.  * Problemas conocidos
  3463.  * ============================================================================
  3464.  *
  3465.  * Por el momento ninguno.
  3466.  *
  3467.  * ============================================================================
  3468.  * Historial de versiones
  3469.  * ============================================================================
  3470.  *
  3471.  * Versión 1.05:
  3472.  * - Se han añadido parámetros evaluables para el equipamiento.
  3473.  * - Se ha añadido el uso de nparams en el equipamiento.
  3474.  * - Se ha expandido el modo lunático para incluir a los personajes y classes
  3475.  *   para enemigos.
  3476.  * - Permite el crecimiento de los pparams.
  3477.  * - Permite fórmulas personalizadas para los parámetros básicos y los nparams.
  3478.  * - Uso del sistema de parámetros del 1.5.0.
  3479.  *
  3480.  * Versión 1.04:
  3481.  * - Permite el ICF-Soft Main Core.
  3482.  * - Se ha expandido el modo lunático para afectar enemigos.
  3483.  * - Mayor control para los nparams.
  3484.  *
  3485.  * Versión 1.03:
  3486.  * - Se ha añadido el modificador XFlat para el doble máximo.
  3487.  * - Se ha subido la cantidad de n/pparams a 30.
  3488.  * - Permite nombrar los parámetros especiales y extra.
  3489.  *
  3490.  * Versión 1.02:
  3491.  * - Permite añadir alias o redefinir los parámetros básicos.
  3492.  *
  3493.  * Versión 1.01:
  3494.  * - Se empieza a utilizar el ICF-Soft Main Utility.
  3495.  * - Se ha añadido el modo lunático para params y nparams.
  3496.  * - Se ha cambiado el cómo funcionan los límites mínimo y máximo.
  3497.  * - Se ha añadido el doble máximo.
  3498.  * - Se han añadido más características.
  3499.  * - Se pueden usar los base params.
  3500.  *
  3501.  * Versión 1.00:
  3502.  * - Complemento terminado.
  3503.  *
  3504.  * ============================================================================
  3505.  *
  3506.  * Para juegos comerciales y no comerciales.
  3507.  * Se debe incluir a ICF-Soft en los créditos.
  3508.  * Esta cabecera debe incluirse íntegramente con el plugin.
  3509.  *
  3510.  * ============================================================================
  3511. */
  3512. /*~struct~NormalParams:
  3513.  * @param Name
  3514.  * @desc Name for this new param in lowercase without spaces. Empty to skip.
  3515.  * @default
  3516.  *
  3517.  * @param Full Name
  3518.  * @desc Name that will be shown for this new param.
  3519.  * @default
  3520.  *
  3521.  * @param Base
  3522.  * @desc How this new param is configured by default. See help.
  3523.  * @default 30 15
  3524.  *
  3525.  * @param Base Eval
  3526.  * @desc A formula to use instead of base.
  3527.  * @default
  3528.  *
  3529.  * @param Limits
  3530.  * @desc Formula for min and max value for this new param. See help.
  3531.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  3532.  *
  3533.  * @param Buff Icons
  3534.  * @desc Icons for each buff stack. Empty to don't use. See help.
  3535.  * @default
  3536.  *
  3537.  * @param Debuff Icons
  3538.  * @desc Icons for each debuff stack. Empty to don't use. See help.
  3539.  * @default
  3540.  *
  3541.  */
  3542. /*~struct~PlainParams:
  3543.  * @param Name
  3544.  * @desc Name for this plain param in lowercase without spaces. Empty to skip.
  3545.  * @default
  3546.  *
  3547.  * @param Full Name
  3548.  * @desc Name that will be shown for this plain param.
  3549.  * @default
  3550.  *
  3551.  * @param Base
  3552.  * @desc How this plain param is configured by default. See help.
  3553.  * @default 0
  3554.  *
  3555.  * @param Limits
  3556.  * @desc Formula for min and max value for this plain param. See help.
  3557.  * @default (this.isActor())? [0, 999] : [0, 999]
  3558.  *
  3559.  */
  3560. /*~struct~NormalParams:es
  3561.  * @param Name
  3562.  * @desc Nombre para este nuevo parámetro en minúsculas. Vacío para saltar.
  3563.  * @default
  3564.  *
  3565.  * @param Full Name
  3566.  * @desc Nombre mostrado para este nuevo parámetro.
  3567.  * @default
  3568.  *
  3569.  * @param Base
  3570.  * @desc Modo predeterminado de configuración. Ver ayuda.
  3571.  * @default 30 15
  3572.  *
  3573.  * @param Base Eval
  3574.  * @desc Una fórmula para usar en lugar del modo predeterminado.
  3575.  * @default
  3576.  *
  3577.  * @param Limits
  3578.  * @desc Una fórmula para los valores mínimo y máximos para este
  3579.  * nuevo parámetro. Ver ayuda.
  3580.  * @default (this.isActor())? [0, 999, 1200] : [0, 999, 1200]
  3581.  *
  3582.  * @param Buff Icons
  3583.  * @desc Iconos a mostrar para cada valor de fortalecimiento.
  3584.  * Vacío no usar ninguno. Ver ayuda.
  3585.  * @default
  3586.  *
  3587.  * @param Debuff Icons
  3588.  * @desc Iconos a mostrar para cada valor de debilitamiento.
  3589.  * Vacío no usar ninguno. Ver ayuda.
  3590.  * @default
  3591.  *
  3592.  */
  3593. /*~struct~PlainParams:es
  3594.  * @param Name
  3595.  * @desc Nombre para este parámetro plano en minúsculas. Vacío para saltar.
  3596.  * @default
  3597.  *
  3598.  * @param Full Name
  3599.  * @desc Nombre para mostrar para este parámetro plano.
  3600.  * @default
  3601.  *
  3602.  * @param Base
  3603.  * @desc Fórmula para calcular el Valor básico de este parámetro plano.
  3604.  * @default 0
  3605.  *
  3606.  * @param Limits
  3607.  * @desc Una fórmula para los valores mínimo y máximos para este
  3608.  * parámetro plano. Ver ayuda.
  3609.  * @default (this.isActor())? [0, 999] : [0, 999]
  3610.  *
  3611.  */
  3612. //=============================================================================
  3613.  
  3614. //=============================================================================
  3615. // Parameter Variables
  3616. //=============================================================================
  3617.  
  3618. ICF.Parameters = PluginManager.parameters('ICFSoft_ParamsCore');
  3619. ICF.Param = ICF.Param || {};
  3620.  
  3621. ICF.Param.NParams = [];
  3622. ICF.Param.NParamsFullName = [];
  3623. ICF.Param.NParamBase = [];
  3624. ICF.Param.NParamLimit = [];
  3625. ICF.Param.NParamBuffIcons = [];
  3626. ICF.Param.NParamDebuffIcons = [];
  3627. ICF.Param.PParams = [];
  3628. ICF.Param.PParamsFullName = [];
  3629. ICF.Param.PParamBase = [];
  3630. ICF.Param.PParamLimit = [];
  3631. ICF.Param.BParamLimit = [];
  3632. ICF.Param.BParamBase = [];
  3633. ICF.Param.XParamsFullName = [];
  3634. ICF.Param.XParamBase = [];
  3635. ICF.Param.SParamsFullName = [];
  3636. ICF.Param.SParamBase = [];
  3637.  
  3638. ICF.Param.BParams = ["mhp", "mmp", "atk", "def", "mat", "mdf", "agi", "luk"];
  3639. ICF.Param.XParams = ["hit", "eva", "cri", "cev", "mev", "mrf", "cnt", "hrg", "mrg", "trg"];
  3640. ICF.Param.SParams = ["tgr", "grd", "rec", "pha", "mcr", "tcr", "pdr", "mdr", "fdr", "exr"];
  3641.  
  3642. if (ICF.Parameters['Use New Param System'].toLowerCase() === "true") {
  3643.     ICF.temp = JSON.parse(ICF.Parameters['NParams']);
  3644.     for (var i = 0; i < ICF.temp.length; i++) {
  3645.     ICF.temp[i] = JSON.parse(ICF.temp[i]);
  3646.     ICF.Param.NParams[i] = ICF.temp[i]['Name'];
  3647.     ICF.Param.NParamsFullName[i] = ICF.temp[i]['Full Name'];
  3648.     ICF.Param.NParamBase[i] = ICF.temp[i]['Base'].split(/\s+/).leaveNumbers();
  3649.     if (ICF.temp[i]['Base Eval'].trim().length > 0) ICF.Param.NParamBase[i] = ICF.temp[i]['Base Eval'];
  3650.     ICF.Param.NParamLimit[i] = ICF.temp[i]['Limits'];
  3651.     ICF.Param.NParamBuffIcons[i] = ICF.temp[i]['Buff Icons'].split(/\s+/).leaveNumbers();
  3652.     ICF.Param.NParamDebuffIcons[i] = ICF.temp[i]['Debuff Icons'].split(/\s+/).leaveNumbers();
  3653.     }
  3654.     ICF.temp = JSON.parse(ICF.Parameters['PParams']);
  3655.     for (var i = 0; i < ICF.temp.length; i++) {
  3656.     ICF.temp[i] = JSON.parse(ICF.temp[i]);
  3657.     ICF.Param.PParams[i] = ICF.temp[i]['Name'];
  3658.     ICF.Param.PParamsFullName[i] = ICF.temp[i]['Full Name'];
  3659.     ICF.Param.PParamBase[i] = ICF.temp[i]['Base'];
  3660.     ICF.Param.PParamLimit[i] = ICF.temp[i]['Limits'];
  3661.     }
  3662. } else {
  3663.     for (var i = 0; i < 30; i++) {
  3664.     ICF.Param.NParams[i] = String(ICF.Parameters['NParam' + i + ' Name']);
  3665.     ICF.Param.NParamsFullName[i] = String(ICF.Parameters['NParam' + i + ' Full Name']);
  3666.     ICF.Param.NParamBase[i] = String(ICF.Parameters['NParam' + i + ' Base']).split(/\s+/).leaveNumbers();
  3667.     ICF.Param.NParamLimit[i] = String(ICF.Parameters['NParam' + i + ' Limits']);
  3668.     ICF.Param.NParamBuffIcons[i] = String(ICF.Parameters['NParam' + i + ' Buff Icons']).split(/\s+/).leaveNumbers();
  3669.     ICF.Param.NParamDebuffIcons[i] = String(ICF.Parameters['NParam' + i + ' Debuff Icons']).split(/\s+/).leaveNumbers();
  3670.     ICF.Param.PParams[i] = String(ICF.Parameters['PParam' + i + ' Name']);
  3671.     ICF.Param.PParamsFullName[i] = String(ICF.Parameters['PParam' + i + ' Full Name']);
  3672.     ICF.Param.PParamBase[i] = String(ICF.Parameters['PParam' + i + ' Base']);
  3673.     }
  3674. }
  3675.  
  3676. for (var i = 0; i < 10; i++) {
  3677.     ICF.Param.XParamsFullName[i] = String(ICF.Parameters['XParam' + i + ' Full Name']);
  3678.     ICF.Param.XParamBase[i] = String(ICF.Parameters['XParam' + i + ' Base']);
  3679.     ICF.Param.SParamsFullName[i] = String(ICF.Parameters['SParam' + i + ' Full Name']);
  3680.     ICF.Param.SParamBase[i] = String(ICF.Parameters['SParam' + i + ' Base']);
  3681. }
  3682.  
  3683. for (var i = 0; i < 8; i++) {
  3684.     ICF.Param.BParams[i] = String(ICF.Parameters['BParam' + i + ' Name']);
  3685.     ICF.Param.BParamBase[i] = String(ICF.Parameters['BParam' + i + ' Base Eval']).trim();
  3686.     ICF.Param.BParamLimit[i] = String(ICF.Parameters['BParam' + i + ' Limits']);
  3687. }
  3688.  
  3689. ICF.Param.ParamCoreHalt = ICF.Parameters['Developer HaltJS'].toLowerCase() === "true";
  3690.  
  3691. if (!Imported.ICFSoft_MainUtility) {throw new Error('This plugin requires ICF-Soft Main Utility plugin version 1.01 to work.\nYou can download it at icfsoft.blogspot.com inside plugins section.');}
  3692. if (ICF.MainUtility.Version < 101) {throw new Error('This plugin requires ICF-Soft Main Utility plugin version 1.01 to work.\nYou can download it at icfsoft.blogspot.com inside plugins section.');}
  3693.  
  3694. //=============================================================================
  3695. // Constants
  3696. //=============================================================================
  3697.  
  3698. Game_BattlerBase.TRAIT_NPARAM          = 24;
  3699. Game_BattlerBase.TRAIT_PPARAM          = 25;
  3700. Game_Action.EFFECT_ADD_NBUFF           = 35;
  3701. Game_Action.EFFECT_ADD_NDEBUFF         = 36;
  3702. Game_Action.EFFECT_REMOVE_NBUFF        = 37;
  3703. Game_Action.EFFECT_REMOVE_NDEBUFF      = 38;
  3704. Game_Action.EFFECT_NGROW               = 45;
  3705. Game_Action.EFFECT_PGROW               = 46;
  3706.  
  3707. //=============================================================================
  3708. // DataManager
  3709. //=============================================================================
  3710.  
  3711. ICF.ParamCore.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
  3712. DataManager.isDatabaseLoaded = function() {
  3713.     if (!ICF.ParamCore.DataManager_isDatabaseLoaded.call(this)) return false;
  3714.     if (!ICF.ParamCore.Procesed) {
  3715.     ICF.NotetagsProcessor.ParamCoreB($dataActors);
  3716.     ICF.NotetagsProcessor.ParamCoreB($dataClasses);
  3717.     ICF.NotetagsProcessor.ParamCoreB($dataEnemies);
  3718.     ICF.NotetagsProcessor.ParamCoreC($dataWeapons);
  3719.     ICF.NotetagsProcessor.ParamCoreC($dataArmors);
  3720.     ICF.NotetagsProcessor.ParamCore($dataStates);
  3721.     ICF.NotetagsProcessor.ParamCoreD($dataSkills);
  3722.     ICF.NotetagsProcessor.ParamCoreD($dataItems);
  3723.     ICF.ParamCore.Procesed = true;
  3724.     }
  3725.     return true;
  3726. };
  3727.  
  3728. ICF.NotetagsProcessor.ParamCore = function(group) {
  3729.     var note1 = /<(?:NPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3730.     var note1b = /<(?:NPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3731.     var note1c = /<(?:NPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3732.     var note1d = /<(?:NPARAMXRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3733.     var note1e = /<(?:NPARAMXFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3734.     var note2 = /<(?:PPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3735.     var note2b = /<(?:PPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3736.     var note2c = /<(?:PPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3737.     var note3 = /<(?:xPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3738.     var note3b = /<(?:XPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3739.     var note3c = /<(?:XPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3740.     var note4 = /<(?:SPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3741.     var note4b = /<(?:SPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3742.     var note4c = /<(?:SPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3743.     var note5 = /<(?:PARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3744.     var note5b = /<(?:PARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3745.     var note5c = /<(?:PARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3746.     var note5d = /<(?:PARAMXRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3747.     var note5e = /<(?:PARAMXFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3748.     var note6 = /<(?:NDEBUFFRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3749.  
  3750.     for (var n = 1; n < group.length; n++) {
  3751.     var obj = group[n];
  3752.     var notedata = obj.note.split(/[\r\n]+/);
  3753.  
  3754.     for (var i = 0; i < notedata.length; i++) {
  3755.         var line = notedata[i];
  3756.         if (line.match(note1)) {
  3757.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3758.             if (indx > -1) obj.traits.push({code:24, dataId:indx, value:Number(RegExp.$2)});
  3759.             }
  3760.         else if (line.match(note1b)) {
  3761.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3762.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 100, value:Number(RegExp.$2)});
  3763.             }
  3764.         else if (line.match(note1c)) {
  3765.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3766.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 200, value:Number(RegExp.$2)});
  3767.             }
  3768.         else if (line.match(note1d)) {
  3769.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3770.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 300, value:Number(RegExp.$2)});
  3771.             }
  3772.         else if (line.match(note1e)) {
  3773.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3774.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 400, value:Number(RegExp.$2)});
  3775.             }
  3776.         else if (line.match(note2)) {
  3777.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3778.             if (indx > -1) obj.traits.push({code:25, dataId:indx, value:Number(RegExp.$2)});
  3779.             }
  3780.         else if (line.match(note2b)) {
  3781.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3782.             if (indx > -1) obj.traits.push({code:25, dataId:indx + 100, value:Number(RegExp.$2)});
  3783.             }
  3784.         else if (line.match(note2c)) {
  3785.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3786.             if (indx > -1) obj.traits.push({code:25, dataId:indx + 200, value:Number(RegExp.$2)});
  3787.             }
  3788.         else if (line.match(note3)) {
  3789.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3790.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx, value:Number(RegExp.$2)});
  3791.             }
  3792.         else if (line.match(note3b)) {
  3793.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3794.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx + 10, value:Number(RegExp.$2)});
  3795.             }
  3796.         else if (line.match(note3c)) {
  3797.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3798.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx + 20, value:Number(RegExp.$2)});
  3799.             }
  3800.         else if (line.match(note4)) {
  3801.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3802.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx + 10, value:Number(RegExp.$2)});
  3803.             }
  3804.         else if (line.match(note4b)) {
  3805.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3806.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx, value:Number(RegExp.$2)});
  3807.             }
  3808.         else if (line.match(note4c)) {
  3809.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3810.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx + 20, value:Number(RegExp.$2)});
  3811.             }
  3812.         else if (line.match(note5)) {
  3813.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3814.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 10, value:Number(RegExp.$2)});
  3815.             }
  3816.         else if (line.match(note5b)) {
  3817.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3818.             if (indx > -1) obj.traits.push({code:21, dataId:indx, value:Number(RegExp.$2)});
  3819.             }
  3820.         else if (line.match(note5c)) {
  3821.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3822.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 20, value:Number(RegExp.$2)});
  3823.             }
  3824.         else if (line.match(note5d)) {
  3825.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3826.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 30, value:Number(RegExp.$2)});
  3827.             }
  3828.         else if (line.match(note5e)) {
  3829.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3830.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 40, value:Number(RegExp.$2)});
  3831.             }
  3832.         else if (line.match(note6)) {
  3833.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3834.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_DEBUFF_RATE, dataId:indx + 10, value:Number(RegExp.$2)});
  3835.             }
  3836.     }
  3837.     }
  3838. };
  3839.  
  3840. ICF.NotetagsProcessor.ParamCoreB = function(group) {
  3841.     var grouparray = [];
  3842.     var note1 = /<(?:NPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3843.     var note1b = /<(?:NPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3844.     var note1c = /<(?:NPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3845.     var note1d = /<(?:NPARAMXRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3846.     var note1e = /<(?:NPARAMXFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3847.     var note1x = /<(?:NPARAM):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)(?:[ ]+(\d+(?:\.\d+)?))?(?:[ ]+(\d+(?:\.\d+)?))?(?:[ ]+(\d+(?:\.\d+)?))?>/i;
  3848.     var note1y = /<(?:CUSTOM NPARAM BASE)[ ]+(\w+)>/i;
  3849.     var note1z = /<\/(?:CUSTOM NPARAM BASE)>/i;
  3850.     var note2 = /<(?:PPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3851.     var note2b = /<(?:PPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3852.     var note2c = /<(?:PPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3853.     var note3 = /<(?:xPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3854.     var note3b = /<(?:XPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3855.     var note3c = /<(?:XPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3856.     var note4 = /<(?:SPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3857.     var note4b = /<(?:SPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3858.     var note4c = /<(?:SPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3859.     var note5 = /<(?:PARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3860.     var note5b = /<(?:PARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3861.     var note5c = /<(?:PARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3862.     var note5d = /<(?:PARAMXRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3863.     var note5e = /<(?:PARAMXFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3864.     var note5y = /<(?:CUSTOM PARAM BASE)[ ]+(\w+)>/i;
  3865.     var note5z = /<\/(?:CUSTOM PARAM BASE)>/i;
  3866.     var note6 = /<(?:NDEBUFFRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3867.  
  3868.     for (var n = 1; n < group.length; n++) {
  3869.     var obj = group[n];
  3870.     var notedata = obj.note.split(/[\r\n]+/);
  3871.  
  3872.     obj.basicNParam = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
  3873.     obj.customNParam = ['','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''];
  3874.     obj.customBParam = ['','','','','','','','','',''];
  3875.  
  3876.     var nFlag = false;
  3877.     var bFlag = false;
  3878.     var nIndex = -1;
  3879.     var bIndex = -1;
  3880.  
  3881.     for (var i = 0; i < notedata.length; i++) {
  3882.         var line = notedata[i];
  3883.         if (line.match(note1)) {
  3884.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3885.             if (indx > -1) obj.traits.push({code:24, dataId:indx, value:Number(RegExp.$2)});
  3886.             }
  3887.         else if (line.match(note1b)) {
  3888.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3889.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 100, value:Number(RegExp.$2)});
  3890.             }
  3891.         else if (line.match(note1c)) {
  3892.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3893.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 200, value:Number(RegExp.$2)});
  3894.             }
  3895.         else if (line.match(note1d)) {
  3896.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3897.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 300, value:Number(RegExp.$2)});
  3898.             }
  3899.         else if (line.match(note1e)) {
  3900.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3901.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 400, value:Number(RegExp.$2)});
  3902.             }
  3903.         else if (line.match(note1x)) {
  3904.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3905.             obj.basicNParam[indx] = [Number(RegExp.$2)];
  3906.             if (!isNaN(Number(RegExp.$3))) obj.basicNParam[indx] = obj.basicNParam[indx].concat([Number(RegExp.$3)]);
  3907.             if (!isNaN(Number(RegExp.$4))) obj.basicNParam[indx] = obj.basicNParam[indx].concat([Number(RegExp.$4)]);
  3908.             if (!isNaN(Number(RegExp.$5))) obj.basicNParam[indx] = obj.basicNParam[indx].concat([Number(RegExp.$5)]);
  3909.             }
  3910.         else if (line.match(note1y)) {
  3911.             nFlag = true;
  3912.             nIndex = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3913.             }
  3914.         else if (line.match(note1z)) {
  3915.             nFlag = false;
  3916.             }
  3917.         else if (line.match(note2)) {
  3918.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3919.             if (indx > -1) obj.traits.push({code:25, dataId:indx, value:Number(RegExp.$2)});
  3920.             }
  3921.         else if (line.match(note2b)) {
  3922.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3923.             if (indx > -1) obj.traits.push({code:25, dataId:indx + 100, value:Number(RegExp.$2)});
  3924.             }
  3925.         else if (line.match(note2c)) {
  3926.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3927.             if (indx > -1) obj.traits.push({code:25, dataId:indx + 200, value:Number(RegExp.$2)});
  3928.             }
  3929.         else if (line.match(note3)) {
  3930.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3931.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx, value:Number(RegExp.$2)});
  3932.             }
  3933.         else if (line.match(note3b)) {
  3934.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3935.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx + 10, value:Number(RegExp.$2)});
  3936.             }
  3937.         else if (line.match(note3c)) {
  3938.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3939.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx + 20, value:Number(RegExp.$2)});
  3940.             }
  3941.         else if (line.match(note4)) {
  3942.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3943.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx + 10, value:Number(RegExp.$2)});
  3944.             }
  3945.         else if (line.match(note4b)) {
  3946.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3947.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx, value:Number(RegExp.$2)});
  3948.             }
  3949.         else if (line.match(note4c)) {
  3950.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3951.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx + 20, value:Number(RegExp.$2)});
  3952.             }
  3953.         else if (line.match(note5)) {
  3954.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3955.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 10, value:Number(RegExp.$2)});
  3956.             }
  3957.         else if (line.match(note5b)) {
  3958.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3959.             if (indx > -1) obj.traits.push({code:21, dataId:indx, value:Number(RegExp.$2)});
  3960.             }
  3961.         else if (line.match(note5c)) {
  3962.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3963.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 20, value:Number(RegExp.$2)});
  3964.             }
  3965.         else if (line.match(note5d)) {
  3966.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3967.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 30, value:Number(RegExp.$2)});
  3968.             }
  3969.         else if (line.match(note5e)) {
  3970.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3971.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 40, value:Number(RegExp.$2)});
  3972.             }
  3973.         else if (line.match(note5y)) {
  3974.             bFlag = true;
  3975.             bIndex = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3976.             }
  3977.         else if (line.match(note5z)) {
  3978.             bFlag = false;
  3979.             }
  3980.         else if (line.match(note6)) {
  3981.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  3982.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_DEBUFF_RATE, dataId:indx + 10, value:Number(RegExp.$2)});
  3983.             }
  3984.         else if (nFlag && nIndex > -1) {
  3985.             obj.customNParam[nIndex] = obj.customNParam[nIndex] + line + '\n';
  3986.             }
  3987.         else if (bFlag && bIndex > -1) {
  3988.             obj.customBParam[bIndex] = obj.customBParam[bIndex] + line + '\n';
  3989.             }
  3990.     }
  3991.     }
  3992. };
  3993.  
  3994. ICF.NotetagsProcessor.ParamCoreC = function(group) {
  3995.     var grouparray = [];
  3996.     var note1 = /<(?:NPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3997.     var note1b = /<(?:NPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  3998.     var note1c = /<(?:NPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  3999.     var note1d = /<(?:NPARAMXRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4000.     var note1e = /<(?:NPARAMXFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4001.     var note1x = /<(?:NPARAM):[ ]*(\w+)[ ]+(\d+)>/i;
  4002.     var note1y = /<(?:CUSTOM NPARAMS)>/i;
  4003.     var note1z = /<\/(?:CUSTOM NPARAMS)>/i;
  4004.     var note2 = /<(?:PPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4005.     var note2b = /<(?:PPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4006.     var note2c = /<(?:PPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4007.     var note2x = /<(?:PPARAM):[ ]*(\w+)[ ]+(\d+)>/i;
  4008.     var note2y = /<(?:CUSTOM PPARAMS)>/i;
  4009.     var note2z = /<\/(?:CUSTOM PPARAMS)>/i;
  4010.     var note3 = /<(?:xPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4011.     var note3b = /<(?:XPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4012.     var note3c = /<(?:XPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4013.     var note4 = /<(?:SPARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4014.     var note4b = /<(?:SPARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4015.     var note4c = /<(?:SPARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4016.     var note5 = /<(?:PARAMPLUS):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4017.     var note5b = /<(?:PARAMRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4018.     var note5c = /<(?:PARAMFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4019.     var note5d = /<(?:PARAMXRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4020.     var note5e = /<(?:PARAMXFLAT):[ ]*(\w+)[ ]+((?:\-)?\d+(?:\.\d+)?)>/i;
  4021.     var note5y = /<(?:CUSTOM PARAMS)>/i;
  4022.     var note5z = /<\/(?:CUSTOM PARAMS)>/i;
  4023.     var note6 = /<(?:NDEBUFFRATE):[ ]*(\w+)[ ]+(\d+(?:\.\d+)?)>/i;
  4024.  
  4025.     for (var n = 1; n < group.length; n++) {
  4026.     var obj = group[n];
  4027.     var notedata = obj.note.split(/[\r\n]+/);
  4028.  
  4029.     obj.NParams = [];
  4030.     obj.PParams = [];
  4031.  
  4032.     obj.NParamEval = [];
  4033.     obj.PParamEval = [];
  4034.     obj.BParamEval = [];
  4035.  
  4036.     obj.NParamEvalAll = '';
  4037.     obj.PParamEvalAll = '';
  4038.     obj.BParamEvalAll = '';
  4039.  
  4040.     var nFlag = false;
  4041.     var pFlag = false;
  4042.     var bFlag = false;
  4043.  
  4044.     for (var i = 0; i < notedata.length; i++) {
  4045.         var line = notedata[i];
  4046.         if (line.match(note1)) {
  4047.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4048.             if (indx > -1) obj.traits.push({code:24, dataId:indx, value:Number(RegExp.$2)});
  4049.             }
  4050.         else if (line.match(note1b)) {
  4051.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4052.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 100, value:Number(RegExp.$2)});
  4053.             }
  4054.         else if (line.match(note1c)) {
  4055.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4056.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 200, value:Number(RegExp.$2)});
  4057.             }
  4058.         else if (line.match(note1d)) {
  4059.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4060.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 300, value:Number(RegExp.$2)});
  4061.             }
  4062.         else if (line.match(note1e)) {
  4063.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4064.             if (indx > -1) obj.traits.push({code:24, dataId:indx + 400, value:Number(RegExp.$2)});
  4065.             }
  4066.         else if (line.match(note1x)) {
  4067.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4068.             if (indx > -1) obj.NParams[indx] = Number(RegExp.$2);
  4069.             }
  4070.         else if (line.match(note1y)) {
  4071.             nFlag = true;
  4072.             }
  4073.         else if (line.match(note1z)) {
  4074.             nFlag = false;
  4075.             }
  4076.         else if (line.match(note2)) {
  4077.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4078.             if (indx > -1) obj.traits.push({code:25, dataId:indx, value:Number(RegExp.$2)});
  4079.             }
  4080.         else if (line.match(note2b)) {
  4081.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4082.             if (indx > -1) obj.traits.push({code:25, dataId:indx + 100, value:Number(RegExp.$2)});
  4083.             }
  4084.         else if (line.match(note2c)) {
  4085.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4086.             if (indx > -1) obj.traits.push({code:25, dataId:indx + 200, value:Number(RegExp.$2)});
  4087.             }
  4088.         else if (line.match(note1x)) {
  4089.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.PParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4090.             if (indx > -1) obj.PParams[indx] = Number(RegExp.$2);
  4091.             }
  4092.         else if (line.match(note2y)) {
  4093.             pFlag = true;
  4094.             }
  4095.         else if (line.match(note2z)) {
  4096.             pFlag = false;
  4097.             }
  4098.         else if (line.match(note3)) {
  4099.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4100.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx, value:Number(RegExp.$2)});
  4101.             }
  4102.         else if (line.match(note3b)) {
  4103.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4104.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx + 10, value:Number(RegExp.$2)});
  4105.             }
  4106.         else if (line.match(note3c)) {
  4107.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.XParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4108.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_XPARAM, dataId:indx + 20, value:Number(RegExp.$2)});
  4109.             }
  4110.         else if (line.match(note4)) {
  4111.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4112.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx + 10, value:Number(RegExp.$2)});
  4113.             }
  4114.         else if (line.match(note4b)) {
  4115.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4116.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx, value:Number(RegExp.$2)});
  4117.             }
  4118.         else if (line.match(note4c)) {
  4119.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.SParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4120.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_SPARAM, dataId:indx + 20, value:Number(RegExp.$2)});
  4121.             }
  4122.         else if (line.match(note5)) {
  4123.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4124.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 10, value:Number(RegExp.$2)});
  4125.             }
  4126.         else if (line.match(note5b)) {
  4127.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4128.             if (indx > -1) obj.traits.push({code:21, dataId:indx, value:Number(RegExp.$2)});
  4129.             }
  4130.         else if (line.match(note5c)) {
  4131.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4132.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 20, value:Number(RegExp.$2)});
  4133.             }
  4134.         else if (line.match(note5d)) {
  4135.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4136.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 30, value:Number(RegExp.$2)});
  4137.             }
  4138.         else if (line.match(note5e)) {
  4139.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.BParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4140.             if (indx > -1) obj.traits.push({code:21, dataId:indx + 40, value:Number(RegExp.$2)});
  4141.             }
  4142.         else if (line.match(note5y)) {
  4143.             bFlag = true;
  4144.             }
  4145.         else if (line.match(note5z)) {
  4146.             bFlag = false;
  4147.             }
  4148.         else if (line.match(note6)) {
  4149.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4150.             if (indx > -1) obj.traits.push({code:Game_BattlerBase.TRAIT_DEBUFF_RATE, dataId:indx + 10, value:Number(RegExp.$2)});
  4151.             }
  4152.         else if (nFlag) {
  4153.             if (line.match(/(\w+) = (.*)/i)) {
  4154.                 var indx = RegExp.$1;
  4155.                 if (isNaN(Number(indx))) indx = ICF.Param.NParams.indexOf(indx.toLowerCase());
  4156.                 indx = (Number(indx));
  4157.                 if (Number(indx) > -1) obj.NParamEval[indx] = RegExp.$2;
  4158.                 else obj.NParamEvalAll = obj.NParamEvalAll + line + '\n';
  4159.             } else obj.NParamEvalAll = obj.NParamEvalAll + line + '\n';
  4160.             }
  4161.         else if (pFlag) {
  4162.             if (line.match(/(\w+) = (.*)/i)) {
  4163.                 var indx = RegExp.$1;
  4164.                 if (isNaN(Number(indx))) indx = ICF.Param.PParams.indexOf(indx.toLowerCase());
  4165.                 indx = (Number(indx));
  4166.                 if (Number(indx) > -1) obj.PParamEval[indx] = RegExp.$2;
  4167.                 else obj.PParamEvalAll = obj.PParamEvalAll + line + '\n';
  4168.             } else obj.PParamEvalAll = obj.PParamEvalAll + line + '\n';
  4169.             }
  4170.         else if (bFlag) {
  4171.             if (line.match(/(\w+) = (.*)/i)) {
  4172.                 var indx = RegExp.$1;
  4173.                 if (isNaN(Number(indx))) indx = ICF.Param.BParams.indexOf(indx.toLowerCase());
  4174.                 indx = (Number(indx));
  4175.                 if (Number(indx) > -1) obj.BParamEval[indx] = RegExp.$2;
  4176.                 else obj.NParamEvalAll = obj.BParamEvalAll + line + '\n';
  4177.             } else obj.NParamEvalAll = obj.BParamEvalAll + line + '\n';
  4178.             }
  4179.     }
  4180.     }
  4181. };
  4182.  
  4183. ICF.NotetagsProcessor.ParamCoreD = function(group) {
  4184.     var note1 = /<(?:NBUFF):[ ]*(\w+)[ ]+(\d+)>/i;
  4185.     var note2 = /<(?:NDEBUFF):[ ]*(\w+)[ ]+(\d+)>/i;
  4186.     var note3 = /<(?:REMOVE NBUFF):[ ]*(\w+)[ ]+>/i;
  4187.     var note4 = /<(?:REMOVE NDEBUFF):[ ]*(\w+)[ ]+>/i;
  4188.     var note5 = /<(?:NPARAM GROW):[ ]*(\w+)[ ]+((?:\-)?\d+)>/i;
  4189.     var note5b = /<(?:PPARAM GROW):[ ]*(\w+)[ ]+((?:\-)?\d+)>/i;
  4190.  
  4191.     for (var n = 1; n < group.length; n++) {
  4192.     var obj = group[n];
  4193.     var notedata = obj.note.split(/[\r\n]+/);
  4194.  
  4195.     for (var i = 0; i < notedata.length; i++) {
  4196.         var line = notedata[i];
  4197.         if (line.match(note1)) {
  4198.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4199.             if (indx > -1) obj.effects.push({code:35, dataId:indx, value1:Number(RegExp.$2)});
  4200.             }
  4201.         else if (line.match(note2)) {
  4202.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4203.             if (indx > -1) obj.effects.push({code:36, dataId:indx, value1:Number(RegExp.$2)});
  4204.             }
  4205.         else if (line.match(note3)) {
  4206.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4207.             if (indx > -1) obj.effects.push({code:37, dataId:indx, value1:0});
  4208.             }
  4209.         else if (line.match(note4)) {
  4210.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4211.             if (indx > -1) obj.effects.push({code:38, dataId:indx, value1:0});
  4212.             }
  4213.         else if (line.match(note5)) {
  4214.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4215.             if (indx > -1) obj.effects.push({code:45, dataId:indx, value1:Number(RegExp.$2)});
  4216.             }
  4217.         else if (line.match(note5b)) {
  4218.             var indx = (isNaN(Number(RegExp.$1)))? ICF.Param.NParams.indexOf(RegExp.$1.toLowerCase()) : Number(RegExp.$1);
  4219.             if (indx > -1) obj.effects.push({code:46, dataId:indx, value1:Number(RegExp.$2)});
  4220.             }
  4221.     }
  4222.     }
  4223. };
  4224.  
  4225. //=============================================================================
  4226. // Game_BattlerBase
  4227. //=============================================================================
  4228.  
  4229. if (ICF.Param.BParams[0].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[0], { get: function() { return this.param(0); }, configurable: true });
  4230. if (ICF.Param.BParams[1].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[1], { get: function() { return this.param(1); }, configurable: true });
  4231. if (ICF.Param.BParams[2].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[2], { get: function() { return this.param(2); }, configurable: true });
  4232. if (ICF.Param.BParams[3].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[3], { get: function() { return this.param(3); }, configurable: true });
  4233. if (ICF.Param.BParams[4].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[4], { get: function() { return this.param(4); }, configurable: true });
  4234. if (ICF.Param.BParams[5].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[5], { get: function() { return this.param(5); }, configurable: true });
  4235. if (ICF.Param.BParams[6].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[6], { get: function() { return this.param(6); }, configurable: true });
  4236. if (ICF.Param.BParams[7].length > 0) Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.BParams[7], { get: function() { return this.param(7); }, configurable: true });
  4237.  
  4238. for (var i = 0; i < ICF.Param.NParams.length; i++) {
  4239.     if (ICF.Param.NParams[i].length > 0) {
  4240.         eval("Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.NParams[" + i + "], { get: function() { return this.NParam(" + i + "); }, configurable: true });");
  4241.     }
  4242. }
  4243. for (var i = 0; i < ICF.Param.PParams.length; i++) {
  4244.     if (ICF.Param.PParams[i].length > 0) {
  4245.         eval("Object.defineProperty(Game_BattlerBase.prototype, ICF.Param.PParams[" + i + "], { get: function() { return this.PParam(" + i + "); }, configurable: true });");
  4246.     }
  4247. }
  4248.  
  4249. Object.defineProperty(Game_BattlerBase.prototype, 'level', { value: 1, configurable: true});
  4250.  
  4251. if (!Game_BattlerBase.prototype.equips) Game_BattlerBase.prototype.equips = function() { return []; };
  4252. if (!Game_BattlerBase.prototype.currentClass) Game_BattlerBase.prototype.currentClass = function() { return null; };
  4253.  
  4254. ICF.ParamCore.clearParamPlus = Game_BattlerBase.prototype.clearParamPlus;
  4255. Game_BattlerBase.prototype.clearParamPlus = function() {
  4256.     ICF.ParamCore.clearParamPlus.call(this);
  4257.     this._NParamPlus = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
  4258.     this._PParamPlus = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
  4259. };
  4260.  
  4261. ICF.ParamCore.clearBuffs = Game_BattlerBase.prototype.clearBuffs;
  4262. Game_BattlerBase.prototype.clearBuffs = function() {
  4263.     ICF.ParamCore.clearBuffs.call(this);
  4264.     this._NBuffs = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
  4265.     this._NBuffTurns = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
  4266. };
  4267.  
  4268. Game_BattlerBase.prototype.eraseNBuff = function(paramId) {
  4269.     this._NBuffs[paramId] = 0;
  4270.     this._NBuffTurns[paramId] = 0;
  4271. };
  4272.  
  4273. Game_BattlerBase.prototype.NBuffLength = function() {
  4274.     return this._NBuffs.length;
  4275. };
  4276.  
  4277. Game_BattlerBase.prototype.NBuff = function(paramId) {
  4278.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4279.     return this._NBuffs[paramId];
  4280. };
  4281.  
  4282. Game_BattlerBase.prototype.isNBuffAffected = function(paramId) {
  4283.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4284.     return this._NBuffs[paramId] > 0;
  4285. };
  4286.  
  4287. Game_BattlerBase.prototype.isNDebuffAffected = function(paramId) {
  4288.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4289.     return this._NBuffs[paramId] < 0;
  4290. };
  4291.  
  4292. Game_BattlerBase.prototype.isNBuffOrDebuffAffected = function(paramId) {
  4293.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4294.     return this._NBuffs[paramId] !== 0;
  4295. };
  4296.  
  4297. Game_BattlerBase.prototype.isMaxNBuffAffected = function(paramId) {
  4298.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4299.     return this._NBuffs[paramId] >= 2;
  4300. };
  4301.  
  4302. Game_BattlerBase.prototype.isMaxNDebuffAffected = function(paramId) {
  4303.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4304.     return this._NBuffs[paramId] <= -2;
  4305. };
  4306.  
  4307. Game_BattlerBase.prototype.increaseNBuff = function(paramId) {
  4308.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4309.     if (!this.isMaxNBuffAffected(paramId)) {
  4310.         this._NBuffs[paramId]++;
  4311.     }
  4312. };
  4313.  
  4314. Game_BattlerBase.prototype.decreaseNBuff = function(paramId) {
  4315.     if (!this._NBuffs[paramId]) this._NBuffs[paramId] = 0;
  4316.     if (!this.isMaxNDebuffAffected(paramId)) {
  4317.         this._NBuffs[paramId]--;
  4318.     }
  4319. };
  4320.  
  4321. Game_BattlerBase.prototype.overwriteNBuffTurns = function(paramId, turns) {
  4322.     if (!this._NBuffTurns[paramId]) this._NBuffTurns[paramId] = 0;
  4323.     if (this._NBuffTurns[paramId] < turns) {
  4324.         this._NBuffTurns[paramId] = turns;
  4325.     }
  4326. };
  4327.  
  4328. Game_BattlerBase.prototype.isNBuffExpired = function(paramId) {
  4329.     if (!this._NBuffTurns[paramId]) this._NBuffTurns[paramId] = 0;
  4330.     return this._NBuffTurns[paramId] === 0;
  4331. };
  4332.  
  4333. ICF.ParamCore.updateBuffTurns = Game_BattlerBase.prototype.updateBuffTurns;
  4334. Game_BattlerBase.prototype.updateBuffTurns = function() {
  4335.     ICF.ParamCore.updateBuffTurns.call(this);
  4336.     for (var i = 0; i < this._NBuffTurns.length; i++) {
  4337.         if (this._NBuffTurns[i] > 0) {
  4338.             this._NBuffTurns[i]--;
  4339.         }
  4340.     }
  4341. };
  4342.  
  4343. ICF.ParamCore.buffIcons = Game_BattlerBase.prototype.buffIcons;
  4344. Game_BattlerBase.prototype.buffIcons = function() {
  4345.     var icons = ICF.ParamCore.buffIcons.call(this);
  4346.     for (var i = 0; i < this._NBuffs.length; i++) {
  4347.         if ((this._NBuffs[i] > 0)&&(ICF.Param.NParamBuffIcons[i].length > 0)) {
  4348.             icons.push(ICF.Param.NParamBuffIcons[i][Math.min(ICF.Param.NParamBuffIcons[i].length, this._NBuffs[i]) - 1]);
  4349.         } else if ((this._NBuffs[i] < 0)&&(ICF.Param.NParamDebuffIcons[i].length > 0)) {
  4350.             icons.push(ICF.Param.NParamDebuffIcons[i][Math.min(ICF.Param.NParamDebuffIcons[i].length, Math.abs(this._NBuffs[i])) - 1]);
  4351.         }
  4352.     }
  4353.     return icons;
  4354. };
  4355.  
  4356. Game_BattlerBase.prototype.NParamBasic = function(array, level) {
  4357.     if (array.length == 1) {
  4358.         return Number(array[0]);
  4359.     } else if (array.length == 2) {
  4360.         return Number(array[0]) + Number(array[1] * (level - 1));
  4361.     } else if (array.length == 3 || array[3] > level) {
  4362.         return Number(array[0]) + Number(array[1] * (level - 1)) + Number(array[2] * Math.pow(level - 1, 1.2));
  4363.     } else if (array.length > 3) {
  4364.         return Number(array[0]) + Number(array[1] * (array[3] - 1)) + Number(array[2] * Math.pow(array[3] - 1, 1.2));
  4365.     } else {
  4366.         return 0;
  4367.     }
  4368. };
  4369.  
  4370. Game_BattlerBase.prototype.NParamBase = function(paramId) {
  4371.     var array = ICF.Param.NParamBase[paramId];
  4372.     if (!Array.isArray(array)) return (array != '')? eval(array) : 0;
  4373.     if (array.length < 1) {
  4374.         return 0;
  4375.     } else {
  4376.         return this.NParamBasic(array, this.level);
  4377.     }
  4378. };
  4379.  
  4380. Game_BattlerBase.prototype.NParamPlus = function(paramId) {
  4381.     return this._NParamPlus[paramId] + this.traitsSum(Game_BattlerBase.TRAIT_NPARAM, paramId) + this.NParamEquips(paramId);
  4382. };
  4383.  
  4384. Game_BattlerBase.prototype.NParamEquips = function(paramId) {
  4385.     var value = 0;
  4386.     var equips = this.equips();
  4387.     for (var i = 0; i < equips.length; i++) {
  4388.         var item = equips[i];
  4389.         if (item && item.NParams[paramId]) value += item.NParams[paramId];
  4390.         if (item && item.NParamEval[paramId]) {
  4391.         try {
  4392.         value += eval(item.NParamEvalAll + ';' + item.NParamEval[paramId]);
  4393.             }
  4394.         catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom NParam Base #' + paramId + ($dataWeapons[item.id] == item?' in weapon #':' in equip #') + item.id);}}
  4395.         }
  4396.     }
  4397.     return value;
  4398. };
  4399.  
  4400. Game_BattlerBase.prototype.NParamEval = function(paramId) {
  4401.     return 0;
  4402. };
  4403.  
  4404. Game_BattlerBase.prototype.NParamLimits = function(paramId) {
  4405.     var array = eval(ICF.Param.NParamLimit[paramId]);
  4406.     if (!Array.isArray(array)) return (!isNaN(Number(array)))? [array] : [];
  4407.     return array;
  4408. };
  4409.  
  4410. Game_BattlerBase.prototype.NParamRate = function(paramId) {
  4411.     return this.traitsPi(Game_BattlerBase.TRAIT_NPARAM, paramId + 100);
  4412. };
  4413.  
  4414. Game_BattlerBase.prototype.NParamXRate = function(paramId) {
  4415.     return this.traitsPi(Game_BattlerBase.TRAIT_NPARAM, paramId + 300);
  4416. };
  4417.  
  4418. Game_BattlerBase.prototype.NParamBuffRate = function(paramId) {
  4419.     return this._NBuffs[paramId] * 0.25 + 1.0;
  4420. };
  4421.  
  4422. Game_BattlerBase.prototype.NParamFlat = function(paramId) {
  4423.     return this.traitsSum(Game_BattlerBase.TRAIT_NPARAM, paramId + 200);
  4424. };
  4425.  
  4426. Game_BattlerBase.prototype.NParamXFlat = function(paramId) {
  4427.     return this.traitsSum(Game_BattlerBase.TRAIT_NPARAM, paramId + 400);
  4428. };
  4429.  
  4430. Game_BattlerBase.prototype.NParam = function(paramId) {
  4431.     var value = this.NParamBase(paramId) + this.NParamEval(paramId) + this.NParamPlus(paramId);
  4432.     value *= this.NParamRate(paramId);
  4433.     var limits = this.NParamLimits(paramId);
  4434.     var buff = this.NParamXRate(paramId) * this.NParamBuffRate(paramId);
  4435.     if (limits.length > 1) value = Math.min(value, limits[1]);
  4436.     var flat = 0;
  4437.     if (limits.length > 1) flat = (buff > 1)? Math.min(this.NParamFlat(paramId), limits[1] - value) : Math.min(this.NParamFlat(paramId), limits[1] - value * buff);
  4438.     else flat = this.NParamFlat(paramId);
  4439.     value *= buff;
  4440.     value += flat + this.NParamXFlat(paramId);
  4441.     if (limits.length < 1) return Math.round(value);
  4442.     if (limits.length < 3) return Math.round(Math.max(value,limits[0]));
  4443.     return Math.round(value.clamp(limits[0], limits[2]));
  4444. };
  4445.  
  4446. Game_BattlerBase.prototype.PParamBase = function(pparamId) {
  4447.     return eval(ICF.Param.PParamBase[pparamId]) || 0;
  4448. }
  4449.  
  4450. Game_BattlerBase.prototype.PParamEquips = function(paramId) {
  4451.     var value = 0;
  4452.     var equips = this.equips();
  4453.     for (var i = 0; i < equips.length; i++) {
  4454.         var item = equips[i];
  4455.         if (item && item.PParams[paramId]) value += item.PParams[paramId];
  4456.         if (item && item.PParamEval[paramId]) {
  4457.         try {
  4458.         value += eval(item.PParamEvalAll + ';' + item.PParamEval[paramId]);
  4459.             }
  4460.         catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom PParam Base #' + paramId + ($dataWeapons[item.id] == item?' in weapon #':' in equip #') + item.id);}}
  4461.         }
  4462.     }
  4463.     return value;
  4464. };
  4465.  
  4466. Game_BattlerBase.prototype.PParamLimits = function(paramId) {
  4467.     var array = eval(ICF.Param.PParamLimit[paramId]);
  4468.     if (!Array.isArray(array)) return (!isNaN(Number(array)))? [array] : [];
  4469.     return array;
  4470. };
  4471.  
  4472. Game_BattlerBase.prototype.PParamPlus = function(pparamId) {
  4473.     if (!this._PParamPlus) this._PParamPlus = [];
  4474.     if (isNaN(this._PParamPlus[pparamId])) this._PParamPlus[pparamId] = 0;
  4475.     return this._PParamPlus[pparamId];
  4476. };
  4477.  
  4478. Game_BattlerBase.prototype.PParam = function(pparamId) {
  4479.     var value = this.PParamBase(pparamId) + this.traitsSum(Game_BattlerBase.TRAIT_PPARAM, pparamId);
  4480.     var limits = this.PParamLimits(pparamId);
  4481.     value += this.PParamEquips(pparamId) + this.PParamPlus(pparamId);
  4482.     value *= this.traitsPi(Game_BattlerBase.TRAIT_PPARAM, pparamId + 100);
  4483.     value += this.traitsSum(Game_BattlerBase.TRAIT_PPARAM, pparamId + 200);
  4484.     if (limits.length > 1) return value.clamp(limits[0], limits[1]);
  4485.     if (limits.length > 0) return Math.max(value, limits[0]);
  4486.     return value;
  4487. };
  4488.  
  4489. ICF.ParamCore.paramplus = Game_BattlerBase.prototype.paramPlus;
  4490. Game_BattlerBase.prototype.paramPlus = function(paramId) {
  4491.     return ICF.ParamCore.paramplus.call(this, paramId) + this.traitsSum(Game_BattlerBase.TRAIT_PARAM, paramId + 10);
  4492. };
  4493.  
  4494. Game_BattlerBase.prototype.paramFlat = function(paramId) {
  4495.     return this.traitsSum(Game_BattlerBase.TRAIT_PARAM, paramId + 20);
  4496. };
  4497.  
  4498. Game_BattlerBase.prototype.paramXFlat = function(paramId) {
  4499.     return this.traitsSum(Game_BattlerBase.TRAIT_PARAM, paramId + 40);
  4500. };
  4501.  
  4502. Game_BattlerBase.prototype.paramXRate = function(paramId) {
  4503.     return this.traitsPi(Game_BattlerBase.TRAIT_PARAM, paramId + 30);
  4504. };
  4505.  
  4506. Game_BattlerBase.prototype.paramLimits = function(paramId) {
  4507.     var array = eval(ICF.Param.BParamLimit[paramId]);
  4508.     if (!Array.isArray(array)) return (!isNaN(Number(array)))? [array] : [];
  4509.     return array;
  4510. };
  4511.  
  4512. Game_BattlerBase.prototype.paramEquips = function(paramId) {
  4513.     var value = 0;
  4514.     var equips = this.equips();
  4515.     for (var i = 0; i < equips.length; i++) {
  4516.         var item = equips[i];
  4517.         if (item && item.BParamEval[paramId]) {
  4518.         try {
  4519.         value += eval(item.BParamEval[paramId]);
  4520.             }
  4521.         catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom param Base #' + paramId + ($dataWeapons[item.id] == item?' in weapon #':' in equip #') + item.id);}}
  4522.         }
  4523.     }
  4524.     return value;
  4525. };
  4526.  
  4527. Game_BattlerBase.prototype.paramEval = function(paramId) {
  4528.     return 0;
  4529. };
  4530.  
  4531. Game_BattlerBase.prototype.param = function(paramId) {
  4532.     var value = this.paramBase(paramId) + this.paramPlus(paramId) + this.paramEquips(paramId) + this.paramEval(paramId);
  4533.     value *= this.paramRate(paramId);
  4534.     var limits = this.paramLimits(paramId);
  4535.     var buff = this.paramXRate(paramId) * this.paramBuffRate(paramId);
  4536.     if (limits.length > 1) value = Math.min(value, limits[1]);
  4537.     var flat = 0;
  4538.     if (limits.length > 1) flat = (buff > 1)? Math.min(this.paramFlat(paramId), limits[1] - value) : Math.min(this.paramFlat(paramId), limits[1] - value * buff);
  4539.     else flat = this.paramFlat(paramId);
  4540.     value *= buff;
  4541.     value += flat + this.paramXFlat(paramId);
  4542.     if (limits.length < 1) return Math.round(value);
  4543.     if (limits.length < 3) return Math.round(Math.max(value,limits[0]));
  4544.     return Math.round(value.clamp(limits[0], limits[2]));
  4545. };
  4546.  
  4547. Game_BattlerBase.prototype.xparamBase = function(xparamId) {
  4548.     return eval(ICF.Param.XParamBase[xparamId]) || 0;
  4549. }
  4550.  
  4551. Game_BattlerBase.prototype.xparam = function(xparamId) {
  4552.     return (this.xparamBase(xparamId) + this.traitsSum(Game_BattlerBase.TRAIT_XPARAM, xparamId)) * this.traitsPi(Game_BattlerBase.TRAIT_XPARAM, xparamId + 10) + this.traitsSum(Game_BattlerBase.TRAIT_XPARAM, xparamId + 20);
  4553. };
  4554.  
  4555. Game_BattlerBase.prototype.sparamBase = function(sparamId) {
  4556.     return eval(ICF.Param.SParamBase[sparamId]) || 1;
  4557. }
  4558.  
  4559. Game_BattlerBase.prototype.sparam = function(sparamId) {
  4560.     return (this.sparamBase(sparamId) + this.traitsSum(Game_BattlerBase.TRAIT_SPARAM, sparamId + 10)) * this.traitsPi(Game_BattlerBase.TRAIT_SPARAM, sparamId) + this.traitsSum(Game_BattlerBase.TRAIT_SPARAM, sparamId + 20);
  4561. };
  4562.  
  4563. Game_BattlerBase.prototype.NDebuffRate = function(paramId) {
  4564.     return this.traitsPi(Game_BattlerBase.TRAIT_DEBUFF_RATE, paramId + 10);
  4565. };
  4566.  
  4567. Game_BattlerBase.prototype.addNParam = function(paramId, value) {
  4568.     if (!this._NParamPlus) this._NParamPlus = [];
  4569.     if (!this._NParamPlus[paramId]) this._NParamPlus[paramId] = 0;
  4570.     this._NParamPlus[paramId] += value;
  4571.     this.refresh();
  4572. };
  4573.  
  4574. Game_BattlerBase.prototype.addPParam = function(paramId, value) {
  4575.     if (!this._PParamPlus) this._PParamPlus = [];
  4576.     if (!this._PParamPlus[paramId]) this._PParamPlus[paramId] = 0;
  4577.     this._PParamPlus[paramId] += value;
  4578.     this.refresh();
  4579. };
  4580.  
  4581. //=============================================================================
  4582. // Game_Battler
  4583. //=============================================================================
  4584.  
  4585. Game_Battler.prototype.addNBuff = function(paramId, turns) {
  4586.     if (this.isAlive()) {
  4587.         this.increaseNBuff(paramId);
  4588.         if (this.isNBuffAffected(paramId)) {
  4589.             this.overwriteNBuffTurns(paramId, turns);
  4590.         }
  4591.         this._result.pushAddedNBuff(paramId);
  4592.         this.refresh();
  4593.     }
  4594. };
  4595.  
  4596. Game_Battler.prototype.addNDebuff = function(paramId, turns) {
  4597.     if (this.isAlive()) {
  4598.         this.decreaseNBuff(paramId);
  4599.         if (this.isNDebuffAffected(paramId)) {
  4600.             this.overwriteNBuffTurns(paramId, turns);
  4601.         }
  4602.         this._result.pushAddedNDebuff(paramId);
  4603.         this.refresh();
  4604.     }
  4605. };
  4606.  
  4607. Game_Battler.prototype.removeNBuff = function(paramId) {
  4608.     if (this.isAlive() && this.isNBuffOrDebuffAffected(paramId)) {
  4609.         this.eraseNBuff(paramId);
  4610.         this._result.pushRemovedNBuff(paramId);
  4611.         this.refresh();
  4612.     }
  4613. };
  4614.  
  4615. ICF.ParamCore.removeAllBuffs = Game_Battler.prototype.removeAllBuffs;
  4616. Game_Battler.prototype.removeAllBuffs = function() {
  4617.     ICF.ParamCore.removeAllBuffs.call(this);
  4618.     for (var i = 0; i < this.NBuffLength(); i++) {
  4619.         this.removeNBuff(i);
  4620.     }
  4621. };
  4622.  
  4623. ICF.ParamCore.removeBuffsAuto = Game_Battler.prototype.removeBuffsAuto;
  4624. Game_Battler.prototype.removeBuffsAuto = function() {
  4625.     ICF.ParamCore.removeBuffsAuto.call(this);
  4626.     for (var i = 0; i < this.NBuffLength(); i++) {
  4627.         if (this.isNBuffExpired(i)) {
  4628.             this.removeNBuff(i);
  4629.         }
  4630.     }
  4631. };
  4632.  
  4633. //=============================================================================
  4634. // Game_Actor
  4635. //=============================================================================
  4636.  
  4637. Game_Actor.prototype.NParamBase = function(paramId) {
  4638.     if ($dataActors[this._actorId].customNParam[paramId] != '') {
  4639.     try {   var value = 0;
  4640.         eval($dataActors[this._actorId].customNParam[paramId]);
  4641.         return value;
  4642.         }
  4643.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom NParam Base #' + paramId + ' in actor #' + this._classId);}}
  4644.     }
  4645.     if ($dataClasses[this._classId].customNParam[paramId] != '') {
  4646.     try {   var value = 0;
  4647.         eval($dataClasses[this._classId].customNParam[paramId]);
  4648.         return value;
  4649.         }
  4650.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom NParam Base #' + paramId + ' in actor class #' + this._classId);}}
  4651.     }
  4652.  
  4653.     var array = $dataActors[this._actorId].basicNParam[paramId];
  4654.     if (!array || array.length < 1) array = $dataClasses[this._classId].basicNParam[paramId];
  4655.  
  4656.     if (!array || array.length < 1) return Game_BattlerBase.prototype.NParamBase.call(this, paramId);
  4657.     return this.NParamBasic(array, this.level);
  4658. };
  4659.  
  4660. ICF.ParamCore.actorparambase = Game_Actor.prototype.paramBase;
  4661. Game_Actor.prototype.paramBase = function(paramId) {
  4662.     if ($dataActors[this._actorId].customBParam[paramId] != '') {
  4663.     try {   var value = 0;
  4664.         var base = this.currentClass().params[paramId][1];
  4665.         eval($dataActors[this._actorId].customBParam[paramId]);
  4666.         return value;
  4667.         }
  4668.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom Param Base #' + paramId + ' in actor #' + this._classId);}}
  4669.     }
  4670.     if ($dataClasses[this._classId].customBParam[paramId] != '') {
  4671.     try {   var value = 0;
  4672.         var base = this.currentClass().params[paramId][1];
  4673.         eval($dataClasses[this._classId].customBParam[paramId]);
  4674.         return value;
  4675.         }
  4676.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom Param Base #' + paramId + ' in actor class #' + this._classId);}}
  4677.     }
  4678.  
  4679.     if (ICF.Param.BParamBase[paramId].length > 0) {
  4680.     try {   var base = this.currentClass().params[paramId][1];
  4681.         return eval(ICF.Param.BParamBase[paramId]);
  4682.         }
  4683.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in default Param Base #' + paramId);}}
  4684.     }
  4685.     return ICF.ParamCore.actorparambase.call(this, paramId);
  4686. };
  4687.  
  4688. //=============================================================================
  4689. // Game_Enemy
  4690. //=============================================================================
  4691.  
  4692. Game_Enemy.prototype.NParamBase = function(paramId) {
  4693.     if ($dataEnemies[this._enemyId].customNParam[paramId] != '') {
  4694.     try {   var value = 0;
  4695.         eval($dataEnemies[this._enemyId].customNParam[paramId]);
  4696.         return value;
  4697.         }
  4698.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom NParam Base #' + paramId + ' in enemy #' + this._enemyId);}}
  4699.     }
  4700.     var currentClass = this.currentClass();
  4701.     if (currentClass && currentClass.customNParam[paramId] != '') {
  4702.     try {   var value = 0;
  4703.         eval(currentClass.customNParam[paramId]);
  4704.         return value;
  4705.         }
  4706.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom NParam Base #' + paramId + ' in enemy class #' + this._classId);}}
  4707.     }
  4708.  
  4709.  
  4710.     var array = $dataEnemies[this._enemyId].basicNParam[paramId];
  4711.     if ((!array || array.length < 1) && currentClass) array = currentClass.basicNParam[paramId];
  4712.  
  4713.     if (!array || array.length < 1) return Game_BattlerBase.prototype.NParamBase.call(this, paramId);
  4714.     return this.NParamBasic(array, this.level);
  4715. };
  4716.  
  4717. ICF.ParamCore.enemyparambase = Game_Enemy.prototype.paramBase;
  4718. Game_Enemy.prototype.paramBase = function(paramId) {
  4719.     if ($dataEnemies[this._enemyId].customBParam[paramId] != '') {
  4720.     try {   var value = 0;
  4721.         var base = (this.currentClass())? this.currentClass().params[paramId][1] : this.enemy().params[paramId];
  4722.         eval($dataEnemies[this._enemyId].customBParam[paramId]);
  4723.         return value;
  4724.         }
  4725.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom Param Base #' + paramId + ' in enemy #' + this._enemyId);}}
  4726.     }
  4727.     var currentClass = this.currentClass();
  4728.     if (currentClass && currentClass.customBParam[paramId] != '') {
  4729.     try {   var value = 0;
  4730.         var base = (this.currentClass())? this.currentClass().params[paramId][1] : this.enemy().params[paramId];
  4731.         eval(currentClass.customBParam[paramId]);
  4732.         return value;
  4733.         }
  4734.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in custom Param Base #' + paramId + ' in enemy class #' + this._classId);}}
  4735.     }
  4736.  
  4737.     if (ICF.Param.BParamBase[paramId].length > 0) {
  4738.     try {   var base = (this.currentClass())? this.currentClass().params[paramId][1] : this.enemy().params[paramId];
  4739.         return eval(ICF.Param.BParamBase[paramId]);
  4740.         }
  4741.     catch (e) {if(ICF.Param.ParamCoreHalt){throw new Error('Error in default Param Base #' + paramId);}}
  4742.     }
  4743.     return ICF.ParamCore.enemyparambase.call(this, paramId);
  4744. };
  4745.  
  4746. //=============================================================================
  4747. // Game_Action
  4748. //=============================================================================
  4749.  
  4750. ICF.ParamCore.testItemEffect = Game_Action.prototype.testItemEffect;
  4751. Game_Action.prototype.testItemEffect = function(target, effect) {
  4752.     switch (effect.code) {
  4753.     case Game_Action.EFFECT_ADD_NBUFF :
  4754.         return !target.isMaxNBuffAffected(effect.dataId);
  4755.     case Game_Action.EFFECT_ADD_NDEBUFF :
  4756.         return !target.isMaxNDebuffAffected(effect.dataId);
  4757.     case Game_Action.REMOVE_NBUFF:
  4758.         return target.isNBuffAffected(effect.dataId);
  4759.     case Game_Action.REMOVE_NDEBUFF:
  4760.         return target.isNDebuffAffected(effect.dataId);
  4761.     default:
  4762.         return ICF.ParamCore.testItemEffect.call(this, target, effect);
  4763.     }
  4764. };
  4765.  
  4766. ICF.ParamCore.applyItemEffect = Game_Action.prototype.applyItemEffect;
  4767. Game_Action.prototype.applyItemEffect = function(target, effect) {
  4768.     switch (effect.code) {
  4769.     case Game_Action.EFFECT_ADD_NBUFF:
  4770.         this.itemEffectAddNBuff(target, effect);
  4771.         break;
  4772.     case Game_Action.EFFECT_ADD_NDEBUFF:
  4773.         this.itemEffectAddNDebuff(target, effect);
  4774.         break;
  4775.     case Game_Action.EFFECT_REMOVE_NBUFF:
  4776.         this.itemEffectRemoveNBuff(target, effect);
  4777.         break;
  4778.     case Game_Action.EFFECT_REMOVE_NDEBUFF:
  4779.         this.itemEffectRemoveNDebuff(target, effect);
  4780.         break;
  4781.     case Game_Action.EFFECT_NGROW:
  4782.         this.itemEffectGrowNParam(target, effect);
  4783.         break;
  4784.     case Game_Action.EFFECT_PGROW:
  4785.         this.itemEffectGrowPParam(target, effect);
  4786.         break;
  4787.     default:
  4788.         ICF.ParamCore.applyItemEffect.call(this, target, effect);
  4789.     }
  4790. };
  4791.  
  4792. Game_Action.prototype.itemEffectAddNBuff = function(target, effect) {
  4793.     target.addNBuff(effect.dataId, effect.value1);
  4794.     this.makeSuccess(target);
  4795. };
  4796.  
  4797. Game_Action.prototype.itemEffectAddNDebuff = function(target, effect) {
  4798.     var chance = target.NDebuffRate(effect.dataId) * this.lukEffectRate(target);
  4799.     if (Math.random() < chance) {
  4800.         target.addNDebuff(effect.dataId, effect.value1);
  4801.         this.makeSuccess(target);
  4802.     }
  4803. };
  4804.  
  4805. Game_Action.prototype.itemEffectRemoveNBuff = function(target, effect) {
  4806.     if (target.isNBuffAffected(effect.dataId)) {
  4807.         target.removeNBuff(effect.dataId);
  4808.         this.makeSuccess(target);
  4809.     }
  4810. };
  4811.  
  4812. Game_Action.prototype.itemEffectRemoveNDebuff = function(target, effect) {
  4813.     if (target.isNDebuffAffected(effect.dataId)) {
  4814.         target.removeNBuff(effect.dataId);
  4815.         this.makeSuccess(target);
  4816.     }
  4817. };
  4818.  
  4819. Game_Action.prototype.itemEffectGrowNParam = function(target, effect) {
  4820.     target.addNParam(effect.dataId, Math.floor(effect.value1));
  4821.     this.makeSuccess(target);
  4822. };
  4823.  
  4824. Game_Action.prototype.itemEffectGrowPParam = function(target, effect) {
  4825.     target.addPParam(effect.dataId, Math.floor(effect.value1));
  4826.     this.makeSuccess(target);
  4827. };
  4828.  
  4829. //=============================================================================
  4830. // Game_ActionResult
  4831. //=============================================================================
  4832.  
  4833. ICF.ParamCore.GARClear = Game_ActionResult.prototype.clear;
  4834. Game_ActionResult.prototype.clear = function() {
  4835.     ICF.ParamCore.GARClear.call(this);
  4836.     this.addedNBuffs = [];
  4837.     this.addedNDebuffs = [];
  4838.     this.removedNBuffs = [];
  4839. };
  4840.  
  4841. Game_ActionResult.prototype.isNBuffAdded = function(paramId) {
  4842.     return this.addedNBuffs.contains(paramId);
  4843. };
  4844.  
  4845. Game_ActionResult.prototype.pushAddedNBuff = function(paramId) {
  4846.     if (!this.isNBuffAdded(paramId)) {
  4847.         this.addedNBuffs.push(paramId);
  4848.     }
  4849. };
  4850.  
  4851. Game_ActionResult.prototype.isNDebuffAdded = function(paramId) {
  4852.     return this.addedNDebuffs.contains(paramId);
  4853. };
  4854.  
  4855. Game_ActionResult.prototype.pushAddedNDebuff = function(paramId) {
  4856.     if (!this.isNDebuffAdded(paramId)) {
  4857.         this.addedNDebuffs.push(paramId);
  4858.     }
  4859. };
  4860.  
  4861. Game_ActionResult.prototype.isNBuffRemoved = function(paramId) {
  4862.     return this.removedNBuffs.contains(paramId);
  4863. };
  4864.  
  4865. Game_ActionResult.prototype.pushnRemovedBuff = function(paramId) {
  4866.     if (!this.isNBuffRemoved(paramId)) {
  4867.         this.removedNBuffs.push(paramId);
  4868.     }
  4869. };
  4870.  
  4871. //=============================================================================
  4872. // Game_Item
  4873. //=============================================================================
  4874.  
  4875. Game_Item.prototype.nparamTypes = function() {
  4876.     return this.traitDataTypesMod(24, 100);
  4877. };
  4878.  
  4879. Game_Item.prototype.pparamTypes = function() {
  4880.     return this.traitDataTypesMod(25, 100);
  4881. };
  4882.  
  4883. Game_Item.prototype.paramTypes = function() {
  4884.     return this.traitDataTypesMod(21, 10);
  4885. };
  4886.  
  4887. Game_Item.prototype.xparamTypes = function() {
  4888.     return this.traitDataTypesMod(22, 10);
  4889. };
  4890.  
  4891. Game_Item.prototype.sparamTypes = function() {
  4892.     return this.traitDataTypesMod(23, 10);
  4893. };
  4894.  
  4895. //=============================================================================
  4896. // Utility
  4897. //=============================================================================
  4898.  
  4899. if (Imported.ICFSoft_MainCore) {
  4900.     ICF.MainCore.functions['NParam'] = function(args, params) {
  4901.         var index = args.shift();
  4902.         ICF.Param.NParams[index] = args.shift();
  4903.         ICF.Param.NParamsFullName[index] = args.join(' ');
  4904.         ICF.Param.NParamBase[index] = ICF.Param.NParamBase[index] || [30,15,0.5];
  4905.         ICF.Param.NParamLimit[index] = ICF.Param.NParamLimit[index] || "(this.isActor())? [0, 999, 1200] : [0, 999, 1200]";
  4906.         ICF.Param.NParamBuffIcons[index] = ICF.Param.NParamBuffIcons[index] || [];
  4907.         ICF.Param.NParamDebuffIcons[index] = ICF.Param.NParamDebuffIcons[index] || [];
  4908.         for (var i = 0; i < params.length; i++) {
  4909.             var ary = params[i].split(/\s+/);
  4910.             var code = ary.shift().toLowerCase();
  4911.             if (code == "base") {
  4912.             ICF.Param.NParamBase[index] = ary.leaveNumbers();
  4913.             } else if (code == "limit") {
  4914.             ICF.Param.NParamLimit[index] = ary.join(" ");
  4915.             } else if (code == "buff") {
  4916.             ICF.Param.NParamBuffIcons[index] = ary.leaveNumbers();
  4917.             } else if (code == "debuff") {
  4918.             ICF.Param.NParamDebuffIcons[index] = ary.leaveNumbers();
  4919.             }
  4920.         }
  4921.     }
  4922.  
  4923.     ICF.MainCore.functions['PParam'] = function(args, params) {
  4924.         var index = args.shift();
  4925.         ICF.Param.PParams[index] = args.shift();
  4926.         ICF.Param.PParamsFullName[index] = args.join(' ');
  4927.         ICF.Param.PParamBase[index] = ICF.Param.NParamBase[index] || 0;
  4928.         for (var i = 0; i < params.length; i++) {
  4929.             var ary = params[i].split(/\s+/);
  4930.             var code = ary.shift().toLowerCase();
  4931.             if (code == "base") {
  4932.             ICF.Param.NParamBase[index] = ary.join(" ");
  4933.             }
  4934.         }
  4935.     }
  4936. }
  4937.  
  4938. //=============================================================================
  4939. // End of File
  4940. //=============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement