//-----------------------------------------------------------------------------
// Window_ActorCommand
//
// The window for selecting an actor's action on the battle screen.
/**
* The window for selecting an actor's action on the battle screen.
*
* @class
* @extends Window_Command
*/
function Window_ActorCommand() {
this.initialize(...arguments);
}
Window_ActorCommand.prototype = Object.create(Window_Command.prototype);
Window_ActorCommand.prototype.constructor = Window_ActorCommand;
Window_ActorCommand.prototype.initialize = function(rect) {
Window_Command.prototype.initialize.call(this, rect);
this.openness = 0;
this.deactivate();
this._actor = null;
};
/**
* Make the commands in the window
*/
Window_ActorCommand.prototype.makeCommandList = function() {
if (this._actor) {
this.addAttackCommand();
this.addSkillCommands();
this.addGuardCommand();
this.addItemCommand();
}
};
/**
* Adds the attack command to the command list
*/
Window_ActorCommand.prototype.addAttackCommand = function() {
this.addCommand(TextManager.attack, "attack", this._actor.canAttack());
};
/**
* Adds the skill commands to the command list
*/
Window_ActorCommand.prototype.addSkillCommands = function() {
const skillTypes = this._actor.skillTypes();
for (const stypeId of skillTypes) {
const name = $dataSystem.skillTypes[stypeId];
this.addCommand(name, "skill", true, stypeId);
}
};
/**
* Adds the guard command to the command list
*/
Window_ActorCommand.prototype.addGuardCommand = function() {
this.addCommand(TextManager.guard, "guard", this._actor.canGuard());
};
/**
* Adds the item command to the command list
*/
Window_ActorCommand.prototype.addItemCommand = function() {
this.addCommand(TextManager.item, "item");
};
/**
* Set up the window
*
* @param {Game_Actor} actor - The actor to show commands for
*/
Window_ActorCommand.prototype.setup = function(actor) {
this._actor = actor;
this.refresh();
this.selectLast();
this.activate();
this.open();
};
/**
* Get the actor object
*
* @return {Game_Actor} The actor object
*/
Window_ActorCommand.prototype.actor = function() {
return this._actor;
};
Window_ActorCommand.prototype.processOk = function() {
if (this._actor) {
if (ConfigManager.commandRemember) {
this._actor.setLastCommandSymbol(this.currentSymbol());
} else {
this._actor.setLastCommandSymbol("");
}
}
Window_Command.prototype.processOk.call(this);
};
/**
* Selects the last command if remembered
*/
Window_ActorCommand.prototype.selectLast = function() {
this.forceSelect(0);
if (this._actor && ConfigManager.commandRemember) {
const symbol = this._actor.lastCommandSymbol();
this.selectSymbol(symbol);
if (symbol === "skill") {
const skill = this._actor.lastBattleSkill();
if (skill) {
this.selectExt(skill.stypeId);
}
}
}
};