phantom-soul-sword-lambda-n.../www/js/plugins/MOG_SceneMenu.js
2025-07-11 18:31:55 -07:00

1709 lines
No EOL
59 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// MOG_SceneMenu.js
//=============================================================================
/*:
* @plugindesc (v1.2) Modifica a cena de menu principal.
* @author Moghunter
*
* @param Actor Hud X-Axis
* @desc Posição X-Axis da Hud do personagem.
* @default 0
*
* @param Actor Hud Y-Axis
* @desc Posição Y-Axis da Hud do personagem.
* @default 0
*
* @param Char X-Axis
* @desc Posição X-Axis da imagem do personagem.
* @default 20
*
* @param Char Y-Axis
* @desc Posição Y-Axis da image do personagem.
* @default 0
*
* @param HP Meter X-Axis
* @desc Posição X-Axis do medidor de HP.
* @default 17
*
* @param HP Meter Y-Axis
* @desc Posição Y-Axis do medidor de HP.
* @default 93
*
* @param MP Meter X-Axis
* @desc Posição X-Axis do medidor de MP.
* @default 17
*
* @param MP Meter Y-Axis
* @desc Posição Y-Axis do medidor de MP.
* @default 144
*
* @param HP Number X-Axis
* @desc Posição X-Axis do número de HP.
* @default 100
*
* @param HP Number Y-Axis
* @desc Posição Y-Axis do número de HP.
* @default 73
*
* @param HPMax Number X-Axis
* @desc Posição X-Axis do número de HP maximo.
* @default 140
*
* @param HPMax Number Y-Axis
* @desc Posição Y-Axis do número de HP maximo.
* @default 100
*
* @param MP Number X-Axis
* @desc Posição X-Axis do número de MP.
* @default 100
*
* @param MP Number Y-Axis
* @desc Posição Y-Axis do número de MP.
* @default 124
*
* @param MPMax Number X-Axis
* @desc Posição X-Axis do número de MP maximo.
* @default 140
*
* @param MPMax Number Y-Axis
* @desc Posição Y-Axis do número de MP maximo.
* @default 151
*
* @param Commands X-Axis
* @desc Posição X-Axis dos comandos.
* @default 180
*
* @param Commands Y-Axis
* @desc Posição Y-Axis dos comandos.
* @default 50
*
* @param Command Active X-Axis
* @desc Posição X-Axis do comando selecionado.
* @default 40
*
* @param Command Active Y-Axis
* @desc Posição Y-Axis do comando selecionado.
* @default 148
*
* @param Com Name Visible
* @desc Apresentar o nome do comando.
* @default true
*
* @param Com Name X-Axis
* @desc Posição X-Axis do nome do comando.
* @default 40
*
* @param Com Name Y-Axis
* @desc Posição Y-Axis do nome do comando.
* @default 96
*
* @param Com Name FontSize
* @desc Definição do tamanho da fonte do nome do comando.
* @default 22
*
* @param Max Visible Faces
* @desc Definição da quantidade de faces apresentadas.
* @default 5
*
* @param Face Sel X-Axis
* @desc Posição X-Axis das faces.
* @default 240
*
* @param Face Sel Y-Axis
* @desc Posição Y-Axis das faces.
* @default 128
*
* @param Gold X-Axis
* @desc Posição X-Axis do dinheiro.
* @default 260
*
* @param Gold Y-Axis
* @desc Posição Y-Axis do dinheiro.
* @default 580
*
* @param Time X-Axis
* @desc Posição X-Axis do tempo.
* @default 565
*
* @param Time Y-Axis
* @desc Posição Y-Axis do tempo.
* @default 60
*
* @param Time FontSize
* @desc Definição do tamanho da fonte do tempo.
* @default 22
*
* @param Location X-Axis
* @desc Posição X-Axis da localização.
* @default 450
*
* @param Location Y-Axis
* @desc Posição Y-Axis da localização.
* @default 575
*
* @param Time FontSize
* @desc Definição do tamanho da fonte da localização.
* @default 26
*
* @param Magic Circle Visible
* @desc Apresentar o circulo mágico.
* @default true
*
* @param Magic Circle X-Axis
* @desc Posição X-Axis do círculo mágico.
* @default 700
*
* @param Magic Circle Y-Axis
* @desc Posição Y-Axis do círculo mágico.
* @default 140
*
* @param Magic Circle Rotation
* @desc Velocidade de rotação do círculo mágico.
* @default 0.001
*
* @help
* =============================================================================
* +++ MOG - Scene Menu (v1.2) +++
* By Moghunter
* https://atelierrgss.wordpress.com/
* =============================================================================
* Modifica a cena de menu principal.
*
* =============================================================================
* UTILIZAÇÃO
* =============================================================================
* As imagens do sistema deverão ser gravados na pasta.
*
* /img/menus/main/
*
* =============================================================================
* HISTÓRICO
* =============================================================================
* (1.2) - Correção do crash caso não usar o plugin do Menu Cursor.
* (1.1) - Correção do plugin parameter da posição do nome do comando.
*
*/
//=============================================================================
// ** PLUGIN PARAMETERS
//=============================================================================
  var Imported = Imported || {};
  Imported.MMOG_SceneMenu = true;
  var Moghunter = Moghunter || {};
 Moghunter.parameters = PluginManager.parameters('MOG_SceneMenu');
