Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=============================================================================
- // ICF-Soft Plugins - Status Menu
- // ICFSoft_StatusMenu.js
- //=============================================================================
- var Imported = Imported || {};
- Imported.ICFSoft_StatusMenu = true;
- var ICF = ICF || {};
- ICF.StatusMenu = ICF.StatusMenu || {};
- ICF.NotetagsProcessor = ICF.NotetagsProcessor || {};
- ICF.StatusMenu.Version = 103; // 1.03
- //=============================================================================
- /*:
- * @plugindesc v1.03 A status menu where you can organize actor params.
- * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
- *
- * @param Column1
- * @desc Param names that will be shown in column.
- * @default atk def mat mdf agi luk
- *
- * @param Column2
- * @desc Param names that will be shown in column.
- * @default
- *
- * @param Column3
- * @desc Param names that will be shown in column.
- * @default
- *
- * @param Equip Column
- * @desc Param names that will be shown in equip menu.
- * @default atk def mat mdf agi luk
- *
- * @param Percentage params
- * @desc What params will be used as percentages.
- * @default
- *
- * @param Use New Param System
- * @desc Use the new way to add formulas.
- * @default true
- *
- * @param Evaluables
- * @desc Making values througth formulas.
- * @type struct<Evals>[]
- * @default ["{\"Name\":\"Something random\",\"Formula\":\"Math.trunc(Math.random() * 100)\"}"]
- *
- * @param Percentages
- * @desc Making percentage values througth formulas.
- * @type struct<Percents>[]
- * @default ["{\"Name\":\"Something random\",\"Formula\":\"Math.random()\"}"]
- *
- * @param Gauges
- * @desc Making gauges througth formulas.
- * @type struct<Gauges>[]
- * @default ["{\"Name\":\"Random gauge\",\"Current\":\"Math.trunc(Math.random() * 100)\",\"Max\":\"100\",\"Color1\":\"#e99\",\"Color2\":\"17\",\"Show Current and Max\":\"false\"}"]
- *
- * @param Eval0 Name
- * @desc A name to show inside status menu.
- * @default Something random
- *
- * @param Eval0 Formula
- * @desc Custom formula to show a value.
- * @default Math.trunc(Math.random() * 100)
- *
- * @param Eval1 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval1 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval2 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval2 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval3 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval3 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval4 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval4 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval5 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval5 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval6 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval6 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval7 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval7 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval8 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval8 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Eval9 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Eval9 Formula
- * @desc Custom formula to show a value.
- * @default
- *
- * @param Percentage0 Name
- * @desc A name to show inside status menu.
- * @default Something random
- *
- * @param Percentage0 Formula
- * @desc Custom formula to show a percentage value.
- * @default Math.random()
- *
- * @param Percentage1 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage1 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage2 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage2 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage3 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage3 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage4 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage4 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage5 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage5 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage6 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage6 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage7 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage7 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage8 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage8 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Percentage9 Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Percentage9 Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param XParam0 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Hit rate
- *
- * @param XParam1 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Evasion rate
- *
- * @param XParam2 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Critical rate
- *
- * @param XParam3 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Critical evasion rate
- *
- * @param XParam4 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Magic evasion rate
- *
- * @param XParam5 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Magic reflection rate
- *
- * @param XParam6 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Counter-attack rate
- *
- * @param XParam7 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Hp-regen rate
- *
- * @param XParam8 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Mp-regen rate
- *
- * @param XParam9 Full Name
- * @desc Name that will be shown for this extra param.
- * @default Tp-regen rate
- *
- * @param SParam0 Full Name
- * @desc Name that will be shown for this special param.
- * @default Targeted rate
- *
- * @param SParam1 Full Name
- * @desc Name that will be shown for this special param.
- * @default Guard rate
- *
- * @param SParam2 Full Name
- * @desc Name that will be shown for this special param.
- * @default Recovery rate
- *
- * @param SParam3 Full Name
- * @desc Name that will be shown for this special param.
- * @default Pharmacology
- *
- * @param SParam4 Full Name
- * @desc Name that will be shown for this special param.
- * @default Mp cost rate
- *
- * @param SParam5 Full Name
- * @desc Name that will be shown for this special param.
- * @default Tp cost rate
- *
- * @param SParam6 Full Name
- * @desc Name that will be shown for this special param.
- * @default Phisical damage rate
- *
- * @param SParam7 Full Name
- * @desc Name that will be shown for this special param.
- * @default Magical damage rate
- *
- * @param SParam8 Full Name
- * @desc Name that will be shown for this special param.
- * @default Floor damage rate
- *
- * @param SParam9 Full Name
- * @desc Name that will be shown for this special param.
- * @default Experience rate
- *
- * @help
- * ============================================================================
- * Introduction
- * ============================================================================
- *
- * This plugin is made for use with ICF-Soft Params Core but can work alone.
- *
- * Allows you to show params in up to three columns plus equip, using all
- * window width.
- *
- * You can use javascript code to be run to get a value and change columns
- * for specified actors.
- *
- * ============================================================================
- * How to use
- * ============================================================================
- *
- * You can give different columns for specified actors with this notetag:
- *
- * <STATUS MENU COL x param param param>
- *
- * You need to specify column from 1 to 3 that will be replaced and
- * params are separated by spaces.
- * Allow param, nparam, pparam, xparam, sparam, evals, percents and gauges.
- *
- * <EQUIP STATUS MENU COL param param param>
- *
- * Replace shown params in equip menu. Params are separated by spaces.
- * Allow param, nparam, pparam, xparam, sparam, evals and percents.
- *
- * More features will be added in the future.
- *
- * ============================================================================
- * Parameters
- * ============================================================================
- *
- * Use New Param System: Since MV version 1.5.0 there is a new way to setup
- * plugin parameters and this is made to use them.
- * You can create all evals parameters you'll need with indexes starting from 0.
- * Old system allows up to 10 evals and percentages with indexes from 0 to 9.
- * Old system will be removed in a future version.
- *
- * ColumnX: Place the param names that will be shown in comlumn separated by
- * spaces. You can use up to 3 columns sharing width with equips.
- * It works with param, nparam, pparam, evals, percents and gauges.
- *
- * Equip Column: Place the param names that will be shown in equip menu comlumn
- * separated by spaces.
- * It doesn't use gauges.
- *
- * Percentage params: Tell what params will be used as percentages.
- * It works with pparam.
- *
- * New params:
- * Evaluables: A name and a formula to determine a status slot.
- * Use eval0, eval1, eval2 ... etc.
- *
- * Percentages: A name and a formula to determine a status slot as a percentage.
- * Use percentage0, percentage1, percentage2 ... etc.
- *
- * Gauges: Place a gauge in a status slot. You can configure name, formulas for
- * current and max values, gauge colors and if you want to show both current
- * and max values or only current.
- * Use gauge0, gauge1, gauge2 ... etc.
- *
- * Old params:
- * EvalX/PercentageX Name: A name to give to pseudoparams inside
- * status menu.
- *
- * EvalX/PercentageX Formula: These are custom formulas to give
- * a value. Normal eval allow to use strings as a result while
- * percentage ones must give a rate to convert into a percentage.
- *
- * Old system doesn't have gauges.
- *
- * ============================================================================
- * Incompatibilities
- * ============================================================================
- *
- * Can be incompatible or interfere with some similar plugins.
- *
- * ============================================================================
- * Known isues
- * ============================================================================
- *
- * Can interfere with some similar plugins or enhace them.
- *
- * ============================================================================
- * Changelog
- * ============================================================================
- *
- * Version 1.03:
- * - Added a column for equipment menu.
- * - Added custom formulas for gauges.
- * - Use of 1.5.0 new plugin parameters.
- *
- * Version 1.02:
- * - Added custom formulas to get values.
- * - Added custom columns for specified actors.
- *
- * Version 1.01:
- * - Allow to show special and extra params.
- *
- * Version 1.00:
- * - Finished plugin!
- *
- * ============================================================================
- *
- * For commercial and non-commercial games.
- * Credit to ICF-Soft.
- * This entire header must be included with plugin.
- *
- * ============================================================================
- */
- //=============================================================================
- /*:es
- * @plugindesc v1.03 Una ventana de estado que permite mostrar
- * los nparam y los pparam.
- * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
- *
- * @param Column1
- * @desc Nombres básicos de los parámetros separados por espacios.
- * @default atk def mat mdf agi luk
- *
- * @param Column2
- * @desc Nombres básicos de los parámetros separados por espacios.
- * @default
- *
- * @param Column3
- * @desc Nombres básicos de los parámetros separados por espacios.
- * @default
- *
- * @param Equip Column
- * @desc Nombres básicos de los parámetros separados por espacios.
- * @default atk def mat mdf agi luk
- *
- * @param Percentage params
- * @desc Indica qué parámetros serán tratados como porcentajes.
- * @default
- *
- * @param Use New Param System
- * @desc Usar el nuevo modo de crear fórmulas.
- * @default true
- *
- * @param Evaluables
- * @desc Obteniendo valores a través de fórmulas.
- * @type struct<Evals>[]
- * @default ["{\"Name\":\"Algo aleatorio\",\"Formula\":\"Math.trunc(Math.random() * 100)\"}"]
- *
- * @param Percentages
- * @desc Obteniendo valores porcentuales a través de fórmulas.
- * @type struct<Percents>[]
- * @default ["{\"Name\":\"Algo aleatorio\",\"Formula\":\"Math.random()\"}"]
- *
- * @param Gauges
- * @desc Obteniendo barras de medición a través de fórmulas.
- * @type struct<Gauges>[]
- * @default ["{\"Name\":\"Medidor aleatorio\",\"Current\":\"Math.trunc(Math.random() * 100)\",\"Max\":\"100\",\"Color1\":\"#e99\",\"Color2\":\"17\",\"Show Current and Max\":\"false\"}"]
- *
- * @param Eval0 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default Algo aleatorio
- *
- * @param Eval0 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default Math.trunc(Math.random() * 100)
- *
- * @param Eval1 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval1 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval2 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval2 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval3 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval3 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval4 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval4 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval5 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval5 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval6 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval6 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval7 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval7 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval8 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval8 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Eval9 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Eval9 Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- * @param Percentage0 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default Algo aleatorio
- *
- * @param Percentage0 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default Math.random()
- *
- * @param Percentage1 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage1 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage2 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage2 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage3 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage3 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage4 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage4 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage5 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage5 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage6 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage6 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage7 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage7 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage8 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage8 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param Percentage9 Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Percentage9 Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- * @param XParam0 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Puntería
- *
- * @param XParam1 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Evasión
- *
- * @param XParam2 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Probabilidad de crítico
- *
- * @param XParam3 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Evadir crítico
- *
- * @param XParam4 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Evasión mágica
- *
- * @param XParam5 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Reflejo mágico
- *
- * @param XParam6 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Contraataque
- *
- * @param XParam7 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Regenerar vida
- *
- * @param XParam8 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Regenerar magia
- *
- * @param XParam9 Full Name
- * @desc Nombre mostrado para este parámetro extra.
- * @default Regenerar turbo
- *
- * @param SParam0 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Ser el objetivo
- *
- * @param SParam1 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Efecto defensivo
- *
- * @param SParam2 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Efecto de recuperación
- *
- * @param SParam3 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Farmacología
- *
- * @param SParam4 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Coste de mp
- *
- * @param SParam5 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Coste de tp
- *
- * @param SParam6 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Daño físico recibido
- *
- * @param SParam7 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Daño mágico recibido
- *
- * @param SParam8 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Daño por el terreno
- *
- * @param SParam9 Full Name
- * @desc Nombre mostrado para este parámetro especial.
- * @default Experiencia obtenible
- *
- * @help
- * ============================================================================
- * Introducción
- * ============================================================================
- *
- * Este plugin está hecho para su uso con el ICF-Soft Params Core pero puede
- * usarse solo.
- *
- * Permite mostrar los parámetros en hasta tres columnas aparte del
- * equipamiento aprovechando todo el ancho.
- *
- * Puedes utilizar código javascript que se ejecutará para obtener un valor
- * y además cambiar columnas para personajes específicos.
- *
- * Iré añadiendo más características.
- *
- * ============================================================================
- * Uso
- * ============================================================================
- *
- * Puedes alterar las columnas para personajes específicos con la
- * siguiente etiqueta:
- *
- * <STATUS MENU COL x param param param>
- *
- * Debes especificar una columna entre la 1 y la 3 que será reemplazada
- * y los parámetros separados por espacios.
- * Permite param, nparam, pparam, xparam, sparam, evaluables, porcentajes y
- * barras.
- *
- * <EQUIP STATUS MENU COL param param param>
- *
- * Reemplaza los parámetros a mostrar en el menú de equipamiento.
- * Permite param, nparam, pparam, xparam, sparam, evaluables y porcentajes.
- *
- * ============================================================================
- * Parámetros
- * ============================================================================
- *
- * Use New Param System: Con la llegada de la versión 1.5.0 del MV se ha
- * introducido un nuevo modo de configurar los parámetros del plugin que
- * pretendo aprovechar.
- * Puedes crear todos los evaluables y medidores que necesites con índices a
- * partir de 0.
- * El sistema antiguo permite hasta 10 evals y porcentajes con índices de 0 a 9.
- * Dicho sistema se eliminará en una versión futura.
- *
- * ColumnX: Para colocar los nombres básicos de los parámetros separados por
- * espacios. Hay hasta 3 columnas repartidas entre el ancho de la ventana.
- * Funciona con todos los ya mostrados.
- *
- * Equip Column: Para colocar los nombres básicos de los parámetros en el menú
- * de equipamiento separados por espacios.
- * No usa barras de medición.
- *
- * Percentage params: Indica qué parámetros serán tratados como porcentajes.
- * Usa dos decimales. De momento solo para los pparam.
- *
- * Modo actual:
- * Evaluables: Nombre y fórmula para obtener un valor.
- * Se utiliza eval0, eval1, eval2 ... etc.
- *
- * Percentages: Nombre y fórmula para obtener un valor porcentual.
- * Se utiliza percentage0, percentage1, percentage2 ... etc.
- *
- * Gauges: Coloca una barra de medición similar a las de vida. Puedes
- * configurar el nómbre, fórmulas para los valores actual y máximo, colores de
- * la barra si mostrar ambos valores o solo el actual.
- * Se utiliza gauge0, gauge1, gauge2 ... etc.
- *
- * Modo antiguo:
- * EvalX/PercentageX Name: Un nombre a mostrar dentro del menú de estado
- * para representar el código javascript.
- *
- * EvalX/PercentageX Formula: Fórmulas personalizadas de donde obtener un
- * valor. Los códigos eval permiten el uso de strings como resultado
- * mientras que los percentage requieren un número de donde sacar un
- * porcentaje.
- *
- * El sistema antiguo no utiliza barras medidoras.
- *
- * ============================================================================
- * Incompatibilidades
- * ============================================================================
- *
- * Puede ser incompatible con otros plugins similares.
- *
- * ============================================================================
- * Problemas conocidos
- * ============================================================================
- *
- * Puede interferir con otros plugins similares. Pero puede combinarse
- * con otros.
- *
- * ============================================================================
- * Historial de versiones
- * ============================================================================
- *
- * Versión 1.03:
- * - Añadida columna para el menú de equipamiento.
- * - Añadidas fórmulas personalizadas para obtener valores de medición.
- * - Uso del sistema de parámetros del 1.5.0.
- *
- * Versión 1.02:
- * - Añadidas fórmulas personalizadas para obtener valores.
- * - Añadidas columnas personalizadas para personajes específicos.
- *
- * Versión 1.01:
- * - Permite mostrar los parámetros especiales y extra.
- *
- * Versión 1.00:
- * - Complemento terminado.
- *
- * ============================================================================
- *
- * Para juegos comerciales y no comerciales.
- * Se debe incluir a ICF-Soft en los créditos.
- * Esta cabecera debe incluirse íntegramente con el plugin.
- *
- * ============================================================================
- */
- /*~struct~Evals:
- * @param Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Formula
- * @desc Custom formula to show a value.
- * @default
- *
- */
- /*~struct~Percents:
- * @param Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Formula
- * @desc Custom formula to show a percentage value.
- * @default
- *
- */
- /*~struct~Gauges:
- * @param Name
- * @desc A name to show inside status menu.
- * @default
- *
- * @param Current
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Max
- * @desc Custom formula to show a percentage value.
- * @default
- *
- * @param Color1
- * @desc First color for gauge. Can be a html code or a number.
- * @default
- *
- * @param Color2
- * @desc Second color for gauge. Can be a html code or a number.
- * @default
- *
- * @param Show Current and Max
- * @desc When true it shows current and max values.
- * @default true
- *
- */
- /*~struct~Evals:es
- * @param Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Formula
- * @desc Fórmula personalizada para obtener un valor.
- * @default
- *
- */
- /*~struct~Percents:es
- * @param Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Formula
- * @desc Fórmula personalizada para obtener un valor porcentual.
- * @default
- *
- */
- /*~struct~Gauges:es
- * @param Name
- * @desc Nombre a mostrar en el menú de estado.
- * @default
- *
- * @param Current
- * @desc Fórmula personalizada para obtener un valor actual.
- * @default
- *
- * @param Max
- * @desc Fórmula personalizada para obtener un valor máximo.
- * @default
- *
- * @param Color1
- * @desc Primer color de la barra. Se puede usar un color html o un número.
- * @default
- *
- * @param Color2
- * @desc Segundo color de la barra. Se puede usar un color html o un número.
- * @default
- *
- * @param Show Current and Max
- * @desc Si está activado mostrará los valores actual y máximo.
- * @default true
- *
- */
- //=============================================================================
- //=============================================================================
- // Parameter Variables
- //=============================================================================
- ICF.Parameters = PluginManager.parameters('ICFSoft_StatusMenu');
- ICF.Param = ICF.Param || {};
- ICF.Param.StatusMenuCol1 = ICF.Parameters['Column1'].toLowerCase().trim().split(/\s+/);
- ICF.Param.StatusMenuCol2 = ICF.Parameters['Column2'].toLowerCase().trim().split(/\s+/);
- ICF.Param.StatusMenuCol3 = ICF.Parameters['Column3'].toLowerCase().trim().split(/\s+/);
- ICF.Param.EquipStatusMenuCol = ICF.Parameters['Equip Column'].toLowerCase().trim().split(/\s+/);
- ICF.Param.PercentageParams = ICF.Parameters['Percentage params'].toLowerCase().split(/\s+/);
- if (ICF.Param.StatusMenuCol1[0] == "") ICF.Param.StatusMenuCol1.shift();
- if (ICF.Param.StatusMenuCol2[0] == "") ICF.Param.StatusMenuCol2.shift();
- if (ICF.Param.StatusMenuCol3[0] == "") ICF.Param.StatusMenuCol3.shift();
- if (ICF.Param.EquipStatusMenuCol[0] == "") ICF.Param.EquipStatusMenuCol.shift();
- if (!Imported.ICFSoft_ParamCore) {
- ICF.Param.NParams = [];
- ICF.Param.PParams = [];
- ICF.Param.BParams = ["mhp", "mmp", "atk", "def", "mat", "mdf", "agi", "luk"];
- ICF.Param.XParamsFullName = [];
- ICF.Param.XParams = ["hit", "eva", "cri", "cev", "mev", "mrf", "cnt", "hrg", "mrg", "trg"];
- ICF.Param.SParamsFullName = [];
- ICF.Param.SParams = ["tgr", "grd", "rec", "pha", "mcr", "tcr", "pdr", "mdr", "fdr", "exr"];
- for (var i = 0; i < 10; i++) {
- ICF.Param.XParamsFullName[i] = String(ICF.Parameters['XParam' + i + ' Full Name']);
- ICF.Param.SParamsFullName[i] = String(ICF.Parameters['SParam' + i + ' Full Name']);
- }
- }
- ICF.Param.EvalParams = [];
- ICF.Param.EvalPercentParams = [];
- ICF.Param.EvalGauges = [];
- if (ICF.Parameters['Use New Param System'].toLowerCase() === "true") {
- ICF.temp = JSON.parse(ICF.Parameters['Evaluables']);
- for (var i = 0; i < ICF.temp.length; i++) {
- ICF.temp[i] = JSON.parse(ICF.temp[i]);
- ICF.Param.EvalParams[i] = [];
- ICF.Param.EvalParams[i][0] = ICF.temp[i]['Name'];
- ICF.Param.EvalParams[i][1] = ICF.temp[i]['Formula'];
- }
- ICF.temp = JSON.parse(ICF.Parameters['Percentages']);
- for (var i = 0; i < ICF.temp.length; i++) {
- ICF.temp[i] = JSON.parse(ICF.temp[i]);
- ICF.Param.EvalPercentParams[i] = [];
- ICF.Param.EvalPercentParams[i][0] = ICF.temp[i]['Name'];
- ICF.Param.EvalPercentParams[i][1] = ICF.temp[i]['Formula'];
- }
- ICF.temp = JSON.parse(ICF.Parameters['Gauges']);
- for (var i = 0; i < ICF.temp.length; i++) {
- ICF.temp[i] = JSON.parse(ICF.temp[i]);
- ICF.Param.EvalGauges[i] = [];
- ICF.Param.EvalGauges[i][0] = ICF.temp[i]['Name'];
- ICF.Param.EvalGauges[i][1] = ICF.temp[i]['Current'];
- ICF.Param.EvalGauges[i][2] = ICF.temp[i]['Max'];
- ICF.Param.EvalGauges[i][3] = isNaN(ICF.temp[i]['Color1'])? ICF.temp[i]['Color1'] : Number(ICF.temp[i]['Color1']);
- ICF.Param.EvalGauges[i][4] = isNaN(ICF.temp[i]['Color2'])? ICF.temp[i]['Color2'] : Number(ICF.temp[i]['Color2']);
- ICF.Param.EvalGauges[i][5] = ICF.temp[i]['Show Current and Max'].toLowerCase() === "true";
- }
- } else {
- for (var i = 0; i < 10; i++) {
- ICF.Param.EvalParams[i] = [];
- ICF.Param.EvalParams[i][0] = String(ICF.Parameters['Eval' + i + ' Name']);
- ICF.Param.EvalParams[i][1] = String(ICF.Parameters['Eval' + i + ' Formula']);
- ICF.Param.EvalPercentParams[i] = [];
- ICF.Param.EvalPercentParams[i][0] = String(ICF.Parameters['Percentage' + i + ' Name']);
- ICF.Param.EvalPercentParams[i][1] = String(ICF.Parameters['Percentage' + i + ' Formula']);
- }
- }
- //=============================================================================
- // DataManager
- //=============================================================================
- ICF.StatusMenu.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
- DataManager.isDatabaseLoaded = function() {
- if (!ICF.StatusMenu.DataManager_isDatabaseLoaded.call(this)) return false;
- if (!ICF.StatusMenu.Procesed) {
- ICF.NotetagsProcessor.statusMenu($dataActors);
- ICF.StatusMenu.Procesed = true;
- }
- return true;
- };
- ICF.NotetagsProcessor.statusMenu = function(group) {
- var note1 = /<(?:STATUS[-_ ]MENU[-_ ]COL[-_ ])(\d)[ ]+((?:[\w-_]+\s*)+)>/i;
- var note2 = /<(?:EQUIP[-_ ]STATUS[-_ ]MENU[-_ ]COL)[ ]+((?:[\w-_]+\s*)+)>/i;
- for (var n = 1; n < group.length; n++) {
- var obj = group[n];
- var notedata = obj.note.split(/[\r\n]+/);
- obj.StatusMenuCols = [];
- obj.EquipStatusMenuCol = [];
- for (var i = 0; i < notedata.length; i++) {
- var line = notedata[i];
- if (line.match(note1)) {
- obj.StatusMenuCols[Number(RegExp.$1)] = RegExp.$2.toLowerCase().trim().split(/\s+/);
- } else if (line.match(note2)) {
- obj.EquipStatusMenuCol = RegExp.$1.toLowerCase().trim().split(/\s+/);
- }
- }
- }
- };
- //=============================================================================
- // Game_Actor
- //=============================================================================
- Game_Actor.prototype.statusMenuCols = function() {
- var st0 = $dataActors[this._actorId].StatusMenuCols;
- var st1 = [];
- st1[1] = st0[1] || ICF.Param.StatusMenuCol1;
- st1[2] = st0[2] || ICF.Param.StatusMenuCol2;
- st1[3] = st0[3] || ICF.Param.StatusMenuCol3;
- return st1;
- };
- Game_Actor.prototype.eqStatusMenuCols = function() {
- var st0 = $dataActors[this._actorId].EquipStatusMenuCol;
- var st1 = (st0.length > 0)? st0 : ICF.Param.EquipStatusMenuCol;
- return st1;
- };
- //=============================================================================
- // Window_Status
- //=============================================================================
- Window_Status.prototype.drawBlock3 = function(y) {
- var st = this._actor.statusMenuCols();
- if (st[1].length == 0) {
- this.drawEquipments(this.contentsWidth()/2, y);
- } else if (st[2].length == 0) {
- var width = this.contentsWidth() / 2 - this.textPadding() * 3;
- this.drawParameters(this.textPadding(), y, width, st[1]);
- this.drawEquipments(this.contentsWidth()/2 + this.textPadding(), y);
- } else if (st[3].length == 0) {
- var width = this.contentsWidth() / 3 - this.textPadding() * 4;
- this.drawParameters(this.textPadding(), y, width, st[1]);
- this.drawParameters(this.contentsWidth()/3 + this.textPadding(), y, width, st[2]);
- this.drawEquipments(this.contentsWidth()*2/3 + this.textPadding(), y);
- } else {
- var width = this.contentsWidth() / 4 - this.textPadding() * 5;
- this.drawParameters(this.textPadding(), y, width, st[1]);
- this.drawParameters(this.contentsWidth()/4 + this.textPadding(), y, width, st[2]);
- this.drawParameters(this.contentsWidth()*2/4 + this.textPadding(), y, width, st[3]);
- this.drawEquipments(this.contentsWidth()*3/4 + this.textPadding(), y);
- }
- };
- ICF.StatusMenu.drawParamsOldStyle = Window_Status.prototype.drawParameters;
- Window_Status.prototype.drawParameters = function(x, y, width, ary) {
- if ((width == undefined)||(ary == undefined)) {
- ICF.StatusMenu.drawParamsOldStyle.call(this, x, y);
- return;
- }
- var lineHeight = this.lineHeight();
- var y2 = y;
- var actor = this._actor;
- for (var i = 0; i < ary.length; i++) {
- var param = [];
- var gauge = false;
- if (ICF.Param.NParams.indexOf(ary[i]) > -1) {
- var paramId = ICF.Param.NParams.indexOf(ary[i]);
- param.push(ICF.Param.NParamsFullName[paramId]);
- param.push(actor.NParam(paramId));
- } else if (ICF.Param.PParams.indexOf(ary[i]) > -1) {
- var paramId = ICF.Param.PParams.indexOf(ary[i]);
- param.push(ICF.Param.PParamsFullName[paramId]);
- if (ICF.Param.PercentageParams.indexOf(ary[i]) > -1) {
- param.push((actor.PParam(paramId)*100).toFixed(2) + "%");
- } else {
- param.push(Math.trunc(actor.PParam(paramId)));
- }
- } else if (ICF.Param.BParams.indexOf(ary[i]) > -1) {
- var paramId = ICF.Param.BParams.indexOf(ary[i]);
- param.push(TextManager.param(paramId));
- param.push(actor.param(paramId));
- } else if (ICF.Param.XParams.indexOf(ary[i]) > -1) {
- var paramId = ICF.Param.XParams.indexOf(ary[i]);
- param.push(ICF.Param.XParamsFullName[paramId]);
- param.push((actor.xparam(paramId)*100).toFixed(2) + "%");
- } else if (ICF.Param.SParams.indexOf(ary[i]) > -1) {
- var paramId = ICF.Param.SParams.indexOf(ary[i]);
- param.push(ICF.Param.SParamsFullName[paramId]);
- param.push((actor.sparam(paramId)*100).toFixed(2) + "%");
- } else if (ary[i].match(/(?:eval)(\d+)/i)) {
- var paramId = ICF.Param.EvalParams[RegExp.$1];
- param.push(paramId[0]);
- param.push(eval(paramId[1]));
- } else if (ary[i].match(/(?:percentage)(\d+)/i)) {
- var paramId = ICF.Param.EvalPercentParams[RegExp.$1];
- param.push(paramId[0]);
- param.push((eval(paramId[1])*100).toFixed(2) + "%");
- } else if (ary[i].match(/(?:gauge)(\d+)/i)) {
- var paramId = ICF.Param.EvalGauges[RegExp.$1];
- param.push(paramId[0]);
- param.push(eval(paramId[1]));
- param.push(eval(paramId[2]));
- param.push(paramId[3]);
- param.push(paramId[4]);
- param.push(paramId[5]);
- gauge = true;
- }
- if (gauge) {
- var color1 = isNaN(param[3])? param[3] : this.textColor(param[3]);
- var color2 = isNaN(param[4])? param[4] : this.textColor(param[4]);
- this.drawGauge(x, y2, width, (param[1] / param[2]).clamp(0.0, 1.0), color1, color2);
- if (param[5]) {
- this.changeTextColor(this.systemColor());
- this.drawText(param[0], x, y2, width / 3);
- this.drawCurrentAndMax(param[1], param[2], x + width / 3 - this.textWidth('HP'), y2,
- width * 2 / 3 + this.textWidth('HP'), this.normalColor(), this.normalColor());
- } else {
- this.changeTextColor(this.systemColor());
- this.drawText(param[0], x, y2, width * 2 / 3);
- this.resetTextColor();
- this.drawText(param[1], x + width * 2 / 3, y2, width / 3, 'right');
- }
- } else if (param.length > 0) {
- this.changeTextColor(this.systemColor());
- this.drawText(param[0], x, y2, width * 2 / 3);
- this.resetTextColor();
- this.drawText(param[1], x + width * 2 / 3, y2, width / 3, 'right');
- }
- y2 += lineHeight;
- }
- };
- //=============================================================================
- // Window_EquipStatus
- //=============================================================================
- Window_EquipStatus.prototype.refresh = function() {
- this.contents.clear();
- var st = [];
- if (this._actor) st = this._actor.eqStatusMenuCols();
- if (st.length > 0) {
- this.drawActorName(this._actor, this.textPadding(), 0);
- for (var i = 0; i < st.length; i++) {
- var param = null;
- var paramId = null;
- var percentage = false;
- var evaluate = null;
- if (ICF.Param.NParams.indexOf(st[i]) > -1) {
- paramId = ICF.Param.NParams.indexOf(st[i]);
- param = ICF.Param.NParams[paramId];
- paramId = ICF.Param.NParamsFullName[paramId];
- } else if (ICF.Param.PParams.indexOf(st[i]) > -1) {
- paramId = ICF.Param.PParams.indexOf(st[i]);
- param = ICF.Param.PParams[paramId];
- if (ICF.Param.PercentageParams.indexOf(st[i]) > -1) percentage = true;
- paramId = ICF.Param.PParamsFullName[paramId];
- } else if (ICF.Param.BParams.indexOf(st[i]) > -1) {
- paramId = ICF.Param.BParams.indexOf(st[i]);
- param = ICF.Param.BParams[paramId];
- paramId = TextManager.param(paramId);
- } else if (ICF.Param.XParams.indexOf(st[i]) > -1) {
- paramId = ICF.Param.XParams.indexOf(st[i]);
- param = ICF.Param.XParams[paramId];
- paramId = ICF.Param.XParamsFullName[paramId];
- percentage = true;
- } else if (ICF.Param.SParams.indexOf(st[i]) > -1) {
- paramId = ICF.Param.SParams.indexOf(st[i]);
- param = ICF.Param.SParams[paramId];
- paramId = ICF.Param.SParamsFullName[paramId];
- percentage = true;
- } else if (st[i].match(/(?:eval)(\d+)/i)) {
- paramId = ICF.Param.EvalParams[RegExp.$1];
- param = paramId[0];
- evaluate = paramId[1];
- paramId = param;
- } else if (st[i].match(/(?:percentage)(\d+)/i)) {
- paramId = ICF.Param.EvalPercentParams[RegExp.$1];
- param = paramId[0];
- evaluate = paramId[1];
- paramId = param;
- percentage = true;
- }
- if (param !== null) {
- this.drawItem(0, this.lineHeight() * (1 + i), paramId, param, percentage, evaluate);
- }
- }
- }
- this.resetTextColor();
- };
- Window_EquipStatus.prototype.drawItem = function(x, y, paramId, paramName, percentage, evaluate) {
- this.changeTextColor(this.systemColor());
- this.drawText(paramId, x + this.textPadding(), y, 120);
- this.resetTextColor();
- if (this._actor) {
- this.drawCurrentParam(x + 140, y, paramId, paramName, percentage, evaluate);
- }
- this.drawRightArrow(x + 188, y);
- if (this._tempActor) {
- this.drawNewParam(x + 222, y, paramId, paramName, percentage, evaluate);
- }
- };
- Window_EquipStatus.prototype.drawCurrentParam = function(x, y, paramId, paramName, percentage, evaluate) {
- this.resetTextColor();
- var actor = this._actor;
- var text = (evaluate !== null)? eval(evaluate) : this._actor[paramName];
- if (percentage) text = (text * 100).toFixed((text < 0.10)? 2 : (text < 0.50)? 1 : 0) + "%";
- else text = Math.trunc(text);
- this.drawText(text, x, y, 48, 'right');
- };
- Window_EquipStatus.prototype.drawNewParam = function(x, y, paramId, paramName, percentage, evaluate) {
- var actor = this._tempActor;
- var newValue = (evaluate !== null)? eval(evaluate) : this._tempActor[paramName];
- actor = this._actor;
- var oldValue = (evaluate !== null)? eval(evaluate) : this._actor[paramName];
- this.changeTextColor(this.paramchangeTextColor(newValue - oldValue));
- if (percentage) newValue = (newValue * 100).toFixed((newValue < 0.10)? 2 : (newValue < 0.50)? 1 : 0) + "%";
- else newValue = Math.trunc(newValue);
- this.drawText(newValue, x, y, 48, 'right');
- };
- //=============================================================================
- // End of File
- //=============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement