ultimate-angel-zerachiel/www/js/plugins/MOG_ActionName.js
2024-01-17 11:38:37 -06:00

448 lines
14 KiB
JavaScript

//=============================================================================
// MOG_ActionName.js
//=============================================================================
/*:
* @plugindesc (v1.3) Apresenta uma janela com nome da ação.
* @author Moghunter
*
* @param Layout X-Axis
* @desc Posição X-Axis do layout.
* @default 420
*
* @param Layout Y-Axis
* @desc Posição Y-Axis do layout.
* @default 64
*
* @param Name X-Axis
* @desc Posição X-Axis do Nome.
* @default 0
*
* @param Name Y-Axis
* @desc Posição Y-Axis do Nome.
* @default 24
*
* @param Icon X-Axis
* @desc Posição X-Axis do Ícone.
* @default 0
*
* @param Icon Y-Axis
* @desc Posição Y-Axis do Ícone.
* @default -4
*
* @param Font Size
* @desc Definição do tamanho da fonte.
* @default 22
*
* @help
* =============================================================================
* +++ MOG - Action Name (v1.3) +++
* By Moghunter
* https://atelierrgss.wordpress.com/
* =============================================================================
* Apresenta uma janela com nome da ação.
* Será necessário ter o arquivo. (img/system/)
*
* ActionName.png
*
* =============================================================================
* Desativar o Nome
* =============================================================================
* Inicialmente todas as ações terão o nome ativado, no caso de querer desativar
* algum nome, utilize o comentário abaixo na caixa de notas do Item/Habilidade.
*
* Disable Name
*
* =============================================================================
* HISTÓRICO
* =============================================================================
* (v1.3) - Correção da transparência inicial da imagem.
* (v1.2) - Melhoria na codificação e na compatibilidade de plugins.
* (v1.1) - Compatibilidade com o Chrono Engine.
*/
//=============================================================================
// ** PLUGIN PARAMETERS
//=============================================================================
var Imported = Imported || {};
Imported.MOG_ActionName = true;
var Moghunter = Moghunter || {};
Moghunter.parameters = PluginManager.parameters("MOG_ActionName");
Moghunter.skillName_x = Number(Moghunter.parameters["Layout X-Axis"] || 420);
Moghunter.skillName_y = Number(Moghunter.parameters["Layout Y-Axis"] || 64);
Moghunter.skillName_name_x = Number(Moghunter.parameters["Name X-Axis"] || 0);
Moghunter.skillName_name_y = Number(Moghunter.parameters["Name Y-Axis"] || 24);
Moghunter.skillName_icon_x = Number(Moghunter.parameters["Icon X-Axis"] || 0);
Moghunter.skillName_icon_y = Number(Moghunter.parameters["Icon Y-Axis"] || -4);
Moghunter.skillName_FontSize = Number(Moghunter.parameters["Font Size"] || 22);
Moghunter.skillName_duration = Number(
Moghunter.parameters["ABS Mode Duration"] || 120
);
//=============================================================================
// ** Game Temp
//=============================================================================
//==============================
// * Initialize
//==============================
var _alias_mog_skillname_initialize = Game_Temp.prototype.initialize;
Game_Temp.prototype.initialize = function () {
_alias_mog_skillname_initialize.call(this);
this._skillNameData = [false, null, false];
this._skillNameDuration = [0, Number(Moghunter.skillName_duration), 0];
};
//=============================================================================
// ** Battle Manager
//=============================================================================
//==============================
// ** Start Action
//==============================
var _mog_skillName_bmngr_startAction = BattleManager.startAction;
BattleManager.startAction = function () {
this.setSkillName();
_mog_skillName_bmngr_startAction.call(this);
};
//==============================
// * set Skill Name
//==============================
BattleManager.setSkillName = function () {
if (!this._subject.currentAction() || !this._subject.currentAction().item()) {
return;
}
var item = this._subject.currentAction().item();
var notes = item.note.split(/[\r\n]+/);
var enableName = true;
notes.forEach(function (note) {
if (note == "Disable Name") {
enableName = false;
}
}, this);
if (enableName) {
$gameTemp._skillNameData = [true, item, true];
}
};
//==============================
// * End Turn
//==============================
var _mog_skillName_bmngr_endAction = BattleManager.endAction;
BattleManager.endAction = function () {
_mog_skillName_bmngr_endAction.call(this);
$gameTemp._skillNameData = [false, null, false];
};
//=============================================================================
// ** Scene Base
//=============================================================================
//==============================
// ** create Hud Field
//==============================
Scene_Base.prototype.createHudField = function () {
this._hudField = new Sprite();
this._hudField.z = 10;
this.addChild(this._hudField);
};
//==============================
// ** sort MZ
//==============================
Scene_Base.prototype.sortMz = function () {
this._hudField.children.sort(function (a, b) {
return a.mz - b.mz;
});
};
//==============================
// * create Action Name
//==============================
Scene_Base.prototype.createActionName = function () {
this._spriteSkillName = new SpriteSkillName();
this._spriteSkillName.mz = 140;
this._hudField.addChild(this._spriteSkillName);
};
//=============================================================================
// ** SpriteSet Base
//=============================================================================
//==============================
// ** create Hud Field
//==============================
Spriteset_Base.prototype.createHudField = function () {
this._hudField = new Sprite();
this._hudField.z = 10;
this.addChild(this._hudField);
};
//==============================
// ** sort MZ
//==============================
Spriteset_Base.prototype.sortMz = function () {
this._hudField.children.sort(function (a, b) {
return a.mz - b.mz;
});
};
//==============================
// * create Action Name
//==============================
Spriteset_Base.prototype.createActionName = function () {
this._spriteSkillName = new SpriteSkillName();
this._spriteSkillName.mz = 130;
this._hudField.addChild(this._spriteSkillName);
};
//=============================================================================
// ** Scene Battle
//=============================================================================
//==============================
// ** create Spriteset
//==============================
var _mog_actionName_sbattle_createSpriteset =
Scene_Battle.prototype.createSpriteset;
Scene_Battle.prototype.createSpriteset = function () {
_mog_actionName_sbattle_createSpriteset.call(this);
if (!this._hudField) {
this.createHudField();
}
this.createActionName();
this.sortMz();
};
//=============================================================================
// ** SpriteSet Map
//=============================================================================
//==============================
// ** create Lower Layer
//==============================
var _mog_ActionName_sprMap_createLowerLayer =
Spriteset_Map.prototype.createLowerLayer;
Spriteset_Map.prototype.createLowerLayer = function () {
_mog_ActionName_sprMap_createLowerLayer.call(this);
if (!this._hudField) {
this.createHudField();
}
if (Imported.MOG_ChronoEngine) {
this.createActionName();
this.sortMz();
}
};
//=============================================================================
// * Sprite Skill Name
//=============================================================================
function SpriteSkillName() {
this.initialize.apply(this, arguments);
}
SpriteSkillName.prototype = Object.create(Sprite.prototype);
SpriteSkillName.prototype.constructor = SpriteSkillName;
//==============================
// * Initialize
//==============================
SpriteSkillName.prototype.initialize = function () {
Sprite.prototype.initialize.call(this);
this.loadImages();
this.createLayout();
this.createName();
this.createIcon();
this.visible = false;
this._wait = 0;
if ($gameTemp._skillNameDuration[0] > 0 && $gameTemp._skillNameDuration[1]) {
$gameTemp._skillNameData[0] = true;
}
};
//==============================
// * Load Images
//==============================
SpriteSkillName.prototype.loadImages = function () {
this._iconImg = ImageManager.loadSystem("IconSet");
this._layoutImg = ImageManager.loadSystem("ActionNameA");
};
//==============================
// * Item
//==============================
SpriteSkillName.prototype.item = function () {
return $gameTemp._skillNameData[1];
};
//==============================
// * is Visible
//==============================
SpriteSkillName.prototype.isVisible = function () {
if (this._wait > 0) {
return false;
}
if (Imported.MOG_ChronoEngine) {
if ($gameSystem.isChronoMode()) {
if (
$gameSystem._chronoMode.inTurn &&
$gameTemp._skillNameDuration[0] > 0
) {
return true;
}
} else {
if ($gameTemp._skillNameDuration[0] > 0) {
return true;
}
}
return false;
}
return $gameTemp._skillNameData[2];
};
//==============================
// * get Name Data
//==============================
SpriteSkillName.prototype.getNameData = function () {
this._nameData = [0, 0, 0, 0];
this._nameData[0] = this._layoutImg.width;
this._nameData[1] = Math.floor(this._layoutImg.height / 3);
this._nameData[2] = Moghunter.skillName_x;
this._nameData[3] = Moghunter.skillName_y;
this._name.bitmap = new Bitmap(160, 32);
this._name.bitmap.fontSize = Moghunter.skillName_FontSize;
this._name.y = this._nameData[3] + Moghunter.skillName_name_y;
this._icon.x = this._nameData[2] + Moghunter.skillName_icon_x;
this._icon.y = this._nameData[3] + Moghunter.skillName_icon_y;
};
//==============================
// * refresh Skill Name
//==============================
SpriteSkillName.prototype.refreshSkillName = function () {
$gameTemp._skillNameData[0] = false;
this._name.bitmap.clear();
this._layout.opacity = 0;
if (!this.item()) {
return;
}
var text = this.item().name;
var textsize = text.length * 7 + this._nameData[0];
var wsize = Math.min(Math.max(textsize, 48), 160);
var wposX = wsize / 2 + Math.floor(this._nameData[0] / 2);
for (var i = 0; i < this._layout.length; i++) {
this._layout[i].x = this._nameData[2];
this._layout[i].y = this._nameData[3];
if (i === 0) {
this._layout[i].setFrame(0, 0, this._nameData[0], this._nameData[1]);
this._layout[i].x -= wposX;
} else if (i === 1) {
this._layout[i].setFrame(
0,
this._nameData[1],
this._nameData[0],
this._nameData[1]
);
this._layout[i].x += wposX;
} else {
this._layout[i].setFrame(
0,
this._nameData[1] * 2,
this._nameData[0],
this._nameData[1]
);
this._layout[i].scale.x = wsize / this._nameData[0];
}
}
this._name.bitmap.drawText(this.item().name, 0, 0, 160, 32, "center");
this._name.x = this._nameData[2] + Moghunter.skillName_name_x;
this._wait = 4;
var w = Window_Base._iconWidth;
var h = Window_Base._iconHeight;
var sx = (this.item().iconIndex % 16) * w;
var sy = Math.floor(this.item().iconIndex / 16) * h;
this._icon.setFrame(sx, sy, w, h);
};
//==============================
// * create Layout
//==============================
SpriteSkillName.prototype.createLayout = function () {
this._layout = [];
for (var i = 0; i < 3; i++) {
this._layout[i] = new Sprite(this._layoutImg);
this._layout[i].anchor.x = 0.5;
this._layout[i].opacity = 0;
this._layout[i].z = 20;
this.addChild(this._layout[i]);
}
};
//==============================
// * create Name
//==============================
SpriteSkillName.prototype.createName = function () {
this._name = new Sprite();
this._name.x = this._layout[0].x + Moghunter.skillName_name_x;
this._name.y = this._layout[0].y + Moghunter.skillName_name_y;
this._name.anchor.x = 0.5;
this._name.z = 21;
this._name.opacity = 0;
this.addChild(this._name);
};
//==============================
// * create Icon
//==============================
SpriteSkillName.prototype.createIcon = function () {
this._icon = new Sprite(this._iconImg);
this._icon.x = this._layout[0].x + Moghunter.skillName_icon_x;
this._icon.y = this._layout[0].y + Moghunter.skillName_icon_y;
this._icon.anchor.x = 0.5;
this._icon.z = 21;
this._icon.opacity = 0;
this.addChild(this._icon);
};
//==============================
// * Update
//==============================
SpriteSkillName.prototype.updateVisible = function () {
if (this._wait > 0) {
this._wait--;
}
if (this.isVisible()) {
this._layout[0].opacity += 20;
} else {
this._layout[0].opacity -= 20;
}
for (var i = 1; i < this._layout.length; i++) {
this._layout[i].opacity = this._layout[0].opacity;
}
this._name.opacity = this._layout[0].opacity;
this._icon.opacity = this._layout[0].opacity;
};
//==============================
// * Update
//==============================
SpriteSkillName.prototype.update = function () {
Sprite.prototype.update.call(this);
if (!this._nameData) {
if (this._layoutImg.isReady()) {
this.getNameData();
}
return;
}
if ($gameTemp._skillNameData[0]) {
this.refreshSkillName();
}
if ($gameTemp._skillNameDuration[0] > 0) {
$gameTemp._skillNameDuration[0]--;
}
this.updateVisible();
this.visible = true;
this.visible = this._layout[0].y === 0 ? false : true;
};