1834 lines
61 KiB
JavaScript
1834 lines
61 KiB
JavaScript
//=============================================================================
|
|
// Yanfly Engine Plugins - Party System
|
|
// YEP_PartySystem.js
|
|
//=============================================================================
|
|
|
|
var Imported = Imported || {};
|
|
Imported.YEP_PartySystem = true;
|
|
|
|
var Yanfly = Yanfly || {};
|
|
Yanfly.Party = Yanfly.Party || {};
|
|
Yanfly.Party.version = 1.13;
|
|
|
|
//=============================================================================
|
|
/*:
|
|
* @plugindesc v1.13 Replaces the default 'Formation' command with a new
|
|
* menu for players to easily change party formations.
|
|
* @author Yanfly Engine Plugins
|
|
*
|
|
* @param ---General---
|
|
* @default
|
|
*
|
|
* @param Max Battle Members
|
|
* @parent ---General---
|
|
* @type number
|
|
* @min 1
|
|
* @desc Maximum amount of actors that can participate in battle.
|
|
* Default: 4
|
|
* @default 4
|
|
*
|
|
* @param Show Battle Command
|
|
* @parent ---General---
|
|
* @type boolean
|
|
* @on Show
|
|
* @off Hide
|
|
* @desc Show the 'Formation' command in the Party Command Window?
|
|
* NO - false YES - true
|
|
* @default true
|
|
*
|
|
* @param Enable Battle Command
|
|
* @parent ---General---
|
|
* @type boolean
|
|
* @on Enable
|
|
* @off Disable
|
|
* @desc Enable the 'Formation' command in the Party Command Window?
|
|
* NO - false YES - true
|
|
* @default true
|
|
*
|
|
* @param Battle Cooldown
|
|
* @parent ---General---
|
|
* @type number
|
|
* @min 0
|
|
* @desc How many turns must the player wait after changing party?
|
|
* @default 1
|
|
*
|
|
* @param Maximum Followers
|
|
* @parent ---General---
|
|
* @type number
|
|
* @min 0
|
|
* @desc Maximum number of followers on the map.
|
|
* Default: 4
|
|
* @default 4
|
|
*
|
|
* @param EXP Distribution
|
|
* @parent ---General---
|
|
* @type boolean
|
|
* @on Distribute EXP
|
|
* @off Full EXP
|
|
* @desc Divide battle EXP gained across live members?
|
|
* NO - false YES - true
|
|
* @default false
|
|
*
|
|
* @param ---Menu---
|
|
* @default
|
|
*
|
|
* @param Help Window
|
|
* @parent ---Menu---
|
|
* @type boolean
|
|
* @on Show
|
|
* @off Hide
|
|
* @desc Show the Help Window in the party menu?
|
|
* NO - false YES - true
|
|
* @default false
|
|
*
|
|
* @param Text Alignment
|
|
* @parent ---Menu---
|
|
* @type combo
|
|
* @option left
|
|
* @option center
|
|
* @option right
|
|
* @desc The text alignment for the command window.
|
|
* left center right
|
|
* @default center
|
|
*
|
|
* @param Change Command
|
|
* @parent ---Menu---
|
|
* @desc How the 'Change' command appears in the command menu.
|
|
* Leave this blank to remove it.
|
|
* @default Change
|
|
*
|
|
* @param Remove Command
|
|
* @parent ---Menu---
|
|
* @desc How the 'Remove' command appears in the command menu.
|
|
* Leave this blank to remove it.
|
|
* @default Remove
|
|
*
|
|
* @param Revert Command
|
|
* @parent ---Menu---
|
|
* @desc How the 'Revert' command appears in the command menu.
|
|
* Leave this blank to remove it.
|
|
* @default Revert
|
|
*
|
|
* @param Finish Command
|
|
* @parent ---Menu---
|
|
* @desc How the 'Finish' command appears in the command menu.
|
|
* Leave this blank to remove it.
|
|
* @default Finish
|
|
*
|
|
* @param ---Selection---
|
|
* @default
|
|
*
|
|
* @param Empty Text
|
|
* @parent ---Selection---
|
|
* @desc What text to display in an empty party slot.
|
|
* @default - Empty -
|
|
*
|
|
* @param Actor Face
|
|
* @parent ---Selection---
|
|
* @type boolean
|
|
* @on Show Face
|
|
* @off No Face
|
|
* @desc Show the actor's face?
|
|
* NO - false YES - true
|
|
* @default true
|
|
*
|
|
* @param Actor Sprite
|
|
* @parent ---Selection---
|
|
* @type boolean
|
|
* @on Show Sprite
|
|
* @off No Sprite
|
|
* @desc Show the actor's sprite?
|
|
* NO - false YES - true
|
|
* @default true
|
|
*
|
|
* @param ---List---
|
|
* @default
|
|
*
|
|
* @param Remove Icon
|
|
* @parent ---List---
|
|
* @type number
|
|
* @min 0
|
|
* @desc The icon used to display next to the "Remove" command in the
|
|
* party member list.
|
|
* @default 16
|
|
*
|
|
* @param Show Sprite
|
|
* @parent ---List---
|
|
* @type boolean
|
|
* @on Show Sprite
|
|
* @off No Sprite
|
|
* @desc Show the actor sprite on the list?
|
|
* YES - true NO - false
|
|
* @default true
|
|
*
|
|
* @param Sprite Y Buffer
|
|
* @parent ---List---
|
|
* @type number
|
|
* @desc This is the amount to adjust the actor graphic by.
|
|
* @default 16
|
|
*
|
|
* @param In Party Text Color
|
|
* @parent ---List---
|
|
* @type number
|
|
* @min 0
|
|
* @max 31
|
|
* @desc This is the text color to be used if the actor is currently
|
|
* in the party.
|
|
* @default 6
|
|
*
|
|
* @param ---Locking---
|
|
* @default
|
|
*
|
|
* @param Lock First Actor
|
|
* @parent ---Locking---
|
|
* @type boolean
|
|
* @on Lock First Actor
|
|
* @off No Change
|
|
* @desc Allows you to lock the first actor in the game by default.
|
|
* OFF - false ON - true
|
|
* @default false
|
|
*
|
|
* @param Locked Icon
|
|
* @parent ---Locking---
|
|
* @type number
|
|
* @min 0
|
|
* @desc This sets what icon to be used when an actor is locked.
|
|
* @default 195
|
|
*
|
|
* @param Required Icon
|
|
* @parent ---Locking---
|
|
* @type number
|
|
* @min 0
|
|
* @desc This sets what icon to be used when an actor is required.
|
|
* @default 205
|
|
*
|
|
* @param ---Detail Window---
|
|
* @default
|
|
*
|
|
* @param Enable Detail Window
|
|
* @parent ---Detail Window---
|
|
* @type boolean
|
|
* @on Enable
|
|
* @off Disable
|
|
* @desc Make use of the detailed party window next to the list.
|
|
* NO - false YES - true
|
|
* @default true
|
|
*
|
|
* @param List Width
|
|
* @parent ---Detail Window---
|
|
* @type number
|
|
* @min 1
|
|
* @desc If detail window is enabled, what is the width of the
|
|
* party list window?
|
|
* @default 300
|
|
*
|
|
* @param Actor Parameters
|
|
* @parent ---Detail Window---
|
|
* @desc If there is enough room, this is the text shown to list
|
|
* the actor's parameters.
|
|
* @default Parameters
|
|
*
|
|
* @param Actor Equipment
|
|
* @parent ---Detail Window---
|
|
* @desc If there is enough room, this is the text shown to list
|
|
* the actor's equipment.
|
|
* @default Equipment
|
|
*
|
|
* @help
|
|
* ============================================================================
|
|
* Introduction
|
|
* ============================================================================
|
|
*
|
|
* This plugin replaces the "Formation" command found in the in-game menu with
|
|
* a new scene where the player can adjust the party he or she wants in a more
|
|
* comfortable way.
|
|
*
|
|
* If you are using YEP_BattleEngineCore.js and would like to enable party
|
|
* switching mid-battle, place this plugin under YEP_BattleEngineCore.js in
|
|
* the plugin's list.
|
|
*
|
|
* This plugin is plug and play. All you have to do is just turn it on and
|
|
* change the parameters to your liking.
|
|
*
|
|
* ============================================================================
|
|
* Plugin Commands
|
|
* ============================================================================
|
|
*
|
|
* Here are some plugin commands you can use!
|
|
*
|
|
* Plugin Command:
|
|
* OpenPartyMenu Opens up the Party Menu from the field.
|
|
*
|
|
* Actors can also be required, meaning the player must have that actor(s) in
|
|
* the party before the player is able to leave the party menu. Required actors
|
|
* can be moved around, unlike locked actors. Keep in mind if you do make some
|
|
* actors required, do not make the game require more actors than the possible
|
|
* maximum battle members or else the player will be stuck in the party menu.
|
|
*
|
|
* Plugin Command:
|
|
* ShowBattleFormation - Shows 'Formation' command in battle.
|
|
* HideBattleFormation - Hides 'Formation' command in battle.
|
|
* EnableBattleFormation - Enables 'Formation' command in battle.
|
|
* DisableBattleFormation - Disables 'Formation' command in battle.
|
|
*
|
|
* LockActor 3 - Locks actor 3.
|
|
* LockActor 4 5 6 - Locks actors 4, 5, and 6.
|
|
* UnlockActor 3 - Unlocks actor 3.
|
|
* UnlockActor 4 5 6 - Unlocks actors 4, 5, and 6.
|
|
* * Locked Actors cannot be moved out of their current
|
|
* position and must be in the party.
|
|
*
|
|
* RequireActor 3 - Player must have actor 3 in party.
|
|
* RequireActor 4 5 6 - Player must have actors 4, 5, and 6 in party.
|
|
* UnrequireActor 3 - Player no longer needs actor 3 in party.
|
|
* UnrequireActor 4 5 6 - Player no longer needs actors 4, 5, and 6 in party.
|
|
* * Required Actors must be in the party in order for
|
|
* the player to be able to exit the party menu.
|
|
*
|
|
* ChangePartyMax 5 - Changes max party size to 5.
|
|
*
|
|
* ============================================================================
|
|
* Changelog
|
|
* ============================================================================
|
|
*
|
|
* Version 1.13:
|
|
* - Updated for RPG Maker MV version 1.5.0.
|
|
*
|
|
* Version 1.12:
|
|
* - Functions updated to maintain compatibility.
|
|
*
|
|
* Version 1.11:
|
|
* - 'Show Sprite' plugin parameter added for those who would wish to show/hide
|
|
* the sprites in the list on the left side of the menu.
|
|
* - Change for 'Remove Icon' plugin parameter: if the icon ID used here is 0,
|
|
* an icon will not be drawn at all and the text will be realigned to the left.
|
|
* - Game now refreshes all battlers upon reentry into the battle after
|
|
* entering and leaving the Party change menu mid-battle.
|
|
*
|
|
* Version 1.10:
|
|
* - Optimization update.
|
|
*
|
|
* Version 1.09:
|
|
* - Fixed a bug that caused party members to not index themselves properly in
|
|
* battle. When in battle, actor index will now refer to the index of their
|
|
* battle member positions.
|
|
*
|
|
* Version 1.08:
|
|
* - Added 'EXP Distribution' parameter into the plugin parameters. Enabling
|
|
* this will cause the EXP distributed to party members to be divided based on
|
|
* the number of alive members at the end of battle.
|
|
*
|
|
* Version 1.07:
|
|
* - Fixed a bug that caused music to not replay properly when accessing the
|
|
* Party change menu from battle.
|
|
*
|
|
* Version 1.06:
|
|
* - Fixed a bug with certain actors not drawing properly.
|
|
*
|
|
* Version 1.05:
|
|
* - Added 'Maximum Followers' parameter. This number should be the maximum
|
|
* number you have in your game if you ever increase the maximum party size
|
|
* midway through your game.
|
|
*
|
|
* Version 1.04:
|
|
* - Fixed a visual bug with mid-battle formation changing against backgrounds
|
|
* without battlebacks.
|
|
* - Formation changes during mid-battle will resume bgm/bgs currently played.
|
|
*
|
|
* Version 1.03:
|
|
* - Fixed a bug that would cause AutoBattlers to stall if they got added into
|
|
* the party mid-battle.
|
|
*
|
|
* Version 1.02:
|
|
* - Made a change so that the number of followers updates properly when you
|
|
* increase the maximum number of battle members.
|
|
*
|
|
* Version 1.01:
|
|
* - Added 'Battle Cooldown' plugin parameter.
|
|
* - Added 'ChangePartyMax x' plugin command.
|
|
* - Added feature where if you leave the class comand name empty, it will
|
|
* remove the command.
|
|
*
|
|
* Version 1.00:
|
|
* - Finished Plugin!
|
|
*/
|
|
//=============================================================================
|
|
|
|
//=============================================================================
|
|
// Parameter Variables
|
|
//=============================================================================
|
|
|
|
Yanfly.Parameters = PluginManager.parameters('YEP_PartySystem');
|
|
Yanfly.Param = Yanfly.Param || {};
|
|
Yanfly.Icon = Yanfly.Icon || {};
|
|
|
|
Yanfly.Param.MaxBattleMembers = Number(Yanfly.Parameters['Max Battle Members']);
|
|
Yanfly.Param.PartyShowBattle = String(Yanfly.Parameters['Show Battle Command']);
|
|
Yanfly.Param.PartyShowBattle = eval(Yanfly.Param.PartyShowBattle);
|
|
Yanfly.Param.PartyEnBattle = String(Yanfly.Parameters['Enable Battle Command']);
|
|
Yanfly.Param.PartyEnBattle = eval(Yanfly.Param.PartyEnBattle);
|
|
Yanfly.Param.PartyCooldown = Number(Yanfly.Parameters['Battle Cooldown']);
|
|
Yanfly.Param.PartyMaxFollower = Number(Yanfly.Parameters['Maximum Followers']);
|
|
Yanfly.Param.ParamExpDis = eval(String(Yanfly.Parameters['EXP Distribution']));
|
|
|
|
Yanfly.Param.PartyHelpWindow = String(Yanfly.Parameters['Help Window']);
|
|
Yanfly.Param.PartyHelpWindow = eval(Yanfly.Param.PartyHelpWindow);
|
|
Yanfly.Param.PartyTextAlign = String(Yanfly.Parameters['Text Alignment']);
|
|
Yanfly.Param.PartyCommand1 = String(Yanfly.Parameters['Change Command']);
|
|
Yanfly.Param.PartyCommand2 = String(Yanfly.Parameters['Remove Command']);
|
|
Yanfly.Param.PartyCommand3 = String(Yanfly.Parameters['Revert Command']);
|
|
Yanfly.Param.PartyCommand4 = String(Yanfly.Parameters['Finish Command']);
|
|
|
|
Yanfly.Param.PartyEmptyText = String(Yanfly.Parameters['Empty Text']);
|
|
Yanfly.Param.PartyShowFace = String(Yanfly.Parameters['Actor Face']);
|
|
Yanfly.Param.PartyShowFace = eval(Yanfly.Param.PartyShowFace);
|
|
Yanfly.Param.PartyShowCharacter = String(Yanfly.Parameters['Actor Sprite']);
|
|
Yanfly.Param.PartyShowCharacter = eval(Yanfly.Param.PartyShowCharacter);
|
|
|
|
Yanfly.Icon.PartyRemove = Number(Yanfly.Parameters['Remove Icon']);
|
|
Yanfly.Param.PartyShowListSprite = String(Yanfly.Parameters['Show Sprite']);
|
|
Yanfly.Param.PartyShowListSprite = eval(Yanfly.Param.PartyShowListSprite);
|
|
Yanfly.Param.PartySpriteBufferY = Number(Yanfly.Parameters['Sprite Y Buffer']);
|
|
Yanfly.Param.ColorInParty = Number(Yanfly.Parameters['In Party Text Color']);
|
|
|
|
Yanfly.Param.PartyLockFirst = String(Yanfly.Parameters['Lock First Actor']);
|
|
Yanfly.Param.PartyLockFirst = eval(Yanfly.Param.PartyLockFirst);
|
|
Yanfly.Icon.PartyLocked = Number(Yanfly.Parameters['Locked Icon']);
|
|
Yanfly.Icon.PartyRequired = Number(Yanfly.Parameters['Required Icon']);
|
|
|
|
Yanfly.Param.PartyDetailWin = String(Yanfly.Parameters['Enable Detail Window']);
|
|
Yanfly.Param.PartyDetailWin = eval(Yanfly.Param.PartyDetailWin);
|
|
Yanfly.Param.PartyListWidth = Number(Yanfly.Parameters['List Width']);
|
|
Yanfly.Param.PartyDetailParam = String(Yanfly.Parameters['Actor Parameters']);
|
|
Yanfly.Param.PartyDetailEquip = String(Yanfly.Parameters['Actor Equipment']);
|
|
|
|
//=============================================================================
|
|
// BattleManager
|
|
//=============================================================================
|
|
|
|
if (Yanfly.Param.ParamExpDis) {
|
|
|
|
Yanfly.Party.BattleManager_gainExp = BattleManager.gainExp;
|
|
BattleManager.gainExp = function() {
|
|
var alive = $gameParty.aliveMembers().length;
|
|
this._rewards.exp = Math.ceil(this._rewards.exp / alive);
|
|
Yanfly.Party.BattleManager_gainExp.call(this);
|
|
};
|
|
|
|
}; // Yanfly.Param.ParamExpDis
|
|
|
|
//=============================================================================
|
|
// Game_Temp
|
|
//=============================================================================
|
|
|
|
Game_Temp.prototype.hasStoredBattleSpriteset = function() {
|
|
return this._battleSpriteset;
|
|
};
|
|
|
|
Game_Temp.prototype.storeBattleSpriteset = function() {
|
|
this._battleSpriteset = SceneManager._scene._spriteset;
|
|
};
|
|
|
|
Game_Temp.prototype.restoreBattleSpriteset = function() {
|
|
if (this._battleSpriteset) {
|
|
SceneManager._scene._spriteset = this._battleSpriteset;
|
|
SceneManager._scene.addChild(SceneManager._scene._spriteset);
|
|
this._battleSpriteset = undefined;
|
|
}
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_System
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Game_System_initialize = Game_System.prototype.initialize;
|
|
Game_System.prototype.initialize = function() {
|
|
Yanfly.Party.Game_System_initialize.call(this);
|
|
this.initPartySettings();
|
|
};
|
|
|
|
Game_System.prototype.initPartySettings = function() {
|
|
this._showBattleFormation = Yanfly.Param.PartyShowBattle;
|
|
this._battleFormationEnabled = Yanfly.Param.PartyEnBattle;
|
|
};
|
|
|
|
Game_System.prototype.isShowBattleFormation = function() {
|
|
if (this._showBattleFormation === undefined) this.initPartySettings();
|
|
return this._showBattleFormation;
|
|
};
|
|
|
|
Game_System.prototype.setShowBattleFormation = function(value) {
|
|
if (this._showBattleFormation === undefined) this.initPartySettings();
|
|
this._showBattleFormation = value;
|
|
};
|
|
|
|
Game_System.prototype.isBattleFormationEnabled = function() {
|
|
if (this._battleFormationEnabled === undefined) this.initPartySettings();
|
|
if (this._battleFormationCooldown === undefined) {
|
|
this.resetBattleFormationCooldown();
|
|
}
|
|
if (this._battleFormationCooldown > 0) return false;
|
|
return this._battleFormationEnabled;
|
|
};
|
|
|
|
Game_System.prototype.setBattleFormationEnabled = function(value) {
|
|
if (this._battleFormationEnabled === undefined) this.initPartySettings();
|
|
this._battleFormationEnabled = value;
|
|
};
|
|
|
|
Game_System.prototype.resetBattleFormationCooldown = function() {
|
|
this._battleFormationCooldown = 0;
|
|
};
|
|
|
|
Game_System.prototype.updateBattleFormationCooldown = function() {
|
|
if (this._battleFormationCooldown === undefined) {
|
|
this.resetBattleFormationCooldown();
|
|
}
|
|
this._battleFormationCooldown--;
|
|
};
|
|
|
|
Game_System.prototype.setBattleFormationCooldown = function() {
|
|
this._battleFormationCooldown = Yanfly.Param.PartyCooldown;
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_Actor
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Game_Actor_setup = Game_Actor.prototype.setup;
|
|
Game_Actor.prototype.setup = function(actorId) {
|
|
Yanfly.Party.Game_Actor_setup.call(this, actorId);
|
|
this.initLocked();
|
|
};
|
|
|
|
Game_Actor.prototype.initLocked = function() {
|
|
this._locked = false;
|
|
this._required = false;
|
|
};
|
|
|
|
Yanfly.Party.Game_Actor_isFormationChangeOk =
|
|
Game_Actor.prototype.isFormationChangeOk;
|
|
Game_Actor.prototype.isFormationChangeOk = function() {
|
|
if (this._locked) return false;
|
|
return Yanfly.Party.Game_Actor_isFormationChangeOk.call(this);
|
|
};
|
|
|
|
Yanfly.Party.Game_Actor_index = Game_Actor.prototype.index;
|
|
Game_Actor.prototype.index = function() {
|
|
if ($gameParty.inBattle()) {
|
|
return $gameParty.battleMembers().indexOf(this);
|
|
} else {
|
|
return Yanfly.Party.Game_Actor_index.call(this);
|
|
}
|
|
return $gameParty.members().indexOf(this);
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_Party
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Game_Party_initialize = Game_Party.prototype.initialize;
|
|
Game_Party.prototype.initialize = function() {
|
|
Yanfly.Party.Game_Party_initialize.call(this);
|
|
this.initBattleMaxSize();
|
|
this.initializeBattleMembers();
|
|
};
|
|
|
|
Game_Party.prototype.initBattleMaxSize = function() {
|
|
this._BattleMaxSize = Yanfly.Param.MaxBattleMembers;
|
|
this.initializeBattleMembers();
|
|
};
|
|
|
|
Game_Party.prototype.changeBattleMax = function(value) {
|
|
this._BattleMaxSize = value;
|
|
this.initializeBattleMembers();
|
|
};
|
|
|
|
Game_Party.prototype.loadActorImages = function() {
|
|
for (var i = 0; i < this.members().length; ++i) {
|
|
var actor = this.members()[i];
|
|
if (!actor) continue;
|
|
ImageManager.loadFace(actor.faceName());
|
|
ImageManager.loadCharacter(actor.characterName());
|
|
}
|
|
};
|
|
|
|
Game_Party.prototype.battleMembers = function() {
|
|
if (this.toInitializeBattleMembers()) this.initializeBattleMembers();
|
|
var battleParty = [];
|
|
for (var i = 0; i < this._battleMembers.length; ++i) {
|
|
var actorId = this._battleMembers[i];
|
|
if (battleParty.length > this.maxBattleMembers()) break;
|
|
if (actorId === null) continue;
|
|
if (!$gameActors.actor(actorId)) continue;
|
|
if (!$gameActors.actor(actorId).isAppeared()) continue;
|
|
battleParty.push($gameActors.actor(actorId));
|
|
}
|
|
return battleParty;
|
|
};
|
|
|
|
Game_Party.prototype.maxBattleMembers = function() {
|
|
if (this._BattleMaxSize === undefined) this.initBattleMaxSize();
|
|
return Math.max(this._BattleMaxSize, 1);
|
|
};
|
|
|
|
Yanfly.Party.Game_Party_setupStartingMembers =
|
|
Game_Party.prototype.setupStartingMembers;
|
|
Game_Party.prototype.setupStartingMembers = function() {
|
|
Yanfly.Party.Game_Party_setupStartingMembers.call(this);
|
|
this.initializeBattleMembers();
|
|
if (Yanfly.Param.PartyLockFirst) this.lockActor(this._actors[0]);
|
|
};
|
|
|
|
Game_Party.prototype.toInitializeBattleMembers = function() {
|
|
if (this._battleMembers === null) return true;
|
|
if (!this._battleMembers) this.initializeBattleMembers();
|
|
return (this._battleMembers.length !== this.maxBattleMembers());
|
|
};
|
|
|
|
Yanfly.Party.Game_Party_setupBattleTestMembers =
|
|
Game_Party.prototype.setupBattleTestMembers;
|
|
Game_Party.prototype.setupBattleTestMembers = function() {
|
|
Yanfly.Party.Game_Party_setupBattleTestMembers.call(this);
|
|
if (Yanfly.Param.PartyLockFirst) this.lockActor(this._actors[0]);
|
|
for (var i = 0; i < $dataActors.length; ++i) {
|
|
var actor = $dataActors[i];
|
|
if (!actor) continue;
|
|
if (this._battleMembers.contains(actor.id)) continue;
|
|
this._actors.push(actor.id);
|
|
}
|
|
this.loadActorImages();
|
|
};
|
|
|
|
Game_Party.prototype.initializeBattleMembers = function() {
|
|
this._battleMembers = [];
|
|
for (var i = 0; i < this.maxBattleMembers(); ++i) {
|
|
if (this._actors[i]) {
|
|
this._battleMembers.push(this._actors[i]);
|
|
} else {
|
|
this._battleMembers.push(0);
|
|
}
|
|
}
|
|
if ($gamePlayer) $gamePlayer.refresh();
|
|
};
|
|
|
|
Yanfly.Party.Game_Party_addActor = Game_Party.prototype.addActor;
|
|
Game_Party.prototype.addActor = function(actorId) {
|
|
Yanfly.Party.Game_Party_addActor.call(this, actorId);
|
|
if (this._battleMembers.contains(actorId)) return;
|
|
if (!this._battleMembers.contains(0)) return;
|
|
var index = this._battleMembers.indexOf(0);
|
|
this._battleMembers[index] = actorId;
|
|
$gamePlayer.refresh();
|
|
$gameMap.requestRefresh();
|
|
this.rearrangeActors();
|
|
};
|
|
|
|
Yanfly.Party.Game_Party_removeActor = Game_Party.prototype.removeActor;
|
|
Game_Party.prototype.removeActor = function(actorId) {
|
|
Yanfly.Party.Game_Party_removeActor.call(this, actorId);
|
|
if (!this._battleMembers.contains(actorId)) return;
|
|
var index = this._battleMembers.indexOf(actorId);
|
|
this._battleMembers[index] = 0;
|
|
$gamePlayer.refresh();
|
|
$gameMap.requestRefresh();
|
|
this.rearrangeActors();
|
|
};
|
|
|
|
Game_Party.prototype.rearrangeActors = function() {
|
|
if (this._battleMembers === null) this.initializeBattleMembers();
|
|
var battleArray = [];
|
|
for (var i = 0; i < this._battleMembers.length; ++i) {
|
|
var actorId = this._battleMembers[i];
|
|
if (actorId === null) continue;
|
|
if ($gameActors.actor(actorId)) battleArray.push(actorId);
|
|
}
|
|
var reserveArray = [];
|
|
for (var i = 0; i < this._actors.length; ++i) {
|
|
var actorId = this._actors[i];
|
|
if (battleArray.contains(actorId)) continue;
|
|
if ($gameActors.actor(actorId) === null) continue;
|
|
reserveArray.push(actorId);
|
|
}
|
|
reserveArray = this.sortReserveParty(reserveArray);
|
|
this._actors = battleArray.concat(reserveArray);
|
|
};
|
|
|
|
Game_Party.prototype.sortReserveParty = function(party) {
|
|
party.sort(function(a, b) { return a - b; });
|
|
return party;
|
|
};
|
|
|
|
Game_Party.prototype.lockActor = function(actorId) {
|
|
var actor = $gameActors.actor(actorId);
|
|
if (actor) actor._locked = true;
|
|
};
|
|
|
|
Game_Party.prototype.reconstructActions = function(actorId) {
|
|
for (var i = 0; i < this.members().length; ++i) {
|
|
var member = this.members()[i];
|
|
if (!member) continue;
|
|
if (member.currentAction() && member.currentAction().item()) continue;
|
|
member.makeActions();
|
|
}
|
|
};
|
|
|
|
Yanfly.Party.Game_Party_swapOrder = Game_Party.prototype.swapOrder;
|
|
Game_Party.prototype.swapOrder = function(index1, index2) {
|
|
this.swapOrderBattleMembers(index1, index2);
|
|
Yanfly.Party.Game_Party_swapOrder.call(this, index1, index2);
|
|
this.rearrangeActors();
|
|
$gamePlayer.refresh();
|
|
};
|
|
|
|
Game_Party.prototype.swapOrderBattleMembers = function(index1, index2) {
|
|
var bm = this._battleMembers;
|
|
if (bm.length > index1 && bm.length > index2) {
|
|
var actorId1 = this._battleMembers[index1];
|
|
var actorId2 = this._battleMembers[index2];
|
|
} else if (bm.length > index1) {
|
|
var actorId1 = this._battleMembers[index1];
|
|
var actorId2 = this._actors[index2];
|
|
} else if (bm.length > index2) {
|
|
var actorId1 = this._actors[index1];
|
|
var actorId2 = this._battleMembers[index2];
|
|
}
|
|
if (bm.length > index1) this._battleMembers[index1] = actorId2;
|
|
if (bm.length > index2) this._battleMembers[index2] = actorId1;
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_Troop
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Game_Troop_increaseTurn = Game_Troop.prototype.increaseTurn;
|
|
Game_Troop.prototype.increaseTurn = function() {
|
|
Yanfly.Party.Game_Troop_increaseTurn.call(this);
|
|
$gameSystem.updateBattleFormationCooldown();
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_Player
|
|
//=============================================================================
|
|
|
|
Game_Followers.prototype.initialize = function() {
|
|
this._visible = $dataSystem.optFollowers;
|
|
this._gathering = false;
|
|
this._data = [];
|
|
var max = Yanfly.Param.PartyMaxFollower || $gameParty.maxBattleMembers();
|
|
for (var i = 1; i < max; i++) {
|
|
this._data.push(new Game_Follower(i));
|
|
}
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_Interpreter
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Game_Interpreter_pluginCommand =
|
|
Game_Interpreter.prototype.pluginCommand;
|
|
Game_Interpreter.prototype.pluginCommand = function(command, args) {
|
|
Yanfly.Party.Game_Interpreter_pluginCommand.call(this, command, args)
|
|
if (command === 'OpenPartyMenu') this.gotoSceneParty();
|
|
if (command === 'ChangePartyMax') $gameParty.changeBattleMax(args[0]);
|
|
if (command === 'LockActor') this.lockActor(args, true);
|
|
if (command === 'UnlockActor') this.lockActor(args, false);
|
|
if (command === 'RequireActor') this.requireActor(args, true);
|
|
if (command === 'UnrequireActor') this.requireActor(args, false);
|
|
if (command === 'ShowBattleFormation') {
|
|
$gameSystem.setShowBattleFormation(true);
|
|
}
|
|
if (command === 'HideBattleFormation') {
|
|
$gameSystem.setShowBattleFormation(false);
|
|
}
|
|
if (command === 'EnableBattleFormation') {
|
|
$gameSystem.setBattleFormationEnabled(true);
|
|
}
|
|
if (command === 'DisableBattleFormation') {
|
|
$gameSystem.setBattleFormationEnabled(false);
|
|
}
|
|
};
|
|
|
|
Game_Interpreter.prototype.gotoSceneParty = function() {
|
|
if ($gameParty.inBattle()) return;
|
|
$gameParty.loadActorImages();
|
|
SceneManager.push(Scene_Party);
|
|
};
|
|
|
|
Game_Interpreter.prototype.lockActor = function(args, value) {
|
|
for (i = 0; i < args.length; i++) {
|
|
var actorId = Number(args[i]);
|
|
if ($gameActors.actor(actorId)) {
|
|
$gameActors.actor(actorId)._locked = value;
|
|
}
|
|
}
|
|
};
|
|
|
|
Game_Interpreter.prototype.requireActor = function(args, value) {
|
|
for (i = 0; i < args.length; i++) {
|
|
var actorId = Number(args[i]);
|
|
if ($gameActors.actor(actorId)) {
|
|
$gameActors.actor(actorId)._required = value;
|
|
}
|
|
}
|
|
};
|
|
|
|
//=============================================================================
|
|
// Window_PartyMenuCommand
|
|
//=============================================================================
|
|
|
|
function Window_PartyMenuCommand() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Window_PartyMenuCommand.prototype = Object.create(Window_Command.prototype);
|
|
Window_PartyMenuCommand.prototype.constructor = Window_PartyMenuCommand;
|
|
|
|
Window_PartyMenuCommand.prototype.initialize = function(x, y) {
|
|
Window_Command.prototype.initialize.call(this, x, y);
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.windowWidth = function() {
|
|
var ww = $gameParty.maxBattleMembers() * Window_Base._faceWidth;
|
|
ww += this.standardPadding() * 2;
|
|
return (Graphics.boxWidth - ww).clamp(Graphics.boxWidth / 4, 240);
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.numVisibleRows = function() {
|
|
return 4;
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.itemTextAlign = function() {
|
|
return Yanfly.Param.PartyTextAlign;
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.makeCommandList = function() {
|
|
this.addChangeCommand();
|
|
this.addRemoveCommand();
|
|
this.addRevertCommand();
|
|
this.addCustomCommand();
|
|
this.addCancelCommand();
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.addChangeCommand = function() {
|
|
if (Yanfly.Param.PartyCommand1 === '') return;
|
|
this.addCommand(Yanfly.Param.PartyCommand1, 'change');
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.addRemoveCommand = function() {
|
|
if (Yanfly.Param.PartyCommand2 === '') return;
|
|
this.addCommand(Yanfly.Param.PartyCommand2, 'remove');
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.addRevertCommand = function() {
|
|
if (Yanfly.Param.PartyCommand3 === '') return;
|
|
this.addCommand(Yanfly.Param.PartyCommand3, 'revert');
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.addCustomCommand = function() {
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.addCancelCommand = function() {
|
|
var enabled = this.isCancelEnabled();
|
|
if (Yanfly.Param.PartyCommand4 === '') return;
|
|
this.addCommand(Yanfly.Param.PartyCommand4, 'cancel', enabled);
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.inParty = function(actor) {
|
|
return ($gameParty.battleMembers().contains(actor));
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.isCancelEnabled = function() {
|
|
if ($gameParty.aliveMembers().length <= 0) return false;
|
|
if ($gameParty.battleMembers().length <= 0) return false;
|
|
for (var i = 0; i < $gameParty._actors.length; ++i) {
|
|
var actorId = $gameParty._actors[i];
|
|
if (this.refuseCancel(actorId)) return false;
|
|
}
|
|
return true
|
|
};
|
|
|
|
Window_PartyMenuCommand.prototype.refuseCancel = function(actorId) {
|
|
if ($gameParty._battleMembers.contains(actorId)) return false;
|
|
if ($gameActors.actor(actorId)._required) return true;
|
|
return false;
|
|
};
|
|
|
|
//=============================================================================
|
|
// Window_PartySelect
|
|
//=============================================================================
|
|
|
|
function Window_PartySelect() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Window_PartySelect.prototype = Object.create(Window_Selectable.prototype);
|
|
Window_PartySelect.prototype.constructor = Window_PartySelect;
|
|
|
|
Window_PartySelect.prototype.initialize = function(commandWindow) {
|
|
var wx = commandWindow.width;
|
|
var wy = commandWindow.y;
|
|
var ww = Graphics.boxWidth - commandWindow.width;
|
|
var wh = commandWindow.height;
|
|
Window_Selectable.prototype.initialize.call(this, wx, wy, ww, wh);
|
|
this.select(-1);
|
|
this.deactivate();
|
|
this.refresh();
|
|
};
|
|
|
|
Window_PartySelect.prototype.maxCols = function() {
|
|
return $gameParty.maxBattleMembers();
|
|
};
|
|
|
|
Window_PartySelect.prototype.maxItems = function() {
|
|
return $gameParty.maxBattleMembers();
|
|
};
|
|
|
|
Window_PartySelect.prototype.itemRect = function(index) {
|
|
var rect = new Rectangle();
|
|
rect.width = this.contents.width / this.maxItems();
|
|
rect.height = this.contents.height;
|
|
rect.x = index * rect.width;
|
|
rect.y = 0;
|
|
return rect;
|
|
};
|
|
|
|
Window_PartySelect.prototype.refresh = function() {
|
|
this.makeItemList();
|
|
this.createContents();
|
|
this.drawAllItems();
|
|
};
|
|
|
|
Window_PartySelect.prototype.makeItemList = function() {
|
|
this._data = $gameParty._battleMembers.slice(0);
|
|
};
|
|
|
|
Window_PartySelect.prototype.drawItem = function(index) {
|
|
var actor = $gameActors.actor(this._data[index]);
|
|
var rect = this.itemRect(index);
|
|
rect.x += this.textPadding() / 2;
|
|
rect.y += this.textPadding() / 2;
|
|
rect.width -= this.textPadding();
|
|
rect.height -= this.textPadding();
|
|
if (actor) {
|
|
this.drawActor(rect, actor);
|
|
} else {
|
|
this.drawEmpty(rect);
|
|
}
|
|
};
|
|
|
|
Window_PartySelect.prototype.drawEmpty = function(rect) {
|
|
var color = this.gaugeBackColor();
|
|
this.changePaintOpacity(false);
|
|
this.contents.fillRect(rect.x, rect.y, rect.width, rect.height, color);
|
|
this.changePaintOpacity(true);
|
|
this.resetFontSettings();
|
|
var text = Yanfly.Param.PartyEmptyText
|
|
this.contents.drawText(text, rect.x, rect.y, rect.width,
|
|
rect.height, 'center');
|
|
};
|
|
|
|
Window_PartySelect.prototype.drawActor = function(rect, actor) {
|
|
if (Yanfly.Param.PartyShowFace) {
|
|
this.drawActorFace(actor, rect.x, rect.y, rect.width, rect.height);
|
|
}
|
|
if (Yanfly.Param.PartyShowCharacter) {
|
|
var ry = rect.height * 19/20;
|
|
this.drawActorCharacter(actor, rect.x + rect.width / 2, ry);
|
|
}
|
|
this.drawActorName(actor, rect.x, rect.y, rect.width);
|
|
this.drawLockedIcon(actor, rect);
|
|
this.drawRequiredIcon(actor, rect);
|
|
};
|
|
|
|
Window_PartySelect.prototype.drawLockedIcon = function(actor, rect) {
|
|
if (!actor._locked) return;
|
|
var ix = rect.x + rect.width - Window_Base._iconWidth - 2;
|
|
var iy = rect.y + rect.height - Window_Base._iconHeight - 2;
|
|
this.drawIcon(Yanfly.Icon.PartyLocked, ix, iy)
|
|
};
|
|
|
|
Window_PartySelect.prototype.drawRequiredIcon = function(actor, rect) {
|
|
if (!actor._required) return;
|
|
var ix = rect.x + 2;
|
|
var iy = rect.y + rect.height - Window_Base._iconHeight - 2;
|
|
this.drawIcon(Yanfly.Icon.PartyRequired, ix, iy)
|
|
};
|
|
|
|
Window_PartySelect.prototype.curActor = function() {
|
|
if (!this._data) return null;
|
|
var actorId = this._data[this._index];
|
|
return $gameActors.actor(actorId);
|
|
};
|
|
|
|
Window_PartySelect.prototype.prevActor = function() {
|
|
var id = this._index === 0 ? this._data.length - 1 : this._index - 1;
|
|
var actorId = this._data[id];
|
|
return $gameActors.actor(actorId);
|
|
};
|
|
|
|
Window_PartySelect.prototype.nextActor = function() {
|
|
var id = this._index === this._data.length - 1 ? 0 : this._index + 1;
|
|
var actorId = this._data[id];
|
|
return $gameActors.actor(actorId);
|
|
};
|
|
|
|
Window_PartySelect.prototype.processActor = function(value) {
|
|
return true;
|
|
};
|
|
|
|
Window_PartySelect.prototype.isCurrentItemEnabled = function() {
|
|
if (this.curActor()) return this.curActor().isFormationChangeOk();
|
|
return true;
|
|
};
|
|
|
|
Window_PartySelect.prototype.processPageup = function() {
|
|
if (this.curActor() && this.curActor()._locked) {
|
|
this.playBuzzerSound();
|
|
} else if (this.prevActor() && this.prevActor()._locked) {
|
|
this.playBuzzerSound();
|
|
} else if (this.processActor('prevActor')) {
|
|
Window_Selectable.prototype.processPageup.call(this);
|
|
this.activate();
|
|
this.select(this._index === 0 ? this._data.length - 1 : this._index - 1)
|
|
} else {
|
|
this.playBuzzerSound();
|
|
}
|
|
};
|
|
|
|
Window_PartySelect.prototype.processPagedown = function() {
|
|
if (this.curActor() && this.curActor()._locked) {
|
|
this.playBuzzerSound();
|
|
} else if (this.nextActor() && this.nextActor()._locked) {
|
|
this.playBuzzerSound();
|
|
} else if (this.processActor('nextActor')) {
|
|
Window_Selectable.prototype.processPagedown.call(this);
|
|
this.activate();
|
|
this.select(this._index === this._data.length - 1 ? 0 : this._index + 1)
|
|
} else {
|
|
this.playBuzzerSound();
|
|
}
|
|
};
|
|
|
|
Window_PartySelect.prototype.setDetailWindow = function(win) {
|
|
this._detailWindow = win;
|
|
this.callUpdateHelp();
|
|
};
|
|
|
|
Window_PartySelect.prototype.callUpdateHelp = function() {
|
|
this.setHelpWindowItem(this.curActor());
|
|
this.setDetailWindowItem(this.curActor());
|
|
};
|
|
|
|
Window_PartySelect.prototype.setHelpWindowItem = function(actor) {
|
|
if (this._helpWindow && actor) {
|
|
this._helpWindow.setText(actor.profile());
|
|
} else if (this._helpWindow) {
|
|
this._helpWindow.clear();
|
|
}
|
|
};
|
|
|
|
Window_PartySelect.prototype.setDetailWindowItem = function(actor) {
|
|
if (this._detailWindow) this._detailWindow.setActor(actor);
|
|
};
|
|
|
|
Window_PartySelect.prototype.item = function() {
|
|
var index = this.index();
|
|
return this._data && index >= 0 ? this._data[index] : null;
|
|
};
|
|
|
|
//=============================================================================
|
|
// Window_PartyList
|
|
//=============================================================================
|
|
|
|
function Window_PartyList() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Window_PartyList.prototype = Object.create(Window_Selectable.prototype);
|
|
Window_PartyList.prototype.constructor = Window_PartyList;
|
|
|
|
Window_PartyList.prototype.initialize = function(partyWindow) {;
|
|
var wy = partyWindow.y + partyWindow.height;
|
|
this._detailedWindow = Yanfly.Param.PartyDetailWin;
|
|
var ww = this.windowWidth();
|
|
var wh = Graphics.boxHeight - wy;
|
|
Window_Selectable.prototype.initialize.call(this, 0, wy, ww, wh);
|
|
this.select(1);
|
|
this.deactivate();
|
|
this.refresh();
|
|
};
|
|
|
|
Window_PartyList.prototype.windowWidth = function() {
|
|
if (this._detailedWindow) {
|
|
return Yanfly.Param.PartyListWidth;
|
|
} else {
|
|
return Graphics.boxWidth;
|
|
}
|
|
};
|
|
|
|
Window_PartyList.prototype.maxItems = function() {
|
|
return this._data ? this._data.length : 1;
|
|
};
|
|
|
|
Window_PartyList.prototype.refresh = function() {
|
|
this.makeItemList();
|
|
this.createContents();
|
|
this.drawAllItems();
|
|
};
|
|
|
|
Window_PartyList.prototype.makeItemList = function() {
|
|
this._data = [0];
|
|
this.createActorOrder();
|
|
this._data.push(0);
|
|
};
|
|
|
|
Window_PartyList.prototype.createActorOrder = function() {
|
|
for (var i = 0; i < $gameParty._actors.length; ++i) {
|
|
var actorId = $gameParty._actors[i];
|
|
if ($gameActors.actor(actorId)) this._data.push(actorId);
|
|
}
|
|
};
|
|
|
|
Window_PartyList.prototype.drawAllItems = function() {
|
|
var topIndex = this.topIndex();
|
|
for (var i = 0; i < this.maxPageItems(); i++) {
|
|
var index = topIndex + i;
|
|
if (index < this.maxItems()) {
|
|
this.drawItem(index);
|
|
this.clearItem(index + 1);
|
|
}
|
|
}
|
|
};
|
|
|
|
Window_PartyList.prototype.drawItem = function(index) {
|
|
var actor = $gameActors.actor(this._data[index]);
|
|
if (actor) {
|
|
var bitmap = ImageManager.loadCharacter(actor.characterName());
|
|
if (bitmap.width <= 0) {
|
|
return setTimeout(this.drawItem.bind(this, index), 5);
|
|
}
|
|
}
|
|
this.clearItem(index);
|
|
var rect = this.itemRect(index);
|
|
if (this._data[index] === 0) {
|
|
this.drawRemove(rect);
|
|
return;
|
|
}
|
|
this.drawActor(actor, rect);
|
|
};
|
|
|
|
Window_PartyList.prototype.drawRemove = function(rect) {
|
|
var ibw = Window_Base._iconWidth + 4;
|
|
if (Yanfly.Icon.PartyRemove <= 0) ibw = this.textPadding();
|
|
rect.width -= this.textPadding();
|
|
this.drawIcon(Yanfly.Icon.PartyRemove, rect.x + 2, rect.y + 2);
|
|
this.drawText(Yanfly.Param.PartyCommand2, rect.x + ibw, rect.y,
|
|
rect.width - ibw);
|
|
};
|
|
|
|
Window_PartyList.prototype.drawActor = function(actor, rect) {
|
|
this.drawBasic(actor, rect);
|
|
if (this._detailedWindow) return;
|
|
this.drawExtra(actor, rect);
|
|
};
|
|
|
|
Window_PartyList.prototype.drawBasic = function(actor, rect) {
|
|
var wx = Window_Base._iconWidth / 2 + this.textPadding() / 2;
|
|
var wy = rect.y + rect.height + Yanfly.Param.PartySpriteBufferY
|
|
if (Yanfly.Param.PartyShowListSprite) {
|
|
this.drawActorCharacter(actor, wx, wy);
|
|
}
|
|
this.changeTextColor(this.listColor(actor));
|
|
this.changePaintOpacity(this.actorIsEnabled(actor));
|
|
var ibw = Window_Base._iconWidth + 4;
|
|
if (!Yanfly.Param.PartyShowListSprite) ibw = this.textPadding();
|
|
this.drawText(actor.name(), rect.x + ibw, rect.y, rect.width - ibw);
|
|
this.changePaintOpacity(true);
|
|
this.drawRestrictions(actor, rect);
|
|
this.resetFontSettings();
|
|
};
|
|
|
|
Window_PartyList.prototype.drawExtra = function(actor, rect) {
|
|
var section = this.itemSection();
|
|
this.drawActorLevel(actor, section * 2, rect.y);
|
|
this.drawActorHp(actor, section * 3, rect.y, section - 6);
|
|
this.drawActorMp(actor, section * 4, rect.y, section - 6);
|
|
if ($dataSystem.optDisplayTp) {
|
|
this.drawActorTp(actor, section * 5, rect.y, section - 6);
|
|
}
|
|
this.drawRestrictions(actor, rect);
|
|
};
|
|
|
|
Window_PartyList.prototype.drawRestrictions = function(actor, rect) {
|
|
if (this._detailedWindow) {
|
|
var wx = this.contents.width - Window_Base._iconWidth - 2;
|
|
} else {
|
|
var section = this.itemSection();
|
|
var wx = section * 2 - Window_Base._iconWidth - 2;
|
|
}
|
|
if (actor._locked) {
|
|
this.drawIcon(Yanfly.Icon.PartyLocked, wx, rect.y);
|
|
wx -= Window_Base._iconWidth;
|
|
}
|
|
if (actor._required) {
|
|
this.drawIcon(Yanfly.Icon.PartyRequired, wx, rect.y);
|
|
}
|
|
};
|
|
|
|
Window_PartyList.prototype.itemSection = function() {
|
|
var sections = 5;
|
|
if ($dataSystem.optDisplayTp) sections += 1;
|
|
return this.contents.width / sections;
|
|
};
|
|
|
|
Window_PartyList.prototype.drawCurrentAndMax = function(current, max, x, y,
|
|
width, color1, color2) {
|
|
var labelWidth = this.textWidth('HP');
|
|
var valueWidth = this.textWidth(Yanfly.Util.toGroup(max));
|
|
var slashWidth = this.textWidth('/');
|
|
var x1 = x + width - valueWidth;
|
|
this.changeTextColor(color1);
|
|
this.drawText(Yanfly.Util.toGroup(current), x1, y, valueWidth, 'right');
|
|
};
|
|
|
|
Window_PartyList.prototype.listColor = function(actor) {
|
|
if (actor.isBattleMember()) {
|
|
return this.textColor(Yanfly.Param.ColorInParty);
|
|
}
|
|
return this.normalColor()
|
|
};
|
|
|
|
Window_PartyList.prototype.curActor = function() {
|
|
var actorId = this._data[this._index];
|
|
return $gameActors.actor(actorId);
|
|
};
|
|
|
|
Window_PartyList.prototype.isCurrentItemEnabled = function() {
|
|
if (this.curActor()) return this.curActor().isFormationChangeOk();
|
|
return true;
|
|
};
|
|
|
|
Window_PartyList.prototype.actorIsEnabled = function(actor) {
|
|
return actor.isAppeared();
|
|
};
|
|
|
|
Window_PartyList.prototype.setDetailWindow = function(win) {
|
|
this._detailWindow = win;
|
|
this.callUpdateHelp();
|
|
};
|
|
|
|
Window_PartyList.prototype.callUpdateHelp = function() {
|
|
this.setHelpWindowItem($gameActors.actor(this.item()));
|
|
this.setDetailWindowItem($gameActors.actor(this.item()));
|
|
};
|
|
|
|
Window_PartyList.prototype.setHelpWindowItem = function(actor) {
|
|
if (this._helpWindow && actor) {
|
|
this._helpWindow.setText(actor.profile());
|
|
} else if (this._helpWindow) {
|
|
this._helpWindow.clear();
|
|
}
|
|
};
|
|
|
|
Window_PartyList.prototype.setDetailWindowItem = function(actor) {
|
|
if (this._detailWindow) this._detailWindow.setActor(actor);
|
|
};
|
|
|
|
Window_PartyList.prototype.item = function() {
|
|
var index = this.index();
|
|
return this._data && index >= 0 ? this._data[index] : null;
|
|
};
|
|
|
|
//=============================================================================
|
|
// Window_PartyDetail
|
|
//=============================================================================
|
|
|
|
function Window_PartyDetail() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Window_PartyDetail.prototype = Object.create(Window_Base.prototype);
|
|
Window_PartyDetail.prototype.constructor = Window_PartyDetail;
|
|
|
|
Window_PartyDetail.prototype.initialize = function(x, y, width, height) {
|
|
Window_Base.prototype.initialize.call(this, x, y, width, height);
|
|
this._actor = null;
|
|
};
|
|
|
|
Window_PartyDetail.prototype.setActor = function(actor) {
|
|
if (this._actor === actor) return;
|
|
this._actor = actor;
|
|
this.refresh();
|
|
};
|
|
|
|
Window_PartyDetail.prototype.clear = function() {
|
|
this.contents.clear();
|
|
this.drawDarkRect(0, 0, this.contents.width, this.contents.height);
|
|
this.changeTextColor(this.systemColor());
|
|
var text = Yanfly.Param.PartyEmptyText
|
|
this.contents.drawText(text, 0, 0, this.contents.width,
|
|
this.contents.height, 'center');
|
|
};
|
|
|
|
Window_PartyDetail.prototype.refresh = function() {
|
|
if (!this._actor) return this.clear();
|
|
this.contents.clear();
|
|
this.drawActorBasicInfo();
|
|
this.calculateAvailableLines();
|
|
this.drawDarkRectangles();
|
|
this.drawActorParams();
|
|
this.drawActorEquips();
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawDarkRectangles = function() {
|
|
var ww = this.contents.width / 2;
|
|
var wy = this.lineHeight() * 4;
|
|
if (this._linesAvailable >= 7) wy += this.lineHeight();
|
|
if (this._linesAvailable === 4) wy += this.lineHeight();
|
|
var max = this._linesAvailable;
|
|
max = Math.min(this._linesAvailable, this._actor.equipSlots().length);
|
|
for (var i = 0; i < max; ++i) {
|
|
if (wy + this.lineHeight() > this.contents.height) break;
|
|
this.drawDarkRect(ww, wy, ww, this.lineHeight());
|
|
wy += this.lineHeight();
|
|
}
|
|
var wy = this.lineHeight() * 4;
|
|
if (this._linesAvailable >= 7) wy += this.lineHeight();
|
|
if (this._linesAvailable === 4) wy += this.lineHeight();
|
|
for (var i = 0; i < 6; ++i) {
|
|
var rect = this.paramRect(i);
|
|
this.drawDarkRect(rect.x, rect.y, rect.width, rect.height);
|
|
}
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawDarkRect = function(dx, dy, dw, dh) {
|
|
var color = this.gaugeBackColor();
|
|
this.changePaintOpacity(false);
|
|
this.contents.fillRect(dx + 1, dy + 1, dw - 2, dh - 2, color);
|
|
this.changePaintOpacity(true);
|
|
};
|
|
|
|
Window_PartyDetail.prototype.paramRect = function(index) {
|
|
var rect = new Rectangle();
|
|
rect.x = 0;
|
|
rect.y = this.lineHeight() * 4;
|
|
rect.height = this.lineHeight();
|
|
rect.width = this.contents.width / 2
|
|
if (this._linesAvailable >= 7) rect.y += this.lineHeight();
|
|
if (this._linesAvailable === 4) rect.y += this.lineHeight();
|
|
if (this._linesAvailable >= 6) {
|
|
rect.y += this.lineHeight() * index;
|
|
} else {
|
|
rect.width /= 2;
|
|
rect.x = index % 2 === 0 ? 0 : rect.width;
|
|
rect.y += this.lineHeight() * Math.floor(index / 2);
|
|
}
|
|
return rect;
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawActorBasicInfo = function() {
|
|
var w = this.width - this.padding * 2;
|
|
var h = this.height - this.padding * 2;
|
|
var y = 0;
|
|
var padding = 0;
|
|
var xpad = padding + Window_Base._faceWidth;
|
|
var width = w - 162 - this.textPadding();
|
|
h = Window_Base._faceHeight;
|
|
this.drawActorFace(this._actor, 0, 0, Window_Base._faceWidth, h);
|
|
this.drawActorSimpleStatus(this._actor, xpad, y, width);
|
|
};
|
|
|
|
Window_PartyDetail.prototype.calculateAvailableLines = function() {
|
|
if (this._linesAvailable) return;
|
|
this._linesAvailable = this.contents.height - this.lineHeight() * 4;
|
|
this._linesAvailable /= this.lineHeight();
|
|
this._linesAvailable = Math.floor(this._linesAvailable);
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawActorParams = function() {
|
|
this.drawActorParamsTitle();
|
|
for (var i = 0; i < 6; ++i) {
|
|
var rect = this.paramRect(i);
|
|
if (this._linesAvailable > 4) {
|
|
rect.x += 8;
|
|
rect.width -= 16;
|
|
} else {
|
|
rect.x += 4;
|
|
rect.width -= 8;
|
|
}
|
|
var paramId = i + 2;
|
|
var text = TextManager.param(paramId);
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(text, rect.x, rect.y, rect.width);
|
|
var paramValue = Yanfly.Util.toGroup(this._actor.param(paramId));
|
|
this.changeTextColor(this.normalColor());
|
|
this.drawText(paramValue, rect.x, rect.y, rect.width, 'right');
|
|
}
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawActorParamsTitle = function() {
|
|
var wy = this.lineHeight() * 4;
|
|
var ww = this.contents.width / 2;
|
|
if (this._linesAvailable >= 7) {
|
|
var text = Yanfly.Param.PartyDetailParam;
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(text, 0, wy, ww, 'center');
|
|
} else if (this._linesAvailable === 4) {
|
|
var text = Yanfly.Param.PartyDetailParam;
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(text, 0, wy, ww, 'center');
|
|
}
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawActorEquips = function() {
|
|
this.drawActorEquipsTitle();
|
|
var equips = this.getActorEquips();
|
|
this.drawActorEquipsList(equips);
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawActorEquipsTitle = function() {
|
|
var wy = this.lineHeight() * 4;
|
|
var ww = this.contents.width / 2;
|
|
if (this._linesAvailable >= 7) {
|
|
var text = Yanfly.Param.PartyDetailEquip;
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(text, ww, wy, ww, 'center');
|
|
} else if (this._linesAvailable === 4) {
|
|
var text = Yanfly.Param.PartyDetailEquip;
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(text, ww, wy, ww, 'center');
|
|
}
|
|
};
|
|
|
|
Window_PartyDetail.prototype.getActorEquips = function() {
|
|
var equips = [];
|
|
for (var i = 0; i < this._actor.equips().length; ++i) {
|
|
var equip = this._actor.equips()[i];
|
|
if (equip) equips.push(equip);
|
|
}
|
|
return equips;
|
|
};
|
|
|
|
Window_PartyDetail.prototype.drawActorEquipsList = function(equips) {
|
|
this._lastSlot = false;
|
|
var max = this._linesAvailable;
|
|
var ww = this.contents.width / 2;
|
|
var wh = this.lineHeight();
|
|
var wy = this.lineHeight() * 4;
|
|
var wx = ww + 6;
|
|
ww -= 12;
|
|
if (this._linesAvailable >= 7) {
|
|
max -= 1;
|
|
wy += this.lineHeight();
|
|
}
|
|
if (this._linesAvailable === 4) {
|
|
max -= 1;
|
|
wy += this.lineHeight();
|
|
}
|
|
for (var i = 0; i < equips.length; ++i) {
|
|
var equip = equips[i];
|
|
if (!equip) break;
|
|
if (i >= max - 1 && i < equips.length - 1) this._lastSlot = true;
|
|
if (this._lastSlot) {
|
|
var iconIndex = equip.iconIndex;
|
|
this.drawIcon(iconIndex, wx + 2, wy + 2);
|
|
wx += Window_Base._iconWidth;
|
|
continue;
|
|
} else if (this._lastSlot && i === equips.length - 1) {
|
|
var iconIndex = equip.iconIndex;
|
|
this.drawIcon(iconIndex, wx + 2, wy + 2);
|
|
wx += Window_Base._iconWidth;
|
|
} else {
|
|
this.drawItemName(equip, wx, wy, ww);
|
|
}
|
|
wy += this.lineHeight();
|
|
}
|
|
};
|
|
|
|
//=============================================================================
|
|
// Battle Engine Core Implementation
|
|
//=============================================================================
|
|
|
|
if (Imported.YEP_BattleEngineCore) {
|
|
|
|
//=============================================================================
|
|
// BattleManager
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.BattleManager_startBattle = BattleManager.startBattle;
|
|
BattleManager.startBattle = function() {
|
|
if (!$gameTemp._partyBattle) {
|
|
Yanfly.Party.BattleManager_startBattle.call(this);
|
|
}
|
|
$gameTemp._partyBattle = false;
|
|
this._bypassMoveToStartLocation = false;
|
|
BattleManager.refreshAllBattlers();
|
|
};
|
|
|
|
BattleManager.refreshAllBattlers = function() {
|
|
var members = $gameParty.members().concat($gameTroop.members());
|
|
var length = members.length;
|
|
for (var i = 0; i < length; ++i) {
|
|
var member = members[i];
|
|
if (member) member.refresh();
|
|
}
|
|
};
|
|
|
|
Yanfly.Party.BattleManager_playBattleBgm = BattleManager.playBattleBgm;
|
|
BattleManager.playBattleBgm = function() {
|
|
var restartBgm = true;
|
|
if (Yanfly.Party.SavedBattleBgm) {
|
|
AudioManager.playBgm(Yanfly.Party.SavedBattleBgm);
|
|
Yanfly.Party.SavedBattleBgm = undefined;
|
|
restartBgm = false;
|
|
}
|
|
if (Yanfly.Party.SavedBattleBgs) {
|
|
AudioManager.playBgs(Yanfly.Party.SavedBattleBgs);
|
|
Yanfly.Party.SavedBattleBgs = undefined;
|
|
restartBgm = false;
|
|
}
|
|
if (restartBgm) Yanfly.Party.BattleManager_playBattleBgm.call(this);
|
|
};
|
|
|
|
//=============================================================================
|
|
// Game_Unit
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Game_Unit_onBattleStart = Game_Unit.prototype.onBattleStart;
|
|
Game_Unit.prototype.onBattleStart = function() {
|
|
if ($gameTemp._partyBattle) return;
|
|
Yanfly.Party.Game_Unit_onBattleStart.call(this);
|
|
$gameSystem.resetBattleFormationCooldown();
|
|
};
|
|
|
|
Yanfly.Party.Game_Unit_onBattleEnd = Game_Unit.prototype.onBattleEnd;
|
|
Game_Unit.prototype.onBattleEnd = function() {
|
|
if ($gameTemp._partyBattle) return;
|
|
Yanfly.Party.Game_Unit_onBattleEnd.call(this);
|
|
$gameSystem.resetBattleFormationCooldown();
|
|
};
|
|
|
|
//=============================================================================
|
|
// Window_Command
|
|
//=============================================================================
|
|
|
|
Window_Command.prototype.addCommandAt = function(index, name, symbol, en, ext) {
|
|
if (en === undefined) enabled = true;
|
|
if (ext === undefined) ext = null;
|
|
var obj = { name: name, symbol: symbol, enabled: en, ext: ext};
|
|
this._list.splice(index, 0, obj);
|
|
};
|
|
|
|
//=============================================================================
|
|
// Window_PartyCommand
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Window_PartyCommand_makeCommandList =
|
|
Window_PartyCommand.prototype.makeCommandList;
|
|
Window_PartyCommand.prototype.makeCommandList = function() {
|
|
Yanfly.Party.Window_PartyCommand_makeCommandList.call(this);
|
|
this.addFormationCommand();
|
|
};
|
|
|
|
Window_PartyCommand.prototype.addFormationCommand = function() {
|
|
if (!$gameSystem.isShowBattleFormation()) return;
|
|
var index = this.findSymbol('escape');
|
|
var enabled = $gameSystem.isBattleFormationEnabled();
|
|
this.addCommandAt(index, TextManager.formation, 'formation', enabled);
|
|
};
|
|
|
|
//=============================================================================
|
|
// Sprite_Actor
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Sprite_Actor_moveToStartPosition =
|
|
Sprite_Actor.prototype.moveToStartPosition;
|
|
Sprite_Actor.prototype.moveToStartPosition = function() {
|
|
if (BattleManager._bypassMoveToStartLocation) return;
|
|
Yanfly.Party.Sprite_Actor_moveToStartPosition.call(this);
|
|
};
|
|
|
|
//=============================================================================
|
|
// Spriteset_Battle
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Spriteset_Battle_createBackground =
|
|
Spriteset_Battle.prototype.createBackground;
|
|
Spriteset_Battle.prototype.createBackground = function() {
|
|
Yanfly.Party.Spriteset_Battle_createBackground.call(this);
|
|
if (Yanfly.Party.SavedBackgroundBitmap) {
|
|
var spr = this._backgroundSprite;
|
|
spr.bitmap = Yanfly.Party.SavedBackgroundBitmap;
|
|
Yanfly.Party.SavedBackgroundBitmap = undefined;
|
|
}
|
|
};
|
|
|
|
//=============================================================================
|
|
// Scene_Map
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Scene_Map_create = Scene_Map.prototype.create;
|
|
Scene_Map.prototype.create = function() {
|
|
Yanfly.Party.Scene_Map_create.call(this);
|
|
$gameParty.loadActorImages();
|
|
};
|
|
|
|
//=============================================================================
|
|
// Scene_Battle
|
|
//=============================================================================
|
|
|
|
Yanfly.Party.Scene_Battle_createDisplayObjects =
|
|
Scene_Battle.prototype.createDisplayObjects;
|
|
Scene_Battle.prototype.createDisplayObjects = function() {
|
|
Yanfly.Party.Scene_Battle_createDisplayObjects.call(this);
|
|
$gameParty.loadActorImages();
|
|
};
|
|
|
|
Yanfly.Party.Scene_Battle_createSpriteset =
|
|
Scene_Battle.prototype.createSpriteset;
|
|
Scene_Battle.prototype.createSpriteset = function() {
|
|
if ($gameTemp.hasStoredBattleSpriteset()) {
|
|
$gameTemp.restoreBattleSpriteset();
|
|
} else {
|
|
Yanfly.Party.Scene_Battle_createSpriteset.call(this);
|
|
}
|
|
};
|
|
|
|
Yanfly.Party.Scene_Battle_createPartyCommandWindow =
|
|
Scene_Battle.prototype.createPartyCommandWindow;
|
|
Scene_Battle.prototype.createPartyCommandWindow = function() {
|
|
Yanfly.Party.Scene_Battle_createPartyCommandWindow.call(this);
|
|
var win = this._partyCommandWindow;
|
|
win.setHandler('formation', this.partyCommandFormation.bind(this));
|
|
};
|
|
|
|
Scene_Battle.prototype.partyCommandFormation = function() {
|
|
BattleManager._bypassMoveToStartLocation = true;
|
|
$gameParty.loadActorImages();
|
|
this.prepareBackground();
|
|
BattleManager._savedActor = BattleManager.actor();
|
|
$gameSystem.setBattleFormationCooldown();
|
|
Yanfly.Party.SavedBattleBgm = AudioManager.saveBgm();
|
|
Yanfly.Party.SavedBattleBgs = AudioManager.saveBgs();
|
|
$gameTemp.storeBattleSpriteset();
|
|
SceneManager.push(Scene_Party);
|
|
BattleManager._phase = 'input';
|
|
$gameTemp._partyBattle = true;
|
|
};
|
|
|
|
Scene_Battle.prototype.prepareBackground = function() {
|
|
Yanfly.Party.SavedBackgroundBitmap = SceneManager._backgroundBitmap;
|
|
this._prevWindowLayer = this._windowLayer.y;
|
|
this._windowLayer.y = Graphics.boxHeight * 495;
|
|
SceneManager.snapForBackground();
|
|
this._windowLayer.y = this._prevWindowLayer;
|
|
};
|
|
|
|
}; // Imported.YEP_BattleEngineCore
|
|
|
|
//=============================================================================
|
|
// Scene_Menu
|
|
//=============================================================================
|
|
|
|
Scene_Menu.prototype.commandFormation = function() {
|
|
$gameParty.loadActorImages();
|
|
SceneManager.push(Scene_Party);
|
|
};
|
|
|
|
//=============================================================================
|
|
// Scene_Party
|
|
//=============================================================================
|
|
|
|
function Scene_Party() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Scene_Party.prototype = Object.create(Scene_MenuBase.prototype);
|
|
Scene_Party.prototype.constructor = Scene_Party;
|
|
|
|
Scene_Party.prototype.initialize = function() {
|
|
Scene_MenuBase.prototype.initialize.call(this);
|
|
this._formerParty = $gameParty._battleMembers.slice(0);
|
|
};
|
|
|
|
Scene_Party.prototype.create = function() {
|
|
Scene_MenuBase.prototype.create.call(this);
|
|
if (Yanfly.Param.PartyHelpWindow) this.createHelpWindow();
|
|
this.createCommandWindow();
|
|
this.createPartyWindow();
|
|
this.createListWindow();
|
|
this.createDetailWindow();
|
|
};
|
|
|
|
Scene_Party.prototype.createCommandWindow = function() {
|
|
this._commandWindow = new Window_PartyMenuCommand(0, 0);
|
|
if (this._helpWindow) this._commandWindow.y = this._helpWindow.height;
|
|
this._commandWindow.setHandler('change', this.commandAdjust.bind(this));
|
|
this._commandWindow.setHandler('remove', this.commandAdjust.bind(this));
|
|
this._commandWindow.setHandler('revert', this.commandRevert.bind(this));
|
|
this._commandWindow.setHandler('cancel', this.commandFinish.bind(this));
|
|
this.addWindow(this._commandWindow);
|
|
};
|
|
|
|
Scene_Party.prototype.createPartyWindow = function() {
|
|
this._partyWindow = new Window_PartySelect(this._commandWindow);
|
|
if (this._helpWindow) this._partyWindow.setHelpWindow(this._helpWindow);
|
|
this._partyWindow.setHandler('ok', this.onPartyOk.bind(this));
|
|
this._partyWindow.setHandler('cancel', this.onPartyCancel.bind(this));
|
|
this._partyWindow.setHandler('pageup', this.onPartyPageUp.bind(this));
|
|
this._partyWindow.setHandler('pagedown', this.onPartyPageDown.bind(this));
|
|
this.addWindow(this._partyWindow);
|
|
};
|
|
|
|
Scene_Party.prototype.createListWindow = function() {
|
|
this._listWindow = new Window_PartyList(this._partyWindow);
|
|
if (this._helpWindow) this._listWindow.setHelpWindow(this._helpWindow);
|
|
this._listWindow.setHandler('ok', this.onListOk.bind(this));
|
|
this._listWindow.setHandler('cancel', this.onListCancel.bind(this));
|
|
this.addWindow(this._listWindow);
|
|
};
|
|
|
|
Scene_Party.prototype.createDetailWindow = function() {
|
|
if (!Yanfly.Param.PartyDetailWin) return;
|
|
var wx = this._listWindow.width;
|
|
var wy = this._listWindow.y;
|
|
var ww = Graphics.boxWidth - wx;
|
|
var wh = Graphics.boxHeight - wy;
|
|
this._detailWindow = new Window_PartyDetail(wx, wy, ww, wh);
|
|
this.addWindow(this._detailWindow);
|
|
this._partyWindow.setDetailWindow(this._detailWindow);
|
|
this._listWindow.setDetailWindow(this._detailWindow);
|
|
this._detailWindow.clear();
|
|
};
|
|
|
|
Scene_Party.prototype.refreshWindows = function() {
|
|
$gameParty.rearrangeActors();
|
|
this._commandWindow.refresh();
|
|
this._partyWindow.refresh();
|
|
this._listWindow.refresh();
|
|
$gamePlayer.refresh();
|
|
$gameMap.requestRefresh();
|
|
};
|
|
|
|
Scene_Party.prototype.commandAdjust = function() {
|
|
this._partyWindow.activate();
|
|
this._partyWindow.select(0);
|
|
};
|
|
|
|
Scene_Party.prototype.commandRevert = function() {
|
|
this._commandWindow.activate();
|
|
$gameParty._battleMembers = this._formerParty.slice(0);
|
|
this.refreshWindows();
|
|
};
|
|
|
|
Scene_Party.prototype.commandFinish = function() {
|
|
if ($gameParty.inBattle()) {
|
|
$gameParty.reconstructActions();
|
|
if (BattleManager._savedActor) {
|
|
BattleManager._actorIndex = BattleManager._savedActor.index();
|
|
}
|
|
}
|
|
this.popScene();
|
|
};
|
|
|
|
Scene_Party.prototype.onPartyOk = function() {
|
|
var symbol = this._commandWindow.currentSymbol();
|
|
if (symbol === 'change') {
|
|
this._listWindow.activate()
|
|
} else if (symbol === 'remove') {
|
|
SoundManager.playEquip();
|
|
var index = this._partyWindow._index;
|
|
var actor = $gameActors.actor($gameParty._battleMembers[index]);
|
|
$gameParty._battleMembers[index] = 0
|
|
this.refreshWindows();
|
|
this._partyWindow.activate();
|
|
}
|
|
};
|
|
|
|
Scene_Party.prototype.onPartyCancel = function() {
|
|
this._partyWindow.select(-1);
|
|
this._commandWindow.activate();
|
|
if (this._helpWindow) this._helpWindow.setItem(null);
|
|
};
|
|
|
|
Scene_Party.prototype.onPartyPageUp = function() {
|
|
SoundManager.playEquip();
|
|
var actorId1 = this._partyWindow.item();
|
|
if (!this._partyWindow.prevActor()) {
|
|
var actorId2 = 0;
|
|
} else {
|
|
var actorId2 = this._partyWindow.prevActor().actorId();
|
|
}
|
|
var max = this._partyWindow.maxItems() - 1;
|
|
var index1 = this._partyWindow._index;
|
|
var index2 = this._partyWindow._index === 0 ? max : index1 - 1;
|
|
$gameParty._battleMembers[index1] = actorId2;
|
|
$gameParty._battleMembers[index2] = actorId1;
|
|
this.refreshWindows();
|
|
};
|
|
|
|
Scene_Party.prototype.onPartyPageDown = function() {
|
|
SoundManager.playEquip();
|
|
var actorId1 = this._partyWindow.item();
|
|
if (!this._partyWindow.nextActor()) {
|
|
var actorId2 = 0;
|
|
} else {
|
|
var actorId2 = this._partyWindow.nextActor().actorId();
|
|
}
|
|
var max = this._partyWindow.maxItems() - 1;
|
|
var index1 = this._partyWindow._index;
|
|
var index2 = this._partyWindow._index === max ? 0 : index1 + 1;
|
|
$gameParty._battleMembers[index1] = actorId2;
|
|
$gameParty._battleMembers[index2] = actorId1;
|
|
this.refreshWindows();
|
|
};
|
|
|
|
Scene_Party.prototype.onListCancel = function() {
|
|
this._partyWindow.activate();
|
|
};
|
|
|
|
Scene_Party.prototype.onListOk = function() {
|
|
SoundManager.playEquip();
|
|
if (this._listWindow.item() <= 0) {
|
|
this.otherAction();
|
|
} else {
|
|
this.switchActors();
|
|
}
|
|
this.refreshWindows();
|
|
this._partyWindow.activate();
|
|
};
|
|
|
|
Scene_Party.prototype.otherAction = function() {
|
|
if (this._listWindow.item() === 0) {
|
|
$gameParty._battleMembers[this._partyWindow._index] = 0;
|
|
}
|
|
};
|
|
|
|
Scene_Party.prototype.switchActors = function() {
|
|
var targetId = this._listWindow.item();
|
|
var targetIndex = this._partyWindow._index;
|
|
if ($gameParty._battleMembers.contains(targetId)) {
|
|
var switchId = this._partyWindow.item();
|
|
var switchIndex = $gameParty._battleMembers.indexOf(targetId);
|
|
$gameParty._battleMembers[switchIndex] = switchId;
|
|
};
|
|
$gameParty._battleMembers[targetIndex] = targetId;
|
|
};
|
|
|
|
//=============================================================================
|
|
// Utilities
|
|
//=============================================================================
|
|
|
|
Yanfly.Util = Yanfly.Util || {};
|
|
|
|
if (!Yanfly.Util.toGroup) {
|
|
Yanfly.Util.toGroup = function(inVal) {
|
|
return inVal;
|
|
}
|
|
};
|
|
|
|
//=============================================================================
|
|
// End of File
|
|
//=============================================================================
|