heroine-dark-side/js/plugins/WDmzPartyChange.js
2025-08-02 13:47:30 -05:00

1169 lines
43 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// RPG Maker MZ - WD Party Change (ver1.00)
//=============================================================================
/*:
* @target MZ
* @plugindesc Party Change Menu.
* @author Izumi
* @url http://izumiwhite.web.fc2.com/
*
* @help WDmzPartyChange.js
*
* This plugin provides a Party Change Menu.
* Please edit each parmeters directly with a text editor.
*
* Use it in the following procedure.
* 1. Call the plugin command "Preload the image file".
* 2. Call the plugin command "Party Change Menu" or
* "Display the member dismissing menu" or
* " Display the member list menu".
* !! Before using this plugin, store the image "ButtonSetWD.png"
* in the following folder.
*    (ProjectName)\img\system
*
* @command change
* @text Display the party change menu
* @desc Display the party change menu.
*
* @command eliminate
* @text Display the member dismissing menu
* @desc Display the member dismissing menu.
*
* @command show
* @text Display the member list menu
* @desc Display the member list menu.
*
* @command preload
* @text Preload the image file
* @desc Preload the image file.
*
*/
/*:ja
* @target MZ
* @plugindesc パーティ編成(アクター預り所)のメニューを開きます。
* @author いずみ
* @url http://izumiwhite.web.fc2.com/
*
* @help WDmzPartyChange.js
*
* このプラグインは、パーティ編成(アクター預り所)のメニューを
* 呼び出すコマンドを提供します。
* 各パラメータは直接テキストエディタ等で編集して下さい。
*
* 次の手順で使用してください。
* 1. プラグインコマンド「画像の事前ロード」を呼び出します。
* 2. プラグインコマンド「パーティ編成画面の表示」又は
*   「メンバー除籍画面の表示」又は「メンバーリスト画面の表示」を
*    呼び出します。
*  ※事前に、以下のフォルダに"ButtonSetWD.png"を格納しておいてください。
*   (ProjectName)\img\system
*
* @command change
* @text パーティ編成画面の表示
* @desc パーティ編成(アクター預り所)のメニューを呼び出します。
*
* @command eliminate
* @text メンバー除籍画面の表示
* @desc メンバー除籍のメニューを呼び出します。
*
* @command show
* @text メンバーリスト画面の表示
* @desc メンバーリストのメニューを呼び出します。
*
* @command preload
* @text 画像の事前ロード
* @desc 画像を事前に読み込み画像が表示されない現象を防ぎます。
*
*/
(() => {
//======== 基本設定 ========
//パーティメンバーの最大数
var wd_party_max = 4;
//1番のアクターの加入条件 (この場合スイッチ21がONの時、加入可能)
//2番以降のアクターの加入条件は、この数値に1ずつ足したものになります。
var wd_actor1_switch = 101;
//アクターの入れ替え不可用のスイッチ
var wd_fix_switch1 = []; //この行は消さないこと
wd_fix_switch1[8] = 108; //108番のスイッチがONの時、1番のアクターは入れ替え(外すこと)不可。
//アクターの除籍不可用のスイッチ
var wd_fix_switch2 = []; //この行は消さないこと
wd_fix_switch2[8] = 108; //108番のスイッチがONの時、1番のアクターは除籍不可。
//除籍時のコマンドの記載テキスト
var wd_eliminate_text = "Eliminate";
//テキストウィンドウ1に表示するテキスト
var wd_text1_mess = "Party" ;
//テキストウィンドウ2に表示するテキスト
var wd_text2_mess = "Members";
//パーティから外すのみの処理を可能にする場合はtrue。falseの場合追加と交代のみ。
var wd_remove_only = true;
//編成時パーティが全滅していても編成完了を許可する場合はtrue。
var wd_alldead_ok = false;
//ページ切り替えのボタンを表示するか
var wd_pagebutton_use = true;
//パーティリストがアクティブ時にページ切り替えボタンで、パーティリストのページを切り替える場合はtrue。
//パーティリストがアクティブ時もメンバーリストのページを切り替える場合はfalse。
var wd_pagebutton_partylist = true;
//ソート機能を使用するか
var wd_sort_use = true;
//ソート番号格納用の変数
var wd_sort_variables = 11;
//使用するソートを順に記載。対応は下記の通り。
// 0:ID順, 1:職業順, 2:レベル順, 3:HP順, 4:MP順, 5:攻撃力順, 6:防御力順,
// 7:魔法力順, 8:魔法防御順, 9:敏捷性順, 10:運順, 11:指定ソート
var wd_sort_series = [0,1,2,3,4,5,6,7,8,9,10,11];
//wd_sort_seriesで指定したソートの名称を順に記載。
var wd_sort_names = ["ID Order","Occupation Order","Level Order","HP Order","MP Order","Attack Order","Defense Order","Magic Power Order","Magic Defense Order","Agility Order","Luck Order","Custom Sort"];
//指定ソート。アクターのID順に優先順位を記載。
var wd_sort_assing = [2,1,3,4,5,6,8,7];
//======== 基本設定終わり(以下、本体プログラム) ========
const pluginName = "WDmzPartyChange";
PluginManager.registerCommand(pluginName, "change", args => {
SceneManager.push(Scene_PartyChange);
});
PluginManager.registerCommand(pluginName, "eliminate", args => {
SceneManager.push(Scene_PartyEliminate);
});
PluginManager.registerCommand(pluginName, "show", args => {
SceneManager.push(Scene_PartyShow);
});
PluginManager.registerCommand(pluginName, "preload", args => {
var i;
var j=0;
for (i = 1; i < $dataActors.length; i++) {
if($gameSwitches.value(wd_actor1_switch+i-1)){
actor = $gameActors.actor(i);
if(wd_front_charaview || wd_back_charaview || wd_status_charaview){
ImageManager.loadCharacter(actor.characterName());
}
if(wd_front_faceview || wd_back_faceview || wd_status_faceview){
ImageManager.loadFace(actor.faceName());
}
}
}
});
const _Sprite_Button_loadButtonImage = Sprite_Button.prototype.loadButtonImage;
Sprite_Button.prototype.loadButtonImage = function() {
_Sprite_Button_loadButtonImage.apply(this, arguments);
if(this._buttonType=='sort'){
this.bitmap = ImageManager.loadSystem("ButtonSetWD");
}
};
const _Sprite_Button_buttonData = Sprite_Button.prototype.buttonData;
Sprite_Button.prototype.buttonData = function() {
if(this._buttonType=='sort'){
return { x: 0, w: 2 };
}
return _Sprite_Button_buttonData.apply(this, arguments);
};
function Scene_PartyChange() {
this.initialize(...arguments);
}
Scene_PartyChange.prototype = Object.create(Scene_MenuBase.prototype);
Scene_PartyChange.prototype.constructor = Scene_PartyChange;
Scene_PartyChange.prototype.initialize = function() {
Scene_MenuBase.prototype.initialize.call(this);
};
Scene_PartyChange.prototype.create = function() {
Scene_MenuBase.prototype.create.call(this);
this._mode = 0;
this.createFrontWindow();
this.createBackWindow();
this.createStatusWindow();
this.createText1Window();
this.createText2Window();
if(wd_sort_use){
this.createSortWindow();
}
this._frontWindow.setStatusWindow(this._statusWindow);
this._backWindow.setStatusWindow(this._statusWindow);
this._frontWindow.activate();
this._backWindow.deactivate();
};
Scene_PartyChange.prototype.createFrontWindow = function() {
const rect = this.frontWindowRect();
this._frontWindow = new Window_PartyChangeFront(rect);
this._frontWindow.setHandler("cancel", this.frontCancel.bind(this));
this._frontWindow.setHandler('ok', this.frontOk.bind(this));
this.addWindow(this._frontWindow);
};
Scene_PartyChange.prototype.frontWindowRect = function() {
const wx = wd_front_x;
const wy = wd_front_y;
const ww = wd_front_width;
const wh = wd_front_height;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyChange.prototype.createBackWindow = function() {
const rect = this.backWindowRect();
this._backWindow = new Window_PartyChangeBack(rect, this._mode);
this._backWindow.setHandler("cancel", this.backCancel.bind(this));
this._backWindow.setHandler('ok', this.backOk.bind(this));
this.addWindow(this._backWindow);
};
Scene_PartyChange.prototype.backWindowRect = function() {
const wx = wd_back_x;
const wy = wd_back_y;
const ww = wd_back_width;
const wh = wd_back_height;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyChange.prototype.createStatusWindow = function() {
const rect = this.statusWindowRect();
this._statusWindow = new Window_PartyChangeStatus(rect);
this.addWindow(this._statusWindow);
};
Scene_PartyChange.prototype.statusWindowRect = function() {
const wx = wd_status_x;
const wy = wd_status_y;
const ww = wd_status_width;
const wh = wd_status_height;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyChange.prototype.createText1Window = function() {
const rect = this.text1WindowRect();
this._text1Window = new Window_PartyChangeText1(rect);
this.addWindow(this._text1Window);
};
Scene_PartyChange.prototype.text1WindowRect = function() {
const wx = wd_text1_x;
const wy = wd_text1_y;
const ww = wd_text1_width;
const wh = wd_text1_height;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyChange.prototype.createText2Window = function() {
const rect = this.text2WindowRect();
this._text2Window = new Window_PartyChangeText2(rect);
this.addWindow(this._text2Window);
};
Scene_PartyChange.prototype.text2WindowRect = function() {
const wx = wd_text2_x;
const wy = wd_text2_y;
const ww = wd_text2_width;
const wh = wd_text2_height;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyChange.prototype.createSortWindow = function() {
const rect = this.sortWindowRect();
this._sortWindow = new Window_PartyChangeSort(rect);
this.addWindow(this._sortWindow);
};
Scene_PartyChange.prototype.sortWindowRect = function() {
const wx = wd_sort_x;
const wy = wd_sort_y;
const ww = wd_sort_width;
const wh = wd_sort_height;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyChange.prototype.frontOk = function() {
this._frontWindow.deactivate();
this._backWindow.activate();
this._backWindow.setFrontActor($gameParty.members()[this._frontWindow._index]);
this._backWindow.refresh();
if(this._backWindow._index==this._backWindow.maxItems()){
this._backWindow.select(this._backWindow.maxItems()-1);
}
};
Scene_PartyChange.prototype.frontCancel = function() {
if($gameParty.isAllDead()&&!wd_alldead_ok){
this._frontWindow.activate();
}else{
this.popScene();
}
};
Scene_PartyChange.prototype.backOk = function() {
if(this._backWindow._list[this._backWindow._index]){
$gameParty._actors.splice(this._frontWindow._index, 1, this._backWindow._list[this._backWindow._index]._actorId);
}else{
$gameParty._actors.splice(this._frontWindow._index, 1);
}
$gamePlayer.refresh();
this._frontWindow.refresh();
this._backWindow.refresh();
this._backWindow.deactivate();
this._frontWindow.activate();
};
Scene_PartyChange.prototype.backCancel = function() {
this._backWindow.deactivate();
this._frontWindow.activate();
};
Scene_PartyChange.prototype.sortActors = function() {
$gameVariables.setValue(wd_sort_variables, $gameVariables.value(wd_sort_variables)+1);
if($gameVariables.value(wd_sort_variables) >= wd_sort_series.length){
$gameVariables.setValue(wd_sort_variables, 0);
}
this._backWindow.refresh();
this._sortWindow.refresh();
SoundManager.playCursor();
};
Scene_PartyChange.prototype.needsPageButtons = function() {
return wd_pagebutton_use;
};
Scene_PartyChange.prototype.arePageButtonsEnabled = function() {
if(this._mode==1&&this._backWindow){
if(this._backWindow.active){
return true;
}else{
return false;
}
}else{
return true;
}
};
Scene_PartyChange.prototype.nextActor = function() {
if(wd_pagebutton_partylist&&this._mode==0){
if(this._frontWindow.active){
this._frontWindow.cursorPagedown();
}else{
this._backWindow.cursorPagedown();
}
}else{
this._backWindow.cursorPagedown();
}
SoundManager.playCursor();
};
Scene_PartyChange.prototype.previousActor = function() {
if(wd_pagebutton_partylist&&this._mode==0){
if(this._frontWindow.active){
this._frontWindow.cursorPageup();
}else{
this._backWindow.cursorPageup();
}
}else{
this._backWindow.cursorPageup();
}
SoundManager.playCursor();
};
Scene_PartyChange.prototype.createButtons = function() {
if (ConfigManager.touchUI) {
if (this.needsCancelButton()) {
this.createCancelButton();
}
if (this.needsPageButtons()) {
this.createPageButtons();
}
if(wd_sort_use){
this.createSortButton();
}
}
};
Scene_PartyChange.prototype.createSortButton = function() {
this._sortButton = new Sprite_Button("sort");
this._sortButton.x = 204;
this._sortButton.y = this.buttonY();
this.addWindow(this._sortButton);
this._sortButton.setClickHandler(this.sortActors.bind(this));
};
Scene_PartyChange.prototype.updateSortButton = function() {
if (this._sortButton) {
const enabled = this.areSortButtonEnabled();
this._sortButton.visible = enabled;
}
};
Scene_PartyChange.prototype.areSortButtonEnabled = function() {
return this.arePageButtonsEnabled();
};
Scene_PartyChange.prototype.updateSortTrigger = function() {
if (this._sortButton) {
const enabled = this.areSortButtonEnabled();
this._sortButton.visible = enabled;
}
};
Scene_PartyChange.prototype.updateSortRequested = function() {
if (Input.isTriggered("shift")&&this._sortButton&&this.areSortButtonEnabled()) {
this.sortActors();
}
};
Scene_PartyChange.prototype.update = function() {
Scene_Base.prototype.update.call(this);
this.updatePageButtons();
this.updateSortButton();
this.updateSortRequested();
};
function Scene_PartyEliminate() {
this.initialize(...arguments);
}
Scene_PartyEliminate.prototype = Object.create(Scene_PartyChange.prototype);
Scene_PartyEliminate.prototype.constructor = Scene_PartyEliminate;
Scene_PartyEliminate.prototype.create = function() {
Scene_MenuBase.prototype.create.call(this);
this._mode = 1;
this.createBackWindow();
this.createStatusWindow();
this.createText2Window();
if(wd_sort_use){
this.createSortWindow();
}
this.createEliminateWindow();
this._backWindow.setStatusWindow(this._statusWindow);
this._backWindow.activate();
this._eliminateWindow.deactivate();
};
Scene_PartyEliminate.prototype.createBackWindow = function() {
const rect = this.backWindowRect();
this._backWindow = new Window_PartyChangeBack(rect, this._mode);
this._backWindow.setHandler("cancel", this.popScene.bind(this));
this._backWindow.setHandler('ok', this.backOk.bind(this));
this.addWindow(this._backWindow);
};
Scene_PartyEliminate.prototype.backWindowRect = function() {
const wx = wd_back_x2;
const wy = wd_back_y2;
const ww = wd_back_width2;
const wh = wd_back_height2;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyEliminate.prototype.text2WindowRect = function() {
const wx = wd_text2_x2;
const wy = wd_text2_y2;
const ww = wd_text2_width2;
const wh = wd_text2_height2;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyEliminate.prototype.sortWindowRect = function() {
const wx = wd_sort_x2;
const wy = wd_sort_y2;
const ww = wd_sort_width2;
const wh = wd_sort_height2;
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyEliminate.prototype.createEliminateWindow = function() {
const rect = this.eliminateWindowRect();
this._eliminateWindow = new Window_PartyChangeEliminate(rect);
this._eliminateWindow.setHandler("cancel", this.eliminateCancel.bind(this));
this._eliminateWindow.setHandler('ok', this.eliminateOk.bind(this));
this.addWindow(this._eliminateWindow);
};
Scene_PartyEliminate.prototype.eliminateWindowRect = function() {
const wx = (Graphics.boxWidth - 240) / 2;
const wy = 240;
const ww = 240;
const wh = this.calcWindowHeight(2, true);
return new Rectangle(wx, wy, ww, wh);
};
Scene_PartyEliminate.prototype.backOk = function() {
this._backWindow.deactivate();
this._eliminateWindow.select(1);
this._eliminateWindow.show();
this._eliminateWindow.activate();
};
Scene_PartyEliminate.prototype.eliminateOk = function() {
if(this._backWindow._list[this._backWindow._index]){
var i = this._backWindow._list[this._backWindow._index]._actorId
$gameSwitches.setValue(wd_actor1_switch+i-1, false);
}
this._backWindow.refresh();
this._backWindow.activate();
this._eliminateWindow.hide();
this._eliminateWindow.deactivate();
if(!this._backWindow._list[this._backWindow._index]){
this._backWindow.select(this._backWindow._index-1);
}
};
Scene_PartyEliminate.prototype.eliminateCancel = function() {
this._backWindow.activate();
this._eliminateWindow.hide();
this._eliminateWindow.deactivate();
};
function Scene_PartyShow() {
this.initialize(...arguments);
}
Scene_PartyShow.prototype = Object.create(Scene_PartyEliminate.prototype);
Scene_PartyShow.prototype.constructor = Scene_PartyShow;
Scene_PartyShow.prototype.create = function() {
Scene_MenuBase.prototype.create.call(this);
this._mode = 2;
this.createBackWindow();
this.createStatusWindow();
this.createText2Window();
if(wd_sort_use){
this.createSortWindow();
}
this._backWindow.setStatusWindow(this._statusWindow);
this._backWindow.activate();
};
Scene_PartyShow.prototype.createBackWindow = function() {
const rect = this.backWindowRect();
this._backWindow = new Window_PartyChangeBack(rect, this._mode);
this._backWindow.setHandler("cancel", this.popScene.bind(this));
this.addWindow(this._backWindow);
};
function Window_PartyChangeBase() {
this.initialize(...arguments);
}
Window_PartyChangeBase.prototype = Object.create(Window_StatusBase.prototype);
Window_PartyChangeBase.prototype.constructor = Window_PartyChangeBase;
Window_PartyChangeBase.prototype.setStatusWindow = function(statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_PartyChangeBase.prototype.update = function() {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_PartyChangeBase.prototype.updateStatus = function() {
if (this._statusWindow && this.active) {
var item = this._list[this.index()];
this._statusWindow.setItem(item);
}
};
Window_PartyChangeBase.prototype.isCurrentItemEnabled = function() {
return this._listEnabled[this._index];
};
Window_PartyChangeBase.prototype.maxItems = function() {
return this._list ? this._list.length : 0;
};
Window_PartyChangeBase.prototype.drawActorCharacter = function(actor, x, y) {
this.drawCharacter(actor.characterName(), actor.characterIndex(), x, y);
};
Window_PartyChangeBase.prototype.drawActorParam = function(actor, i, x, y, width) {
this.changeTextColor(ColorManager.systemColor());
this.drawText(TextManager.param(i), x, y, width - 60);
this.resetTextColor();
this.drawText(actor.param(i), x + width - 60, y, 60, 'right');
};
Window_PartyChangeBase.prototype.drawActorLevel = function(actor, x, y, width) {
this.changeTextColor(ColorManager.systemColor());
this.drawText(TextManager.levelA, x, y, 48);
this.resetTextColor();
this.drawText(actor.level, x + width - 36, y, 36, 'right');
};
Window_PartyChangeBase.prototype.cursorDown = function(wrap) {
const index = this.index();
const maxItems = this.maxItems();
const maxCols = this.maxCols();
if (index < maxItems - maxCols || (wrap && maxCols === 1)) {
this.smoothSelect((index + maxCols) % maxItems);
}else if(this.row() == this.maxRows()-2){ //modify
this.smoothSelect(maxItems-1); //modify
}
};
function Window_PartyChangeFront() {
this.initialize(...arguments);
}
Window_PartyChangeFront.prototype = Object.create(Window_PartyChangeBase.prototype);
Window_PartyChangeFront.prototype.constructor = Window_PartyChangeFront;
Window_PartyChangeFront.prototype.initialize = function(rect) {
Window_StatusBase.prototype.initialize.call(this, rect);
this.refresh();
this.setTopRow(0);
this.select(0);
};
Window_PartyChangeFront.prototype.maxCols = function() {
return wd_front_maxcols;
};
Window_PartyChangeFront.prototype.refresh = function() {
var i, actor;
this._list = [];
this._listEnabled = [];
for (const actor of $gameParty.members()) {
this._list.push(actor);
if($gameSwitches.value(wd_fix_switch1[actor._actorId])){
this._listEnabled.push(false);
}else{
this._listEnabled.push(true);
}
}
if($gameParty.members().length < wd_party_max){
this._list.push(null);
this._listEnabled.push(true);
}
this.paint();
};
Window_PartyChangeFront.prototype.itemRect = function(index) {
var rect = new Rectangle();
var maxCols = this.maxCols();
rect.width = wd_front_rect_width;
rect.height = wd_front_rect_height;
rect.x = index % maxCols * (rect.width + wd_front_rect_spacing) - this.scrollBaseX();
rect.y = Math.floor(index / maxCols) * (rect.height + wd_front_rect_interval) - this.scrollBaseY();
return rect;
};
Window_PartyChangeFront.prototype.itemHeight = function() {
return wd_front_rect_height + wd_front_rect_interval;
};
Window_PartyChangeFront.prototype.scrollBlockHeight = function() {
return wd_front_rect_height + wd_front_rect_interval;
};
Window_PartyChangeFront.prototype.drawItem = function(index) {
var actor = this._list[index];
var rect = this.itemRect(index);
if(actor){
this.changePaintOpacity(this._listEnabled[index]);
this.contents.fontSize = wd_front_fontsize;
if(wd_front_faceview){
this.drawActorFace(actor, rect.x + wd_front_faceview_x, rect.y + wd_front_faceview_y)
}
if(wd_front_charaview){
this.drawActorCharacter(actor, rect.x + wd_front_charaview_x, rect.y + wd_front_charaview_y)
}
if(wd_front_stateview){
this.drawActorIcons(actor, rect.x + wd_front_stateview_x, rect.y + wd_front_stateview_y, wd_front_stateview_width);
}
if(wd_front_nameview){
this.drawActorName(actor, rect.x + wd_front_nameview_x, rect.y + wd_front_nameview_y, wd_front_nameview_width);
}
if(wd_front_classview){
this.drawActorClass(actor, rect.x + wd_front_classview_x, rect.y + wd_front_classview_y, wd_front_classview_width);
}
if(wd_front_nickview){
this.drawActorNickname(actor, rect.x + wd_front_nickview_x, rect.y + wd_front_nickview_y, wd_front_nickview_width);
}
if(wd_front_lvview){
this.drawActorLevel(actor, rect.x + wd_front_lvview_x, rect.y + wd_front_lvview_y, wd_front_lvview_width);
}
if(wd_front_hpgaugeview){
this.placeGauge(actor, "hp", rect.x + wd_front_hpgaugeview_x, rect.y + wd_front_hpgaugeview_y);
}
if(wd_front_mpgaugeview){
this.placeGauge(actor, "mp", rect.x + wd_front_mpgaugeview_x, rect.y + wd_front_mpgaugeview_y);
}
if(wd_front_tpgaugeview){
this.placeGauge(actor, "tp", rect.x + wd_front_tpgaugeview_x, rect.y + wd_front_tpgaugeview_y);
}
if(wd_front_mhpview){
this.drawActorParam(actor, 0, rect.x + wd_front_mhpview_x, rect.y + wd_front_mhpview_y, wd_front_mhpview_width);
}
if(wd_front_mmpview){
this.drawActorParam(actor, 1, rect.x + wd_front_mmpview_x, rect.y + wd_front_mmpview_y, wd_front_mmpview_width);
}
if(wd_front_atkview){
this.drawActorParam(actor, 2, rect.x + wd_front_atkview_x, rect.y + wd_front_atkview_y, wd_front_atkview_width);
}
if(wd_front_defview){
this.drawActorParam(actor, 3, rect.x + wd_front_defview_x, rect.y + wd_front_defview_y, wd_front_defview_width);
}
if(wd_front_matview){
this.drawActorParam(actor, 4, rect.x + wd_front_matview_x, rect.y + wd_front_matview_y, wd_front_matview_width);
}
if(wd_front_mdfview){
this.drawActorParam(actor, 5, rect.x + wd_front_mdfview_x, rect.y + wd_front_mdfview_y, wd_front_mdfview_width);
}
if(wd_front_agiview){
this.drawActorParam(actor, 6, rect.x + wd_front_agiview_x, rect.y + wd_front_agiview_y, wd_front_agiview_width);
}
if(wd_front_lukview){
this.drawActorParam(actor, 7, rect.x + wd_front_lukview_x, rect.y + wd_front_lukview_y, wd_front_lukview_width);
}
this.contents.fontSize = $gameSystem.mainFontSize();
}
};
function Window_PartyChangeBack() {
this.initialize(...arguments);
}
Window_PartyChangeBack.prototype = Object.create(Window_PartyChangeBase.prototype);
Window_PartyChangeBack.prototype.constructor = Window_PartyChangeBack;
Window_PartyChangeBack.prototype.initialize = function(rect, mode) {
this._mode = mode;
Window_StatusBase.prototype.initialize.call(this, rect);
this.refresh();
this.setTopRow(0);
this.select(0);
};
Window_PartyChangeBack.prototype.maxCols = function() {
return wd_back_maxcols;
};
Window_PartyChangeBack.prototype.refresh = function() {
var i, actor;
this._list = [];
for (i = 1; i < $dataActors.length; i++) {
if($gameSwitches.value(wd_actor1_switch+i-1)){
actor = $gameActors.actor(i);
this._list.push(actor);
}
}
sort_flag = wd_sort_series[$gameVariables.value(wd_sort_variables)];
switch (sort_flag){
case 0:
this._list.sort(function(a, b) {
return - b._actorId + a._actorId;
});
break;
case 1:
this._list.sort(function(a, b) {
return - b._classId * 1000000 - b._actorId + a._classId * 1000000 + a._actorId;
});
break;
case 2:
this._list.sort(function(a, b) {
return b.level * 1000000 - b._actorId - a.level * 1000000 + a._actorId;
});
break;
case 3:
this._list.sort(function(a, b) {
return b.mhp * 1000000 - b._actorId - a.mhp * 1000000 + a._actorId;
});
break;
case 4:
this._list.sort(function(a, b) {
return b.mmp * 1000000 - b._actorId - a.mmp * 1000000 + a._actorId;
});
break;
case 5:
this._list.sort(function(a, b) {
return b.atk * 1000000 - b._actorId - a.atk * 1000000 + a._actorId;
});
break;
case 6:
this._list.sort(function(a, b) {
return b.def * 1000000 - b._actorId - a.def * 1000000 + a._actorId;
});
break;
case 7:
this._list.sort(function(a, b) {
return b.mat * 1000000 - b._actorId - a.mat * 1000000 + a._actorId;
});
break;
case 8:
this._list.sort(function(a, b) {
return b.mdf * 1000000 - b._actorId - a.mdf * 1000000 + a._actorId;
});
break;
case 9:
this._list.sort(function(a, b) {
return b.agi * 1000000 - b._actorId - a.agi * 1000000 + a._actorId;
});
break;
case 10:
this._list.sort(function(a, b) {
return b.luk * 1000000 - b._actorId - a.luk * 1000000 + a._actorId;
});
break;
case 11:
this._list.sort(function(a, b) {
return - wd_sort_assing[b._actorId-1] + wd_sort_assing[a._actorId-1];
});
break;
}
this._listEnabled = [];
for (i = 0; i < this._list.length; i++) {
actor = this._list[i]
if (this._mode !=2 && $gameParty.members().contains(actor)) {
this._listEnabled.push(false);
}else if(this._mode == 1 && $gameSwitches.value(wd_fix_switch2[actor._actorId])){
this._listEnabled.push(false);
}else{
this._listEnabled.push(true);
}
}
if(wd_remove_only && this._mode==0 && $gameParty.members().length>1){
if(this._frontActor){
this._list.push(null);
this._listEnabled.push(true);
}
}
this.paint();
};
Window_PartyChangeBack.prototype.itemRect = function(index) {
var rect = new Rectangle();
var maxCols = this.maxCols();
rect.width = wd_back_rect_width;
rect.height = wd_back_rect_height;
rect.x = index % maxCols * (rect.width + wd_back_rect_spacing) - this.scrollBaseX();
rect.y = Math.floor(index / maxCols) * (rect.height + wd_back_rect_interval) - this.scrollBaseY();
return rect;
};
Window_PartyChangeBack.prototype.itemHeight = function() {
return wd_back_rect_height + wd_back_rect_interval;
};
Window_PartyChangeBack.prototype.scrollBlockHeight = function() {
return wd_back_rect_height + wd_back_rect_interval;
};
Window_PartyChangeBack.prototype.setFrontActor = function(actor) {
this._frontActor = actor;
};
Window_PartyChangeBack.prototype.drawItem = function(index) {
var actor = this._list[index];
var rect = this.itemRect(index);
if(actor){
this.changePaintOpacity(this._listEnabled[index]);
this.contents.fontSize = wd_back_fontsize;
if(wd_back_faceview){
this.drawActorFace(actor, rect.x + wd_back_faceview_x, rect.y + wd_back_faceview_y)
}
if(wd_back_charaview){
this.drawActorCharacter(actor, rect.x + wd_back_charaview_x, rect.y + wd_back_charaview_y)
}
if(wd_back_stateview){
this.drawActorIcons(actor, rect.x + wd_back_stateview_x, rect.y + wd_back_stateview_y, wd_back_stateview_width);
}
if(wd_back_nameview){
this.drawActorName(actor, rect.x + wd_back_nameview_x, rect.y + wd_back_nameview_y, wd_back_nameview_width);
}
if(wd_back_classview){
this.drawActorClass(actor, rect.x + wd_back_classview_x, rect.y + wd_back_classview_y, wd_back_classview_width);
}
if(wd_back_nickview){
this.drawActorNickname(actor, rect.x + wd_back_nickview_x, rect.y + wd_back_nickview_y, wd_back_nickview_width);
}
if(wd_back_lvview){
this.drawActorLevel(actor, rect.x + wd_back_lvview_x, rect.y + wd_back_lvview_y, wd_back_lvview_width);
}
if(wd_back_hpgaugeview){
this.placeGauge(actor, "hp", rect.x + wd_back_hpgaugeview_x, rect.y + wd_back_hpgaugeview_y);
}
if(wd_back_mpgaugeview){
this.placeGauge(actor, "mp", rect.x + wd_back_mpgaugeview_x, rect.y + wd_back_mpgaugeview_y);
}
if(wd_back_tpgaugeview){
this.placeGauge(actor, "tp", rect.x + wd_back_tpgaugeview_x, rect.y + wd_back_tpgaugeview_y);
}
if(wd_back_mhpview){
this.drawActorParam(actor, 0, rect.x + wd_back_mhpview_x, rect.y + wd_back_mhpview_y, wd_back_mhpview_width);
}
if(wd_back_mmpview){
this.drawActorParam(actor, 1, rect.x + wd_back_mmpview_x, rect.y + wd_back_mmpview_y, wd_back_mmpview_width);
}
if(wd_back_atkview){
this.drawActorParam(actor, 2, rect.x + wd_back_atkview_x, rect.y + wd_back_atkview_y, wd_back_atkview_width);
}
if(wd_back_defview){
this.drawActorParam(actor, 3, rect.x + wd_back_defview_x, rect.y + wd_back_defview_y, wd_back_defview_width);
}
if(wd_back_matview){
this.drawActorParam(actor, 4, rect.x + wd_back_matview_x, rect.y + wd_back_matview_y, wd_back_matview_width);
}
if(wd_back_mdfview){
this.drawActorParam(actor, 5, rect.x + wd_back_mdfview_x, rect.y + wd_back_mdfview_y, wd_back_mdfview_width);
}
if(wd_back_agiview){
this.drawActorParam(actor, 6, rect.x + wd_back_agiview_x, rect.y + wd_back_agiview_y, wd_back_agiview_width);
}
if(wd_back_lukview){
this.drawActorParam(actor, 7, rect.x + wd_back_lukview_x, rect.y + wd_back_lukview_y, wd_back_lukview_width);
}
this.contents.fontSize = $gameSystem.mainFontSize();
}
};
function Window_PartyChangeStatus() {
this.initialize(...arguments);
}
Window_PartyChangeStatus.prototype = Object.create(Window_StatusBase.prototype);
Window_PartyChangeStatus.prototype.constructor = Window_PartyChangeStatus;
Window_PartyChangeStatus.prototype.initialize = function(rect) {
Window_StatusBase.prototype.initialize.call(this, rect);
this.refresh();
};
Window_PartyChangeStatus.prototype.setItem = function(item) {
if (this._item !== item) {
this._item = item;
this.refresh();
}
};
Window_PartyChangeStatus.prototype.drawActorCharacter = function(actor, x, y) {
this.drawCharacter(actor.characterName(), actor.characterIndex(), x, y);
};
Window_PartyChangeStatus.prototype.drawActorParam = function(actor, i, x, y, width) {
this.changeTextColor(ColorManager.systemColor());
this.drawText(TextManager.param(i), x, y, width - 60);
this.resetTextColor();
this.drawText(actor.param(i), x + width - 60, y, 60, 'right');
};
Window_PartyChangeStatus.prototype.drawActorLevel = function(actor, x, y, width) {
this.changeTextColor(ColorManager.systemColor());
this.drawText(TextManager.levelA, x, y, 48);
this.resetTextColor();
this.drawText(actor.level, x + width - 36, y, 36, 'right');
};
Window_PartyChangeStatus.prototype.drawActorEquipments = function(actor, x, y) {
var equips = actor.equips();
var count = Math.min(equips.length, 6);
for (var i = 0; i < count; i++) {
this.drawItemName(equips[i], x, y + this.lineHeight() * i);
}
};
Window_PartyChangeStatus.prototype.refresh = function() {
var actor = this._item;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
this.hideAdditionalSprites();
if (!actor) {
return;
}
this.contents.fontSize = wd_status_fontsize;
if(wd_status_faceview){
this.drawActorFace(actor, x + wd_status_faceview_x, y + wd_status_faceview_y)
}
if(wd_status_charaview){
this.drawActorCharacter(actor, x + wd_status_charaview_x, y + wd_status_charaview_y)
}
if(wd_status_stateview){
this.drawActorIcons(actor, x + wd_status_stateview_x, y + wd_status_stateview_y, wd_status_stateview_width);
}
if(wd_status_nameview){
this.drawActorName(actor, x + wd_status_nameview_x, y + wd_status_nameview_y, wd_status_nameview_width);
}
if(wd_status_classview){
this.drawActorClass(actor, x + wd_status_classview_x, y + wd_status_classview_y, wd_status_classview_width);
}
if(wd_status_nickview){
this.drawActorNickname(actor, x + wd_status_nickview_x, y + wd_status_nickview_y, wd_status_nickview_width);
}
if(wd_status_lvview){
this.drawActorLevel(actor, x + wd_status_lvview_x, y + wd_status_lvview_y, wd_status_lvview_width);
}
if(wd_status_hpgaugeview){
this.placeGauge(actor, "hp", x + wd_status_hpgaugeview_x, y + wd_status_hpgaugeview_y);
}
if(wd_status_mpgaugeview){
this.placeGauge(actor, "mp", x + wd_status_mpgaugeview_x, y + wd_status_mpgaugeview_y);
}
if(wd_status_tpgaugeview){
this.placeGauge(actor, "tp", x + wd_status_tpgaugeview_x, y + wd_status_tpgaugeview_y);
}
if(wd_status_mhpview){
this.drawActorParam(actor, 0, x + wd_status_mhpview_x, y + wd_status_mhpview_y, wd_status_mhpview_width);
}
if(wd_status_mmpview){
this.drawActorParam(actor, 1, x + wd_status_mmpview_x, y + wd_status_mmpview_y, wd_status_mmpview_width);
}
if(wd_status_atkview){
this.drawActorParam(actor, 2, x + wd_status_atkview_x, y + wd_status_atkview_y, wd_status_atkview_width);
}
if(wd_status_defview){
this.drawActorParam(actor, 3, x + wd_status_defview_x, y + wd_status_defview_y, wd_status_defview_width);
}
if(wd_status_matview){
this.drawActorParam(actor, 4, x + wd_status_matview_x, y + wd_status_matview_y, wd_status_matview_width);
}
if(wd_status_mdfview){
this.drawActorParam(actor, 5, x + wd_status_mdfview_x, y + wd_status_mdfview_y, wd_status_mdfview_width);
}
if(wd_status_agiview){
this.drawActorParam(actor, 6, x + wd_status_agiview_x, y + wd_status_agiview_y, wd_status_agiview_width);
}
if(wd_status_lukview){
this.drawActorParam(actor, 7, x + wd_status_lukview_x, y + wd_status_lukview_y, wd_status_lukview_width);
}
if(wd_status_equipview){
this.drawActorEquipments(actor, x + wd_status_equipview_x, y + wd_status_equipview_y);
}
this.contents.fontSize = $gameSystem.mainFontSize();
};
function Window_PartyChangeText1() {
this.initialize(...arguments);
}
Window_PartyChangeText1.prototype = Object.create(Window_Base.prototype);
Window_PartyChangeText1.prototype.constructor = Window_PartyChangeText1;
Window_PartyChangeText1.prototype.initialize = function(rect) {
Window_Base.prototype.initialize.call(this, rect);
this.refresh();
};
Window_PartyChangeText1.prototype.refresh = function() {
this.contents.clear();
this.contents.fontSize = wd_text1_fontsize;
this.drawText(wd_text1_mess, wd_text1_text_x, wd_text1_text_y, this._width-24, 'center');
}
function Window_PartyChangeText2() {
this.initialize(...arguments);
}
Window_PartyChangeText2.prototype = Object.create(Window_Base.prototype);
Window_PartyChangeText2.prototype.constructor = Window_PartyChangeText1;
Window_PartyChangeText2.prototype.initialize = function(rect) {
Window_Base.prototype.initialize.call(this, rect);
this.refresh();
};
Window_PartyChangeText2.prototype.refresh = function() {
this.contents.clear();
this.contents.fontSize = wd_text2_fontsize;
this.drawText(wd_text2_mess, wd_text2_text_x, wd_text2_text_y, this._width-24, 'center');
}
function Window_PartyChangeSort() {
this.initialize(...arguments);
}
Window_PartyChangeSort.prototype = Object.create(Window_Base.prototype);
Window_PartyChangeSort.prototype.constructor = Window_PartyChangeText1;
Window_PartyChangeSort.prototype.initialize = function(rect) {
Window_Base.prototype.initialize.call(this, rect);
this.refresh();
};
Window_PartyChangeSort.prototype.refresh = function() {
this.contents.clear();
this.contents.fontSize = wd_sort_fontsize;
this.drawText(wd_sort_names[$gameVariables.value(wd_sort_variables)], wd_sort_text_x, wd_sort_text_y, this._width-24, 'center');
}
function Window_PartyChangeEliminate() {
this.initialize(...arguments);
}
Window_PartyChangeEliminate.prototype = Object.create(Window_Command.prototype);
Window_PartyChangeEliminate.prototype.constructor = Window_PartyChangeEliminate;
Window_PartyChangeEliminate.prototype.initialize = function(rect) {
Window_Command.prototype.initialize.call(this, rect);
this.hide();
};
Window_PartyChangeEliminate.prototype.makeCommandList = function() {
this.addCommand(wd_eliminate_text, 'ok');
this.addCommand("キャンセル", 'cancel');
};
})();