agent-sirius/www/js/plugins/K_VariableWindow.js
2024-01-28 14:41:43 -06:00

130 lines
4 KiB
JavaScript

//=============================================================================
// K_VariableWindow.js
//=============================================================================
/*:
* @plugindesc ツクールフェスのイベントコマンド「変数を画面に表示」を実装します。
* @author Kota (https://nine-yusha.com/)
*
* @help
プラグインコマンド
VariableWindow show 1 # 変数1の値を画面に表示します。
VariableWindow close # 表示した変数を画面から消去します。
利用規約:
・著作権表記は必要ございません。
・利用するにあたり報告の必要は特にございません。
・商用・非商用問いません。
・R18作品にも使用制限はありません。
・ゲームに合わせて自由に改変していただいて問題ございません。
・プラグイン素材としての再配布(改変後含む)は禁止させていただきます。
ライセンスについての詳細は下記をご確認ください。
https://nine-yusha.com/plugin/
作者: ルルの教会
作成日: 2020/10/13
*/
(function () {
var parameters = PluginManager.parameters("K_VariableWindow");
var Scene_map_start = Scene_Map.prototype.start;
Scene_Map.prototype.start = function () {
Scene_map_start.call(this);
this._variableInfoWindow = new Window_VariableInfo();
this.addWindow(this._variableInfoWindow);
};
var _Scene_Map_update = Scene_Map.prototype.update;
Scene_Map.prototype.update = function () {
_Scene_Map_update.call(this);
this._variableInfoWindow.setText();
};
// Game_Systemに変数を追加 (セーブ時に保存させるため)
Game_System.prototype.clearVariableWindowFlag = function () {
this._VariableWindowFlag = false;
this._VariableWindowId = 1;
};
//-----------------------------------------------------------------------------
// PluginCommand
//
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "VariableWindow") {
switch (args[0]) {
case "show":
if (!$gameSystem._VariableWindowFlag) {
$gameSystem.clearVariableWindowFlag();
}
$gameSystem._VariableWindowId = args[1];
$gameSystem._VariableWindowFlag = true;
break;
case "close":
if (!$gameSystem._VariableWindowFlag) {
$gameSystem.clearVariableWindowFlag();
}
$gameSystem._VariableWindowFlag = false;
break;
}
}
};
//-----------------------------------------------------------------------------
// Window_VariableInfo
//
function Window_VariableInfo() {
this.initialize.apply(this, arguments);
}
Window_VariableInfo.prototype = Object.create(Window_Base.prototype);
Window_VariableInfo.prototype.constructor = Window_VariableInfo;
Window_VariableInfo.prototype.initialize = function () {
var width = 400;
var height = this.fittingHeight(1);
Window_Base.prototype.initialize.call(
this,
Graphics.boxWidth - width,
0,
width,
height
);
};
Window_VariableInfo.prototype.setText = function (text) {
this._text = text;
this.refresh();
};
Window_VariableInfo.prototype.clear = function () {
this.setText("");
};
Window_VariableInfo.prototype.refresh = function () {
var variableId = $gameSystem._VariableWindowId;
this.contents.clear();
this.changeTextColor(this.systemColor());
this.drawText(
$dataSystem.variables[variableId],
this.textPadding(),
0,
250
);
this.resetTextColor();
this.drawText($gameVariables.value(variableId), 90, 0, 100, "right");
// 表示・非表示状態判定
if ($gameSystem._VariableWindowFlag) {
this.show();
} else {
this.hide();
}
};
})();