ayako-scramble/www/js/plugins/K_VariableWindow.js
2023-08-22 11:44:50 -05:00

121 lines
4.2 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, 0, 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), 258, 0, 100, 'right');
// 表示・非表示状態判定
if ($gameSystem._VariableWindowFlag) {
this.show();
} else {
this.hide();
}
};
})();