pastime/js/plugins/MNKR_BB_FesHensuuWindowMZ.js
2026-03-15 16:45:22 -05:00

372 lines
No EOL
13 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* --------------------------------------------------
* MNKR_BB_FesHensuuWindowMZ.js
* Ver.0.0.2
* Copyright (c) 2020 Munokura
* This software is released under the MIT license.
* http://opensource.org/licenses/mit-license.php
* --------------------------------------------------
*/
//=============================================================================
// BB_FesHensuuWindow.js
// Copyright (c) 2017 BB ENTERTAINMENT
// This software is released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @target MZ
* @url https://raw.githubusercontent.com/munokura/MNKR-MZ-plugins/master/MNKR_BB_FesHensuuWindowMZ.js
* @plugindesc 変数の名前と値を表示するウィンドウを追加するプラグイン
* @author ビービー(改変 munokura
*
* @help
* ◆概要
* RPGツクールフェスの機能の一つである
* 変数の名前と値を表示するウィンドウを追加するプラグインです。
* このプラグインでは最大4つまで変数の名前と値を表示することができます。
*
* ◆使用方法
* プラグインパラメータ【A_VariableId】【D_VariableId】で指定した変数に
* 格納されている数値で表示する変数を切り替えることができます。
* 使用例:
* 【A_VariableId】で1を指定した場合に変数1の値が5の時
* ウィンドウの一番上に変数5の名前と値が表示されます。
*
* ◆プラグインパラメータの説明
* 【ShowWindowSwitch】
* ウィンドウを表示するスイッチのIDを指定。
* ここで指定したIDのスイッチがONのときウィンドウが表示されます。
*
* 【A_VariableId】
* 表示枠A(一番上)に表示する変数を指定する変数のID
* ここで指定したIDの変数に格納されている数値が実際に表示される変数のIDです。
*
* 【B_VariableId】
* 表示枠B(上から二番目)に表示する変数を指定する変数のID
* ここで指定したIDの変数に格納されている数値が実際に表示される変数のIDです。
*
* 【C_VariableId】
* 表示枠C(上から三番目)に表示する変数を指定する変数のID
* ここで指定したIDの変数に格納されている数値が実際に表示される変数のIDです。
*
* 【D_VariableId】
* 表示枠D(一番下)に表示する変数を指定する変数のID
* ここで指定したIDの変数に格納されている数値が実際に表示される変数のIDです。
*
* 【FontSize】
* ウィンドウに表示される変数の名前と値のフォントサイズを指定。
*
* 【NameFontColor】
* ウィンドウに表示される変数の名前のフォントカラーを指定。
*
* 【UnderLineOpacity】
* 変数の下に表示する線の透明度を指定。(0で非表示)
*
* 【BetweenNameAndValue】
* 変数の名前と値の間に表示する記号を指定。(空白で非表示)
*
* 【FesWindowX】
* 変数表示ウィンドウの表示位置のX座標を指定。
*
* 【FesWindowY】
* 変数表示ウィンドウの表示位置のX座標を指定。
*
* 【ShowMaxItem】
* 変数表示ウィンドウの行数(高さ)を指定。
* ※ゲーム中に変更することはできません。
*
*
* このプラグインについて
* ビービー氏がRPGツクールMV用に作成されたものを
* ムクラがRPGツクールMZ用に移植したものです。
* 原作者への連絡はお控えください。
*
* 利用規約:
* MITライセンスです。
* https://licenses.opensource.jp/MIT/MIT.html
* 作者に無断で改変、再配布が可能で、
* 利用形態商用、18禁利用等についても制限はありません。
*
*
* @param ShowWindowSwitch
* @text ウィンドウ表示スイッチID
* @type switch
* @desc ウィンドウを表示するスイッチのIDを指定。
* 初期値: 1
* @default 1
*
* @param A_VariableId
* @text 枠A変数ID
* @type variable
* @desc 表示枠Aに表示する変数を指定する変数のIDを指定。
* 初期値: 0
* @default 0
*
* @param B_VariableId
* @text 枠B変数ID
* @type variable
* @desc 表示枠Bに表示する変数を指定する変数のIDを指定。
* 初期値: 0
* @default 0
*
* @param C_VariableId
* @text 枠C変数ID
* @type variable
* @desc 表示枠Cに表示する変数を指定する変数のIDを指定。
* 初期値: 0
* @default 0
*
* @param D_VariableId
* @text 枠D変数ID
* @type variable
* @desc 表示枠Dに表示する変数を指定する変数のIDを指定。
* 初期値: 0
* @default 0
*
* @param FontSize
* @text フォントサイズ
* @desc フォントサイズを指定。
* 初期値: 26
* @default 26
*
* @param NameFontColor
* @text 変数名の文字色
* @type number
* @min 0
* @max 31
* @desc 変数の名前のフォントカラーを指定。
* 初期値: 0
* @default 0
*
* @param UnderLineOpacity
* @text 変数下線の透明度
* @type number
* @min 0
* @max 255
* @desc 変数の下に表示する線の透明度を指定。(0で非表示)
* 初期値: 96
* @default 96
*
* @param BetweenNameAndValue
* @text 変数名と値区切り記号
* @type string
* @desc 変数の名前と値の間に表示する記号を指定。(空白で非表示)
* 初期値: :
* @default :
*
*
* @param FesWindowX
* @text ウィンドウX座標
* @desc 変数表示ウィンドウの表示位置のX座標
* 初期値: 0
* @default 0
*
* @param FesWindowY
* @text ウィンドウY座標
* @desc 変数表示ウィンドウの表示位置のY座標。タッチUIと重ならないように配置してください。初期値: 64
* @default 64
*
* @param ShowMaxItem
* @text ウィンドウ行数
* @type number
* @min 1
* @max 4
* @desc 変数表示ウィンドウの行数を指定。
* 初期値: 4
* @default 4
*/
(function () {
'use strict';
//-----------------------------------------------------------------------------
// プラグインパラメータ管理
//-----------------------------------------------------------------------------
const pluginName = document.currentScript.src.split("/").pop().replace(/\.js$/, "");
const parameters = PluginManager.parameters(pluginName);
const BBFSWSID = Number(parameters['ShowWindowSwitch']);
const BBFAV = Number(parameters['A_VariableId']);
const BBFBV = Number(parameters['B_VariableId']);
const BBFCV = Number(parameters['C_VariableId']);
const BBFDV = Number(parameters['D_VariableId']);
const BBFFS = Number(parameters['FontSize']);
const BBFFC = Number(parameters['NameFontColor']);
const BBFULO = Number(parameters['UnderLineOpacity']);
const BBFBNAV = String(parameters['BetweenNameAndValue']);
const BBFWX = Number(parameters['FesWindowX']);
const BBFWY = Number(parameters['FesWindowY']);
const BBFSMI = Number(parameters['ShowMaxItem']);
const _Scene_map_createAllWindows = Scene_Map.prototype.createAllWindows;
Scene_Map.prototype.createAllWindows = function () {
this._FesWindow = new Window_Fes();
this.addWindow(this._FesWindow);
_Scene_map_createAllWindows.call(this);
};
const _Scene_Map_update = Scene_Map.prototype.update;
Scene_Map.prototype.update = function () {
_Scene_Map_update.call(this);
this._FesWindow.setText();
// 指定スイッチで起動
if ($gameSwitches.value(BBFSWSID)) {
this._FesWindow.show();
} else {
this._FesWindow.hide();
}
};
// Window_Fes
function Window_Fes() {
this.initialize.apply(this, arguments);
};
Window_Fes.prototype = Object.create(Window_Base.prototype);
Window_Fes.prototype.constructor = Window_Fes;
Window_Fes.prototype.initialize = function () {
let x = BBFWX;
let y = BBFWY;
let width = Graphics.width / 2;
let height = this.windowHeight();
Window_Base.prototype.initialize.call(this, x, y, width, height);
};
Window_Fes.prototype.windowHeight = function () {
return this.fittingHeight(BBFSMI);
};
Window_Fes.prototype.setText = function (str) {
this._text = str;
this.refresh();
};
// ウィンドウに載せる内容
Window_Fes.prototype.refresh = function () {
this.contents.clear();
this.contents.fontSize = BBFFS;//追記
let width1 = 26 * 9;
let width2 = 26 * 4;
let x = Graphics.width / 2 - width2 - 36;
let BY = 0;
let CY = 0;
let DY = 0;
if (BBFAV) {
this.changeTextColor(this.textColor(BBFFC));
this.drawText($dataSystem.variables[BBFAV], 0, 0, width1);
this.resetTextColor();
this.drawText(BBFBNAV, width1 + 11, 0, 13);
this.drawText($gameVariables.value(BBFAV), x, 0, width2, 'right');
this.contents.paintOpacity = BBFULO;
this.contents.fillRect(0, this.lineHeight() - 2, Graphics.width / 2, 2, this.normalColor());
this.contents.paintOpacity = 255;
BY += this.lineHeight();
CY += this.lineHeight();
DY += this.lineHeight();
}
if (BBFBV) {
this.changeTextColor(this.textColor(BBFFC));
this.drawText($dataSystem.variables[BBFBV], 0, BY, width1);
this.resetTextColor();
this.drawText(BBFBNAV, width1 + 11, BY, 13);
this.drawText($gameVariables.value(BBFBV), x, BY, width2, 'right');
this.contents.paintOpacity = BBFULO;
this.contents.fillRect(0, this.lineHeight() + BY - 2, Graphics.width / 2, 2, this.normalColor());
this.contents.paintOpacity = 255;
CY += this.lineHeight();
DY += this.lineHeight();
}
if (BBFCV) {
this.changeTextColor(this.textColor(BBFFC));
this.drawText($dataSystem.variables[BBFCV], 0, CY, width1);
this.resetTextColor();
this.drawText(BBFBNAV, width1 + 11, CY, 13);
this.drawText($gameVariables.value(BBFCV), x, CY, width2, 'right');
this.contents.paintOpacity = BBFULO;
this.contents.fillRect(0, this.lineHeight() + CY - 2, Graphics.width / 2, 2, this.normalColor());
this.contents.paintOpacity = 255;
DY += this.lineHeight();
}
if (BBFDV) {
this.changeTextColor(this.textColor(BBFFC));
this.drawText($dataSystem.variables[BBFDV], 0, DY, width1);
this.resetTextColor();
this.drawText(BBFBNAV, width1 + 11, DY, 13);
this.drawText($gameVariables.value(BBFDV), x, DY, width2, 'right');
this.contents.paintOpacity = BBFULO;
this.contents.fillRect(0, this.lineHeight() + DY - 2, Graphics.width / 2, 2, this.normalColor());
this.contents.paintOpacity = 255;
}
};
// ウィンドウの余白
Window_Fes.prototype.standardPadding = function () {
return 18;
};
//-----------------------------------------------------------------------------
// MV Joint
//-----------------------------------------------------------------------------
function isRect(value) {
return (typeof value) === "object";
}
function rectlize(x, y, w, h) {
if (isRect(x)) {
return x;
}
const newRect = new Rectangle(x, y, w, h);
return newRect;
}
const Window_Base_initialize = Window_Base.prototype.initialize;
Window_Base.prototype.initialize = function (x, y, w, h) {
const rect = rectlize(x, y, w, h);
Window_Base_initialize.call(this, rect);
};
const colorList = {
crisisColor: ColorManager.crisisColor,
ctGaugeColor1: ColorManager.ctGaugeColor1,
ctGaugeColor2: ColorManager.ctGaugeColor2,
damageColor: ColorManager.damageColor,
deathColor: ColorManager.deathColor,
deathColor: ColorManager.dimColor1,
dimColor2: ColorManager.dimColor2,
gaugeBackColor: ColorManager.gaugeBackColor,
hpColor: ColorManager.hpColor,
hpGaugeColor1: ColorManager.hpGaugeColor1,
hpGaugeColor2: ColorManager.hpGaugeColor2,
itemBackColor1: ColorManager.itemBackColor1,
itemBackColor2: ColorManager.itemBackColor2,
mpColor: ColorManager.mpColor,
mpCostColor: ColorManager.mpCostColor,
mpGaugeColor1: ColorManager.mpGaugeColor1,
mpGaugeColor2: ColorManager.mpGaugeColor2,
normalColor: ColorManager.normalColor,
outlineColor: ColorManager.outlineColor,
paramchangeTextColor: ColorManager.paramchangeTextColor,
pendingColor: ColorManager.pendingColor,
powerDownColor: ColorManager.powerDownColor,
powerUpColor: ColorManager.powerUpColor,
systemColor: ColorManager.systemColor,
textColor: ColorManager.textColor,
tpColor: ColorManager.tpColor,
tpCostColor: ColorManager.tpCostColor,
tpGaugeColor1: ColorManager.tpGaugeColor1,
tpGaugeColor2: ColorManager.tpGaugeColor2
};
for (const key in colorList) {
if (colorList.hasOwnProperty(key)) {
const element = colorList[key];
Window_Base.prototype[key] = function () {
return element.apply(this, arguments);
};
}
}
})();