Moghunter.scMenu_layoutStatusX = Number(Moghunter.parameters['Actor Hud X-Axis'] || 0);
Moghunter.scMenu_layoutStatusY = Number(Moghunter.parameters['Actor Hud Y-Axis'] || 0);
Moghunter.scMenu_CharX = Number(Moghunter.parameters['Char X-Axis'] || 20);
Moghunter.scMenu_CharY = Number(Moghunter.parameters['Char Y-Axis'] || 0);
Moghunter.scMenu_HPMeterX = Number(Moghunter.parameters['HP Meter X-Axis'] || 17);
Moghunter.scMenu_HPMeterY = Number(Moghunter.parameters['HP Meter Y-Axis'] || 93);
Moghunter.scMenu_MPMeterX = Number(Moghunter.parameters['MP Meter X-Axis'] || 17);
Moghunter.scMenu_MPMeterY = Number(Moghunter.parameters['MP Meter Y-Axis'] || 144);
Moghunter.scMenu_HPNumberX = Number(Moghunter.parameters['HP Number X-Axis'] || 100);
Moghunter.scMenu_HPNumberY = Number(Moghunter.parameters['HP Number Y-Axis'] || 73);
Moghunter.scMenu_HPNumber2X = Number(Moghunter.parameters['HPMax Number X-Axis'] || 140);
Moghunter.scMenu_HPNumber2Y = Number(Moghunter.parameters['HPMax Number Y-Axis'] || 100);
Moghunter.scMenu_MPNumberX = Number(Moghunter.parameters['MP Number X-Axis'] || 100);
Moghunter.scMenu_MPNumberY = Number(Moghunter.parameters['MP Number Y-Axis'] || 124);
Moghunter.scMenu_MPNumber2X = Number(Moghunter.parameters['MPMax Number X-Axis'] || 140);
Moghunter.scMenu_MPNumber2Y = Number(Moghunter.parameters['MPMax Number Y-Axis'] || 151);
Moghunter.scMenu_LVNumberX = Number(Moghunter.parameters['LV Number X-Axis'] || 95);
Moghunter.scMenu_LVNumberY = Number(Moghunter.parameters['LV Number Y-Axis'] || 33);
Moghunter.scMenu_statesX = Number(Moghunter.parameters['States X-Axis'] || 111);
Moghunter.scMenu_statesY = Number(Moghunter.parameters['States Y-Axis'] || 30);
Moghunter.scMenu_NameX = Number(Moghunter.parameters['Name X-Axis'] || 20);
Moghunter.scMenu_NameY = Number(Moghunter.parameters['Name Y-Axis'] || 0);
Moghunter.scMenu_NameFontSize = Number(Moghunter.parameters['Name FontSize'] || 20);
Moghunter.scMenu_ComX = Number(Moghunter.parameters['Commands X-Axis'] || 180);
Moghunter.scMenu_ComY = Number(Moghunter.parameters['Commands Y-Axis'] || 50);
Moghunter.scMenu_ComWX = Number(Moghunter.parameters['Command Active X-Axis'] || 40);
Moghunter.scMenu_ComWY = Number(Moghunter.parameters['Command Active Y-Axis'] || 148);
Moghunter.scMenu_ComNameVisible = String(Moghunter.parameters['Com Name Visible'] || "true");
Moghunter.scMenu_ComNameX = Number(Moghunter.parameters['Com Name X-Axis'] || 40);
Moghunter.scMenu_ComNameY = Number(Moghunter.parameters['Com Name Y-Axis'] || 96);
Moghunter.scMenu_ComNameFontSize = Number(Moghunter.parameters['Com Name FontSize'] || 22);
Moghunter.scMenu_maxVisibleFaces = Number(Moghunter.parameters['Max Visible Faces'] || 5);
Moghunter.scMenu_FaceSelX = Number(Moghunter.parameters['Face Sel X-Axis'] || 240);
Moghunter.scMenu_FaceSelY = Number(Moghunter.parameters['Face Sel Y-Axis'] || 128);
Moghunter.scMenu_GoldNumberX = Number(Moghunter.parameters['Gold X-Axis'] || 260);
Moghunter.scMenu_GoldNumberY = Number(Moghunter.parameters['Gold Y-Axis'] || 580);
Moghunter.scMenu_playTimeNumberX = Number(Moghunter.parameters['Time X-Axis'] || 565);
Moghunter.scMenu_playTimeNumberY = Number(Moghunter.parameters['Time Y-Axis'] || 60);
Moghunter.scMenu_playTimeNumberFontSize = Number(Moghunter.parameters['Time FontSize'] || 24);
Moghunter.scMenu_locationX = Number(Moghunter.parameters['Location X-Axis'] || 450);
Moghunter.scMenu_locationY = Number(Moghunter.parameters['Location Y-Axis'] || 575);
Moghunter.scMenu_locationFontSize = Number(Moghunter.parameters['Location FontSize'] || 26);
Moghunter.scMenu_MagicCircleV = String(Moghunter.parameters['Magic Circle Visible'] || "true");
Moghunter.scMenu_MagicCircleX = Number(Moghunter.parameters['Magic Circle X-Axis'] || 700);
Moghunter.scMenu_MagicCircleY = Number(Moghunter.parameters['Magic Circle Y-Axis'] || 140);
Moghunter.scMenu_MagicCircleR = Number(Moghunter.parameters['Magic Circle Rotation'] || 0.001);
//=============================================================================
// ** ImageManager
//=============================================================================
//==============================
// * Main
//==============================
ImageManager.loadMenusMain = function(filename) {
return this.loadBitmap('img/menus/main/', filename, 0, true);
};
//==============================
// * Main Faces1
//==============================
ImageManager.loadMenusFaces1 = function(filename) {
return this.loadBitmap('img/menus/faces/faces1/', filename, 0, true);
};
//==============================
// * Main Faces2
//==============================
ImageManager.loadMenusFaces2 = function(filename) {
return this.loadBitmap('img/menus/faces/faces2/', filename, 0, true);
};
//==============================
// * Main Faces3
//==============================
ImageManager.loadMenusFaces3 = function(filename) {
return this.loadBitmap('img/menus/faces/faces3/', filename, 0, true);
};
//==============================
// * Main Faces4
//==============================
ImageManager.loadMenusFaces4 = function(filename) {
return this.loadBitmap('img/menus/faces/faces4/', filename, 0, true);
};
//==============================
// * Main Commands
//==============================
ImageManager.loadMenusMainCommands = function(filename) {
return this.loadBitmap('img/menus/main/commands/', filename, 0, true);
};
//=============================================================================
// ** Scene Menu
//=============================================================================
var _mog_scmenu_create = Scene_Menu.prototype.create;
Scene_Menu.prototype.create = function() {
_mog_scmenu_create.call(this);
this.loadBitmapsMain();
this.createField();
this.createMonogatari();
};
//==============================
// * loadBitmapsMain
//==============================
Scene_Menu.prototype.loadBitmapsMain = function() {
this._facesBitmaps = []
for (var i = 0; i < $gameParty.members().length; i++) {
this._facesBitmaps[i] = ImageManager.loadMenusFaces2("Actor_" + $gameParty.members()[i]._actorId);
};
this._comBitmaps = []
this._comList = this._commandWindow._list;
for (var i = 0; i < this._comList.length; i++) {
this._comBitmaps[i] = ImageManager.loadMenusMainCommands(this._comList[i].name);
};
this._arrowImg = ImageManager.loadMenusMain("FaceArrow");
this._goldImg = ImageManager.loadMenusMain("GoldNumber");
};
//==============================
// * Create Field
//==============================
Scene_Menu.prototype.createField = function() {
this._field = new Sprite();
this.addChild(this._field);
};
//==============================
// * Create Monogatari
//==============================
Scene_Menu.prototype.createMonogatari = function() {
if (String(Moghunter.scMenu_MagicCircleV) === "true") {this.createMagicCircle()};
this.createCharacters();
this.createLayout();
this.createCharStatus();
this.createCommands();
this.createCommandName();
this.createPlayTime();
this.createLocation();
};
//==============================
// * Create After
//==============================
Scene_Menu.prototype.createAfter = function() {
this.createSelection();
this.createFaceArrow();
this.createGold();
};
//==============================
// * create HP Number
//==============================
Scene_Menu.prototype.createGold = function() {
this._gold_number = [];
this._GoldData = [this._goldImg.width / 10,this._goldImg.height]
var x = Moghunter.scMenu_GoldNumberX;
var y = Moghunter.scMenu_GoldNumberY;
for (var i = 0; i < 9; i++) {
this._gold_number[i] = new Sprite(this._goldImg);
this._gold_number[i].visible = false;
this._gold_number[i].opacity = 255;
this._gold_number[i].x = x ;
this._gold_number[i].y = y ;
this._field.addChild(this._gold_number[i]);
};
this.refresh_number(this._gold_number,$gameParty.gold(),this._GoldData,x)
};
//==============================
// * create Magic Circle
//==============================
Scene_Menu.prototype.createMagicCircle = function() {
this._magicCircle = new Sprite(ImageManager.loadMenusMain("MagicCircle"));
this._magicCircle.anchor.x = 0.5;
this._magicCircle.anchor.y = 0.5;
this._magicCircle.x = Moghunter.scMenu_MagicCircleX;
this._magicCircle.y = Moghunter.scMenu_MagicCircleY;
this._field.addChild(this._magicCircle);
};
//==============================
// * create Magic Circle
//==============================
Scene_Menu.prototype.updateMagicCircle = function() {
this._magicCircle.rotation +=Moghunter.scMenu_MagicCircleR;
};
//==============================
// * play Time Sec
//==============================
Scene_Menu.prototype.playTimeSec = function() {
return $gameSystem.playtime() % 60;
};
//==============================
// * create Play Time
//==============================
Scene_Menu.prototype.createPlayTime = function() {
this._playTime = new Sprite(new Bitmap(200,32));
this._playTime.x = Moghunter.scMenu_playTimeNumberX;
this._playTime.y = Moghunter.scMenu_playTimeNumberY;
this._playTime.bitmap.fontSize = Moghunter.scMenu_playTimeNumberFontSize;
this._field.addChild(this._playTime);
this._playTimeSec = this.playTimeSec();
this.refreshTime();
};
//==============================
// * refresh Time
//==============================
Scene_Menu.prototype.refreshTime = function() {
this._playTime.bitmap.clear();
this._playTimeSec = this.playTimeSec();
this._playTime.bitmap.drawText($gameSystem.playtimeText(),0,0,200,32,"right");
};
//==============================
// * update Time
//==============================
Scene_Menu.prototype.updateTime = function() {
if (this._playTimeSec != this.playTimeSec()) {this.refreshTime()};
};
//==============================
// * create Location
//==============================
Scene_Menu.prototype.createLocation = function() {
this._location = new Sprite(new Bitmap(260,32));
this._location.x = Moghunter.scMenu_locationX;
this._location.y = Moghunter.scMenu_locationY;
this._location.bitmap.fontSize = Moghunter.scMenu_locationFontSize;
var mapName = $gameMap.displayName();
this._location.bitmap.drawText(mapName,0,0,260,32,"center");
this._field.addChild(this._location);
};
//==============================
// * Refresh Number
//==============================
Scene_Menu.prototype.refresh_number = function(sprites,value,img_data,x) {
numbers = Math.abs(value).toString().split("");
for (var i = 0; i < sprites.length ; i++) {
sprites[i].visible = false;
if (i < numbers.length) {
var n = Number(numbers[i]);
sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
var nx = -(img_data[0] * i) + (img_data[0] * numbers.length);
sprites[i].x = x - nx;
sprites[i].visible = true;
} else {
var n = 0;
sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
var nx = -(img_data[0] * i) + (img_data[0] * (sprites.length + numbers.length));
sprites[i].x = x - nx;
};
};
};
//==============================
// * maxMembers
//==============================
Scene_Menu.prototype.maxMembers = function() {
return Math.min(Math.max($gameParty.members().length,0),$gameParty.maxBattleMembers());
};
//==============================
// * Create Characters
//==============================
Scene_Menu.prototype.createCharacters = function() {
this._characters = [];
for (var i = 0; i < this.maxMembers(); i++) {
this._characters[i] = new MBustMenu(i,$gameParty.members()[i],this.maxMembers());
this._field.addChild(this._characters[i]);
};
};
//==============================
// * Create Char Status
//==============================
Scene_Menu.prototype.createCharStatus = function() {
this._charStatus = [];
for (var i = 0; i < this.maxMembers(); i++) {
this._charStatus[i] = new MCharStatus(i,$gameParty.members()[i],this.maxMembers());
this._field.addChild(this._charStatus[i]);
};
};
//==============================
// * Update
//==============================
var _mog_smenu_update = Scene_Menu.prototype.createGoldWindow;
Scene_Menu.prototype.createGoldWindow = function() {
_mog_smenu_update.call(this);
if (this._goldWindow) {this._goldWindow.visible = false};
};
//==============================
// * create Layout
//==============================
Scene_Menu.prototype.createLayout = function() {
this._layout = new Sprite(ImageManager.loadMenusMain("Layout"));
this._field.addChild(this._layout);
};
//==============================
// * create Commands
//==============================
Scene_Menu.prototype.createCommands = function() {
this._commands = [];
this._compos = [];
this._comzoom = [];
var h = 0
this._comField = new Sprite();
this._field.addChild(this._comField);
for (var i = 0; i < this._comList.length; i++) {
this._commands[i] = new Sprite(this._comBitmaps[i]);
this._commands[i].anchor.x = 0.5;
this._commands[i].anchor.y = 0.5;
this._commands[i].y = -64;
this._commands[i].opacity = 255;
this._compos[i] = [Moghunter.scMenu_ComX + (48 * i),Moghunter.scMenu_ComY + (48 * h)];
this._comzoom[i] = 0;
this._comField.addChild(this._commands[i]);
h = h === 0 ? 1 : 0;
};
};
//==============================
// * update Commands
//==============================
Scene_Menu.prototype.updateCommands = function() {
// this.updateComField();
for (var i = 0; i < this._commands.length; i++) {
if (this.isComEnabled(i)) {
var nx = this._statusWindow.active ? Moghunter.scMenu_ComWX : this._compos[i][0];
var ny = this._statusWindow.active ? Moghunter.scMenu_ComWY : this._compos[i][1];
if (this._commandWindow.isCurrentItemEnabled()) {this._commands[i].opacity += 20};
if (this._comzoom[i] === 0 && !this._statusWindow.active) {
this._commands[i].scale.x += 0.01;
if (this._commands[i].scale.x >= 1.30) {
this._commands[i].scale.x = 1.30;
this._comzoom[i] = 1;
};
} else {
this._commands[i].scale.x -= 0.01;
if (this._commands[i].scale.x <= 1.00) {
this._commands[i].scale.x = 1.00;
this._comzoom[i] = 0;
};
};
} else {
var nx = this._compos[i][0];
var ny = this._compos[i][1];
if (this._commands[i].opacity > 180 || this._statusWindow.active) {
this._commands[i].opacity -= 10
if (this._commands[i].opacity < 180 && !this._statusWindow.active) {this._commands[i].opacity = 180}
};
if (!this._statusWindow.active && this._commands[i].opacity < 180) {
this._commands[i].opacity += 10;
if (this._commands[i].opacity > 180) {this._commands[i].opacity = 180}
};
if (this._commands[i].scale.x > 1.00) {this._commands[i].scale.x -= 0.01};
this._comzoom[i] = 0;
};
this._commands[i].x = this.commandMoveTo(this._commands[i].x,nx);
this._commands[i].y = this.commandMoveTo(this._commands[i].y,ny);
this._commands[i].scale.y = this._commands[i].scale.x;
};
};
//==============================
// * update Com Field
//==============================
Scene_Menu.prototype.updateComField = function() {
if (!this._statusWindow.active) {
this._comField.opacity += 15
if (this._comField.y < 0) {
this._comField.y += 3;
if (this._comField.y > 0 ) {this._comField.y = 0}
}
} else {
this._comField.opacity -= 15
if (this._comField.y > -50) {
this._comField.y -= 3;
if (this._comField.y < -50 ) {this._comField.y = -50}
};
};
};
//==============================
// * is Com Enabled
//==============================
Scene_Menu.prototype.isComEnabled = function(index) {
if (index != this._commandWindow._index) {return false};
return true;
};
//==============================
// * Command Move To
//==============================
Scene_Menu.prototype.commandMoveTo = function(value,real_value) {
if (value == real_value) {return value};
var dnspeed = 3 + (Math.abs(value - real_value) / 20);
if (value > real_value) {value -= dnspeed;
if (value < real_value) {value = real_value};}
else if (value < real_value) {value += dnspeed;
if (value > real_value) {value = real_value};
};
return Math.floor(value);
};
//==============================
// * create Command Name
//==============================
Scene_Menu.prototype.createCommandName = function() {
this._commandName = new Sprite(new Bitmap(100,32));
this._commandName.bitmap.fontSize = Moghunter.scMenu_ComNameFontSize;
this._commandNameIndex = -2;
this._commandNameIndex2 = -2;
this._field.addChild(this._commandName);
this._commandName.visible = String(Moghunter.scMenu_ComNameVisible) === "true" ? true : false;
};
//==============================
// * update Command Name
//==============================
Scene_Menu.prototype.updateCommandName = function() {
if (this._statusWindow.active) {
if (this._commandNameIndex2 != this._statusWindow._index) {this.refreshActorName()};
} else {
if (this._commandNameIndex != this._commandWindow._index) {this.refreshCommandName()};
};
this._commandName.x = this.commandMoveTo(this._commandName.x,Moghunter.scMenu_ComNameX);
this._commandName.y = this.commandMoveTo(this._commandName.y,Moghunter.scMenu_ComNameY);
this._commandName.opacity += 10;
};
//==============================
// * refresh Command Name
//==============================
Scene_Menu.prototype.refreshCommandName = function() {
this._commandNameIndex = this._commandWindow._index;
this._commandNameIndex2 = -2;
this._commandName.bitmap.clear();
this._commandName.bitmap.drawText(this._comList[this._commandNameIndex].name,0,0,100,32,"center")
this._commandName.x = Moghunter.scMenu_ComNameX - 100;
this._commandName.y = Moghunter.scMenu_ComNameY;
this._commandName.opacity = 0;
};
//==============================
// * refresh Actor Name
//==============================
Scene_Menu.prototype.refreshActorName = function() {
this._commandNameIndex = -2;
this._commandNameIndex2 = this._statusWindow._index;
this._commandName.bitmap.clear();
var actor = $gameParty.members()[this._statusWindow._index]
if (!actor) {return}
this._commandName.bitmap.drawText(actor.name(),0,0,100,32,"center")
this._commandName.x = Moghunter.scMenu_ComNameX - 100;
this._commandName.y = Moghunter.scMenu_ComNameY;
this._commandName.opacity = 0;
};
//==============================
// * create Selection
//==============================
Scene_Menu.prototype.createSelection = function() {
this._selection = [];
this._selectionPos = [];
this._selzoom = [];
this._selMax = Math.min(Math.max(Moghunter.scMenu_maxVisibleFaces,2),999);
this._selField = new Sprite();
this._field.addChild(this._selField);
this._selField.opacity = 0;
this._selField.x = 50;
for (var i = 0; i < $gameParty.members().length; i++) {
this._selection[i] = new Sprite(this._facesBitmaps[i]);
this._selectionPos[i] = [Moghunter.scMenu_FaceSelX + ((4 + this._facesBitmaps[i].width) * i),Moghunter.scMenu_FaceSelY];
this._selection[i].anchor.x = 0.5;
this._selection[i].anchor.y = 0.5;
this._selection[i].opacity = 160;
this._selection[i].vsb = false;
this._selection[i].x = this._selectionPos[i][0];
this._selection[i].y = this._selectionPos[i][1];
this._selField .addChild(this._selection[i]);
};
};
//==============================
// * update Selection
//==============================
Scene_Menu.prototype.updateSelection = function() {
if (this._statusWindow.active) {
this._selField.opacity += 15;
if (this._selField.x > 0) {this._selField.x -= 4
if (this._selField.x < 0) {this._selField.x = 0};
};
} else {
if (this._selField.x < 50) {this._selField.x += 4
if (this._selField.x > 50) {this._selField.x = 50};
};
this._selField.opacity -= 15;
}
for (var i = 0; i < this._selection.length; i++) {
if (this._statusWindow._index < this._selMax) {
var nindex = 0
if (i > this._selMax) {
this._selection[i].vsb = false;
} else {
this._selection[i].vsb = true;
};
} else {
var ni = this._statusWindow._index - this._selMax
var nindex = ((4 + this._facesBitmaps[i].width) * (ni));
if (i < ni || i > ni + this._selMax) {
this._selection[i].vsb = false;
} else {this._selection[i].vsb = true;
}
};
if (i === this._statusWindow._index) {
this._selection[i].opacity += 15;
if (this._selzoom[i] === 0) {
this._selection[i].scale.x += 0.015;
if (this._selection[i].scale.x > 1.30) {
this._selection[i].scale.x = 1.30;
this._selzoom[i] = 1;
};
} else {
this._selection[i].scale.x -= 0.015;
if (this._selection[i].scale.x < 1.00) {
this._selection[i].scale.x = 1.00;
this._selzoom[i] = 0;
};
};
} else {
if (!this._selection[i].vsb) {
this._selection[i].opacity -= 15;
} else if (this._selection[i].vsb) {
if (this._selection[i].opacity < 160) {this._selection[i].opacity += 15;
if (this._selection[i].opacity > 160) {this._selection[i].opacity = 160};
};
if (this._selection[i].opacity > 160) {this._selection[i].opacity -= 15;
if (this._selection[i].opacity < 160) {this._selection[i].opacity = 160};
};
} else {
if (this._selection[i].opacity > 160) {this._selection[i].opacity -= 10
if (this._selection[i].opacity < 160) {this._selection[i].opacity = 160};
};
};
this._selzoom[i] = 0;
this._selection[i].scale.x -= 0.01;
if (this._selection[i].scale.x < 1.00) {this._selection[i].scale.x = 1.00}
}
var nx = this._selectionPos[i][0] - nindex;
var ny = this._selectionPos[i][1];
this._selection[i].x = this.commandMoveTo(this._selection[i].x,nx);
this._selection[i].y = this.commandMoveTo(this._selection[i].y,ny);
this._selection[i].scale.y = this._selection[i].scale.x;
};
this.updateArrow();
};
//==============================
// * create Face Arrow
//==============================
Scene_Menu.prototype.createFaceArrow = function() {
this._arrow = [];
this._arrowPos = [];
this._arrowAni = [0,0];
for (var i = 0; i < 2; i++) {
this._arrow[i] = new Sprite(this._arrowImg);
if (i === 1) {this._arrow[i].scale.x = -1.00
this._arrowPos[i] = [this._selection[0].x + (4 + (this._arrowImg.width * 2)) + ((4 + this._facesBitmaps[0].width) * this._selMax),Moghunter.scMenu_FaceSelY]
} else {
this._arrowPos[i] = [this._selection[0].x - (4 + (this._arrowImg.width * 2)),Moghunter.scMenu_FaceSelY]
};
this._arrow[i].anchor.x = 0.5;
this._arrow[i].anchor.y = 0.5;
this._arrow[i].x = this._arrowPos[i][0];
this._arrow[i].y = this._arrowPos[i][1];
this._selField.addChild(this._arrow[i]);
};
};
//==============================
// * update Arrow
//==============================
Scene_Menu.prototype.updateArrow = function() {
this.updateArrowAni()
for (var i = 0; i < this._arrow.length; i++) {
if (i === 0) {
var nx = this._arrowPos[i][0] - this._arrowAni[1];
this._arrow[i].visible = this.isArrow1Visible();
} else {
var nx = this._arrowPos[i][0] + this._arrowAni[1];
this._arrow[i].visible = this.isArrow2Visible();
};
var ny = this._arrowPos[i][1];
this._arrow[i].x = this.commandMoveTo(this._arrow[i].x,nx);
this._arrow[i].y = this.commandMoveTo(this._arrow[i].y,ny);
};
};
//==============================
// * is Arrow1 Visible
//==============================
Scene_Menu.prototype.isArrow1Visible = function() {
if (this._statusWindow._index <= this._selMax) {return false};
return true;
};
//==============================
// * is Arrow2 Visible
//==============================
Scene_Menu.prototype.isArrow2Visible = function() {
if (this._statusWindow._index >= this._selection.length - 1) {return false};
if ($gameParty.members().length < this._selMax + 2 ) {return false};
return true;
};
//==============================
// * update Arrow Ani
//==============================
Scene_Menu.prototype.updateArrowAni = function() {
this._arrowAni[0]++;
if (this._arrowAni[0] < 20) {
this._arrowAni[1] ++;
} else if (this._arrowAni[0] < 40) {
this._arrowAni[1] --;
} else {
this._arrowAni[1] = 0;
this._arrowAni[0] = 0;
};
};
//==============================
// * check Touch On Sprites
//==============================
Scene_Menu.prototype.checkTouchOnSprites = function() {
if (this._statusWindow.active) {
this.checkTouchSelection();
} else {
this.checkTouchCommand();
};
};
//==============================
// * checkTouchSelection
//==============================
Scene_Menu.prototype.checkTouchSelection = function() {
for (var i = 0; i < this._selection.length; i++) {
if (this.isOnSprite(this._selection[i])) {this.setTouchSelection(i)};
};
for (var i = 0; i < this._arrow.length; i++) {
if (this.isOnSprite(this._arrow[i])) {this.setTouchArrow(i)};
};
};
//==============================
// * set Touch Arrow
//==============================
Scene_Menu.prototype.setTouchArrow = function(index) {
SoundManager.playCursor();
if (index === 0) {
this._statusWindow.cursorUp();
} else {
this._statusWindow.cursorDown();
};
};
//==============================
// * set Touch Selection
//==============================
Scene_Menu.prototype.setTouchSelection = function(index) {
this._statusWindow.select(index);
this._statusWindow.processOk();
};
//==============================
// * checkTouchCommand
//==============================
Scene_Menu.prototype.checkTouchCommand = function() {
for (var i = 0; i < this._commands.length; i++) {
if (this.isOnSprite(this._commands[i])) {this.setTouchCommand(i)};
};
};
//==============================
// * set Touch Command
//==============================
Scene_Menu.prototype.setTouchCommand = function(index) {
this._commandWindow.select(index);
this._commandWindow.processOk();
};
//==============================
// * on Sprite
//==============================
Scene_Menu.prototype.isOnSprite = function(sprite) {
var cw = sprite.bitmap.width / 2;
var ch = sprite.bitmap.height / 2;
if (sprite.visible === false) {return false};
if (sprite.opacity === 0) {return false};
if (TouchInput.x < sprite.x - cw) {return false};
if (TouchInput.x > sprite.x + cw) {return false};
if (TouchInput.y < sprite.y - ch) {return false};
if (TouchInput.y > sprite.y + ch) {return false};
return true;
};
//==============================
// * update Touch Screen
//==============================
Scene_Menu.prototype.updateTouchScreen = function() {
if (TouchInput.isTriggered()) {this.checkTouchOnSprites()};
};
//==============================
// * update Window Status
//==============================
Scene_Menu.prototype.updateWindowStatus = function() {
this._statusWindow.visible = false;
this._statusWindow.x = - this._statusWindow.width;
this._statusWindow.updateScrollRoll();
};
//==============================
// * update
//==============================
var _mog_mono_scmenu_update = Scene_Menu.prototype.update;
Scene_Menu.prototype.update = function() {
_mog_mono_scmenu_update.call(this)
if (this._commands) {this.updateCommands()};
if (this._commandName) {this.updateCommandName()};
if (!this._selection && this._facesBitmaps && this._facesBitmaps[0].isReady()) {this.createAfter()};
if (this._selection) {this.updateSelection()};
if (this._playTime) {this.updateTime()};
if (this._magicCircle) {this.updateMagicCircle()};
this.updateWindowStatus();
this.updateTouchScreen();
};
//=============================================================================
// * MBustMenu
//=============================================================================
function MBustMenu() {
this.initialize.apply(this, arguments);
};
MBustMenu.prototype = Object.create(Sprite.prototype);
MBustMenu.prototype.constructor = MBustMenu;
//==============================
// * Initialize
//==============================
MBustMenu.prototype.initialize = function(index,actor,maxmembers) {
Sprite.prototype.initialize.call(this);
this._index = index;
this._actor = actor;
this._maxMembers = maxmembers
this.createCharaters();
};
//==============================
// * Pos X
//==============================
MBustMenu.prototype.posX = function() {
var space = Math.floor((Graphics.boxWidth - 32) / this._maxMembers);
return 16 + (space / 2) + (space * this._index);
};
//==============================
// * create Characters
//==============================
MBustMenu.prototype.createCharaters = function() {
this._char = new Sprite(ImageManager.loadMenusFaces3("actor_" + this._actor._actorId));
this._char.anchor.x = 0.5;
this._char.anchor.y = 1.0;
this._char.x = this.posX() + Moghunter.scMenu_CharX;
this._char.y = Graphics.boxHeight + Moghunter.scMenu_CharY;
this._orgX = this._char.x;
this._char.x -= 50;
this._wait = 5 + 10 * this._index;
this._char.opacity = 0;
this.addChild(this._char);
};
//==============================
// * Update
//==============================
MBustMenu.prototype.update = function() {
Sprite.prototype.update.call(this);
if (this._wait > 0) {this._wait--; return};
this._char.opacity += 10;
if (this._char.x < this._orgX) {
this._char.x += 2;
if (this._char.x > this._orgX) {this._char.x = this._orgX};
};
};
//=============================================================================
// * MCharStatus
//=============================================================================
function MCharStatus() {
this.initialize.apply(this, arguments);
};
MCharStatus.prototype = Object.create(Sprite.prototype);
MCharStatus.prototype.constructor = MCharStatus;
//==============================
// * Initialize
//==============================
MCharStatus.prototype.initialize = function(index,actor,maxmembers) {
Sprite.prototype.initialize.call(this);
this._index = index;
this._actor = actor;
this._maxMembers = maxmembers;
this.x = 50;
this._wait = 5 + 5 * this._index;
this.opacity = 0;
this.loadBitmaps();
};
//==============================
// * loadBitmaps
//==============================
MCharStatus.prototype.loadBitmaps = function() {
this._layoutImg = ImageManager.loadMenusMain("LayoutStatus");
this._numberImg = ImageManager.loadMenusMain("HPNumber");
this._numberImg2 = ImageManager.loadMenusMain("MPNumber");
this._numberImg3 = ImageManager.loadMenusMain("LVNumber");
this._HPMeterImg = ImageManager.loadMenusMain("HPMeter");
this._MPMeterImg = ImageManager.loadMenusMain("MPMeter");
this._state_img = ImageManager.loadSystem("IconSet");
};
//==============================
// * Pos X
//==============================
MCharStatus.prototype.posX = function() {
var space = Math.floor((Graphics.boxWidth - 32) / this._maxMembers);
return 16 + (space / 2) + (space * this._index);
};
//==============================
// * create Sprites
//==============================
MCharStatus.prototype.createSprites = function() {
this.createLayoutStatus();
this.createHPMeter();
this.createMPMeter();
this.createHPNumber();
this.createHPNumber2();
this.createMPNumber();
this.createMPNumber2();
this.createLVNumber();
this.createStates();
this.createName();
};
//==============================
// * Create Name
//==============================
MCharStatus.prototype.createName = function() {
this._name = new Sprite(new Bitmap(120,32));
this._name.x = this._layout.x + Moghunter.scMenu_NameX;
this._name.y = this._layout.y + Moghunter.scMenu_NameY;
this._name.bitmap.fontSize = Moghunter.scMenu_NameFontSize;
this._name.bitmap.drawText(this._actor.name(),0,0,120,32,"center");
this.addChild(this._name);
};
//==============================
// * Create States
//==============================
MCharStatus.prototype.createStates = function() {
this._states_data = [0,0,0];
this._state_icon = new Sprite(this._state_img);
this._state_icon.x = this._layout.x + Moghunter.scMenu_statesX;
this._state_icon.y = this._layout.y + Moghunter.scMenu_statesY;
this._state_icon.visible = false;
this.addChild(this._state_icon);
this.refresh_states();
};
//==============================
// * Create States
//==============================
MCharStatus.prototype.refresh_states = function() {
this._states_data[0] = 0;
this._states_data[2] = 0;
this._state_icon.visible = false;
if (this._actor.allIcons().length == 0) {this._states_data[1] = 0;return};
if (this._actor.allIcons()[this._states_data[1]]) {
this._states_data[0] = this._actor.allIcons()[this._states_data[1]];
this._state_icon.visible = true;
var sx = this._states_data[0] % 16 * 32;
var sy = Math.floor(this._states_data[0] / 16) * 32;
this._state_icon.setFrame(sx, sy, 32, 32);
};
this._states_data[1] += 1;
if (this._states_data[1] >= this._actor.allIcons().length) {
this._states_data[1] = 0
};
};
//==============================
// * Update States
//==============================
MCharStatus.prototype.update_states = function() {
this._states_data[2] += 1;
if (this.need_refresh_states()) {this.refresh_states();};
};
//==============================
// * Need Refresh States
//==============================
MCharStatus.prototype.need_refresh_states = function() {
if (this._states_data[2] > 60) {return true};
return false;
};
//==============================
// * create HP Meter
//==============================
MCharStatus.prototype.createHPMeter = function() {
this._hpMeter = new Sprite(this._HPMeterImg);
this._hpMeterData = [this._HPMeterImg.width / 3,this._HPMeterImg.height,0,0];
this._hpMeterData[2] = this._hpMeterData[0] * 2;
this._hpMeterData[3] = Math.randomInt(this._hpMeterData[2])
this._hpMeter.x = this._layout.x + Moghunter.scMenu_HPMeterX;
this._hpMeter.y = this._layout.y + Moghunter.scMenu_HPMeterY;
this.updateMeter(this._hpMeter,this._hpMeterData,this._actor.hp,this._actor.mhp);
this.addChild(this._hpMeter);
};
//==============================
// * create MP Meter
//==============================
MCharStatus.prototype.createMPMeter = function() {
this._mpMeter = new Sprite(this._MPMeterImg);
this._mpMeterData = [this._MPMeterImg.width / 3,this._MPMeterImg.height,0,0];
this._mpMeterData[2] = this._mpMeterData[0] * 2;
this._mpMeterData[3] = Math.randomInt(this._mpMeterData[2])
this._mpMeter.x = this._layout.x + Moghunter.scMenu_MPMeterX;
this._mpMeter.y = this._layout.y + Moghunter.scMenu_MPMeterY;
this.updateMeter(this._mpMeter,this._mpMeterData,this._actor.mp,this._actor.mmp);
this.addChild(this._mpMeter);
};
//==============================
// * update Meter
//==============================
MCharStatus.prototype.updateMeter = function(sprite,data,v1,v2) {
var cw = data[0] * v1 / v2;
sprite.setFrame(data[3],0,cw,data[1]);
data[3] += 4;
if (data[3] > data[2]) {data[3] = 0};
};
//==============================
// * create HP Number
//==============================
MCharStatus.prototype.createHPNumber = function() {
this._hp_number = [];
this._NumberData = [this._numberImg.width / 10,this._numberImg.height]
var x = this._layout.x + Moghunter.scMenu_HPNumberX;
var y = this._layout.y + Moghunter.scMenu_HPNumberY;
for (var i = 0; i < 5; i++) {
this._hp_number[i] = new Sprite(this._numberImg);
this._hp_number[i].visible = false;
this._hp_number[i].opacity = 255;
this._hp_number[i].x = x ;
this._hp_number[i].y = y ;
this.addChild(this._hp_number[i]);
};
this.refresh_number(this._hp_number,this._actor.hp,this._NumberData,x)
};
//==============================
// * create HP Number2
//==============================
MCharStatus.prototype.createHPNumber2 = function() {
this._hp_number2 = [];
var x = this._layout.x + Moghunter.scMenu_HPNumber2X;
var y = this._layout.y + Moghunter.scMenu_HPNumber2Y;
for (var i = 0; i < 5; i++) {
this._hp_number2[i] = new Sprite(this._numberImg);
this._hp_number2[i].visible = false;
this._hp_number2[i].opacity = 255;
this._hp_number2[i].x = x ;
this._hp_number2[i].y = y ;
this.addChild(this._hp_number2[i]);
};
this.refresh_number(this._hp_number2,this._actor.mhp,this._NumberData,x)
};
//==============================
// * create MP Number
//==============================
MCharStatus.prototype.createMPNumber = function() {
this._mp_number = [];
this._NumberData2 = [this._numberImg2.width / 10,this._numberImg2.height]
var x = this._layout.x + Moghunter.scMenu_MPNumberX;
var y = this._layout.y + Moghunter.scMenu_MPNumberY;
for (var i = 0; i < 5; i++) {
this._mp_number[i] = new Sprite(this._numberImg2);
this._mp_number[i].visible = false;
this._mp_number[i].opacity = 255;
this._mp_number[i].x = x ;
this._mp_number[i].y = y ;
this.addChild(this._mp_number[i]);
};
this.refresh_number(this._mp_number,this._actor.mp,this._NumberData2,x)
};
//==============================
// * create MP Number2
//==============================
MCharStatus.prototype.createMPNumber2 = function() {
this._mp_number2 = [];
var x = this._layout.x + Moghunter.scMenu_MPNumber2X;
var y = this._layout.y + Moghunter.scMenu_MPNumber2Y;
for (var i = 0; i < 5; i++) {
this._mp_number2[i] = new Sprite(this._numberImg2);
this._mp_number2[i].visible = false;
this._mp_number2[i].opacity = 255;
this._mp_number2[i].x = x ;
this._mp_number2[i].y = y ;
this.addChild(this._mp_number2[i]);
};
this.refresh_number(this._mp_number2,this._actor.mmp,this._NumberData2,x)
};
//==============================
// * create LV Number
//==============================
MCharStatus.prototype.createLVNumber = function() {
this._lv_number = [];
this._NumberData3 = [this._numberImg3.width / 10,this._numberImg3.height]
var x = this._layout.x + Moghunter.scMenu_LVNumberX;
var y = this._layout.y + Moghunter.scMenu_LVNumberY;
for (var i = 0; i < 3; i++) {
this._lv_number[i] = new Sprite(this._numberImg3);
this._lv_number[i].visible = false;
this._lv_number[i].opacity = 255;
this._lv_number[i].x = x ;
this._lv_number[i].y = y ;
this.addChild(this._lv_number[i]);
};
this.refresh_number(this._lv_number,this._actor.level,this._NumberData3,x)
};
//==============================
// * Refresh Number
//==============================
MCharStatus.prototype.refresh_number = function(sprites,value,img_data,x) {
if (value > 99999) {value = 99999};
numbers = Math.abs(value).toString().split("");
for (var i = 0; i < sprites.length ; i++) {
sprites[i].visible = false;
if (i < numbers.length) {
var n = Number(numbers[i]);
sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
var nx = -(img_data[0] * i) + (img_data[0] * numbers.length);
sprites[i].x = x - nx;
sprites[i].visible = true;
} else {
var n = 0;
sprites[i].setFrame(n * img_data[0], 0, img_data[0], img_data[1]);
var nx = -(img_data[0] * i) + (img_data[0] * (sprites.length + numbers.length));
sprites[i].x = x - nx;
};
};
};
//==============================
// * create Layout Status
//==============================
MCharStatus.prototype.createLayoutStatus = function() {
this._layout = new Sprite(this._layoutImg);
this._layout.x = this.posX() - 70 + Moghunter.scMenu_layoutStatusX;
this._layout.y = Graphics.boxHeight - 280 + Moghunter.scMenu_layoutStatusY;
this.addChild(this._layout);
};
//==============================
// * Update
//==============================
MCharStatus.prototype.update = function() {
Sprite.prototype.update.call(this);
if (!this._actor) {return}
if (!this._hp_number) {
if (this._numberImg.isReady()) {this.createSprites();
} else {
return
};
};
if (this._hpMeter) {this.updateMeter(this._hpMeter,this._hpMeterData,this._actor.hp,this._actor.mhp)};
if (this._mpMeter) {this.updateMeter(this._mpMeter,this._mpMeterData,this._actor.mp,this._actor.mmp)};
if (this._state_icon) {this.update_states()};
if (this._wait > 0) {this._wait--;return}
this.opacity += 10;
if (this.x > 0) {this.x -= 2;
if (this.x < 0) {this.x = 0};
}
};
//=============================================================================
// ** Window Menu Command
//=============================================================================
//==============================
// * Update
//==============================
var _mog_menu_wMenuCom_update = Window_MenuCommand.prototype.update;
Window_MenuCommand.prototype.update = function() {
_mog_menu_wMenuCom_update.call(this);
this.visible = false;
this.x = -this.width;
this.updateScrollRoll();
};
//==============================
// * process Cursor Move
//==============================
Window_MenuCommand.prototype.processCursorMove = function() {
if (this.isCursorMovable()) {
var lastIndex = this.index();
if (Input.isRepeated('down') || Input.isRepeated('right')) {
this.cursorDown();
};
if (Input.isRepeated('up') || Input.isRepeated('left')) {
this.cursorUp();
};
if (this.index() !== lastIndex) {
SoundManager.playCursor();
};
};
};
//==============================
// * update SCroll Roll
//==============================
Window_MenuCommand.prototype.updateScrollRoll = function() {
if (this.isOpenAndActive() && this.maxItems() > 0) {
var srow = this.maxTopRow() === 0 ? 1 : this.maxCols();
var threshold = 20;
var idx = this._index;
if (TouchInput.wheelY >= threshold) {
this._index += srow;
if (this._index > (this.maxItems() - 1)) {this._index = this.maxItems() - 1};
this.select(this._index);
if (idx != this._index) {SoundManager.playCursor()};
};
if (TouchInput.wheelY <= -threshold) {
this._index -= srow;
if (this._index < 0) {this._index = 0};
this.select(this._index);
if (idx != this._index) {SoundManager.playCursor()};
};
};
};
//=============================================================================
// ** Window MenuStatus
//=============================================================================
//==============================
// * process Cursor Move
//==============================
Window_MenuStatus.prototype.processCursorMove = function() {
if (this.isCursorMovable()) {
var lastIndex = this.index();
if (Input.isRepeated('down') || Input.isRepeated('right')) {
this.cursorDown();
};
if (Input.isRepeated('up') || Input.isRepeated('left')) {
this.cursorUp();
};
if (this.index() !== lastIndex) {
SoundManager.playCursor();
};
};
};
//==============================
// * update SCroll Roll
//==============================
Window_MenuStatus.prototype.updateScrollRoll = function() {
if (this.isOpenAndActive() && this.maxItems() > 0) {
var srow = this.maxTopRow() === 0 ? 1 : this.maxCols();
var threshold = 20;
var idx = this._index;
if (TouchInput.wheelY >= threshold) {
this._index += srow;
if (this._index > (this.maxItems() - 1)) {this._index = this.maxItems() - 1};
this.select(this._index);
if (idx != this._index) {SoundManager.playCursor()};
};
if (TouchInput.wheelY <= -threshold) {
this._index -= srow;
if (this._index < 0) {this._index = 0};
this.select(this._index);
if (idx != this._index) {SoundManager.playCursor()};
};
};
};
//=============================================================================
// ** Scene Menu
//=============================================================================
//==============================
// * Command Formation
//==============================
Scene_Menu.prototype.commandFormation = function() {
SceneManager.push(Scene_Party);
};
//=============================================================================
// ** Scene Party
//=============================================================================
function Scene_Party() {
this.initialize.apply(this, arguments);
}
Scene_Party.prototype = Object.create(Scene_MenuBase.prototype);
Scene_Party.prototype.constructor = Scene_Party;
//==============================
// * Initialize
//==============================
Scene_Party.prototype.initialize = function() {
Scene_MenuBase.prototype.initialize.call(this);
};
//==============================
// * Create
//==============================
Scene_Party.prototype.create = function() {
Scene_MenuBase.prototype.create.call(this);
this.createLayout();
this.createStatusWindow();
};
//==============================
// * Create Layout
//==============================
Scene_Party.prototype.createLayout = function() {
};
//==============================
// * Create Status Window
//==============================
Scene_Party.prototype.createStatusWindow = function() {
this._statusWindow = new Window_MenuStatusM(0, 0);
this._statusWindow.setFormationMode(true);
this._statusWindow.selectLast();
this._statusWindow.activate();
this._statusWindow.setHandler('ok', this.onFormationOk.bind(this));
this._statusWindow.setHandler('cancel', this.onFormationCancel.bind(this));
this.addWindow(this._statusWindow);
};
//==============================
// * on Formation OK
//==============================
Scene_Party.prototype.onFormationOk = function() {
var index = this._statusWindow.index();
var actor = $gameParty.members()[index];
var pendingIndex = this._statusWindow.pendingIndex();
if (pendingIndex >= 0) {
$gameParty.swapOrder(index, pendingIndex);
this._statusWindow.setPendingIndex(-1);
this._statusWindow.redrawItem(index);
} else {
this._statusWindow.setPendingIndex(index);
}
this._statusWindow.activate();
};
//==============================
// * on Formation Cancel
//==============================
Scene_Party.prototype.onFormationCancel = function() {
if (this._statusWindow.pendingIndex() >= 0) {
this._statusWindow.setPendingIndex(-1);
this._statusWindow.activate();
} else {
SceneManager.pop()
}
};
//==============================
// * update
//==============================
Scene_Party.prototype.update = function() {
Scene_MenuBase.prototype.update.call(this);
this._statusWindow.opacity = 0;
};
//=============================================================================
// ** Window MenuStatusM
//=============================================================================
function Window_MenuStatusM() {
this.initialize.apply(this, arguments);
}
Window_MenuStatusM.prototype = Object.create(Window_Selectable.prototype);
Window_MenuStatusM.prototype.constructor = Window_MenuStatusM;
//==============================
// * Initialize
//==============================
Window_MenuStatusM.prototype.initialize = function(x, y) {
var width = this.windowWidth();
var height = this.windowHeight();
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this._formationMode = false;
this._pendingIndex = -1;
this.loadImages();
this.refresh();
this.select(0);
};
//==============================
// * windowWidth
//==============================
Window_MenuStatusM.prototype.windowWidth = function() {
return Graphics.boxWidth;
};
//==============================
// * Window Height
//==============================
Window_MenuStatusM.prototype.windowHeight = function() {
return Graphics.boxHeight;
};
//==============================
// * maxItems
//==============================
Window_MenuStatusM.prototype.maxItems = function() {
return $gameParty.size();
};
//==============================
// * item Height
//==============================
Window_MenuStatusM.prototype.itemHeight = function() {
var clientHeight = this.height - this.padding * 2;
return Math.floor(clientHeight / this.numVisibleRows());
};
//==============================
// * num Visible Rows
//==============================
Window_MenuStatusM.prototype.numVisibleRows = function() {
return 4;
};
//==============================
// * loadImages
//==============================
Window_MenuStatusM.prototype.loadImages = function() {
$gameParty.members().forEach(function(actor) {
ImageManager.loadFace(actor.faceName());
}, this);
};
//==============================
// * drawItem
//==============================
Window_MenuStatusM.prototype.drawItem = function(index) {
this.contents.fontSize = 20;
this.drawItemBackground(index)
this.drawItemImage(index);
this.drawItemStatus(index);
};
//==============================
// * drawItemBackground
//==============================
Window_MenuStatusM.prototype.drawItemBackground = function(index) {
if (index === this._pendingIndex) {
var rect = this.itemRect(index);
var color = this.pendingColor();
this.changePaintOpacity(false);
this.contents.fillRect(rect.x, rect.y, rect.width, rect.height, color);
this.changePaintOpacity(true);
};
};
//==============================
// * drawItemImage
//==============================
Window_MenuStatusM.prototype.drawItemImage = function(index) {
var actor = $gameParty.members()[index];
var rect = this.itemRect(index);
this.changePaintOpacity(actor.isBattleMember());
this.drawActorFace(actor, rect.x + 1, rect.y + 1, 144, rect.height - 2);
this.changePaintOpacity(true);
};
//==============================
// * drawItemStatus
//==============================
Window_MenuStatusM.prototype.drawItemStatus = function(index) {
var actor = $gameParty.members()[index];
var rect = this.itemRect(index);
var x = rect.x + 162;
var y = rect.y + rect.height / 2 - this.lineHeight() * 1.5;
var width = rect.width - x - this.textPadding();
this.changeTextColor(this.systemColor());
this.drawText("LV",x,y + 32 * 1,64,"left")
this.drawText("HP",x,y + 32 * 2,64,"left")
this.drawText("MP",x,y + 32 * 3,80)
this.drawText("Atk",x + 130,y + 32 * 1,64,"left")
this.drawText("Def",x + 130,y + 32 * 2,64,"left")
this.drawText("Mat",x + 130,y + 32 * 3,80)
this.drawText("Mdf",x + 260,y + 32 * 1,64,"left")
this.drawText("Agi",x + 260,y + 32 * 2,64,"left")
this.drawText("Luk",x + 260,y + 32 * 3,80)
this.changeTextColor(this.normalColor());
this.drawText(actor.name(),x,y)
this.drawText(actor.level,x,y + 32 * 1,80,"right")
this.drawText(actor.mhp,x,y + 32 * 2,80,"right")
this.drawText(actor.mmp,x,y + 32 * 3,80,"right")
this.drawText(actor.atk ,x + 130,y + 32 * 1,80,"right")
this.drawText(actor.def,x+ 130,y + 32 * 2,80,"right")
this.drawText(actor.mat,x + 130,y + 32 * 3,80,"right")
this.drawText(actor.mdf ,x + 260,y + 32 * 1,80,"right")
this.drawText(actor.agi,x+ 260,y + 32 * 2,80,"right")
this.drawText(actor.luk,x + 260,y + 32 * 3,80,"right")
};
//==============================
// * processOK
//==============================
Window_MenuStatusM.prototype.processOk = function() {
Window_Selectable.prototype.processOk.call(this);
$gameParty.setMenuActor($gameParty.members()[this.index()]);
};
//==============================
// * Is Current Item Enabled
//==============================
Window_MenuStatusM.prototype.isCurrentItemEnabled = function() {
if (this._formationMode) {
var actor = $gameParty.members()[this.index()];
return actor && actor.isFormationChangeOk();
} else {
return true;
}
};
//==============================
// * selectLast
//==============================
Window_MenuStatusM.prototype.selectLast = function() {
this.select(0);
};
//==============================
// * Formation Mode
//==============================
Window_MenuStatusM.prototype.formationMode = function() {
return this._formationMode;
};
//==============================
// * set Formation Mode
//==============================
Window_MenuStatusM.prototype.setFormationMode = function(formationMode) {
this._formationMode = formationMode;
};
//==============================
// * pending Index
//==============================
Window_MenuStatusM.prototype.pendingIndex = function() {
return this._pendingIndex;
};
//==============================
// * set Pending Index
//==============================
Window_MenuStatusM.prototype.setPendingIndex = function(index) {
var lastPendingIndex = this._pendingIndex;
this._pendingIndex = index;
this.redrawItem(this._pendingIndex);
this.redrawItem(lastPendingIndex);
};
if (Imported.MOG_TimeSystem) {
//==============================
// * create Time Status
//==============================
Scene_Menu.prototype.createTimeStatus = function() {
$gameSystem._refresh_window_time = false;
};
}