Advertisement
ICF-Soft

ICF-Soft Status Menu 1.02 RPG Maker MV

May 8th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============================================================================
  2. // ICF-Soft Plugins - Status Menu
  3. // ICFSoft_StatusMenu.js
  4. //=============================================================================
  5.  
  6. var Imported = Imported || {};
  7. Imported.ICFSoft_StatusMenu = true;
  8.  
  9. var ICF = ICF || {};
  10. ICF.StatusMenu = ICF.StatusMenu || {};
  11. ICF.NotetagsProcessor = ICF.NotetagsProcessor || {};
  12.  
  13. ICF.StatusMenu.Version = 102; // 1.02
  14.  
  15. //=============================================================================
  16.  /*:
  17.  * @plugindesc v1.02 A status menu where you can organize actor params.
  18.  * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
  19.  *
  20.  * @param Column1
  21.  * @desc Param names that will be shown in column.
  22.  * @default atk def mat mdf agi luk
  23.  *
  24.  * @param Column2
  25.  * @desc Param names that will be shown in column.
  26.  * @default
  27.  *
  28.  * @param Column3
  29.  * @desc Param names that will be shown in column.
  30.  * @default
  31.  *
  32.  * @param Percentage params
  33.  * @desc What params will be used as percentages.
  34.  * @default
  35.  *
  36.  * @param Eval0 Name
  37.  * @desc A name to show inside status menu.
  38.  * @default Something random
  39.  *
  40.  * @param Eval0 Formula
  41.  * @desc Custom formula to show a value.
  42.  * @default Math.trunc(Math.random() * 100)
  43.  *
  44.  * @param Eval1 Name
  45.  * @desc A name to show inside status menu.
  46.  * @default
  47.  *
  48.  * @param Eval1 Formula
  49.  * @desc Custom formula to show a value.
  50.  * @default
  51.  *
  52.  * @param Eval2 Name
  53.  * @desc A name to show inside status menu.
  54.  * @default
  55.  *
  56.  * @param Eval2 Formula
  57.  * @desc Custom formula to show a value.
  58.  * @default
  59.  *
  60.  * @param Eval3 Name
  61.  * @desc A name to show inside status menu.
  62.  * @default
  63.  *
  64.  * @param Eval3 Formula
  65.  * @desc Custom formula to show a value.
  66.  * @default
  67.  *
  68.  * @param Eval4 Name
  69.  * @desc A name to show inside status menu.
  70.  * @default
  71.  *
  72.  * @param Eval4 Formula
  73.  * @desc Custom formula to show a value.
  74.  * @default
  75.  *
  76.  * @param Eval5 Name
  77.  * @desc A name to show inside status menu.
  78.  * @default
  79.  *
  80.  * @param Eval5 Formula
  81.  * @desc Custom formula to show a value.
  82.  * @default
  83.  *
  84.  * @param Eval6 Name
  85.  * @desc A name to show inside status menu.
  86.  * @default
  87.  *
  88.  * @param Eval6 Formula
  89.  * @desc Custom formula to show a value.
  90.  * @default
  91.  *
  92.  * @param Eval7 Name
  93.  * @desc A name to show inside status menu.
  94.  * @default
  95.  *
  96.  * @param Eval7 Formula
  97.  * @desc Custom formula to show a value.
  98.  * @default
  99.  *
  100.  * @param Eval8 Name
  101.  * @desc A name to show inside status menu.
  102.  * @default
  103.  *
  104.  * @param Eval8 Formula
  105.  * @desc Custom formula to show a value.
  106.  * @default
  107.  *
  108.  * @param Eval9 Name
  109.  * @desc A name to show inside status menu.
  110.  * @default
  111.  *
  112.  * @param Eval9 Formula
  113.  * @desc Custom formula to show a value.
  114.  * @default
  115.  *
  116.  * @param Percentage0 Name
  117.  * @desc A name to show inside status menu.
  118.  * @default Something random
  119.  *
  120.  * @param Percentage0 Formula
  121.  * @desc Custom formula to show a percentage value.
  122.  * @default Math.random()
  123.  *
  124.  * @param Percentage1 Name
  125.  * @desc A name to show inside status menu.
  126.  * @default
  127.  *
  128.  * @param Percentage1 Formula
  129.  * @desc Custom formula to show a percentage value.
  130.  * @default
  131.  *
  132.  * @param Percentage2 Name
  133.  * @desc A name to show inside status menu.
  134.  * @default
  135.  *
  136.  * @param Percentage2 Formula
  137.  * @desc Custom formula to show a percentage value.
  138.  * @default
  139.  *
  140.  * @param Percentage3 Name
  141.  * @desc A name to show inside status menu.
  142.  * @default
  143.  *
  144.  * @param Percentage3 Formula
  145.  * @desc Custom formula to show a percentage value.
  146.  * @default
  147.  *
  148.  * @param Percentage4 Name
  149.  * @desc A name to show inside status menu.
  150.  * @default
  151.  *
  152.  * @param Percentage4 Formula
  153.  * @desc Custom formula to show a percentage value.
  154.  * @default
  155.  *
  156.  * @param Percentage5 Name
  157.  * @desc A name to show inside status menu.
  158.  * @default
  159.  *
  160.  * @param Percentage5 Formula
  161.  * @desc Custom formula to show a percentage value.
  162.  * @default
  163.  *
  164.  * @param Percentage6 Name
  165.  * @desc A name to show inside status menu.
  166.  * @default
  167.  *
  168.  * @param Percentage6 Formula
  169.  * @desc Custom formula to show a percentage value.
  170.  * @default
  171.  *
  172.  * @param Percentage7 Name
  173.  * @desc A name to show inside status menu.
  174.  * @default
  175.  *
  176.  * @param Percentage7 Formula
  177.  * @desc Custom formula to show a percentage value.
  178.  * @default
  179.  *
  180.  * @param Percentage8 Name
  181.  * @desc A name to show inside status menu.
  182.  * @default
  183.  *
  184.  * @param Percentage8 Formula
  185.  * @desc Custom formula to show a percentage value.
  186.  * @default
  187.  *
  188.  * @param Percentage9 Name
  189.  * @desc A name to show inside status menu.
  190.  * @default
  191.  *
  192.  * @param Percentage9 Formula
  193.  * @desc Custom formula to show a percentage value.
  194.  * @default
  195.  *
  196.  * @param XParam0 Full Name
  197.  * @desc Name that will be shown for this extra param.
  198.  * @default Hit rate
  199.  *
  200.  * @param XParam1 Full Name
  201.  * @desc Name that will be shown for this extra param.
  202.  * @default Evasion rate
  203.  *
  204.  * @param XParam2 Full Name
  205.  * @desc Name that will be shown for this extra param.
  206.  * @default Critical rate
  207.  *
  208.  * @param XParam3 Full Name
  209.  * @desc Name that will be shown for this extra param.
  210.  * @default Critical evasion rate
  211.  *
  212.  * @param XParam4 Full Name
  213.  * @desc Name that will be shown for this extra param.
  214.  * @default Magic evasion rate
  215.  *
  216.  * @param XParam5 Full Name
  217.  * @desc Name that will be shown for this extra param.
  218.  * @default Magic reflection rate
  219.  *
  220.  * @param XParam6 Full Name
  221.  * @desc Name that will be shown for this extra param.
  222.  * @default Counter-attack rate
  223.  *
  224.  * @param XParam7 Full Name
  225.  * @desc Name that will be shown for this extra param.
  226.  * @default Hp-regen rate
  227.  *
  228.  * @param XParam8 Full Name
  229.  * @desc Name that will be shown for this extra param.
  230.  * @default Mp-regen rate
  231.  *
  232.  * @param XParam9 Full Name
  233.  * @desc Name that will be shown for this extra param.
  234.  * @default Tp-regen rate
  235.  *
  236.  * @param SParam0 Full Name
  237.  * @desc Name that will be shown for this special param.
  238.  * @default Targeted rate
  239.  *
  240.  * @param SParam1 Full Name
  241.  * @desc Name that will be shown for this special param.
  242.  * @default Guard rate
  243.  *
  244.  * @param SParam2 Full Name
  245.  * @desc Name that will be shown for this special param.
  246.  * @default Recovery rate
  247.  *
  248.  * @param SParam3 Full Name
  249.  * @desc Name that will be shown for this special param.
  250.  * @default Pharmacology
  251.  *
  252.  * @param SParam4 Full Name
  253.  * @desc Name that will be shown for this special param.
  254.  * @default Mp cost rate
  255.  *
  256.  * @param SParam5 Full Name
  257.  * @desc Name that will be shown for this special param.
  258.  * @default Tp cost rate
  259.  *
  260.  * @param SParam6 Full Name
  261.  * @desc Name that will be shown for this special param.
  262.  * @default Phisical damage rate
  263.  *
  264.  * @param SParam7 Full Name
  265.  * @desc Name that will be shown for this special param.
  266.  * @default Magical damage rate
  267.  *
  268.  * @param SParam8 Full Name
  269.  * @desc Name that will be shown for this special param.
  270.  * @default Floor damage rate
  271.  *
  272.  * @param SParam9 Full Name
  273.  * @desc Name that will be shown for this special param.
  274.  * @default Experience rate
  275.  *
  276.  * @help
  277.  * ============================================================================
  278.  * Introduction
  279.  * ============================================================================
  280.  *
  281.  * This plugin is made for use with ICF-Soft Params Core but can work alone.
  282.  *
  283.  * Allows you to show params in up to three columns plus equip, using all
  284.  * window width.
  285.  *
  286.  * You can use javascript code to be run to get a value and change columns
  287.  * for specified actors.
  288.  *
  289.  * More features will be added in the future.
  290.  *
  291.  * ============================================================================
  292.  * How to use
  293.  * ============================================================================
  294.  *
  295.  * You can give different columns for specified actors with this notetag:
  296.  *
  297.  * <STATUS MENU COL x param param param>
  298.  *
  299.  * You need to specify column from 1 to 3 that will be replaced and
  300.  * params are separated by spaces.
  301.  *
  302.  * ============================================================================
  303.  * Parameters
  304.  * ============================================================================
  305.  *
  306.  * ColumnX: Place the param names that will be shown in comlumn separated by
  307.  * spaces. You can use up to 3 columns sharing width with equips.
  308.  * It works with param, nparam, pparam and eval and percentage codes.
  309.  * These codes are from eval0 to eval9, same for percentage ones.
  310.  *
  311.  * Percentage params: Tell what params will be used as percentages.
  312.  * It works with pparam.
  313.  *
  314.  * EvalX/PercentageX Name: A name to give to pseudoparams inside
  315.  * status menu.
  316.  *
  317.  * EvalX/PercentageX Formula: These are custom formulas to give
  318.  * a value. Normal eval allow to use strings as a result while
  319.  * percentage ones must give a rate to convert into a percentage.
  320.  *
  321.  * ============================================================================
  322.  * Incompatibilities
  323.  * ============================================================================
  324.  *
  325.  * Can be incompatible or interfere with some similar plugins.
  326.  *
  327.  * ============================================================================
  328.  * Known isues
  329.  * ============================================================================
  330.  *
  331.  * Can interfere with some similar plugins or enhace them.
  332.  * Later or sooner will be a status menu replace.
  333.  *
  334.  * ============================================================================
  335.  * Changelog
  336.  * ============================================================================
  337.  *
  338.  * Version 1.02:
  339.  * - Added custom formulas to get values.
  340.  * - Added custom columns for specified actors.
  341.  *
  342.  * Version 1.01:
  343.  * - Allow to show special and extra params.
  344.  *
  345.  * Version 1.00:
  346.  * - Finished plugin!
  347.  *
  348.  * ============================================================================
  349.  *
  350.  * For commercial and non-commercial games.
  351.  * Credit to ICF-Soft.
  352.  * This entire header must be included with plugin.
  353.  *
  354.  * ============================================================================
  355. */
  356. //=============================================================================
  357.  /*:es
  358.  * @plugindesc v1.02 Una ventana de estado que permite mostrar
  359.  * los nparam y los pparam.
  360.  * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
  361.  *
  362.  * @param Column1
  363.  * @desc Nombres básicos de los parámetros separados por espacios.
  364.  * @default atk def mat mdf agi luk
  365.  *
  366.  * @param Column2
  367.  * @desc Nombres básicos de los parámetros separados por espacios.
  368.  * @default
  369.  *
  370.  * @param Column3
  371.  * @desc Nombres básicos de los parámetros separados por espacios.
  372.  * @default
  373.  *
  374.  * @param Percentage params
  375.  * @desc Indica qué parámetros serán tratados como porcentajes.
  376.  * @default
  377.  *
  378.  * @param Eval0 Name
  379.  * @desc Nombre a mostrar en el menú de estado.
  380.  * @default Algo aleatorio
  381.  *
  382.  * @param Eval0 Formula
  383.  * @desc Fórmula personalizada para obtener un valor.
  384.  * @default Math.trunc(Math.random() * 100)
  385.  *
  386.  * @param Eval1 Name
  387.  * @desc Nombre a mostrar en el menú de estado.
  388.  * @default
  389.  *
  390.  * @param Eval1 Formula
  391.  * @desc Fórmula personalizada para obtener un valor.
  392.  * @default
  393.  *
  394.  * @param Eval2 Name
  395.  * @desc Nombre a mostrar en el menú de estado.
  396.  * @default
  397.  *
  398.  * @param Eval2 Formula
  399.  * @desc Fórmula personalizada para obtener un valor.
  400.  * @default
  401.  *
  402.  * @param Eval3 Name
  403.  * @desc Nombre a mostrar en el menú de estado.
  404.  * @default
  405.  *
  406.  * @param Eval3 Formula
  407.  * @desc Fórmula personalizada para obtener un valor.
  408.  * @default
  409.  *
  410.  * @param Eval4 Name
  411.  * @desc Nombre a mostrar en el menú de estado.
  412.  * @default
  413.  *
  414.  * @param Eval4 Formula
  415.  * @desc Fórmula personalizada para obtener un valor.
  416.  * @default
  417.  *
  418.  * @param Eval5 Name
  419.  * @desc Nombre a mostrar en el menú de estado.
  420.  * @default
  421.  *
  422.  * @param Eval5 Formula
  423.  * @desc Fórmula personalizada para obtener un valor.
  424.  * @default
  425.  *
  426.  * @param Eval6 Name
  427.  * @desc Nombre a mostrar en el menú de estado.
  428.  * @default
  429.  *
  430.  * @param Eval6 Formula
  431.  * @desc Fórmula personalizada para obtener un valor.
  432.  * @default
  433.  *
  434.  * @param Eval7 Name
  435.  * @desc Nombre a mostrar en el menú de estado.
  436.  * @default
  437.  *
  438.  * @param Eval7 Formula
  439.  * @desc Fórmula personalizada para obtener un valor.
  440.  * @default
  441.  *
  442.  * @param Eval8 Name
  443.  * @desc Nombre a mostrar en el menú de estado.
  444.  * @default
  445.  *
  446.  * @param Eval8 Formula
  447.  * @desc Fórmula personalizada para obtener un valor.
  448.  * @default
  449.  *
  450.  * @param Eval9 Name
  451.  * @desc Nombre a mostrar en el menú de estado.
  452.  * @default
  453.  *
  454.  * @param Eval9 Formula
  455.  * @desc Fórmula personalizada para obtener un valor.
  456.  * @default
  457.  *
  458.  * @param Percentage0 Name
  459.  * @desc Nombre a mostrar en el menú de estado.
  460.  * @default Algo aleatorio
  461.  *
  462.  * @param Percentage0 Formula
  463.  * @desc Fórmula personalizada para obtener un valor porcentual.
  464.  * @default Math.random()
  465.  *
  466.  * @param Percentage1 Name
  467.  * @desc Nombre a mostrar en el menú de estado.
  468.  * @default
  469.  *
  470.  * @param Percentage1 Formula
  471.  * @desc Fórmula personalizada para obtener un valor porcentual.
  472.  * @default
  473.  *
  474.  * @param Percentage2 Name
  475.  * @desc Nombre a mostrar en el menú de estado.
  476.  * @default
  477.  *
  478.  * @param Percentage2 Formula
  479.  * @desc Fórmula personalizada para obtener un valor porcentual.
  480.  * @default
  481.  *
  482.  * @param Percentage3 Name
  483.  * @desc Nombre a mostrar en el menú de estado.
  484.  * @default
  485.  *
  486.  * @param Percentage3 Formula
  487.  * @desc Fórmula personalizada para obtener un valor porcentual.
  488.  * @default
  489.  *
  490.  * @param Percentage4 Name
  491.  * @desc Nombre a mostrar en el menú de estado.
  492.  * @default
  493.  *
  494.  * @param Percentage4 Formula
  495.  * @desc Fórmula personalizada para obtener un valor porcentual.
  496.  * @default
  497.  *
  498.  * @param Percentage5 Name
  499.  * @desc Nombre a mostrar en el menú de estado.
  500.  * @default
  501.  *
  502.  * @param Percentage5 Formula
  503.  * @desc Fórmula personalizada para obtener un valor porcentual.
  504.  * @default
  505.  *
  506.  * @param Percentage6 Name
  507.  * @desc Nombre a mostrar en el menú de estado.
  508.  * @default
  509.  *
  510.  * @param Percentage6 Formula
  511.  * @desc Fórmula personalizada para obtener un valor porcentual.
  512.  * @default
  513.  *
  514.  * @param Percentage7 Name
  515.  * @desc Nombre a mostrar en el menú de estado.
  516.  * @default
  517.  *
  518.  * @param Percentage7 Formula
  519.  * @desc Fórmula personalizada para obtener un valor porcentual.
  520.  * @default
  521.  *
  522.  * @param Percentage8 Name
  523.  * @desc Nombre a mostrar en el menú de estado.
  524.  * @default
  525.  *
  526.  * @param Percentage8 Formula
  527.  * @desc Fórmula personalizada para obtener un valor porcentual.
  528.  * @default
  529.  *
  530.  * @param Percentage9 Name
  531.  * @desc Nombre a mostrar en el menú de estado.
  532.  * @default
  533.  *
  534.  * @param Percentage9 Formula
  535.  * @desc Fórmula personalizada para obtener un valor porcentual.
  536.  * @default
  537.  *
  538.  * @param XParam0 Full Name
  539.  * @desc Nombre mostrado para este parámetro extra.
  540.  * @default Puntería
  541.  *
  542.  * @param XParam1 Full Name
  543.  * @desc Nombre mostrado para este parámetro extra.
  544.  * @default Evasión
  545.  *
  546.  * @param XParam2 Full Name
  547.  * @desc Nombre mostrado para este parámetro extra.
  548.  * @default Probabilidad de crítico
  549.  *
  550.  * @param XParam3 Full Name
  551.  * @desc Nombre mostrado para este parámetro extra.
  552.  * @default Evadir crítico
  553.  *
  554.  * @param XParam4 Full Name
  555.  * @desc Nombre mostrado para este parámetro extra.
  556.  * @default Evasión mágica
  557.  *
  558.  * @param XParam5 Full Name
  559.  * @desc Nombre mostrado para este parámetro extra.
  560.  * @default Reflejo mágico
  561.  *
  562.  * @param XParam6 Full Name
  563.  * @desc Nombre mostrado para este parámetro extra.
  564.  * @default Contraataque
  565.  *
  566.  * @param XParam7 Full Name
  567.  * @desc Nombre mostrado para este parámetro extra.
  568.  * @default Regenerar vida
  569.  *
  570.  * @param XParam8 Full Name
  571.  * @desc Nombre mostrado para este parámetro extra.
  572.  * @default Regenerar magia
  573.  *
  574.  * @param XParam9 Full Name
  575.  * @desc Nombre mostrado para este parámetro extra.
  576.  * @default Regenerar turbo
  577.  *
  578.  * @param SParam0 Full Name
  579.  * @desc Nombre mostrado para este parámetro especial.
  580.  * @default Ser el objetivo
  581.  *
  582.  * @param SParam1 Full Name
  583.  * @desc Nombre mostrado para este parámetro especial.
  584.  * @default Efecto defensivo
  585.  *
  586.  * @param SParam2 Full Name
  587.  * @desc Nombre mostrado para este parámetro especial.
  588.  * @default Efecto de recuperación
  589.  *
  590.  * @param SParam3 Full Name
  591.  * @desc Nombre mostrado para este parámetro especial.
  592.  * @default Farmacología
  593.  *
  594.  * @param SParam4 Full Name
  595.  * @desc Nombre mostrado para este parámetro especial.
  596.  * @default Coste de mp
  597.  *
  598.  * @param SParam5 Full Name
  599.  * @desc Nombre mostrado para este parámetro especial.
  600.  * @default Coste de tp
  601.  *
  602.  * @param SParam6 Full Name
  603.  * @desc Nombre mostrado para este parámetro especial.
  604.  * @default Daño físico recibido
  605.  *
  606.  * @param SParam7 Full Name
  607.  * @desc Nombre mostrado para este parámetro especial.
  608.  * @default Daño mágico recibido
  609.  *
  610.  * @param SParam8 Full Name
  611.  * @desc Nombre mostrado para este parámetro especial.
  612.  * @default Daño por el terreno
  613.  *
  614.  * @param SParam9 Full Name
  615.  * @desc Nombre mostrado para este parámetro especial.
  616.  * @default Experiencia obtenible
  617.  *
  618.  * @help
  619.  * ============================================================================
  620.  * Introducción
  621.  * ============================================================================
  622.  *
  623.  * Este plugin está hecho para su uso con el ICF-Soft Params Core pero puede
  624.  * usarse solo.
  625.  *
  626.  * Permite mostrar los parámetros en hasta tres columnas aparte del
  627.  * equipamiento aprovechando todo el ancho.
  628.  *
  629.  * Puedes utilizar código javascript que se ejecutará para obtener un valor
  630.  * y además cambiar columnas para personajes específicos.
  631.  *
  632.  * Iré añadiendo más características.
  633.  *
  634.  * ============================================================================
  635.  * Uso
  636.  * ============================================================================
  637.  *
  638.  * Puedes alterar las columnas para personajes específicos con la
  639.  * siguiente etiqueta:
  640.  *
  641.  * <STATUS MENU COL x param param param>
  642.  *
  643.  * Debes especificar una columna entre la 1 y la 3 que será reemplazada
  644.  * y los parámetros separados por espacios.
  645.  *
  646.  * ============================================================================
  647.  * Parámetros
  648.  * ============================================================================
  649.  *
  650.  * ColumnX: Para colocar los nombres básicos de los parámetros separados por
  651.  * espacios. Hay hasta 3 columnas repartidas entre el ancho de la ventana.
  652.  * Por el momento funciona con los param, nparam y pparam y los códigos de
  653.  * eval y percentage. Dichos códigos van de eval0 a eval9 y de percentage0
  654.  * a percentage9.
  655.  *
  656.  * Percentage params: Indica qué parámetros serán tratados como porcentajes.
  657.  * Usa dos decimales. De momento solo para los pparam.
  658.  *
  659.  * EvalX/PercentageX Name: Un nombre a mostrar dentro del menú de estado
  660.  * para representar el código javascript.
  661.  *
  662.  * EvalX/PercentageX Formula: Fórmulas personalizadas de donde obtener un
  663.  * valor. Los códigos eval permiten el uso de strings como resultado
  664.  * mientras que los percentage requieren un número de donde sacar un
  665.  * porcentaje.
  666.  *
  667.  * ============================================================================
  668.  * Incompatibilidades
  669.  * ============================================================================
  670.  *
  671.  * Puede ser incompatible con otros plugins similares.
  672.  *
  673.  * ============================================================================
  674.  * Problemas conocidos
  675.  * ============================================================================
  676.  *
  677.  * Puede interferir con otros plugins similares. Pero puede combinarse
  678.  * con otros.
  679.  * Tarde o temprano será un reemplazo del menú estado.
  680.  *
  681.  * ============================================================================
  682.  * Historial de versiones
  683.  * ============================================================================
  684.  *
  685.  * Versión 1.02:
  686.  * - Añadidas fórmulas personalizadas para obtener valores.
  687.  * - Añadidas columnas personalizadas para personajes específicos.
  688.  *
  689.  * Versión 1.01:
  690.  * - Permite mostrar los parámetros especiales y extra.
  691.  *
  692.  * Versión 1.00:
  693.  * - Complemento terminado.
  694.  *
  695.  * ============================================================================
  696.  *
  697.  * Para juegos comerciales y no comerciales.
  698.  * Se debe incluir a ICF-Soft en los créditos.
  699.  * Esta cabecera debe incluirse íntegramente con el plugin.
  700.  *
  701.  * ============================================================================
  702. */
  703. //=============================================================================
  704.  
  705. //=============================================================================
  706. // Parameter Variables
  707. //=============================================================================
  708.  
  709. ICF.Parameters = PluginManager.parameters('ICFSoft_StatusMenu');
  710. ICF.Param = ICF.Param || {};
  711.  
  712. ICF.Param.StatusMenuCol1 = ICF.Parameters['Column1'].toLowerCase().trim().split(/\s+/);
  713. ICF.Param.StatusMenuCol2 = ICF.Parameters['Column2'].toLowerCase().trim().split(/\s+/);
  714. ICF.Param.StatusMenuCol3 = ICF.Parameters['Column3'].toLowerCase().trim().split(/\s+/);
  715. ICF.Param.PercentageParams = ICF.Parameters['Percentage params'].toLowerCase().split(/\s+/);
  716.  
  717. if (ICF.Param.StatusMenuCol1[0] == "") ICF.Param.StatusMenuCol1.shift();
  718. if (ICF.Param.StatusMenuCol2[0] == "") ICF.Param.StatusMenuCol2.shift();
  719. if (ICF.Param.StatusMenuCol3[0] == "") ICF.Param.StatusMenuCol3.shift();
  720.  
  721. if (!Imported.ICFSoft_ParamCore) {
  722.     ICF.Param.NParams = [];
  723.     ICF.Param.PParams = [];
  724.     ICF.Param.BParams = ["mhp", "mmp", "atk", "def", "mat", "mdf", "agi", "luk"];
  725.     ICF.Param.XParamsFullName = [];
  726.     ICF.Param.XParams = ["hit", "eva", "cri", "cev", "mev", "mrf", "cnt", "hrg", "mrg", "trg"];
  727.     ICF.Param.SParamsFullName = [];
  728.     ICF.Param.SParams = ["tgr", "grd", "rec", "pha", "mcr", "tcr", "pdr", "mdr", "fdr", "exr"];
  729.  
  730.     for (var i = 0; i < 10; i++) {
  731.         ICF.Param.XParamsFullName[i] = String(ICF.Parameters['XParam' + i + ' Full Name']);
  732.         ICF.Param.SParamsFullName[i] = String(ICF.Parameters['SParam' + i + ' Full Name']);
  733.     }
  734.  
  735. }
  736.  
  737. ICF.Param.EvalParams = [];
  738. ICF.Param.EvalPercentParams = [];
  739. for (var i = 0; i < 10; i++) {
  740.     ICF.Param.EvalParams[i] = [];
  741.     ICF.Param.EvalParams[i][0] = String(ICF.Parameters['Eval' + i + ' Name']);
  742.     ICF.Param.EvalParams[i][1] = String(ICF.Parameters['Eval' + i + ' Formula']);
  743.     ICF.Param.EvalPercentParams[i] = [];
  744.     ICF.Param.EvalPercentParams[i][0] = String(ICF.Parameters['Percentage' + i + ' Name']);
  745.     ICF.Param.EvalPercentParams[i][1] = String(ICF.Parameters['Percentage' + i + ' Formula']);
  746. }
  747.  
  748. //=============================================================================
  749. // DataManager
  750. //=============================================================================
  751.  
  752. ICF.StatusMenu.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
  753. DataManager.isDatabaseLoaded = function() {
  754.     if (!ICF.StatusMenu.DataManager_isDatabaseLoaded.call(this)) return false;
  755.     if (!ICF.StatusMenu.Procesed) {
  756.     ICF.NotetagsProcessor.statusMenu($dataActors);
  757.     ICF.StatusMenu.Procesed = true;
  758.     }
  759.     return true;
  760. };
  761.  
  762. ICF.NotetagsProcessor.statusMenu = function(group) {
  763.     var note = /<(?:STATUS[-_ ]MENU[-_ ]COL[-_ ])(\d)[ ]+((?:[\w-_]+\s*)+)>/i;
  764.  
  765.     for (var n = 1; n < group.length; n++) {
  766.     var obj = group[n];
  767.     var notedata = obj.note.split(/[\r\n]+/);
  768.  
  769.     obj.StatusMenuCols = [];
  770.  
  771.         for (var i = 0; i < notedata.length; i++) {
  772.         var line = notedata[i];
  773.         if (line.match(note)) {
  774.             obj.StatusMenuCols[Number(RegExp.$1)] = RegExp.$2.toLowerCase().trim().split(/\s+/);
  775.         }
  776.         }
  777.     }
  778. };
  779.  
  780. //=============================================================================
  781. // Game_Actor
  782. //=============================================================================
  783.  
  784. Game_Actor.prototype.statusMenuCols = function() {
  785.     var st0 = $dataActors[this._actorId].StatusMenuCols;
  786.     var st1 = [];
  787.     st1[1] = st0[1] || ICF.Param.StatusMenuCol1;
  788.     st1[2] = st0[2] || ICF.Param.StatusMenuCol2;
  789.     st1[3] = st0[3] || ICF.Param.StatusMenuCol3;
  790.     return st1;
  791. };
  792.  
  793. //=============================================================================
  794. // Window_Status
  795. //=============================================================================
  796.  
  797. Window_Status.prototype.drawBlock3 = function(y) {
  798.     var st = this._actor.statusMenuCols();
  799.  
  800.     if (st[1].length == 0) {
  801.     this.drawEquipments(this.contentsWidth()/2, y);
  802.     } else if (st[2].length == 0) {
  803.     var width = this.contentsWidth() / 2 - this.textPadding() * 3;
  804.     this.drawParameters(this.textPadding(), y, width, st[1]);
  805.     this.drawEquipments(this.contentsWidth()/2 + this.textPadding(), y);
  806.     } else if (st[3].length == 0) {
  807.     var width = this.contentsWidth() / 3 - this.textPadding() * 4;
  808.     this.drawParameters(this.textPadding(), y, width, st[1]);
  809.     this.drawParameters(this.contentsWidth()/3 + this.textPadding(), y, width, st[2]);
  810.     this.drawEquipments(this.contentsWidth()*2/3 + this.textPadding(), y);
  811.     } else {
  812.     var width = this.contentsWidth() / 4 - this.textPadding() * 5;
  813.     this.drawParameters(this.textPadding(), y, width, st[1]);
  814.     this.drawParameters(this.contentsWidth()/4 + this.textPadding(), y, width, st[2]);
  815.     this.drawParameters(this.contentsWidth()*2/4 + this.textPadding(), y, width, st[3]);
  816.     this.drawEquipments(this.contentsWidth()*3/4 + this.textPadding(), y);
  817.     }
  818. };
  819.  
  820. ICF.StatusMenu.drawParamsOldStyle = Window_Status.prototype.drawParameters;
  821. Window_Status.prototype.drawParameters = function(x, y, width, ary) {
  822.     if ((width == undefined)||(ary == undefined)) {
  823.     ICF.StatusMenu.drawParamsOldStyle.call(this, x, y);
  824.     return;
  825.     }
  826.     var lineHeight = this.lineHeight();
  827.     var y2 = y;
  828.     var actor = this._actor;
  829.     for (var i = 0; i < ary.length; i++) {
  830.         var param = [];
  831.     if (ICF.Param.NParams.indexOf(ary[i]) > -1) {
  832.         var paramId = ICF.Param.NParams.indexOf(ary[i]);
  833.         param.push(ICF.Param.NParamsFullName[paramId]);
  834.         param.push(actor.NParam(paramId));
  835.     } else if (ICF.Param.PParams.indexOf(ary[i]) > -1) {
  836.         var paramId = ICF.Param.PParams.indexOf(ary[i]);
  837.         param.push(ICF.Param.PParamsFullName[paramId]);
  838.         if (ICF.Param.PercentageParams.indexOf(ary[i]) > -1) {
  839.             param.push((actor.PParam(paramId)*100).toFixed(2) + "%");
  840.         } else {
  841.             param.push(Math.trunc(actor.PParam(paramId)));
  842.         }
  843.     } else if (ICF.Param.BParams.indexOf(ary[i]) > -1) {
  844.         var paramId = ICF.Param.BParams.indexOf(ary[i]);
  845.         param.push(TextManager.param(paramId));
  846.         param.push(actor.param(paramId));
  847.     } else if (ICF.Param.XParams.indexOf(ary[i]) > -1) {
  848.         var paramId = ICF.Param.XParams.indexOf(ary[i]);
  849.         param.push(ICF.Param.XParamsFullName[paramId]);
  850.         param.push((actor.xparam(paramId)*100).toFixed(2) + "%");
  851.     } else if (ICF.Param.SParams.indexOf(ary[i]) > -1) {
  852.         var paramId = ICF.Param.SParams.indexOf(ary[i]);
  853.         param.push(ICF.Param.SParamsFullName[paramId]);
  854.         param.push((actor.sparam(paramId)*100).toFixed(2) + "%");
  855.     } else if (ary[i].match(/(?:eval)(\d+)/i)) {
  856.         var paramId = ICF.Param.EvalParams[RegExp.$1];
  857.         param.push(paramId[0]);
  858.         param.push(eval(paramId[1]));
  859.     } else if (ary[i].match(/(?:percentage)(\d+)/i)) {
  860.         var paramId = ICF.Param.EvalPercentParams[RegExp.$1];
  861.         param.push(paramId[0]);
  862.         param.push((eval(paramId[1])*100).toFixed(2) + "%");
  863.     }
  864.     if (param.length > 0) {
  865.         this.changeTextColor(this.systemColor());
  866.         this.drawText(param[0], x, y2, width * 2 / 3);
  867.         this.resetTextColor();
  868.         this.drawText(param[1], x + width * 2 / 3, y2, width / 3, 'right');
  869.     }
  870.     y2 += lineHeight;
  871.     }
  872. };
  873.  
  874. //=============================================================================
  875. // End of File
  876. //=============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement