598 lines
18 KiB
JavaScript
598 lines
18 KiB
JavaScript
/*
|
|
* --------------------------------------------------
|
|
* MOG_BattleHudFixPatch.js
|
|
* Ver.1.3.0
|
|
* Copyright (c) 2020 Munokura
|
|
* This software is released under the MIT license.
|
|
* http://opensource.org/licenses/mit-license.php
|
|
* --------------------------------------------------
|
|
*/
|
|
|
|
/*:
|
|
* @plugindesc MOG Battle Hud (v5.04)で見つかったバグを修正するパッチプラグイン
|
|
* @author munokura
|
|
*
|
|
* @help
|
|
* MOG Battle Hud (v5.04) のバグを修正するパッチプラグインです。
|
|
* プラグイン管理でMOG_BattleHudの下側に配置してください。
|
|
*
|
|
* 修正箇所
|
|
*
|
|
* Face Frame Animation を有効にし、Face Zoom Animation を無効にした場合、
|
|
* Face Frame Animation が一部正常に動作しない問題を解消。
|
|
*
|
|
* States Mode が Line Mode の時、
|
|
* ステート表示の更新処理が適切に行われない問題の解消。
|
|
* ステート表示のターン数等を表示するプラグインで起こる問題の解消。
|
|
*
|
|
* HP,MPの最大値が戦闘中に上がった時、
|
|
* メーターの表示が適切に行われない問題の解消。
|
|
*
|
|
* フロントビュー戦闘で全体アニメーションの位置が正しく表示されない問題を解消。
|
|
*
|
|
* 戦闘を行った後のセーブデータに、
|
|
* 変更したプラグインパラメーターが反映されない問題を解消。
|
|
*
|
|
*/
|
|
|
|
(function () {
|
|
"use strict";
|
|
|
|
//==============================
|
|
// * Initialize
|
|
//==============================
|
|
var _alias_mog_bhud_sys_initialize = Game_System.prototype.initialize;
|
|
Game_System.prototype.initialize = function () {
|
|
_alias_mog_bhud_sys_initialize.call(this);
|
|
// this._bhud_position = [];
|
|
// for (var i = 0; i < 8; i++) {
|
|
// this._bhud_position[i] = this.set_hudcp(Moghunter.bhud_custom_pos[i]);
|
|
// };
|
|
// this._bhud_auto_com = false;
|
|
this._bhud_pos_mode = 0;
|
|
this._bhud_visible = true;
|
|
this._bhudFaceBattler =
|
|
String(Moghunter.bhud_face_visible) == "true" && !$dataSystem.optSideView
|
|
? true
|
|
: false;
|
|
if (String(Moghunter.bhud_pos_mode) == "true") {
|
|
this._bhud_pos_mode = 1;
|
|
}
|
|
// if (Number(Moghunter.bhud_auto_pos) == 0) { this._bhud_auto_com = true };
|
|
};
|
|
|
|
//==============================
|
|
// * initialize
|
|
//==============================
|
|
var _alias_mog_bhud_wActCom_initialize =
|
|
Window_ActorCommand.prototype.initialize;
|
|
Window_ActorCommand.prototype.initialize = function () {
|
|
_alias_mog_bhud_wActCom_initialize.call(this);
|
|
this._com_mode = Number($gameSystem._bhud_pos_mode);
|
|
this._force_hide_duration = 0;
|
|
this.org = [Moghunter.bhud_com_x, Moghunter.bhud_com_y];
|
|
this.org2 = [
|
|
this.org[0] + Moghunter.bhud_com_slideX,
|
|
this.org[1] + Moghunter.bhud_com_slideY,
|
|
];
|
|
this.slide =
|
|
Moghunter.bhud_com_slideX === 0 && Moghunter.bhud_com_slideY === 0
|
|
? false
|
|
: true;
|
|
this._actorVis != this._actor;
|
|
this.xp = -1;
|
|
this.yp = -1;
|
|
};
|
|
|
|
//==============================
|
|
// ** create Battle Hud
|
|
//==============================
|
|
Scene_Base.prototype.createBattleHud = function () {
|
|
if (String(Moghunter.bhud_screen_layout) === "true") {
|
|
this.createBattleHudScreenLayout();
|
|
}
|
|
$gameTemp.refresh_Bhud = false;
|
|
$gameTemp._battleEnd = false;
|
|
this._com_mode = Number($gameSystem._bhud_pos_mode);
|
|
this._battle_hud = [];
|
|
for (var i = 0; i < $gameParty.maxBattleMembers(); i++) {
|
|
this._battle_hud[i] = new Battle_Hud(i);
|
|
this._battle_hud[i].mz = 110;
|
|
this._hudField.addChild(this._battle_hud[i]);
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// ** update Battle Commands
|
|
//==============================
|
|
Window_ActorCommand.prototype.updateBattleCommands = function () {
|
|
if ($gameTemp._bhud_position_active) {
|
|
this.visible = this.active;
|
|
// if ($gameSystem._bhud_auto_com) {
|
|
if ($gameTemp._bhud_auto_com) {
|
|
this.x = $gameTemp._bhud_position_active[0] + Moghunter.bhud_com_x;
|
|
if (this._com_mode === 0) {
|
|
this.y =
|
|
$gameTemp._bhud_position_active[1] +
|
|
Moghunter.bhud_com_y -
|
|
this.height;
|
|
} else {
|
|
this.y = $gameTemp._bhud_position_active[1] + Moghunter.bhud_com_y;
|
|
}
|
|
} else {
|
|
this.x = Moghunter.bhud_com_x;
|
|
this.y = Moghunter.bhud_com_y;
|
|
}
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// ** update Position S
|
|
//==============================
|
|
Window_ActorCommand.prototype.updatePosS = function () {
|
|
if ($gameTemp._bhud_position_active) {
|
|
this.visible = this.active;
|
|
// if ($gameSystem._bhud_auto_com) {
|
|
if ($gameTemp._bhud_auto_com) {
|
|
if (
|
|
this.xp != $gameTemp._bhud_position_active[0] ||
|
|
this.yp != $gameTemp._bhud_position_active[1]
|
|
) {
|
|
this.xp = $gameTemp._bhud_position_active[0];
|
|
this.yp = $gameTemp._bhud_position_active[1];
|
|
this.org[0] =
|
|
$gameTemp._bhud_position_active[0] + Moghunter.bhud_com_x;
|
|
if (this._com_mode === 0) {
|
|
this.org[1] =
|
|
$gameTemp._bhud_position_active[1] +
|
|
Moghunter.bhud_com_y -
|
|
this.height;
|
|
} else {
|
|
this.org[1] =
|
|
$gameTemp._bhud_position_active[1] + Moghunter.bhud_com_y;
|
|
}
|
|
this.org2 = [
|
|
this.org[0] + Moghunter.bhud_com_slideX,
|
|
this.org[1] + Moghunter.bhud_com_slideY,
|
|
];
|
|
if (this._actorVis != this._actor) {
|
|
this.x = this.org2[0];
|
|
this.y = this.org2[1];
|
|
this._actorVis = this._actor;
|
|
}
|
|
}
|
|
this.slideWindow(this, false);
|
|
} else {
|
|
this.slideWindow(this, false);
|
|
}
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// ** update Position N
|
|
//==============================
|
|
Window_ActorCommand.prototype.updatePosN = function () {
|
|
if ($gameTemp._bhud_position_active) {
|
|
this.visible = this.active;
|
|
// if ($gameSystem._bhud_auto_com) {
|
|
if ($gameTemp._bhud_auto_com) {
|
|
this.x = $gameTemp._bhud_position_active[0] + Moghunter.bhud_com_x;
|
|
if (this._com_mode === 0) {
|
|
this.y =
|
|
$gameTemp._bhud_position_active[1] +
|
|
Moghunter.bhud_com_y -
|
|
this.height;
|
|
} else {
|
|
this.y = $gameTemp._bhud_position_active[1] + Moghunter.bhud_com_y;
|
|
}
|
|
} else {
|
|
this.x = Moghunter.bhud_com_x;
|
|
this.y = Moghunter.bhud_com_y;
|
|
}
|
|
}
|
|
};
|
|
|
|
// //==============================
|
|
// // * Initialize
|
|
// //==============================
|
|
var _alias_mog_bhud_temp_initialize = Game_Temp.prototype.initialize;
|
|
Game_Temp.prototype.initialize = function () {
|
|
_alias_mog_bhud_temp_initialize.call(this);
|
|
this._bhud_position = [];
|
|
this._bhud_position_active = null;
|
|
this._bhudFaceAnime = false;
|
|
this._battleEnd = false;
|
|
this._bhud_dp = false;
|
|
this._refreshBhud = false;
|
|
this._forceCreateBattleHud = false;
|
|
this._forceRemoveBattleHud = false;
|
|
|
|
for (var i = 0; i < 8; i++) {
|
|
this._bhud_position[i] = this.set_hudcp(Moghunter.bhud_custom_pos[i]);
|
|
}
|
|
this._bhud_auto_com = false;
|
|
if (Number(Moghunter.bhud_auto_pos) == 0) {
|
|
this._bhud_auto_com = true;
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// ** update Battle Commands
|
|
//==============================
|
|
Window_ActorCommand.prototype.updateBattleCommands = function () {
|
|
if ($gameTemp._bhud_position_active) {
|
|
this.visible = this.active;
|
|
// if ($gameSystem._bhud_auto_com) {
|
|
if ($gameTemp._bhud_auto_com) {
|
|
this.x = $gameTemp._bhud_position_active[0] + Moghunter.bhud_com_x;
|
|
if (this._com_mode === 0) {
|
|
this.y =
|
|
$gameTemp._bhud_position_active[1] +
|
|
Moghunter.bhud_com_y -
|
|
this.height;
|
|
} else {
|
|
this.y = $gameTemp._bhud_position_active[1] + Moghunter.bhud_com_y;
|
|
}
|
|
} else {
|
|
this.x = Moghunter.bhud_com_x;
|
|
this.y = Moghunter.bhud_com_y;
|
|
}
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * set Hudcp
|
|
//==============================
|
|
Game_Temp.prototype.set_hudcp = function (value) {
|
|
if (!value) {
|
|
return null;
|
|
}
|
|
var s = value.split(",");
|
|
if (!s[0] || !s[1]) {
|
|
return null;
|
|
}
|
|
return [Number(s[0]), Number(s[1])];
|
|
};
|
|
|
|
//==============================
|
|
// * Set Hud Position
|
|
//==============================
|
|
Battle_Hud.prototype.set_hud_position = function () {
|
|
this._hud_size = [this._layout.bitmap.width, this._layout.bitmap.height];
|
|
this._members_max = $gameParty.battleMembers().length;
|
|
var ps = [
|
|
Number(Moghunter.bhud_space_x) * this._hud_id,
|
|
Number(Moghunter.bhud_space_y) * this._hud_id,
|
|
];
|
|
|
|
// if ($gameSystem._bhud_position[this._hud_id]) {
|
|
// this._pos_x = $gameSystem._bhud_position[this._hud_id][0];
|
|
// this._pos_y = $gameSystem._bhud_position[this._hud_id][1];
|
|
if ($gameTemp._bhud_position[this._hud_id]) {
|
|
this._pos_x = $gameTemp._bhud_position[this._hud_id][0];
|
|
this._pos_y = $gameTemp._bhud_position[this._hud_id][1];
|
|
} else {
|
|
// if (Number($gameSystem._bhud_pos_mode) === 0) {
|
|
if (Number($gameTemp._bhud_pos_mode) === 0) {
|
|
var spc = (Graphics.boxWidth - 14) / this._members_max;
|
|
var px = spc / 2 + spc * this._hud_id;
|
|
this._pos_x = Moghunter.bhud_pos_x + px + ps[0];
|
|
this._pos_y = Moghunter.bhud_pos_y + ps[1];
|
|
} else {
|
|
var py = (this._hud_size[1] + 5) * this._hud_id;
|
|
this._pos_x = Moghunter.bhud_pos_x + ps[0];
|
|
this._pos_y = Moghunter.bhud_pos_y + py + ps[1];
|
|
}
|
|
}
|
|
$gameTemp._bhud_position[this._hud_id] = [this._pos_x, this._pos_y];
|
|
};
|
|
|
|
//==============================
|
|
// * Prepare
|
|
//==============================
|
|
var _alias_mog_bmhud_action_prepare = Game_Action.prototype.prepare;
|
|
Game_Action.prototype.prepare = function () {
|
|
_alias_mog_bmhud_action_prepare.call(this);
|
|
if (
|
|
this.subject().isActor() &&
|
|
(String(Moghunter.bhud_face_animated) === "true" ||
|
|
String(Moghunter.bhud_face_zoom) === "true")
|
|
) {
|
|
this.subject()._bhud_face_data = [0, 70, 2, 70];
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Update Face
|
|
//==============================
|
|
Battle_Hud.prototype.update_face = function () {
|
|
if (!this._face) {
|
|
return;
|
|
}
|
|
if (!this._face.bitmap.isReady()) {
|
|
return;
|
|
}
|
|
if (
|
|
this._face_data[4] &&
|
|
this._face_data[5] != this._battler._bhud_face_data[2]
|
|
) {
|
|
this.refresh_face();
|
|
}
|
|
if (String(Moghunter.bhud_face_animated) === "true") {
|
|
this.update_face_animation();
|
|
}
|
|
if (String(Moghunter.bhud_face_shake) === "true") {
|
|
this.update_face_shake();
|
|
}
|
|
if (String(Moghunter.bhud_face_zoom) === "true") {
|
|
this.update_face_zoom();
|
|
}
|
|
if (this._face.breathEffect) {
|
|
this.updateFaceEffects();
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Create States 2
|
|
//==============================
|
|
const _Battle_Hud_create_states2 = Battle_Hud.prototype.create_states2;
|
|
Battle_Hud.prototype.create_states2 = function () {
|
|
this._states_data[2] = 0;
|
|
_Battle_Hud_create_states2.call(this);
|
|
};
|
|
|
|
//==============================
|
|
// * Update States 2
|
|
//==============================
|
|
const _Battle_Hud_update_states2 = Battle_Hud.prototype.update_states2;
|
|
Battle_Hud.prototype.update_states2 = function () {
|
|
this._states_data[2] += 1;
|
|
_Battle_Hud_update_states2.call(this);
|
|
};
|
|
|
|
//==============================
|
|
// * Need Refresh States 2
|
|
//==============================
|
|
const _Battle_Hud_need_refresh_states2 =
|
|
Battle_Hud.prototype.need_refresh_states2;
|
|
Battle_Hud.prototype.need_refresh_states2 = function () {
|
|
if (this._states_data[2] > 60) {
|
|
return true;
|
|
}
|
|
_Battle_Hud_need_refresh_states2.call(this);
|
|
};
|
|
|
|
//==============================
|
|
// * Update HP
|
|
//==============================
|
|
Battle_Hud.prototype.update_hp = function () {
|
|
if (this._hp_meter_blue) {
|
|
if (this._hp_flow[0]) {
|
|
this.refresh_meter_flow(
|
|
this._hp_meter_blue,
|
|
this._battler.hp,
|
|
this._battler.mhp,
|
|
0,
|
|
this._hp_flow[1]
|
|
);
|
|
var dif_meter = this.update_dif(
|
|
this._hp_old_ani[0],
|
|
this._battler.hp,
|
|
160
|
|
);
|
|
if (this._hp_old_ani[0] != dif_meter) {
|
|
this._hp_old_ani[0] = dif_meter;
|
|
}
|
|
if (this._battler.mhp < this._hp_old_ani[0]) {
|
|
this.refresh_meter_flow(
|
|
this._hp_meter_red,
|
|
this._battler.mhp,
|
|
this._battler.mhp,
|
|
1,
|
|
this._hp_flow[1]
|
|
);
|
|
} else {
|
|
this.refresh_meter_flow(
|
|
this._hp_meter_red,
|
|
this._hp_old_ani[0],
|
|
this._battler.mhp,
|
|
1,
|
|
this._hp_flow[1]
|
|
);
|
|
}
|
|
this._hp_flow[1] += 1.5;
|
|
if (this._hp_flow[1] > this._hp_flow[3]) {
|
|
this._hp_flow[1] = 0;
|
|
}
|
|
} else {
|
|
if (this.need_refresh_parameter(0)) {
|
|
this.refresh_meter(
|
|
this._hp_meter_blue,
|
|
this._battler.hp,
|
|
this._battler.mhp,
|
|
0
|
|
);
|
|
this._hp_old = [this._battler.hp, this._battler.mhp];
|
|
}
|
|
var dif_meter = this.update_dif(
|
|
this._hp_old_ani[0],
|
|
this._battler.hp,
|
|
160
|
|
);
|
|
if (this._hp_old_ani[0] != dif_meter) {
|
|
this._hp_old_ani[0] = dif_meter;
|
|
}
|
|
if (this._battler.mhp < this._hp_old_ani[0]) {
|
|
this.refresh_meter(
|
|
this._hp_meter_red,
|
|
this._battler.mhp,
|
|
this._battler.mhp,
|
|
1
|
|
);
|
|
} else {
|
|
this.refresh_meter(
|
|
this._hp_meter_red,
|
|
this._hp_old_ani[0],
|
|
this._battler.mhp,
|
|
1
|
|
);
|
|
}
|
|
}
|
|
}
|
|
if (this._hp_number) {
|
|
var dif_number = this.update_dif(
|
|
this._hp_number_old,
|
|
this._battler.hp,
|
|
30
|
|
);
|
|
if (this._hp_number_old != dif_number) {
|
|
this._hp_number_old = dif_number;
|
|
this.refresh_number(
|
|
this._hp_number,
|
|
this._hp_number_old,
|
|
this._hp_img_data,
|
|
this._hp_img_data[4],
|
|
this._hp_img_data[5],
|
|
0
|
|
);
|
|
}
|
|
}
|
|
if (this._maxhp_number) {
|
|
if (this._maxhp_number_old != this._battler.mhp) {
|
|
this._maxhp_number_old = this._battler.mhp;
|
|
this.refresh_number(
|
|
this._maxhp_number,
|
|
this._maxhp_number_old,
|
|
this._maxhp_img_data,
|
|
this._maxhp_img_data[4],
|
|
this._maxhp_img_data[5],
|
|
0
|
|
);
|
|
}
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Update MP
|
|
//==============================
|
|
Battle_Hud.prototype.update_mp = function () {
|
|
if (this._mp_meter_blue) {
|
|
if (this._mp_flow[0]) {
|
|
this.refresh_meter_flow(
|
|
this._mp_meter_blue,
|
|
this._battler.mp,
|
|
this._battler.mmp,
|
|
0,
|
|
this._mp_flow[1]
|
|
);
|
|
var dif_meter = this.update_dif(
|
|
this._mp_old_ani[0],
|
|
this._battler.mp,
|
|
160
|
|
);
|
|
if (this._mp_old_ani[0] != dif_meter) {
|
|
this._mp_old_ani[0] = dif_meter;
|
|
}
|
|
if (this._battler.mmp < this._mp_old_ani[0]) {
|
|
this.refresh_meter_flow(
|
|
this._mp_meter_red,
|
|
this._battler.mmp,
|
|
this._battler.mmp,
|
|
1,
|
|
this._mp_flow[1]
|
|
);
|
|
} else {
|
|
this.refresh_meter_flow(
|
|
this._mp_meter_red,
|
|
this._mp_old_ani[0],
|
|
this._battler.mmp,
|
|
1,
|
|
this._mp_flow[1]
|
|
);
|
|
}
|
|
this._mp_flow[1] += 1.5;
|
|
if (this._mp_flow[1] > this._mp_flow[3]) {
|
|
this._mp_flow[1] = 0;
|
|
}
|
|
} else {
|
|
if (this.need_refresh_parameter(1)) {
|
|
this.refresh_meter(
|
|
this._mp_meter_blue,
|
|
this._battler.mp,
|
|
this._battler.mmp,
|
|
0
|
|
);
|
|
this._mp_old = [this._battler.mp, this._battler.mmp];
|
|
}
|
|
var dif_meter = this.update_dif(
|
|
this._mp_old_ani[0],
|
|
this._battler.mp,
|
|
160
|
|
);
|
|
if (this._mp_old_ani[0] != dif_meter) {
|
|
this._mp_old_ani[0] = dif_meter;
|
|
}
|
|
if (this._battler.mmp < this._mp_old_ani[0]) {
|
|
this.refresh_meter(
|
|
this._mp_meter_red,
|
|
this._battler.mmp,
|
|
this._battler.mmp,
|
|
1
|
|
);
|
|
} else {
|
|
this.refresh_meter(
|
|
this._mp_meter_red,
|
|
this._mp_old_ani[0],
|
|
this._battler.mmp,
|
|
1
|
|
);
|
|
}
|
|
}
|
|
if (this._mp_number) {
|
|
var dif_number = this.update_dif(
|
|
this._mp_number_old,
|
|
this._battler.mp,
|
|
30
|
|
);
|
|
if (this._mp_number_old != dif_number) {
|
|
this._mp_number_old = dif_number;
|
|
this.refresh_number(
|
|
this._mp_number,
|
|
this._mp_number_old,
|
|
this._mp_img_data,
|
|
this._mp_img_data[4],
|
|
this._mp_img_data[5],
|
|
1
|
|
);
|
|
}
|
|
}
|
|
if (this._maxmp_number) {
|
|
if (this._maxmp_number_old != this._battler.mmp) {
|
|
this._maxmp_number_old = this._battler.mmp;
|
|
this.refresh_number(
|
|
this._maxmp_number,
|
|
this._maxmp_number_old,
|
|
this._maxmp_img_data,
|
|
this._maxmp_img_data[4],
|
|
this._maxmp_img_data[5],
|
|
1
|
|
);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// ** create Hud Field ** fixed by nekoma otobuki
|
|
//==============================
|
|
Scene_Base.prototype.createHudField = function () {
|
|
var width = Graphics.boxWidth;
|
|
var height = Graphics.boxHeight;
|
|
var x = (Graphics.width - width) / 2;
|
|
var y = (Graphics.height - height) / 2;
|
|
this._hudField = new Sprite();
|
|
this._hudField.setFrame(x, y, width, height);
|
|
this._hudField.z = 10;
|
|
this.addChild(this._hudField);
|
|
};
|
|
})();
|