apatheticangel/www/js/plugins/TMCommonCommand.js
2023-08-16 11:10:37 -05:00

124 lines
3.8 KiB
JavaScript

//=============================================================================
// TMPlugin - コモンコマンド
// バージョン: 1.0.0
// 最終更新日: 2018/09/21
// 配布元  : https://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2018 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @plugindesc メインメニューにコモンイベント実行用のコマンドを追加します。
*
* @author tomoaky (https://hikimoki.sakura.ne.jp/)
*
* @param command1
* @type struct<CommonCommand>
* @desc コモンコマンドその1
* @default {"name":"","commonEventId":"0"}
*
* @param command2
* @type struct<CommonCommand>
* @desc コモンコマンドその2
* @default {"name":"","commonEventId":"0"}
*
* @param command3
* @type struct<CommonCommand>
* @desc コモンコマンドその3
* @default {"name":"","commonEventId":"0"}
*
* @param command4
* @type struct<CommonCommand>
* @desc コモンコマンドその4
* @default {"name":"","commonEventId":"0"}
*
* @param command5
* @type struct<CommonCommand>
* @desc コモンコマンドその5
* @default {"name":"","commonEventId":"0"}
*
* @help
* TMPlugin - コモンコマンド ver1.0.0
*
* 使い方:
*
* プラグインパラメータのコマンド名と実行するコモンイベントを設定すれば
* メインメニューに新しいコマンドが追加されます。
*
* このプラグインは RPGツクールMV Version 1.6.1 で動作確認をしています。
*
* このプラグインはMITライセンスのもとに配布しています、商用利用、
* 改造、再配布など、自由にお使いいただけます。
*/
/*~struct~CommonCommand:
*
* @param name
* @desc コマンド名
* @default
*
* @param commonEventId
* @type common_event
* @desc 実行するコモンイベント
* @default 0
*
*/
var Imported = Imported || {};
Imported.TMCommonCommand = true;
(function () {
var parameters = PluginManager.parameters('TMCommonCommand');
var CommonCommands = [
JSON.parse(parameters['command1'] || '{}'),
JSON.parse(parameters['command2'] || '{}'),
JSON.parse(parameters['command3'] || '{}'),
JSON.parse(parameters['command4'] || '{}'),
JSON.parse(parameters['command5'] || '{}')
];
//-----------------------------------------------------------------------------
// Window_MenuCommand
//
var _Window_MenuCommand_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
Window_MenuCommand.prototype.addOriginalCommands = function () {
_Window_MenuCommand_addOriginalCommands.call(this);
CommonCommands.forEach(function (command) {
if (command.commonEventId > 0) {
this.addCommand(command.name, command.name, true);
}
}, this);
};
//-----------------------------------------------------------------------------
// Scene_Menu
//
var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow;
Scene_Menu.prototype.createCommandWindow = function () {
_Scene_Menu_createCommandWindow.call(this);
CommonCommands.forEach(function (command) {
if (command.commonEventId > 0) {
this._commandWindow.setHandler(command.name, this.commandCommonCommand.bind(this));
}
}, this);
};
Scene_Menu.prototype.commandCommonCommand = function () {
var symbol = this._commandWindow.currentSymbol();
CommonCommands.forEach(function (command) {
if (command.name === symbol) {
$gameTemp.reserveCommonEvent(command.commonEventId);
}
}, this);
if ($gameTemp.isCommonEventReserved()) {
SceneManager.goto(Scene_Map);
} else {
this._commandWindow.activate();
}
};
})();