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

157 lines
No EOL
5.6 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.

//=============================================================================
// TMPlugin - アイテムカテゴリ拡張
// バージョン: 1.0.1
// 最終更新日: 2018/05/01
// 配布元 : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2017 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @target MZ MV
* @url https://raw.githubusercontent.com/munokura/tomoaky-MV-plugins/master/TMItemCategoryEx.js
* @author tomoaky (https://twitter.com/tomoaky/)
* @plugindesc アイテムカテゴリの追加、削除をおこないます。
*
* @param categoryList
* @text アイテムカテゴリ一覧
* @desc アイテムカテゴリの一覧 (詳しくはヘルプにて)
* 初期値: item weapon armor keyItem
* @default item weapon armor keyItem
*
* @help
* TMPlugin - アイテムカテゴリ拡張 ver1.0.1
*
* 使い方:
*
* プラグインパラメータでアイテムカテゴリを設定してください。
* item, weapon, armor, keyItem は アイテム, 武器, 防具, 大事なもの に
* 対応しています。
* たとえばアイテムと武器の間に 書物 というカテゴリを追加したい場合は
* item 書物 weapon armor keyItem
* というような設定になります。
*
* 追加したカテゴリは itemCategory タグを使ってアイテムに設定することが
* できます。タグを設定したアイテムは通常のアイテムカテゴリには
* 表示されなくなります。
*
* また、不要なカテゴリを削除することもできます。
* カテゴリが 1 個しかない場合はカテゴリ選択の処理自体が省略されます。
*
* プラグインコマンドはありません。
*
*
* メモ欄タグ(アイテム):
*
* <itemCategory:書物>
* このアイテムのカテゴリを 書物 に設定します。
* プラグインパラメータ categoryList に 書物 というカテゴリが
* あればそこに表示されます。
*
*
* 利用規約:
* MITライセンスです。
* https://ja.osdn.net/projects/opensource/wiki/licenses%2FMIT_license
* 作者に無断で改変、再配布が可能で、
* 利用形態商用、18禁利用等についても制限はありません。
*/
var Imported = Imported || {};
Imported.TMItemCategoryEx = true;
(function () {
'use strict';
var parameters = PluginManager.parameters('TMItemCategoryEx');
var categoryList = (parameters['categoryList'] || 'item weapon armor keyItem').split(' ');
//-----------------------------------------------------------------------------
// Window_ItemCategory
//
Window_ItemCategory.prototype.maxCols = function () {
return categoryList.length;
};
Window_ItemCategory.prototype.makeCommandList = function () {
var symbol;
for (var i = 0; i < this.maxCols(); i++) {
symbol = categoryList[i];
if (symbol === 'item') {
this.addCommand(TextManager.item, 'item');
} else if (symbol === 'weapon') {
this.addCommand(TextManager.weapon, 'weapon');
} else if (symbol === 'armor') {
this.addCommand(TextManager.armor, 'armor');
} else if (symbol === 'keyItem') {
this.addCommand(TextManager.keyItem, 'keyItem');
} else {
this.addCommand(symbol, symbol);
}
}
};
//-----------------------------------------------------------------------------
// Window_ItemList
//
var _Window_ItemList_includes = Window_ItemList.prototype.includes;
Window_ItemList.prototype.includes = function (item) {
if (item && item.meta.itemCategory) return this._category === item.meta.itemCategory;
return _Window_ItemList_includes.call(this, item);
};
//-----------------------------------------------------------------------------
// Scene_Item
//
var _Scene_Item_create = Scene_Item.prototype.create;
Scene_Item.prototype.create = function () {
_Scene_Item_create.call(this);
if (categoryList.length === 1) {
this._categoryWindow.deactivate();
this._categoryWindow.hide();
this._itemWindow.move(this._itemWindow.x, this._categoryWindow.y, this._itemWindow.width,
this._itemWindow.height + this._categoryWindow.height);
this._itemWindow.setHandler('cancel', this.popScene.bind(this));
this._itemWindow.setCategory(this._categoryWindow.currentSymbol());
this.onCategoryOk();
}
};
//-----------------------------------------------------------------------------
// Scene_Shop
//
var _Scene_Shop_create = Scene_Shop.prototype.create;
Scene_Shop.prototype.create = function () {
_Scene_Shop_create.call(this);
if (categoryList.length === 1) {
this._sellWindow.move(this._sellWindow.x, this._categoryWindow.y, this._sellWindow.width,
this._sellWindow.height + this._categoryWindow.height);
this._sellWindow.setCategory(this._categoryWindow.currentSymbol());
}
};
var _Scene_Shop_commandSell = Scene_Shop.prototype.commandSell;
Scene_Shop.prototype.commandSell = function () {
_Scene_Shop_commandSell.call(this);
if (categoryList.length === 1) {
this._sellWindow.activate();
this._statusWindow.hide();
this._sellWindow.select(0);
this._categoryWindow.hide();
}
};
var _Scene_Shop_onSellCancel = Scene_Shop.prototype.onSellCancel;
Scene_Shop.prototype.onSellCancel = function () {
_Scene_Shop_onSellCancel.call(this);
if (categoryList.length === 1) {
this.onCategoryCancel();
}
};
})();