brainwashing-school/js/plugins/MOG_TreasureHud.js
2025-05-30 08:36:40 -05:00

411 lines
No EOL
14 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.

//=============================================================================
// MOG_TreasureHud.js
//=============================================================================
/*:
* @target MZ
* @plugindesc (v1.1) Apresenta uma Hud com os tesouros adquiridos no jogo.
* @author Moghunter
* @url https://mogplugins.wordpress.com
*
* @param Hud X-Axis
* @desc Definição da posição X-Axis da Hud.
* @default 555
*
* @param Hud Y-Axis
* @desc Definição da posição Y-Axis da Hud.
* @default 500
*
* @param Name X-Axis
* @desc Definição da posição X-Axis do nome.
* @default 78
*
* @param Name Y-Axis
* @desc Definição da posição Y-Axis do nome.
* @default 24
*
* @param Icon X-Axis
* @desc Definição da posição X-Axis do ícone.
* @default 42
*
* @param Icon Y-Axis
* @desc Definição da posição Y-Axis do ícone.
* @default 24
*
* @param Duration
* @desc Definição do tempo de apresentação.
* @default 90
*
* @param Gold Icon Index
* @desc Definição da Index da ícone que representa o dinheiro.
* @default 163
*
* @param Font Size
* @desc Definição do tamanho da fonte.
* @default 20
*
* @command TreasureHudVisible
* @desc Apresentar ou ocultar a hud.
* @text Show / Hide
*
* @arg visible
* @desc Apresentar ou ocultar a hud.
* @text Visible
* @default true
* @type boolean
*
* @help
* =============================================================================
* +++ MOG Treasure Hud (v1.1) +++
* By Moghunter
* https://mogplugins.wordpress.com
* =============================================================================
* Apresenta uma Hud com os tesouros adquiridos no jogo.
* Serão necessários os arquivos. (img/system/)
*
* Treasure.png
*
* =============================================================================
* * HISTÓRICO
* =============================================================================
* (v1.1) Correção na função sort relativo a codificação.
*
*/
//=============================================================================
// ** PLUGIN PARAMETERS
//=============================================================================
  var Imported = Imported || {};
  Imported.MOG_TreasureHud = true;
  var Moghunter = Moghunter || {};
 Moghunter.parameters = PluginManager.parameters('MOG_TreasureHud');
