/* * ============================================================================== * ** Victor Engine MV - Battle Status Window * ------------------------------------------------------------------------------ * Version History: * v 1.00 - 2016.04.05 > First release. * v 1.01 - 2016.04.10 > Fixed crash at battle end. * > Fixed issue with background image not disappearing. * > Adde back opacity and frame opacity plugin parameters. * v 1.02 - 2016.04.30 > Compatibility with Basic Module 1.19. * v 1.03 - 2016.05.12 > Fixed issue with target window position. * > Added more custom code Plugin Parameters. * v 1.04 - 2016.05.15 > Fixed issue with 'unexpected token'. * ============================================================================== */ var Imported = Imported || {}; Imported['VE - Battle Status Window'] = '1.04'; var VictorEngine = VictorEngine || {}; VictorEngine.BattleStatusWindow = VictorEngine.BattleStatusWindow || {}; (function() { VictorEngine.BattleStatusWindow.loadDatabase = DataManager.loadDatabase; DataManager.loadDatabase = function() { VictorEngine.BattleStatusWindow.loadDatabase.call(this); PluginManager.requiredPlugin.call(PluginManager, 'VE - Battle Status Window', 'VE - Basic Module', '1.20'); }; VictorEngine.BattleStatusWindow.requiredPlugin = PluginManager.requiredPlugin; PluginManager.requiredPlugin = function(name, required, version) { if (!VictorEngine.BasicModule) { var msg = 'The plugin ' + name + ' requires the plugin ' + required; msg += ' v' + version + ' or higher installed to work properly.'; msg += ' Go to http://victorenginescripts.wordpress.com/ to download the plugin.'; throw new Error(msg); } else { VictorEngine.BattleStatusWindow.requiredPlugin.call(this, name, required, version) }; }; })(); /*: * ------------------------------------------------------------------------------ * @plugindesc v1.04 - Customize the Battle Status Window. * @author Victor Sant * * @param == Window Layout == * @default ================================================ * * @param Window Lines * @desc Number of lines the status window have. * Default: 4 (allows script code) * @default 4 * * @param Window Columns * @desc Number of columns the status window have. * Default: 1 (allows script code) * @default 1 * * @param == Window Display == * @default ================================================ * * @param Window X * @desc Status window X position. * Default: boxWidth - width (allows script code) * @default boxWidth - width * * @param Window Y * @desc Status window Y position. * Default: boxHeight - height (allows script code) * @default boxHeight - height * * @param Window Width * @desc Status window width. * Default: width (allows script code) * @default width * * @param Window Height * @desc Status window height. * Default: height (allows script code) * @default height * * @param Window Back Opacity * @desc Status window back opacity. * Default: this.standardBackOpacity() (allows script code) * @default this.standardBackOpacity() * * @param Window Frame Opacity * @desc Status window frame opacity. * Default: 255 (allows script code) * @default 255 * * @param Window Movement * @desc Slide the status window during command input. * Default: 96 (Numeric, can be negative) * @default 96 * * @param Window Background * @desc Background image shown behind the window. * Filename (leave blank for no background) * @default @@ * * @param Window Background X * @desc Background image offset X. * Default: 0 (Numeric, can be negative) * @default 0 * * @param Window Background Y * @desc Background image offset Y. * Default: 0 (Numeric, can be negative) * @default 0 * * @param == Content Setup == * @default ================================================ * * @param Horizontal Centralize * @desc Centralize content horizontally. * true - ON false - OFF * @default false * * @param Vertical Centralize * @desc Centralize content vertically. * true - ON false - OFF * @default false * * @param Content Offset X * @desc Content position offset X. * Default: 0 (allows script code) * @default 0 * * @param Content Offset Y * @desc Content position offset Y. * Default: 0 (allows script code) * @default 0 * * @param Content Background * @desc Background image for the window content. * Filename (leave blank for no background) * @default @@ * * @param Content Back X * @desc Descriptigin * @desc Content image position offset X. * Default: 0 (allows script code) * @default 0 * * @param Content Back Y * @desc Content image position offset Y. * Default: 0 (allows script code) * @default 0 * * @param == Active Setup == * @default ================================================ * * @param Active Select * @desc Show default cursor on active battler. * true - ON false - OFF * @default true * * @param Active Offset X * @desc Active battler content offset X. * Default: 0 (allows script code) * @default 0 * * @param Active Offset Y * @desc Active battler content offset Y. * Default: 0 (allows script code) * @default 0 * * @param Active Background * @desc Background image for the content when the actor is active. * Filename (leave blank for no background) * @default @@ * * @param Active Back X * @desc Background image position offset X. * Default: 0 (Numeric, can be negative) * @default 0 * * @param Active Back Y * @desc Background image position offset Y. * Default: 0 (Numeric, can be negative) * @default 0 * * @param == Faces Setup == * @default ================================================ * * @param Show Faces * @desc Show faces for each actor on the status window. * true - ON false - OFF * @default false * * @param Face Sufix * @desc Add a sufix for face graphics shown in battle, * Sufix (leave blank for no sufix) * @default @@ * * @param Face Width * @desc Face display width * Default: 144 (allows script code) * @default 144 * * @param Face Height * @desc Face display height * Default: 144 (allows script code) * @default 144 * * @param Face Offset X * @desc Face image position offset X. * Default: 0 (allows script code) * @default 0 * * @param Face Offset Y * @desc Face image position offset Y. * Default: 0 (allows script code) * @default 0 * * @param == Name Display == * @default ================================================ * * @param Show Name * @desc Show actor name on the status window. * true - ON false - OFF * @default true * * @param Name Offset X * @desc Name display position offset X. * Default: 6 (allows script code) * @default 6 * * @param Name Offset Y * @desc Name display position offset Y. * Default: 0 (allows script code) * @default 0 * * @param Name Fontface * @desc Name display font name. * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Name Fontsize * @desc Name display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Name Color * @desc Name display font color. * Default: this.hpColor(actor) (allows script code) * @default this.hpColor(actor) * * @param == States Display == * @default ================================================ * * @param Show States * @desc Show actor states icons on the status window. * true - ON false - OFF * @default true * * @param States Max Icons * @desc Max number of icons displayed on the window. * Default: 2 (allows script code) * @default 2 * * @param States Offset X * @desc States display position offset X. * Default: 156 (allows script code) * @default 156 * * @param States Offset Y * @desc States display position offset Y. * Default: 0 (allows script code) * @default 0 * * @param == Action Icon == * @default ================================================ * * @param Show Action Icon * @desc Show icon for the action selected on the status window. * true - ON false - OFF * @default false * * @param No Action Icon * @desc Icon id for when the actor have no action selected. * Default: 16 (Numeric, use 0 for no icon) * @default 16 * * @param Action Offset X * @desc Action icon display position offset X. * Default: 0 (allows script code) * @default 0 * * @param Action Offset Y * @desc Action icon display position offset Y. * Default: 0 (allows script code) * @default 0 * * @param == HP display == * @default ================================================ * * @param Show HP Gauge * @desc Show HP gauge on the status window. * true - ON false - OFF * @default true * * @param HP Gauge Width * @desc Width of the HP Gauge * Default: 108 (allows script code) * @default 108 * * @param HP Offset X * @desc HP display position offset X. * Default: 252 (allows script code) * @default 252 * * @param HP Offset Y * @desc HP display position offset Y. * Default: 0 (allows script code) * @default 0 * * @param HP Text Fontface * @desc HP text display font name. (leave blank for no text) * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param HP Text Fontsize * @desc HP text display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param HP Text Color * @desc HP text display font coloe. * Default: this.systemColor() (allows script code) * @default this.systemColor() * * @param Current HP Fontface * @desc Current HP digits display font name. (leave blank for no * text) Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Current HP Fontsize * @desc Current HP digits display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Current HP Color * @desc Current HP digits display font color. * Default: this.hpColor(actor) * @default this.hpColor(actor) * * @param Max HP Fontface * @desc Max HP digits display font name. (leave blank for no text) * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Max HP Fontsize * @desc Max HP digits display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Max HP Color * @desc Max HP digits display font color. * Default: this.normalColor() (allows script code) * @default this.normalColor() * * @param == MP display == * @default ================================================ * * @param Show MP * @desc Show MP value and gauge on the status window. * true - ON false - OFF * @default true * * @param Show MP Gauge * @desc Show MP gauge on the status window. * true - ON false - OFF * @default true * * @param MP Gauge Width * @desc Width of the MP Gauge * Default: 96 (allows script code) * @default 96 * * @param MP Offset X * @desc MP display position offset X. * Default: 375 (allows script code) * @default 375 * * @param MP Offset Y * @desc MP display position offset Y. * Default: 0 (allows script code) * @default 0 * * @param MP Text Fontface * @desc MP text display font name. (leave blank for no text) * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param MP Text Fontsize * @desc MP text display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param MP Text Color * @desc MP text display font color. * Default: this.systemColor() (allows script code) * @default this.systemColor() * * @param Current MP Fontface * @desc Current MP digits display font name. (leave blank for no * text) Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Current MP Fontsize * @desc Current MP digits display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Current MP Color * @desc Current MP digits display font color. * Default: this.mpColor(actor) (allows script code) * @default this.mpColor(actor) * * @param Max MP Fontface * @desc Max MP digits display font name. (leave blank for no text) * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Max MP Fontsize * @desc Max MP digits display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Max MP Color * @desc Max MP digits display font color. * Default: this.normalColor() (allows script code) * @default this.normalColor() * * @param == TP display == * @default ================================================ * * @param Max TP * @desc Max TP value for the actors. * Default: 100 (allows script code) * @default 100 * * @param Show TP * @desc Show TP value and gauge on the status window. * true - ON false - OFF * @default true * * @param Show TP Gauge * @desc Show TP gauge on the status window. * true - ON false - OFF * @default true * * @param TP Gauge Width * @desc Width of the TP Gauge * Default: 96 (allows script code) * @default 96 * * @param TP Offset X * @desc TP display position offset X. * Default: 485 (allows script code) * @default 485 * * @param TP Offset Y * @desc TP display position offset Y. * Default: 0 (allows script code) * @default 0 * * @param TP Text Fontface * @desc TP text display font name. (leave blank for no text) * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param TP Text Fontsize * @desc TP text display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param TP Text Color * @desc TP text display font color. * Default: this.systemColor() (allows script code) * @default this.systemColor() * * @param Current TP Fontface * @desc Current TP digits display font name. (leave blank for no * text) Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Current TP Fontsize * @desc Current TP digits display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Current TP Color * @desc Current TP digits display font color. * Default: this.tpColor(actor) (allows script code) * @default this.tpColor(actor) * * @param Max TP Fontface * @desc Max TP digits display font name. (leave blank for no text) * Default: this.standardFontFace() (allows script code) * @default this.standardFontFace() * * @param Max TP Fontsize * @desc Max TP digits display font size. * Default: this.standardFontSize() (allows script code) * @default this.standardFontSize() * * @param Max TP Color * @desc Max TP digits display font color. * Default: this.normalColor() (allows script code) * @default this.normalColor() * * @param == Custom Code == * @default ================================================ * * @param Custom Code 1 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 2 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 3 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 4 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 5 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 6 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 7 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 8 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 9 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * @param Custom Code 10 * @desc Custom code processed when the status window refresh. * Use to display values provided by other plugins. * @default @@ * * ------------------------------------------------------------------------------ * @help * ------------------------------------------------------------------------------ * * Before going ahead with the plugin instructions I must warn something about * this plugin. While this plugin offers a lot of options, almost no setup will * be automated. So if you make any change to the layout, you will need to setup * the offset of each information **manually**. This plugin requires a lot of * trial-and-error to get everything in position. There is no shortcut. * * If you expect just to copy and paste, and change a couple of values to have * this plugin to make heavy changes to the layout, I suggest looking for * another, because this one will require a LOT of effort. * * This plugin also have a heavy processing during the window refresh, plugins * poorly designed that calls the battle status window refresh more than needed * might cause lag. If you experience too much lag while using this plugin, it's * probably because another plugin is refreshing the window more than needed. * * ------------------------------------------------------------------------------ * Actors and Classes Notetags: * ------------------------------------------------------------------------------ * * * Hides the MP display for the actor on the battle status window. * * --------------- * * * Hides the TP display for the actor on the battle status window. * * --------------- * * * x = code * y = code * width = code * * Changes the MP display for the actor. * x : offset X. * y : offset Y. * width : gauge width. * * --------------- * * * x = code * y = code * width = code * * Changes the TP display for the actor. * x : offset X. * y : offset Y. * width : gauge width. * * ------------------------------------------------------------------------------ * Additional Information: * ------------------------------------------------------------------------------ * * - MP and TP display notetags * On the codes for the notetags, you can use "actor" to refer for the actor, * "rect" to get the rectange data that contains the actor's info and 'index' to * get the actor index on the party. Any other valid code for basic windows are * also valid. * You must add a code for each value and all must return a numeric values. * * --------------- * * - Plugin Parameters Setup * Most of the setup for this plugin is made through plugin parameters. * Several of those plugin parameters allows the use of script codes. If this is * the case, you can use any valid code for basic windows. * * --------------- * * - Window Layout * The 'Window Layout' plugin parameters changes how the actor's parameters * display will be organized on the status window. By default it's show as 4 * lines. You can change the number of lines and columns for the display. * * - Window Lines and Columns * You can use script codes that returns numeric values as the value for the * 'Window Lines' and 'Window Columns' values * * --------------- * * - Window Display * The 'Window Display' plugin parameters setups the window postion, size, * opacity and allows you to set a background image for the window. * * - Window Position and Size * The parameters 'Window X' and 'Window Y' defines the window position and * the parameters 'Window Width' and 'Window Height' defines the size. * You can use script codes that returns numeric values as the value for them. * * You can use 'boxWidth' to get the screen width, You can use 'boxHeight' to * get the screen height, 'width' to get the default RMMV window width and * 'height' for the default window height as the code. * * - Window Movement * The 'Window Movement' makes the window slide while inputing commands, leave * the value 0 for no movement, negative values will make the window slide * left when the command window is open. * * - Window Background * The 'Window Background' is placed behind the window itself. It's advised to * lower the opacity, otherwise the window will cover the image. You can adjust * it's position with the parameters 'Window Background X' and * 'Window Background Y'. * The image graphic should be placed on the folder 'img/system/' * * --------------- * * - Content Setup * The 'Content Setup' plugin parameters controls the global position of each * actor data display. * * - Content Offset * The parameters 'Content Offset X' and 'Content Offset Y' can be used to * adjust the position of the content. You can use script codes that returns * numeric values as the value for the 'Content Offset X' and * 'Content Offset Y' values. * * - Content Background * The 'Content Background' is placed behind the actor data, but above the * windowskin. The image is shown for each actor in the party. You can adjust * the images offset with the parameters 'Content Back X' and 'Content Back Y'. * The image graphic should be placed on the folder 'img/system/' * * --------------- * * - Active Setup * The 'Active Setup' plugin parameters changes some behavior of the display * while selecting actions for an actor. * * - Active Select * The parameter 'Active Select' defines if the current actor content in the * window will be highligthed by the default cursor while he is active. * * - Active Offset * The parameters 'Active Offset X' and 'Active Offset Y' changes the offset of * the actor content while he is active. * * - Active Background * The 'Active Background' is placed behind the actor data, but above the * windowskin. If you're using the 'Content Background', it will replace the * content image while the actor is active. You can adjust the images offset * with the parameters 'Active Back X' and 'Active Back Y'. * * --------------- * * - Face Setup * The 'Face Setup' plugin parameters allows you to display faces for the * actors on the battle status window. The face is displayed bellow all the * actor information, but above the background images, if using them. * * - Face Sufix * The parameter 'Face Sufix' set a sufix for the actor battle face, this * can be used if you want the faces displayed on battle to be different * from the faces used everywhere else. The face must have the same filename * as the original face + the sufix. For example, if you set the sufix [battle] * and have a face named 'Actor1' the battle face should be 'Actor1[battle]' * The index for the face is not changed, keep that in mind while formating the * battle faces. * * - Face Offset and Size * The parameters 'Face Offset X' and 'Face Offset Y' defines the face offset * position and the parameters 'Face Width' and 'Face Height' defines the size. * You can use script codes that returns numeric values as the value for them. * * --------------- * * - Name Display * The 'Name Display' plugin parameters controls actor's name display. * * - Name Offset * The parameters 'Name Offset X' and 'Name Offset Y' defines the name offset * position. * You can use script codes that returns numeric values as the value for them. * * - Name Fontface * The parameter 'Name Fontface' defines the font name for the name display. * You can use script codes that returns a string with the fontname se the * value for it. * * - Name Fontsize * The parameter 'Name Fontsize' defines the font size for the name display. * You can use script codes that returns numeric values as the value for it. * * - Name Color * The parameter 'Name Color' defines the font color for the name display. * The color must be either a hex color code (#000000) or a script code * that returns a color value. If using the plugin 'SFonts' only the codes * will work (hex codes will not work). * * --------------- * * - States Display * The 'States Display' plugin parameters controls actor's states icons display. * * - States Icons * The parameter 'States Max Icons' defines the max number of icons displayed. * You can use script codes that returns numeric values as the value for it. * * - States Offset * The parameters 'States Offset X' and 'States Offset Y' defines the states * icons offset position. * You can use script codes that returns numeric values as the value for them. * * --------------- * * - Action Icon * The 'Action Icon' plugin parameters allows you to display the icon for the * action currently selected by the actor. * * - No Action Icon * The parameter 'No Action Icon' defines the Id for the icon used when no * action is selected. * * - Action Offset * The parameters 'Action Offset X' and 'Action Offset Y' defines the action * icon offset position. * You can use script codes that returns numeric values as the value for them. * * --------------- * * - HP display * The 'HP Display' plugin parameters controls the actor's hp display. * * - Show HP Gauge * The parameter 'Show HP Gauge' defines if the HP gauge will be shown, this * only affect the gauge, the HP text and digits are shown regardless of this. * * - HP Gauge Width * The parameter 'HP Gauge Width' defines the hp gauge width and also the space * used to draw the hp text and digits. So, even if the Hp gauge is hidden, you * should keep the gauge width value set. * You can use script codes that returns numeric values as the value for it. * * - HP Offset * The parameters 'HP Offset X' and 'HP Offset Y' defines the hp display offset * position. * You can use script codes that returns numeric values as the value for them. * * --------------- * * - HP Text Fontface * The parameter 'HP Text Fontface' defines the font name for the hp text * display. * You can use script codes that returns a string with the fontname se the * value for it. * * - HP Text Fontsize * The parameter 'HP Text Fontsize' defines the font size for the hp text * display. * You can use script codes that returns numeric values as the value for it. * * - HP Text Color * The parameter 'HP Text Color' defines the font color for the hp text display. * The color must be either a hex color code (#000000) or a script code * that returns a color value. If using the plugin 'SFonts' only the codes * will work (hex codes will not work). * * --------------- * * - Current HP Fontface * The parameter 'Current HP Fontface' defines the font name for the current hp * digits display. * You can use script codes that returns a string with the fontname se the * value for it. * * - Current HP Fontsize * The parameter 'Current HP Fontsize' defines the font size for the current hp * digits display. * You can use script codes that returns numeric values as the value for it. * * - Current HP Color * The parameter 'Current HP Color' defines the font color for the current hp * digits display. * The color must be either a hex color code (#000000) or a script code * that returns a color value. If using the plugin 'SFonts' only the codes * will work (hex codes will not work). * * --------------- * * - Max HP Fontface * The parameter 'Max HP Fontface' defines the font name for the max hp * digits display***. * You can use script codes that returns a string with the fontname se the * value for it. * * - Max HP Fontsize * The parameter 'Max HP Fontsize' defines the font size for the max hp * digits display***. * You can use script codes that returns numeric values as the value for it. * * - Max HP Color * The parameter 'Max HP Color' defines the font color for the max hp * digits display***. * The color must be either a hex color code (#000000) or a script code * that returns a color value. If using the plugin 'SFonts' only the codes * will work (hex codes will not work). * * *** Notice that the Max HP display depends on the gauge width and fontsize. * If there is not enough room for it to be drawn, it will be not show at all. * * --------------- * * - MP display * The 'MP Display' plugin parameters controls the actor's MP display. It's * setup is the same as the 'HP Display' parameters setup. * * --------------- * * - TP display * The 'TP Display' plugin parameters controls the actor's TP display. It's * setup is the same as the 'HP Display' parameters setup. * * --------------- * * - Custom Codes * The 'Custom Code' plugin parameter allows you to process script codes when * the status window refresh. This can be used to add information from custom * plugins into the status window. you can use "actor" to refer for the actor, * "rect" to get the rectange data that contains the actor's info, 'index' to * get the actor index on the party, 'x' to get the rect x position, 'y' to get * the rect y position, 'width' to get the rect width and 'height' to get the * rect height. Any other valid code for basic windows are also valid. * This requires scripting knwoledge, use at your own risk. * * ------------------------------------------------------------------------------ * Example Notetags: * ------------------------------------------------------------------------------ * * * x = 4; * y = 72; * width = 108; * * * --------------- * * * x = 4; * y = this.lineHeight() * 3; * width = rect.width - 8; * * * ------------------------------------------------------------------------------ */ (function() { //============================================================================= // Parameters //============================================================================= if (Imported['VE - Basic Module']) { var parameters = VictorEngine.getPluginParameters(); VictorEngine.Parameters = VictorEngine.Parameters || {}; VictorEngine.Parameters.BattleStatusWindow = {}; VictorEngine.Parameters.BattleStatusWindow.WindowLines = String(parameters["Window Lines"]).trim(); VictorEngine.Parameters.BattleStatusWindow.WindowColumns = String(parameters["Window Columns"]).trim(); VictorEngine.Parameters.BattleStatusWindow.WindowX = String(parameters["Window X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.WindowY = String(parameters["Window Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.WindowWidth = String(parameters["Window Width"]).trim(); VictorEngine.Parameters.BattleStatusWindow.WindowHeight = String(parameters["Window Height"]).trim(); VictorEngine.Parameters.BattleStatusWindow.BackOpacity = String(parameters["Window Back Opacity"]).trim(); VictorEngine.Parameters.BattleStatusWindow.FrameOpacity = String(parameters["Window Frame Opacity"]).trim(); VictorEngine.Parameters.BattleStatusWindow.WindowBack = String(parameters["Window Background"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ContentOffsetX = String(parameters["Content Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ContentOffsetY = String(parameters["Content Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ContentBack = String(parameters["Content Background"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ContentBackX = String(parameters["Content Back X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ContentBackY = String(parameters["Content Back Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActiveOffsetX = String(parameters["Active Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActiveOffsetY = String(parameters["Active Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActiveBack = String(parameters["Active Background"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActiveBackX = String(parameters["Active Back X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActiveBackY = String(parameters["Active Back Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.FaceSufix = String(parameters["Face Sufix"]).trim(); VictorEngine.Parameters.BattleStatusWindow.FaceWidth = String(parameters["Face Width"]).trim(); VictorEngine.Parameters.BattleStatusWindow.FaceHeight = String(parameters["Face Height"]).trim(); VictorEngine.Parameters.BattleStatusWindow.FaceOffsetX = String(parameters["Face Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.FaceOffsetY = String(parameters["Face Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.NameOffsetX = String(parameters["Name Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.NameOffsetY = String(parameters["Name Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.NameFontface = String(parameters["Name Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.NameFontsize = String(parameters["Name Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.NameColor = String(parameters["Name Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.StatesMaxIcons = String(parameters["States Max Icons"]).trim(); VictorEngine.Parameters.BattleStatusWindow.StatesOffsetX = String(parameters["States Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.StatesOffsetY = String(parameters["States Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.NoActionIcon = String(parameters["No Action Icon"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActionOffsetX = String(parameters["Action Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.ActionOffsetY = String(parameters["Action Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HPGaugeWidth = String(parameters["HP Gauge Width"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HPOffsetX = String(parameters["HP Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HPOffsetY = String(parameters["HP Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HPTextFontface = String(parameters["HP Text Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HPTextFontsize = String(parameters["HP Text Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HPTextColor = String(parameters["HP Text Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentHPName = String(parameters["Current HP Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentHPSize = String(parameters["Current HP Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentHPColor = String(parameters["Current HP Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxHPName = String(parameters["Max HP Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxHPSize = String(parameters["Max HP Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxHPColor = String(parameters["Max HP Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MPGaugeWidth = String(parameters["MP Gauge Width"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MPOffsetX = String(parameters["MP Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MPOffsetY = String(parameters["MP Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MPTextFontface = String(parameters["MP Text Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MPTextFontsize = String(parameters["MP Text Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MPTextColor = String(parameters["MP Text Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentMPName = String(parameters["Current MP Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentMPSize = String(parameters["Current MP Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentMPColor = String(parameters["Current MP Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxMPName = String(parameters["Max MP Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxMPSize = String(parameters["Max MP Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxMPColor = String(parameters["Max MP Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxTP = String(parameters["Max TP"]).trim(); VictorEngine.Parameters.BattleStatusWindow.TPGaugeWidth = String(parameters["TP Gauge Width"]).trim(); VictorEngine.Parameters.BattleStatusWindow.TPOffsetX = String(parameters["TP Offset X"]).trim(); VictorEngine.Parameters.BattleStatusWindow.TPOffsetY = String(parameters["TP Offset Y"]).trim(); VictorEngine.Parameters.BattleStatusWindow.TPTextFontface = String(parameters["TP Text Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.TPTextFontsize = String(parameters["TP Text Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.TPTextColor = String(parameters["TP Text Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentTPName = String(parameters["Current TP Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentTPSize = String(parameters["Current TP Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.CurrentTPColor = String(parameters["Current TP Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxTPName = String(parameters["Max TP Fontface"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxTPSize = String(parameters["Max TP Fontsize"]).trim(); VictorEngine.Parameters.BattleStatusWindow.MaxTPColor = String(parameters["Max TP Color"]).trim(); VictorEngine.Parameters.BattleStatusWindow.HorzCentralize = eval(parameters["Horizontal Centralize"]); VictorEngine.Parameters.BattleStatusWindow.VertCentralize = eval(parameters["Vertical Centralize"]); VictorEngine.Parameters.BattleStatusWindow.ActiveSelect = eval(parameters["Active Select"]); VictorEngine.Parameters.BattleStatusWindow.ShowFaces = eval(parameters["Show Faces"]); VictorEngine.Parameters.BattleStatusWindow.ShowName = eval(parameters["Show Name"]); VictorEngine.Parameters.BattleStatusWindow.ShowStates = eval(parameters["Show States"]); VictorEngine.Parameters.BattleStatusWindow.ShowActionIcon = eval(parameters["Show Action Icon"]); VictorEngine.Parameters.BattleStatusWindow.ShowHPGauge = eval(parameters["Show HP Gauge"]); VictorEngine.Parameters.BattleStatusWindow.ShowMP = eval(parameters["Show MP"]); VictorEngine.Parameters.BattleStatusWindow.ShowMPGauge = eval(parameters["Show MP Gauge"]); VictorEngine.Parameters.BattleStatusWindow.ShowTP = eval(parameters["Show TP"]); VictorEngine.Parameters.BattleStatusWindow.ShowTPGauge = eval(parameters["Show TP Gauge"]); VictorEngine.Parameters.BattleStatusWindow.WindowMove = Number(parameters["Window Movement"]) || 0; VictorEngine.Parameters.BattleStatusWindow.BackgroundX = Number(parameters["Window Background X"]) || 0; VictorEngine.Parameters.BattleStatusWindow.BackgroundY = Number(parameters["Window Background Y"]) || 0; for (var i = 1; i <= 10; i++) { var value = String(i); VictorEngine.Parameters.BattleStatusWindow['CustomCode' + value] = String(parameters["Custom Code " + value]).trim(); } } //============================================================================= // VictorEngine //============================================================================= VictorEngine.BattleStatusWindow.loadParameters = VictorEngine.loadParameters; VictorEngine.loadParameters = function() { VictorEngine.BattleStatusWindow.loadParameters.call(this); VictorEngine.BattleStatusWindow.processParameters(); }; VictorEngine.BattleStatusWindow.loadNotetagsValues = VictorEngine.loadNotetagsValues; VictorEngine.loadNotetagsValues = function(data, index) { VictorEngine.BattleStatusWindow.loadNotetagsValues.call(this, data, index); if (this.objectSelection(index, ['actor', 'class'])) { VictorEngine.BattleStatusWindow.loadNotes(data); } }; VictorEngine.BattleStatusWindow.loadNotes = function(data) { data.battleStatusWindow = data.battleStatusWindow || {}; this.processNotes(data); }; VictorEngine.BattleStatusWindow.processNotes = function(data) { var match; var part1 = "[ ]*('[^\']+'|\"[^\"]+\")[ ]*" var regex1 = new RegExp('', 'gi'); var regex2 = new RegExp('', 'gi'); var regex3 = VictorEngine.getNotesValues('(mp|tp) display') data.battleStatusWindow.hideTp = !!data.note.match(regex1); data.battleStatusWindow.hideMp = !!data.note.match(regex2); while (match = regex3.exec(data.note)) { this.processValues(data, match); }; }; VictorEngine.BattleStatusWindow.processValues = function(data, match) { data.battleStatusWindow[match[1].toLowerCase()] = match[2].trim(); }; VictorEngine.BattleStatusWindow.processParameters = function() { if (!this.loaded) { this.loaded = true; this.setupLayout(); this.setupDisplay(); this.setupContent(); this.setupActive(); this.setupFace(); this.setupName(); this.setupState(); this.setupAction(); this.setupHP(); this.setupMP(); this.setupTP(); this.setupCustom(); this.setupOffset(); } }; VictorEngine.BattleStatusWindow.setupLayout = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.layout = {}; this.layout.lines = parameters.WindowLines; this.layout.columns = parameters.WindowColumns; }; VictorEngine.BattleStatusWindow.setupDisplay = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.display = {}; this.display.x = parameters.WindowX; this.display.y = parameters.WindowY; this.display.width = parameters.WindowWidth; this.display.height = parameters.WindowHeight; this.display.movement = parameters.WindowMove; this.display.background = parameters.WindowBack; this.display.backgroundX = parameters.BackgroundX; this.display.backgroundY = parameters.BackgroundY; this.display.backOpacity = parameters.BackOpacity; this.display.frameOpacity = parameters.FrameOpacity; }; VictorEngine.BattleStatusWindow.setupContent = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.content = {}; this.content.horizontal = parameters.HorzCentralize; this.content.vertical = parameters.VertCentralize; this.content.background = parameters.ContentBack; this.content.x = parameters.ContentBackX; this.content.y = parameters.ContentBackY; }; VictorEngine.BattleStatusWindow.setupActive = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.active = {}; this.active.select = parameters.ActiveSelect; this.active.background = parameters.ActiveBack; this.active.x = parameters.ActiveBackX; this.active.y = parameters.ActiveBackY; }; VictorEngine.BattleStatusWindow.setupFace = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.face = {}; this.face.show = parameters.ShowFaces; this.face.sufix = parameters.FaceSufix; this.face.width = parameters.FaceWidth; this.face.height = parameters.FaceHeight; }; VictorEngine.BattleStatusWindow.setupName = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.name = {}; this.name.show = parameters.ShowName; this.name.face = parameters.NameFontface; this.name.size = parameters.NameFontsize; this.name.color = parameters.NameColor; }; VictorEngine.BattleStatusWindow.setupState = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.state = {}; this.state.show = parameters.ShowStates; this.state.max = parameters.StatesMaxIcons; }; VictorEngine.BattleStatusWindow.setupAction = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.action = {}; this.action.show = parameters.ShowActionIcon; this.action.icon = parameters.NoActionIcon; }; VictorEngine.BattleStatusWindow.setupHP = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.hp = {}; this.hp.gauge = parameters.ShowHPGauge; this.hp.width = parameters.HPGaugeWidth; this.hp.textFace = parameters.HPTextFontface; this.hp.textSize = parameters.HPTextFontsize; this.hp.textColor = parameters.HPTextColor; this.hp.currentFace = parameters.CurrentHPName; this.hp.currentSize = parameters.CurrentHPSize; this.hp.currentColor = parameters.CurrentHPColor; this.hp.maxFace = parameters.MaxHPName; this.hp.maxSize = parameters.MaxHPSize; this.hp.maxColor = parameters.MaxHPColor; }; VictorEngine.BattleStatusWindow.setupMP = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.mp = {}; this.mp.show = parameters.ShowMP; this.mp.gauge = parameters.ShowMPGauge; this.mp.width = parameters.MPGaugeWidth; this.mp.textFace = parameters.MPTextFontface; this.mp.textSize = parameters.MPTextFontsize; this.mp.textColor = parameters.MPTextColor; this.mp.currentFace = parameters.CurrentMPName; this.mp.currentSize = parameters.CurrentMPSize; this.mp.currentColor = parameters.CurrentMPColor; this.mp.maxFace = parameters.MaxMPName; this.mp.maxSize = parameters.MaxMPSize; this.mp.maxColor = parameters.MaxMPColor; }; VictorEngine.BattleStatusWindow.setupTP = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.tp = {}; this.tp.max = parameters.MaxTP this.tp.show = parameters.ShowTP; this.tp.gauge = parameters.ShowTPGauge; this.tp.width = parameters.TPGaugeWidth; this.tp.textFace = parameters.TPTextFontface; this.tp.textSize = parameters.TPTextFontsize; this.tp.textColor = parameters.TPTextColor; this.tp.currentFace = parameters.CurrentTPName; this.tp.currentSize = parameters.CurrentTPSize; this.tp.currentColor = parameters.CurrentTPColor; this.tp.maxFace = parameters.MaxTPName; this.tp.maxSize = parameters.MaxTPSize; this.tp.maxColor = parameters.MaxTPColor; }; VictorEngine.BattleStatusWindow.setupCustom = function() { this.custom = []; for (var i = 1; i <= 10; i++) { var value = String(i); this.custom.push(VictorEngine.Parameters.BattleStatusWindow['CustomCode' + value]); }; }; VictorEngine.BattleStatusWindow.setupOffset = function() { var parameters = VictorEngine.Parameters.BattleStatusWindow; this.offset = {}; this.offset.content = {x: parameters.ContentOffsetX, y: parameters.ContentOffsetY}; this.offset.active = {x: parameters.ActiveOffsetX, y: parameters.ActiveOffsetY}; this.offset.action = {x: parameters.ActionOffsetX, y: parameters.ActionOffsetY}; this.offset.state = {x: parameters.StatesOffsetX, y: parameters.StatesOffsetY}; this.offset.face = {x: parameters.FaceOffsetX, y: parameters.FaceOffsetY}; this.offset.name = {x: parameters.NameOffsetX, y: parameters.NameOffsetY}; this.offset.hp = {x: parameters.HPOffsetX, y: parameters.HPOffsetY}; this.offset.mp = {x: parameters.MPOffsetX, y: parameters.MPOffsetY}; this.offset.tp = {x: parameters.TPOffsetX, y: parameters.TPOffsetY}; }; //============================================================================= // Game_Actor //============================================================================= VictorEngine.BattleStatusWindow.startTurn = BattleManager.startTurn; BattleManager.startTurn = function() { VictorEngine.BattleStatusWindow.startTurn.call(this); $gameParty.aliveMembers().forEach(function(member) { if (member.isConfused() && !member.actionIcon()) { action = member.currentAction(); if (action) { member.setActionIcon(action.item().iconIndex); } } }) }; //============================================================================= // Game_Actor //============================================================================= VictorEngine.BattleStatusWindow.performActionEnd = Game_Actor.prototype.performActionEnd; Game_Actor.prototype.performActionEnd = function() { VictorEngine.BattleStatusWindow.performActionEnd.call(this); this.clearActionIcon(); }; VictorEngine.BattleStatusWindow.onRestrict = Game_Actor.prototype.onRestrict; Game_Actor.prototype.onRestrict = function() { VictorEngine.BattleStatusWindow.onRestrict.call(this); this.clearActionIcon(); }; VictorEngine.BattleStatusWindow.onBattleEnd = Game_Actor.prototype.onBattleEnd; Game_Actor.prototype.onBattleEnd = function() { VictorEngine.BattleStatusWindow.onBattleEnd.call(this); this.clearActionIcon(); }; Game_Actor.prototype.actionIcon = function() { return this._actionIcon; }; Game_Actor.prototype.clearActionIcon = function() { this._actionIcon = 0; }; Game_Actor.prototype.setActionIcon = function(icon) { this._actionIcon = icon; }; Game_Actor.prototype.hideMpDisplay = function() { var objects = [this.actor(), this.currentClass()]; return objects.some(function(object) { return object.battleStatusWindow.hideMp }); }; Game_Actor.prototype.hideTpDisplay = function() { var objects = [this.actor(), this.currentClass()]; return objects.some(function(object) { return object.battleStatusWindow.hideTp }); }; Game_Actor.prototype.mpStatusDisplay = function() { if (this.actor().battleStatusWindow.mp) { return this.actor().battleStatusWindow.mp; } else if (this.currentClass().battleStatusWindow.mp) { return this.currentClass().battleStatusWindow.mp; } else { return null; } }; Game_Actor.prototype.tpStatusDisplay = function() { if (this.actor().battleStatusWindow.tp) { return this.actor().battleStatusWindow.tp } else if (this.currentClass().battleStatusWindow.tp) { return this.currentClass().battleStatusWindow.tp; } else { return null; } }; //============================================================================= // Window_Base //============================================================================= Window_Base.prototype.drawHpGauge = function(actor, x, y, width) { var gauge1 = this.hpGaugeColor1(); var gauge2 = this.hpGaugeColor2(); this.drawGauge(x, y, width, actor.hpRate(), gauge1, gauge2); }; Window_Base.prototype.drawMpGauge = function(actor, x, y, width) { var gauge1 = this.mpGaugeColor1(); var gauge2 = this.mpGaugeColor2(); this.drawGauge(x, y, width, actor.mpRate(), gauge1, gauge2); }; Window_Base.prototype.drawTpGauge = function(actor, x, y, width) { var gauge1 = this.tpGaugeColor1(); var gauge2 = this.tpGaugeColor2(); this.drawGauge(x, y, width, actor.tpRate(), gauge1, gauge2); }; //============================================================================= // Scene_Battle //============================================================================= /* Overwritten function */ Scene_Battle.prototype.createStatusWindow = function() { this._statusWindow = new Window_CustomBattleStatus(); this.addWindow(this._statusWindow); }; /* Overwritten function */ Scene_Battle.prototype.updateWindowPositions = function() { if (this._statusWindow.moveX()) { var statusX = 0; if (BattleManager.isInputting()) { statusX = this._statusWindow.defaultX(); } else { statusX = this._statusWindow.defaultX() - this._statusWindow.moveX(); } if (this._statusWindow.x < statusX) { this._statusWindow.x += 16; if (this._statusWindow.x > statusX) { this._statusWindow.x = statusX; } } if (this._statusWindow.x > statusX) { this._statusWindow.x -= 16; if (this._statusWindow.x < statusX) { this._statusWindow.x = statusX; } } } }; VictorEngine.BattleStatusWindow.startActorCommandSelection = Scene_Battle.prototype.startActorCommandSelection; Scene_Battle.prototype.startActorCommandSelection = function() { VictorEngine.BattleStatusWindow.startActorCommandSelection.call(this); this.clearActionIcon(); }; VictorEngine.BattleStatusWindow.onSelectAction = Scene_Battle.prototype.onSelectAction; Scene_Battle.prototype.onSelectAction = function() { VictorEngine.BattleStatusWindow.onSelectAction.call(this); this.setActionIcon(); }; VictorEngine.BattleStatusWindow.commandAttack = Scene_Battle.prototype.commandAttack; Scene_Battle.prototype.commandAttack = function() { VictorEngine.BattleStatusWindow.commandAttack.call(this); this.setActionIcon(); }; VictorEngine.BattleStatusWindow.commandGuard = Scene_Battle.prototype.commandGuard; Scene_Battle.prototype.commandGuard = function() { this.setGuardIcon(); VictorEngine.BattleStatusWindow.commandGuard.call(this); }; VictorEngine.BattleStatusWindow.onActorCancel = Scene_Battle.prototype.onActorCancel; Scene_Battle.prototype.onActorCancel = function() { VictorEngine.BattleStatusWindow.onActorCancel.call(this); this.clearActionIcon(); }; VictorEngine.BattleStatusWindow.onEnemyCancel = Scene_Battle.prototype.onEnemyCancel; Scene_Battle.prototype.onEnemyCancel = function() { VictorEngine.BattleStatusWindow.onEnemyCancel.call(this); this.clearActionIcon(); }; Scene_Battle.prototype.setActionIcon = function() { var item = BattleManager.inputtingAction().item(); BattleManager.actor().setActionIcon(item.iconIndex); this._statusWindow.refresh(); }; Scene_Battle.prototype.setGuardIcon = function() { var item = $dataSkills[BattleManager.actor().guardSkillId()] BattleManager.actor().setActionIcon(item.iconIndex); this._statusWindow.refresh(); }; Scene_Battle.prototype.clearActionIcon = function() { BattleManager.actor().clearActionIcon(); this._statusWindow.refresh(); }; })(); //============================================================================= // Window_CustomBattleStatus //============================================================================= function Window_CustomBattleStatus() { this.initialize.apply(this, arguments); } Window_CustomBattleStatus.prototype = Object.create(Window_BattleStatus.prototype); Window_CustomBattleStatus.prototype.constructor = Window_CustomBattleStatus; (function() { Object.defineProperties(Window_CustomBattleStatus.prototype, { frameOpacity: { get: function() { return this._windowFrameSprite.alpha * 255; }, set: function(value) { this._windowFrameSprite.alpha = value.clamp(0, 255) / 255; }, configurable: true } }); Window_CustomBattleStatus.prototype.initialize = function() { var width = this.windowWidth(); var height = this.windowHeight(); var boxWidth = Graphics.boxWidth; var boxHeight = Graphics.boxHeight; var wx = Math.floor(Number(eval(this.display().x))) || 0; var wy = Math.floor(Number(eval(this.display().y))) || 0; var ww = Math.floor(Number(eval(this.display().width))) || 0; var wh = Math.floor(Number(eval(this.display().height))) || 0; Window_Selectable.prototype.initialize.call(this, wx, wy, ww, wh); this.createBackground(); this.refresh(); this.openness = 0; this._defaultX = this.x; this._activeIndex = -1; }; Window_CustomBattleStatus.prototype.updateBackOpacity = function() { this.backOpacity = Number(eval(this.display().backOpacity)) || 0; this.frameOpacity = Number(eval(this.display().frameOpacity)) || 0; }; Window_CustomBattleStatus.prototype.refresh = function() { this._refreshRequest = true; }; Window_CustomBattleStatus.prototype.update = function() { Window_BattleStatus.prototype.update.call(this); this.updateRefresh(); this.updateBackground(); }; Window_CustomBattleStatus.prototype.updateRefresh = function() { if (this._refreshRequest) { Window_BattleStatus.prototype.refresh.call(this); this._refreshRequest = false; } }; Window_CustomBattleStatus.prototype.updateBackground = function() { if (this.display().background && this._background) { if (!this._background.bitmap) { this._background.bitmap = ImageManager.loadSystem(this.display().background); this._background.bitmap.addLoadListener(this.updateBackgroundFrame.bind(this)); } this._background.x = Math.floor(this.display().backgroundX); this._background.y = Math.floor(this.display().backgroundY); this._background.visible = this.visible && this.isOpen(); this._background.opacity = this.opacity; } }; Window_CustomBattleStatus.prototype.updateBackgroundFrame = function() { var width = this._background.bitmap.width; var height = this._background.bitmap.height; this._background.setFrame(0, 0, width, height); }; Window_CustomBattleStatus.prototype.select = function(index) { if (this.selected().select) { Window_Selectable.prototype.select.call(this, index); } if (this._activeIndex !== index) { this._activeIndex = index; this.refresh(); } }; Window_CustomBattleStatus.prototype.createBackground = function() { this._background = new Sprite(); this._windowSpriteContainer.addChildAt(this._background, 0); }; Window_CustomBattleStatus.prototype.defaultX = function() { return this._defaultX; }; Window_CustomBattleStatus.prototype.moveX = function() { return this.display().movement || 0; }; Window_CustomBattleStatus.prototype.numVisibleRows = function() { return Math.floor(Number(eval(this.layout().lines))) || 1; }; Window_CustomBattleStatus.prototype.maxCols = function() { return Math.floor(Number(eval(this.layout().columns))) || 1; }; Window_CustomBattleStatus.prototype.itemWidth = function() { return Math.floor((this.width - this.padding * 2) / this.maxCols()); }; Window_CustomBattleStatus.prototype.itemHeight = function() { return Math.floor((this.height - this.padding * 2) / this.numVisibleRows()); }; Window_CustomBattleStatus.prototype.itemRect = function(index) { var horz = 0; var vert = 0; var rect = new Rectangle(); var rows = this.numVisibleRows(); var cols = this.maxCols(); var cw = this.contents.width; var ch = this.contents.height; rect.width = this.itemWidth(); rect.height = this.itemHeight(); if (this.content().horizontal) { var max = this.maxItems() - cols * Math.floor(index / cols); if (max < cols) { horz = Math.floor(cw / 2 - rect.width * max / 2); } } if (this.content().vertical) { var max = this.maxItems() - rows * Math.floor(index / rows); if (max < rows) { vert = Math.floor(ch / 2 - rect.height * max / 2); } } var row = cols === 1 ? Math.floor(index / cols) : Math.floor(index / cols) % rows; rect.x = index % cols * rect.width + horz - this._scrollX; rect.y = row * rect.height + vert - this._scrollY; return rect; }; Window_CustomBattleStatus.prototype.layout = function() { return VictorEngine.BattleStatusWindow.layout; }; Window_CustomBattleStatus.prototype.display = function() { return VictorEngine.BattleStatusWindow.display; }; Window_CustomBattleStatus.prototype.content = function() { return VictorEngine.BattleStatusWindow.content; }; Window_CustomBattleStatus.prototype.selected = function() { return VictorEngine.BattleStatusWindow.active; }; Window_CustomBattleStatus.prototype.action = function() { return VictorEngine.BattleStatusWindow.action; }; Window_CustomBattleStatus.prototype.face = function() { return VictorEngine.BattleStatusWindow.face; }; Window_CustomBattleStatus.prototype.name = function() { return VictorEngine.BattleStatusWindow.name; }; Window_CustomBattleStatus.prototype.face = function() { return VictorEngine.BattleStatusWindow.face; }; Window_CustomBattleStatus.prototype.state = function() { return VictorEngine.BattleStatusWindow.state; }; Window_CustomBattleStatus.prototype.hp = function() { return VictorEngine.BattleStatusWindow.hp; }; Window_CustomBattleStatus.prototype.mp = function() { return VictorEngine.BattleStatusWindow.mp; }; Window_CustomBattleStatus.prototype.tp = function() { return VictorEngine.BattleStatusWindow.tp; }; Window_CustomBattleStatus.prototype.custom = function() { return VictorEngine.BattleStatusWindow.custom; }; Window_CustomBattleStatus.prototype.offset = function() { return VictorEngine.BattleStatusWindow.offset; }; Window_CustomBattleStatus.prototype.isActive = function(index) { return this._activeIndex === index; }; Window_CustomBattleStatus.prototype.drawItem = function(index) { var actor = $gameParty.battleMembers()[index]; var rect = this.setupItemRect(index, actor); this.drawBackArea(rect, index, actor); this.drawFaceArea(rect, index, actor); this.drawNameArea(rect, index, actor); this.drawIconArea(rect, index, actor); this.drawHpArea(rect, index, actor); this.drawMpArea(rect, index, actor); this.drawTpArea(rect, index, actor); this.drawCustomArea(rect, index, actor); }; Window_CustomBattleStatus.prototype.setupItemRect = function(index, actor) { var rect = this.itemRect(index); var offsetX = Number(eval(this.offset().content.x)); var offsetY = Number(eval(this.offset().content.y)); var actionX = this.isActive(index) ? Number(eval(this.offset().active.x)) : 0; var actionY = this.isActive(index) ? Number(eval(this.offset().active.y)) : 0; rect.x += Math.floor(offsetX + actionX); rect.y += Math.floor(offsetY + actionY); return rect; }; Window_CustomBattleStatus.prototype.drawBackArea = function(rect, index, actor) { var name; if (this.selected().background && this.isActive(index)) { var ox = Math.floor(Number(eval(this.selected().x))); var oy = Math.floor(Number(eval(this.selected().y))); var name = this.selected().background; } else if (this.content().background) { var ox = Math.floor(Number(eval(this.content().x))); var oy = Math.floor(Number(eval(this.content().y))); var name = this.content().background; } if (name) { var bitmap = ImageManager.loadSystem(name); this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, rect.x + ox, rect.y + oy); if (!bitmap.isReady()) { bitmap.addLoadListener(this.refresh.bind(this)); } } }; Window_CustomBattleStatus.prototype.drawFaceArea = function(rect, index, actor) { if (this.face().show) { var ox = Math.floor(Number(eval(this.offset().face.x))); var oy = Math.floor(Number(eval(this.offset().face.y))); var fw = Math.floor(Number(eval(this.face().width))); var fh = Math.floor(Number(eval(this.face().height))); var faceName = actor.faceName() + this.face().sufix; var faceIndex = actor.faceIndex(); this.drawFace(faceName, faceIndex, rect.x + ox, rect.y + oy, fw, fh); var bitmap = ImageManager.loadFace(faceName); if (!bitmap.isReady()) { bitmap.addLoadListener(this.refresh.bind(this)); } } }; Window_CustomBattleStatus.prototype.drawNameArea = function(rect, index, actor) { if (this.name().show) { var ox = Math.floor(Number(eval(this.offset().name.x))); var oy = Math.floor(Number(eval(this.offset().name.y))); var color = eval(this.getFontColor(this.name().color)); var font = eval(this.name().face); var size = eval(this.name().size); this.changeTextColor(color); this.contents.fontFace = font; this.contents.fontSize = Math.floor(size); this.drawText(actor.name(), rect.x + ox, rect.y + oy, rect.width - ox); this.resetFontSettings(); } }; Window_CustomBattleStatus.prototype.drawIconArea = function(rect, index, actor) { if (this.state().show) { var ox = Math.floor(Number(eval(this.offset().state.x))); var oy = Math.floor(Number(eval(this.offset().state.y))); var width = Math.floor(Number(eval(this.state().max)) * Window_Base._iconWidth); this.drawActorIcons(actor, rect.x + ox, rect.y + oy, width); } if (this.action().show) { var ox = Math.floor(Number(eval(this.offset().action.x))); var oy = Math.floor(Number(eval(this.offset().action.y))); var icon = actor.actionIcon() || this.action().icon; this.drawIcon(icon, rect.x + ox, rect.y + oy); } }; Window_CustomBattleStatus.prototype.drawHpArea = function(rect, index, actor) { var ox = Math.floor(Number(eval(this.offset().hp.x))); var oy = Math.floor(Number(eval(this.offset().hp.y))); var gw = Math.floor(Math.min(Number(eval(this.hp().width)), rect.width - ox)); this.drawActorHp(actor, rect.x + ox, rect.y + oy, gw); }; Window_CustomBattleStatus.prototype.drawMpArea = function(rect, index, actor) { if (this.showMP(actor)) { var display = actor.mpStatusDisplay(); var x = this.offset().mp.x; var y = this.offset().mp.y; var width = this.mp().width; if (display) { eval(display); } var ox = Math.floor(Number(eval(x))); var oy = Math.floor(Number(eval(y))); var gw = Math.floor(Math.min(Number(eval(width)), rect.width - ox)); this.drawActorMp(actor, rect.x + ox, rect.y + oy, gw); } }; Window_CustomBattleStatus.prototype.drawTpArea = function(rect, index, actor) { if (this.showTP(actor)) { var display = actor.tpStatusDisplay(); var x = this.offset().tp.x; var y = this.offset().tp.y; var width = this.tp().width; if (display) { eval(display); } var ox = Math.floor(Number(eval(x))); var oy = Math.floor(Number(eval(y))); var gw = Math.floor(Math.min(Number(eval(width)), rect.width - ox)); this.drawActorTp(actor, rect.x + ox, rect.y + oy, gw); } }; Window_CustomBattleStatus.prototype.drawCustomArea = function(rect, index, actor) { var x = rect.x; var y = rect.y; var width = rect.width; var height = rect.height; var custom = this.custom(); for (var i = 0; i < custom.length; i++) { if (custom[i]) { eval(custom[i]); } } }; Window_CustomBattleStatus.prototype.showMP = function(actor) { return this.mp().show && !actor.hideMpDisplay(); }; Window_CustomBattleStatus.prototype.showTP = function(actor) { return this.tp().show && !actor.hideTpDisplay(); }; Window_CustomBattleStatus.prototype.drawActorHp = function(actor, x, y, width) { var color1 = eval(this.getFontColor(this.hp().textColor)); var color2 = eval(this.getFontColor(this.hp().currentColor)); var color3 = eval(this.getFontColor(this.hp().maxColor)); var font1 = eval(this.hp().textFace); var font2 = eval(this.hp().currentFace); var font3 = eval(this.hp().maxFace); var size1 = eval(this.hp().textSize); var size2 = eval(this.hp().currentSize); var size3 = eval(this.hp().maxSize); if (this.hp().gauge) { this.drawHpGauge(actor, x, y, width); } this.changeTextColor(color1); this.contents.fontFace = font1; this.contents.fontSize = size1; if (font1) { this.drawText(TextManager.hpA, x, y, width); } this.drawCurrentAndMax(actor.hp, actor.mhp, x, y, width, color2, color3, font2, font3, size2, size3); }; Window_CustomBattleStatus.prototype.drawActorMp = function(actor, x, y, width) { var color1 = eval(this.getFontColor(this.mp().textColor)); var color2 = eval(this.getFontColor(this.mp().currentColor)); var color3 = eval(this.getFontColor(this.mp().maxColor)); var font1 = eval(this.mp().textFace); var font2 = eval(this.mp().currentFace); var font3 = eval(this.mp().maxFace); var size1 = eval(this.mp().textSize); var size2 = eval(this.mp().currentSize); var size3 = eval(this.mp().maxSize); if (this.mp().gauge) { this.drawMpGauge(actor, x, y, width); } this.changeTextColor(color1); this.contents.fontFace = font1; this.contents.fontSize = size1; if (font1) { this.drawText(TextManager.mpA, x, y, width); } this.drawCurrentAndMax(actor.mp, actor.mmp, x, y, width, color2, color3, font2, font3, size2, size3); }; Window_CustomBattleStatus.prototype.drawActorTp = function(actor, x, y, width) { var color1 = eval(this.getFontColor(this.tp().textColor)); var color2 = eval(this.getFontColor(this.tp().currentColor)); var color3 = eval(this.getFontColor(this.tp().maxColor)); var font1 = eval(this.tp().textFace); var font2 = eval(this.tp().currentFace); var font3 = eval(this.tp().maxFace); var size1 = eval(this.tp().textSize); var size2 = eval(this.tp().currentSize); var size3 = eval(this.tp().maxSize); var maxTp = eval(this.tp().maxTp) || 100; if (this.tp().gauge) { this.drawTpGauge(actor, x, y, width); } this.changeTextColor(color1); this.contents.fontFace = font1; this.contents.fontSize = Math.floor(size1); if (font1) { this.drawText(TextManager.tpA, x, y, width); } this.drawCurrentAndMax(actor.tp, maxTp, x, y, width, color2, color3, font2, font3, size2, size3); }; Window_CustomBattleStatus.prototype.drawCurrentAndMax = function(current, max, x, y, width, c1, c2, f1, f2, s1, s2) { this.changeTextColor(c1); this.contents.fontFace = f1; this.contents.fontSize = Math.floor(s1); var labelWidth = this.textWidth('HP'); var valueWidth = this.textWidth('0000'); var slashWidth = this.textWidth('/'); var x1 = x + width - valueWidth; var x2 = x1 - slashWidth; var x3 = x2 - valueWidth; if (x3 >= x + labelWidth) { this.drawText(current, x3, y, valueWidth, 'right'); this.changeTextColor(c2); this.contents.fontFace = f2; this.contents.fontSize = Math.floor(s2); this.drawText('/', x2, y, slashWidth, 'right'); this.drawText(max, x1, y, valueWidth, 'right'); } else { this.drawText(current, x1, y, valueWidth, 'right'); } this.resetFontSettings(); }; })();