38 lines
1.7 KiB
JavaScript
38 lines
1.7 KiB
JavaScript
/*:
|
||
* @target MZ
|
||
* @plugindesc 指定したスイッチがONの時、メモ欄に<double>と書かれたアイテムを使用すると2つ消費する(残りが1つの場合は1つ消費)プラグイン
|
||
* @author
|
||
*
|
||
* @param switchId
|
||
* @text スイッチID
|
||
* @type switch
|
||
* @desc ダブル消費を有効にするスイッチのID
|
||
* @default 1
|
||
*
|
||
* @help
|
||
* アイテムのメモ欄に<double>と書いてください。
|
||
* 指定したスイッチがONの時、アイテム使用時に2つ消費します。
|
||
* ただし、残りが1つしかない場合は1つのみ消費されます。
|
||
*/
|
||
(() => {
|
||
const PLUGIN_NAME = "ManiacItemConsumption";
|
||
const params = PluginManager.parameters(PLUGIN_NAME);
|
||
// プラグインパラメータからスイッチIDを取得
|
||
const switchId = Number(params['switchId'] || 1);
|
||
|
||
// 元のloseItemを保持
|
||
const _Game_Party_loseItem = Game_Party.prototype.loseItem;
|
||
Game_Party.prototype.loseItem = function(item, amount, includeEquip) {
|
||
// 指定スイッチがON && メタタグ<double>が存在 && 消費量>0 の場合
|
||
if ($gameSwitches.value(switchId) && item && item.meta.double !== undefined && amount > 0) {
|
||
const count = this.numItems(item);
|
||
if (count > 1) {
|
||
// 残りが2個以上ある場合は2つ消費
|
||
return _Game_Party_loseItem.call(this, item, 2, includeEquip);
|
||
}
|
||
// 残りが1つの場合は通常amount(1)を消費
|
||
}
|
||
// 上記条件に当てはまらない場合はデフォルトの処理
|
||
return _Game_Party_loseItem.call(this, item, amount, includeEquip);
|
||
};
|
||
})();
|