Moghunter.thud_pos_x = Number(Moghunter.parameters['Hud X-Axis'] || 555);
Moghunter.thud_pos_y = Number(Moghunter.parameters['Hud Y-Axis'] || 500);
Moghunter.thud_text_x = Number(Moghunter.parameters['Name X-Axis'] || 78);
Moghunter.thud_text_y = Number(Moghunter.parameters['Name Y-Axis'] || 22);
Moghunter.thud_icon_x = Number(Moghunter.parameters['Icon X-Axis'] || 42);
Moghunter.thud_icon_y = Number(Moghunter.parameters['Icon Y-Axis'] || 22);
Moghunter.thud_duration = Number(Moghunter.parameters['Duration'] || 90);
Moghunter.thud_gold_index = Number(Moghunter.parameters['Gold Icon Index'] || 163);
Moghunter.thud_fontsize = Number(Moghunter.parameters['Font Size'] || 20);
//=============================================================================
// ■■■ PluginManager ■■■
//=============================================================================
PluginManager.registerCommand('MOG_TreasureHud', "TreasureHudVisible", data => {
var vis = String(data.visible) == "true" ? true : false;
$gameSystem._thud_visible = vis;
});
//=============================================================================
// ■■■ Game_System ■■■
//=============================================================================
//==============================
// ♦ ALIAS ♦ Initialize
//==============================
var _alias_mog_thud_sys_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function() {
_alias_mog_thud_sys_initialize.call(this);
this._thud_visible = true;
this._thud_int = false;
};
//=============================================================================
// ■■■ Game_Temp ■■■
//=============================================================================
//==============================
// ♦ ALIAS ♦ Initialize
//==============================
var _alias_mog_thud_temp_initialize = Game_Temp.prototype.initialize;
Game_Temp.prototype.initialize = function() {
_alias_mog_thud_temp_initialize.call(this);
this._thud_sprite = [false,0,0];
this._thud_data = [false,null,0];
};
//=============================================================================
// ■■■ Game_Interpreter ■■■
//=============================================================================
//==============================
// ♦ ALIAS ♦ Command125
//==============================
var _alias_mog_thud_command125 = Game_Interpreter.prototype.command125;
Game_Interpreter.prototype.command125 = function(params) {
$gameTemp._thud_int = true;
_alias_mog_thud_command125.call(this,params);
return true;
};
//==============================
// ♦ ALIAS ♦ Command126
//==============================
var _alias_mog_thud_command126 = Game_Interpreter.prototype.command126;
Game_Interpreter.prototype.command126 = function(params) {
$gameTemp._thud_int = true;
_alias_mog_thud_command126.call(this,params);
return true;
};
//==============================
// ♦ ALIAS ♦ Command127
//==============================
var _alias_mog_thud_command127 = Game_Interpreter.prototype.command127;
Game_Interpreter.prototype.command127 = function(params) {
$gameTemp._thud_int = true;
_alias_mog_thud_command127.call(this,params);
return true;
};
//==============================
// ♦ ALIAS ♦ Command128
//==============================
var _alias_mog_thud_command128 = Game_Interpreter.prototype.command128;
Game_Interpreter.prototype.command128 = function(params) {
$gameTemp._thud_int = true;
_alias_mog_thud_command128.call(this,params);
return true;
};
//=============================================================================
// ■■■ Game_Party ■■■
//=============================================================================
//==============================
// ♦ ALIAS ♦ Gain Item
//==============================
var _alias_mog_thud_gparty_gainItem = Game_Party.prototype.gainItem;
Game_Party.prototype.gainItem = function(item, amount, includeEquip) {
_alias_mog_thud_gparty_gainItem.call(this,item, amount, includeEquip);
if ($gameSystem._thud_visible && !this.inBattle() && $gameTemp._thud_int && amount > 0) {$gameTemp._thud_data = [true,item,amount]};
$gameTemp._thud_int = false;
};
//==============================
// ♦ ALIAS ♦ Gain Gold
//==============================
var _alias_mog_thud_gainGold = Game_Party.prototype.gainGold;
Game_Party.prototype.gainGold = function(amount) {
_alias_mog_thud_gainGold.call(this,amount);
if ($gameSystem._thud_visible && !this.inBattle() && amount > 0) {$gameTemp._thud_data = [true,"gold",amount]};
$gameTemp._thud_int = 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((a, b) => a.z - b.z);
};
//=============================================================================
// ■■■ Scene Map ■■■
//=============================================================================
//==============================
// ♦ ALIAS ♦ create Spriteset
//==============================
var _mog_treHud_sMap_createSpriteset = Scene_Map.prototype.createSpriteset;
Scene_Map.prototype.createSpriteset = function() {
_mog_treHud_sMap_createSpriteset.call(this);
if (!this._hudField) {this.createHudField()};
this.createtreasureHud();
this.sortMz();
};
//==============================
// ♦ ALIAS ♦ snapForBattleBackground
//==============================
var _mog_treHud_scnMap_snapForBattleBackground = Scene_Map.prototype.snapForBattleBackground;
Scene_Map.prototype.snapForBattleBackground = function() {
if (this._hudField && SceneManager.isNextScene(Scene_Battle)) {this._hudField.visible = false};
_mog_treHud_scnMap_snapForBattleBackground.call(this);
};
//==============================
// * create Treasure Hud
//==============================
Scene_Map.prototype.createtreasureHud = function() {
this._treasure_hud = new Treasure_Hud();
this._treasure_hud.z = 121;
this._hudField.addChild(this._treasure_hud);
};
//=============================================================================
// ■■■ Treasure_Hud ■■■
//=============================================================================
function Treasure_Hud() {
this.initialize.apply(this, arguments);
};
Treasure_Hud.prototype = Object.create(Sprite.prototype);
Treasure_Hud.prototype.constructor = Treasure_Hud;
//==============================
// ♦ ALIAS ♦ Initialize
//==============================
Treasure_Hud.prototype.initialize = function() {
Sprite.prototype.initialize.call(this);
this._pos_x = Moghunter.thud_pos_x;
this._pos_y = Moghunter.thud_pos_y;
this.load_img();
this.create_sprites();
this.opacity = 0;
this.visible = false;
this.refresh();
};
//==============================
// * Load Img
//==============================
Treasure_Hud.prototype.load_img = function() {
this._layout_img = ImageManager.loadSystem("Treasure");
this._icon_img = ImageManager.loadSystem("IconSet");
};
//==============================
// * Create Layout
//==============================
Treasure_Hud.prototype.create_layout = function() {
this._layout = new Sprite(this._layout_img);
this._layout.x = this._pos_x;
this._layout.y = this._pos_y;
this.addChild(this._layout);
};
//==============================
// * Create Text
//==============================
Treasure_Hud.prototype.create_text = function() {
this._text = new Sprite(new Bitmap(160,32));
this._text.x = this._pos_x + Moghunter.thud_text_x;
this._text.y = this._pos_y + Moghunter.thud_text_y;
this._text.bitmap.fontSize = Moghunter.thud_fontsize;
this.addChild(this._text);
};
//==============================
// * Create Icon
//==============================
Treasure_Hud.prototype.create_icon = function() {
this._icon = new Sprite(this._icon_img);
this._icon.x = this._pos_x + Moghunter.thud_icon_x;
this._icon.y = this._pos_y + Moghunter.thud_icon_y;
this.addChild(this._icon);
};
//==============================
// * Create Sprites
//==============================
Treasure_Hud.prototype.create_sprites = function() {
this.create_layout();
this.create_icon();
this.create_text();
};
//==============================
// * Item
//==============================
Treasure_Hud.prototype.item = function() {
return $gameTemp._thud_data[1];
};
//==============================
// * Number
//==============================
Treasure_Hud.prototype.number = function() {
return $gameTemp._thud_data[2];
};
//==============================
// * Name
//==============================
Treasure_Hud.prototype.name = function() {
if (this.item() === "gold") {return ""};
return "x " + $gameTemp._thud_data[1].name;
};
//==============================
// * Refresh Init
//==============================
Treasure_Hud.prototype.refresh_init = function() {
$gameTemp._thud_data[0] = false;
$gameTemp._thud_sprite = [true,0,0];
this.x = -50;
this.opacity = 0;
};
//==============================
// * Refresh
//==============================
Treasure_Hud.prototype.refresh = function() {
if ($gameTemp._thud_data[0]) {this.refresh_init()};
if (!this.item()) {return};
this.refresh_icon();
this.refresh_name();
this.opacity = $gameTemp._thud_sprite[1];
if (!$gameTemp._thud_sprite[0]) {this.opacity = 0};
};
//==============================
// * Refresh Icon
//==============================
Treasure_Hud.prototype.refresh_icon = function() {
if (this.item() === "gold") {var iconIndex = Moghunter.thud_gold_index;
} else {var iconIndex = this.item().iconIndex};
var sx = iconIndex % 16 * 32;
var sy = Math.floor(iconIndex / 16) * 32;
this._icon.setFrame(sx, sy, 32, 32);
};
//==============================
// * Refresh Name
//==============================
Treasure_Hud.prototype.refresh_name = function() {
this._text.bitmap.clear();
var text = String(this.number() + " " + this.name());
this._text.bitmap.drawText(text,0,0,160,32,"left");
};
//==============================
// * Update visible
//==============================
Treasure_Hud.prototype.update_position = function() {
$gameTemp._thud_sprite[1] += 1;
if ($gameTemp._thud_sprite[1] < 20) {
this.opacity += 13; this.x += 2.5;
} else if ($gameTemp._thud_sprite[1] < 20 + Moghunter.thud_duration) {
this.x = 0; this.opacity = 255;
} else {
this.opacity -= 13; this.x += 2.5;
if (this.opacity === 0) {$gameTemp._thud_sprite[0] = false};
};
};
//==============================
// * Update
//==============================
Treasure_Hud.prototype.update = function() {
Sprite.prototype.update.call(this);
if ($gameTemp._thud_sprite[0]) {this.update_position()
} else {this.opacity = 0};
if ($gameTemp._thud_data[0]) {this.refresh()};
this.visible = true;
};