//============================================================================= // ** Scene_OmoMenuEquip //----------------------------------------------------------------------------- // The scene class of the equipment screen. //============================================================================= function Scene_OmoMenuEquip() { this.initialize.apply(this, arguments); } Scene_OmoMenuEquip.prototype = Object.create(Scene_OmoMenuBase.prototype); Scene_OmoMenuEquip.prototype.constructor = Scene_OmoMenuEquip; //============================================================================= // * Create //============================================================================= Scene_OmoMenuEquip.prototype.create = function() { // Super Call Scene_OmoMenuBase.prototype.create.call(this); // this._back = new Sprite(new Bitma p(Graphics.width, Graphics.height)) // this._back.bitmap.fillAll('rgba(255, 255, 255, 1)') // this.addChild(this._back); // this._center = new Sprite(new Bitmap(Graphics.width, Graphics.height)) // var spacing = 10; // this._center.bitmap.fillRect(0, 0, spacing, Graphics.height, 'rgba(255, 0, 0, 1)') // this._center.bitmap.fillRect(this._center.width - spacing, 0, spacing, Graphics.height, 'rgba(255, 0, 0, 1)') // this.addChild(this._center) this.createHelpWindow(); this.createCommandWindow(); this.createStatusWindows(); // Create Windows this.createActorEquipWindow(); this.createActorEquipStatusWindow(); this.createActorEquipItemWindow(); }; //============================================================================= // * Initialize Atlas Lists //============================================================================= Scene_OmoMenuEquip.prototype.initAtlastLists = function() { // Run Original Function Scene_OmoMenuBase.prototype.initAtlastLists.call(this); // Add Required Atlas this.addRequiredAtlas('itemCharms'); this.addRequiredAtlas('itemWeapon'); }; //============================================================================= // * Start //============================================================================= Scene_OmoMenuEquip.prototype.start = function() { // Super Call Scene_OmoMenuBase.prototype.start.call(this); // Get Actor Index var index = this._statusWindow.index(); // If Index is more than 0 if (index >= 0) { this.showActorEquipWindow(index); } else { this._statusWindow.select(0); this._statusWindow.activate(); }; // Set Selected Inxed this._selectedIndex = index >= 0 ? index : 0; }; //============================================================================= // * Create Status Window //============================================================================= Scene_OmoMenuEquip.prototype.createStatusWindows = function() { // Super Call Scene_OmoMenuBase.prototype.createStatusWindows.call(this); this._statusWindow.setHandler('ok', this.onStatusWindowOk.bind(this)); this._statusWindow.setHandler('cancel', this.onStatusWindowCancel.bind(this)); }; //============================================================================= // * Create Help Window //============================================================================= Scene_OmoMenuEquip.prototype.createHelpWindow = function() { // Super Call Scene_OmoMenuBase.prototype.createHelpWindow.call(this); // Adjust Help Window this._helpWindow.width = (Graphics.width - 175); this._helpWindow.height = 109; this._helpWindow.x = 10; this._helpWindow.y = Graphics.height - 244; this._helpWindow.createContents(); this._helpWindow.width = 0; }; //============================================================================= // * Create Actor Equip Window //============================================================================= Scene_OmoMenuEquip.prototype.createActorEquipWindow = function() { // Create Actor Equip Window this._actorEquipWindow = new Window_OmoMenuActorEquip(); this._actorEquipWindow.x = 10 this._actorEquipWindow.y = Graphics.height; this._actorEquipWindow.setHandler('ok', this.onActorEquipWindowOk.bind(this)); this._actorEquipWindow.setHandler('cancel', this.onActorEquipWindowCancel.bind(this)); this._actorEquipWindow.setHelpWindow(this._helpWindow); this.addChild(this._actorEquipWindow); this._actorEquipWindow.select(0); this._actorEquipWindow.deactivate(); }; //============================================================================= // * Create Actor Equip Status Window //============================================================================= Scene_OmoMenuEquip.prototype.createActorEquipStatusWindow = function() { // Create Actor Equip status Window this._actorEquipStatus = new Window_OmoMenuEquipStatus(); this._actorEquipStatus.x = 180//(Graphics.width - this._actorEquipStatus.width) - 11; this._actorEquipStatus.y = 66//this._actorEquipWindow.y + this._actorEquipWindow.height; this.addChild(this._actorEquipStatus); // Set Actor Equip Window Status Window this._actorEquipWindow._statusWindow = this._actorEquipStatus; this._actorEquipWindow.updateHelp(); }; //============================================================================= // * Create Actor Equip Item Window //============================================================================= Scene_OmoMenuEquip.prototype.createActorEquipItemWindow = function() { // Create Actor Equip Item Window this._actorEquipItemWindow = new Window_OmoMenuActorEquipItem(); this._actorEquipItemWindow.x = 0; this._actorEquipItemWindow.y = Graphics.height - this._actorEquipItemWindow.height; this._actorEquipItemWindow.width = 0; this._actorEquipItemWindow.setHandler('ok', this.onActorEquipItemWindowOk.bind(this)); this._actorEquipItemWindow.setHandler('cancel', this.onActorEquipItemWindowCancel.bind(this)); this._actorEquipItemWindow.setHelpWindow(this._helpWindow); this._actorEquipItemWindow.setStatusWindow(this._actorEquipStatus); this.addChildAt(this._actorEquipItemWindow, 3); }; //============================================================================= // * Actor Equip Window - Ok //============================================================================= Scene_OmoMenuEquip.prototype.onStatusWindowOk = function() { // Update Selected Index this._selectedIndex = this._statusWindow.index(); // Show Actor Equip Window this.showActorEquipWindow(this._selectedIndex); }; //============================================================================= // * Actor Equip Window - Cancel //============================================================================= Scene_OmoMenuEquip.prototype.onStatusWindowCancel = function() { this.popScene(); this._statusWindow.deselect(); this._statusWindow.deactivate(); SceneManager._nextScene._commandWindow = this._commandWindow; SceneManager._nextScene._statusWindow = this._statusWindow; }; //============================================================================= // * Actor Equip Window - Ok //============================================================================= Scene_OmoMenuEquip.prototype.onActorEquipWindowOk = function() { // Get Actor var actor = this._actorEquipWindow.actor(); // Get Slot Id var slotId = this._actorEquipWindow.slotIdAtIndex(); this._actorEquipItemWindow.open(); this._actorEquipItemWindow.setActor(actor); this._actorEquipItemWindow.setSlotId(slotId); this._actorEquipItemWindow.select(0); this._actorEquipItemWindow.activate(); this.showHelpWindow(15); this.showItemListWindow(15); }; //============================================================================= // * Actor Equip Window - Cancel //============================================================================= Scene_OmoMenuEquip.prototype.onActorEquipWindowCancel = function() { let index = this._selectedIndex; let win = this._statusWindow._statusWindows[index] if(!!this._actorEquipWindow.actor()) { this._selectedIndex = this._actorEquipWindow.actor().index(); } this.hideActorEquipWindow(this._selectedIndex); }; //============================================================================= // * Actor Equip Item Window - Ok //============================================================================= Scene_OmoMenuEquip.prototype.onActorEquipItemWindowOk = function() { // Get Actor var actor = this._actorEquipWindow.actor(); // Get Slot Id var slotId = this._actorEquipWindow.slotIdAtIndex() + 1; // If Equipment slot is locked if (actor.isEquipTypeLocked(slotId)) { SoundManager.playBuzzer(); this._actorEquipItemWindow.activate(); return; } else { // Play Equip Sound SoundManager.playEquip(); // Equip Item actor.changeEquip(slotId - 1, this._actorEquipItemWindow.item()); this._actorEquipItemWindow.refresh(); this._actorEquipItemWindow.activate(); this._actorEquipStatus.refresh(); this._actorEquipWindow.refresh(); this._statusWindow.refresh(); }; }; //============================================================================= // * Actor Equip Item Window - Cancel //============================================================================= Scene_OmoMenuEquip.prototype.onActorEquipItemWindowCancel = function() { this._actorEquipWindow.activate(); this._actorEquipItemWindow.deselect(); this._actorEquipStatus.setTempActor(null); this.hideItemListWindow(15); if (!this._actorEquipWindow.equipmentAtIndex()) { this.hideHelpWindow(15); }; }; //============================================================================= // * On Equip Cursor Change //============================================================================= Scene_OmoMenuEquip.prototype.onEquipCursorChange = function() { if (this._actorEquipWindow.equipmentAtIndex()) { this.showHelpWindow(15); } else { this.hideHelpWindow(15); }; }; //============================================================================= // * Show Item List Window //============================================================================= Scene_OmoMenuEquip.prototype.showItemListWindow = function(duration) { // Set Default Duration if (duration === undefined) { duration = 15; }; // Show Item List Window this.showInfoWindow(this._actorEquipItemWindow, duration); }; //============================================================================= // * Hide Item List Window //============================================================================= Scene_OmoMenuEquip.prototype.hideItemListWindow = function(duration) { // Set Default Duration if (duration === undefined) { duration = 15; }; // Hide Item List Window this.hideInfoWindow(this._actorEquipItemWindow, duration); }; //============================================================================= // * Show Actor Equip Window //============================================================================= Scene_OmoMenuEquip.prototype.showActorEquipWindow = function(index) { // For Refreshing the cursor //this._actorEquipWindow.activate(); this._actorEquipWindow.select(0); this._actorEquipWindow.update(); this._actorEquipWindow.deactivate(); // On Equip Cursor Change Function this._actorEquipWindow._onEquipCursorChange = this.onEquipCursorChange.bind(this); // Set Function Index list index this.setFunctionListIndex(0); // Set Actor Equip Window Index this._actorEquipWindow.setActorIndex(index); // Deactivate & selected Status Window this._statusWindow.deactivate() this._statusWindow.deselect(); // Hide All Actors Except The selected one this.queue(function() { var windows = this._statusWindow._statusWindows; for (var i2 = 0; i2 < windows.length; i2++) { this.hideActorStatus(i2); }; // Show Actor this.showActorStatus(index, 10); this._statusWindow._statusWindows[index].animateFace(true); }.bind(this)) this.queue('setWaitMode', 'movement'); // Get Equipment var equip = this._actorEquipWindow.equipmentAtIndex(); // Set Duration var duration = 15; if (index > 0) { // Move Actor Window to the First position this.queue(function() { // Get Object var obj = this._statusWindow._statusWindows[index]; // Create Movement Data var data = { obj: obj, properties: ['x', 'y', 'contentsOpacity'], from: {x: obj.x, y: obj.y, contentsOpacity: obj.contentsOpacity}, to: {x: 10, y: -obj.height, contentsOpacity: 255}, durations: {x: duration, y: duration, contentsOpacity: duration}, easing: Object_Movement.easeOutCirc }; this.move.startMove(data); }.bind(this)) this.queue('setWaitMode', 'movement'); }; // Move Actor Window up to show equip window this.queue(function() { // Get Object var obj = this._statusWindow._statusWindows[index]; // Create Movement Data var data = { obj: obj, properties: ['y'], from: {y: obj.y}, to: {y: -244}, durations: {y: duration}, easing: Object_Movement.easeInCirc }; // Start Move this.move.startMove(data); // Get Object var obj = this._actorEquipWindow // Create Movement Data var data = { obj: obj, properties: ['y'], from: {y: obj.y}, to: {y: Graphics.height - this._actorEquipWindow.height}, durations: {y: duration}, easing: Object_Movement.easeInCirc }; // Start Move this.move.startMove(data); }.bind(this)) this.queue('setWaitMode', 'movement'); // If Equipment Exists Show help window if (equip) { this.queue('showHelpWindow', 15); }; this.queue('setWaitMode', 'movement'); // Show Help window this.queue(function() { this._actorEquipWindow.activate(); this._actorEquipStatus.open(); }.bind(this)) // Clear Function List Index this.clearFunctionListIndex(); }; //============================================================================= // * Hide Actor Equip Window //============================================================================= Scene_OmoMenuEquip.prototype.hideActorEquipWindow = function(index) { // On Equip Cursor Change Function this._actorEquipWindow._onEquipCursorChange = null; this._statusWindow._statusWindows[index].animateFace(false); // Set Function Index list index this.setFunctionListIndex(0); this._actorEquipStatus.close(); this.queue('hideHelpWindow', 15) this.queue('setWaitMode', 'movement'); this.queue('startFunctionWait', function() { return this._actorEquipStatus.isClosing(); }.bind(this)) // Set Duration var duration = 15; // Move Actor Window to the First position this.queue(function() { // Get Object var obj = this._statusWindow._statusWindows[index]; // Create Movement Data var data = { obj: obj, properties: ['y'], from: {y: obj.y}, to: {y: -obj.height}, durations: {y: duration}, easing: Object_Movement.easeOutCirc }; // Start Move this.move.startMove(data); // Get Object var obj = this._actorEquipWindow // Create Movement Data var data = { obj: obj, properties: ['y'], from: {y: obj.y}, to: {y: Graphics.height}, durations: {y: duration}, easing: Object_Movement.easeOutCirc }; // Start Move this.move.startMove(data); }.bind(this)) this.queue('setWaitMode', 'movement'); // Move Actor Window to their original position this.queue(function() { // Get Object var obj = this._statusWindow._statusWindows[index]; // Create Movement Data var data = { obj: obj, properties: ['x', 'y', 'contentsOpacity'], from: {x: obj.x, y: obj.y, contentsOpacity: obj.contentsOpacity}, to: {x: obj._originX, y: -obj.height, contentsOpacity: 255}, durations: {x: duration, y: duration, contentsOpacity: duration}, easing: Object_Movement.easeInCirc }; this.move.startMove(data); }.bind(this)) this.queue('setWaitMode', 'movement'); // Show All Actors Except The selected one this.queue(function() { var windows = this._statusWindow._statusWindows; for (var i2 = 0; i2 < windows.length; i2++) { this.showActorStatus(i2); }; }.bind(this)) this.queue('setWaitMode', 'movement'); // Show Help window this.queue(function() { this._statusWindow.select(index); this._statusWindow.activate(); }.bind(this)) this.queue('setWaitMode', 'movement'); // Clear Function List Index this.clearFunctionListIndex(); }; //============================================================================= // ** Window_OmoMenuActorEquip //----------------------------------------------------------------------------- // The window for selecting actor equipment change. //============================================================================= function Window_OmoMenuActorEquip() { this.initialize.apply(this, arguments); } Window_OmoMenuActorEquip.prototype = Object.create(Window_Selectable.prototype); Window_OmoMenuActorEquip.prototype.constructor = Window_OmoMenuActorEquip; //============================================================================= // * Object Initialization //============================================================================= Window_OmoMenuActorEquip.prototype.initialize = function() { // Super Call Window_Selectable.prototype.initialize.call(this, 0, 0, this.windowWidth(), this.windowHeight()); // Actor Index this._actorIndex = 0; // Deactivate this.deactivate(); // Refresh this.refresh(); }; //============================================================================= // * Settings //============================================================================= Window_OmoMenuActorEquip.prototype.isUsingCustomCursorRectSprite = function() { return true; }; Window_OmoMenuActorEquip.prototype.standardPadding = function() { return 0 } Window_OmoMenuActorEquip.prototype.windowWidth = function() { return 155; } Window_OmoMenuActorEquip.prototype.windowHeight = function() { return 135; } Window_OmoMenuActorEquip.prototype.maxItems = function() { return 2; } Window_OmoMenuActorEquip.prototype.maxCols = function() { return 1; }; Window_OmoMenuActorEquip.prototype.itemHeight = function() { return 26; }; Window_OmoMenuActorEquip.prototype.itemWidth = function() { return this.windowWidth() - 50; }; Window_OmoMenuActorEquip.prototype.spacing = function() { return 0; }; Window_OmoMenuActorEquip.prototype.customCursorRectXOffset = function() { return -35; } Window_OmoMenuActorEquip.prototype.customCursorRectYOffset = function() { return 10; } //============================================================================= // * Get Actor //============================================================================= Window_OmoMenuActorEquip.prototype.setActorIndex = function(index) { // If Actor index has changed if (this._actorIndex !== index) { this._actorIndex = index; this.refresh(); }; }; //============================================================================= // * Get Actor //============================================================================= Window_OmoMenuActorEquip.prototype.actor = function() { // Return Actor at Index return $gameParty.members()[this._actorIndex]; }; //============================================================================= // * Determine if Current Item is enabled //============================================================================= Window_OmoMenuActorEquip.prototype.isCurrentItemEnabled = function(index) { // Get Index if (index === undefined) { index = this.index(); } // Get Actor var actor = this.actor(); // Get Equipped var equipped = this.equipmentAtIndex(index); // Get Slot ID at index const slotIdAtIndex = this.slotIdAtIndex(index); // If cannot change equipment if (!actor.isEquipChangeOk(slotIdAtIndex)) { return false; }; // If Equipped return true if (equipped) { return true; }; // Get Equipment var list = $gameParty.equipItems(); // If There are no item if (list.length <= 0) { return false; } // Get Slot at Index var slotId = actor.equipSlots()[slotIdAtIndex]; // Can Equip Flag var canEquip = list.some(function(item) { return item.etypeId === slotId && actor.canEquip(item); }) // If cannot equip return false if (!canEquip) { return false;} // Return true by default return true; }; //============================================================================= // * Get Slot Id at index //============================================================================= Window_OmoMenuActorEquip.prototype.slotIdAtIndex = function(index) { // Get Index if (index === undefined) { index = this.index(); }; // Return Slot Id return [0, 1][index]; }; //============================================================================= // * Get Equipment At Index //============================================================================= Window_OmoMenuActorEquip.prototype.equipmentAtIndex = function(index) { // Get Index if (index === undefined) { index = this.index(); }; // Get Actor At Index var actor = this.actor(); // If Actor Exists if (actor) { // Return Actor Equips slotted at index return actor.equips()[this.slotIdAtIndex(index)]; }; // Return null return null; }; //============================================================================= // * Get Item Rect //============================================================================= Window_OmoMenuActorEquip.prototype.itemRect = function(index) { // Get Item Rect var rect = Window_Selectable.prototype.itemRect.call(this, index); // Adjust Rect // rect.x += 188 rect.x += 42; rect.y = 26 + (index * 60); // Return rect return rect; }; //============================================================================= // * Refresh //============================================================================= Window_OmoMenuActorEquip.prototype.refresh = function() { // Run Original Function Window_Selectable.prototype.refresh.call(this); // Reset Font Settings this.resetFontSettings(); // Draw Headers this.contents.fontSize = 20; this.changePaintOpacity(true) this.contents.fillRect(4, 28, this.width - 8, 2, 'rgba(255, 255, 255, 1)'); this.contents.fillRect(4, 65, this.width - 8, 2, 'rgba(255, 255, 255, 1)'); this.contents.fillRect(4, 90, this.width - 8, 2, 'rgba(255, 255, 255, 1)'); this.drawText(LanguageManager.getPluginText('equipMenu', 'weapon'), 0, -4, this.width, 'center'); this.drawText(LanguageManager.getPluginText('equipMenu', 'charm'), 0, 58, this.width, 'center'); }; //============================================================================= // * Draw Item //============================================================================= Window_OmoMenuActorEquip.prototype.drawItem = function(index) { // Get Rect var rect = this.itemRect(index); // Get Equipment at index var equip = this.equipmentAtIndex(index); // Get Text var text = equip ? equip.name : '------------' // Determine if enabled var enabled = this.isCurrentItemEnabled(index); if (enabled) { this.changePaintOpacity(true); this.contents.textColor = 'rgba(255, 255, 255, 1)'; } else { this.changePaintOpacity(false); this.contents.textColor = 'rgba(140, 140, 140, 1)'; }; // Set Font Size this.contents.fontSize = 24; // Draw Text this.contents.drawText(text, rect.x, rect.y + 5, rect.width, rect.height); this.changePaintOpacity(true) }; //============================================================================= // * Update Help //============================================================================= Window_OmoMenuActorEquip.prototype.updateHelp = function() { // Run Original Function Window_Selectable.prototype.updateHelp.call(this); // Set Help Window Item this._helpWindow.setItem(this.equipmentAtIndex()); // If Equip Cursor Change function exists if (this._onEquipCursorChange) { this._onEquipCursorChange(); }; // Set Status Window Actor if (this._statusWindow) { this._statusWindow.setActor(this.actor()); }; }; //============================================================================= // ** Window_OmoMenuEquipStatus //----------------------------------------------------------------------------- // The window for show actor status in the equip scene. //============================================================================= function Window_OmoMenuEquipStatus() { this.initialize.apply(this, arguments); } Window_OmoMenuEquipStatus.prototype = Object.create(Window_Base.prototype); Window_OmoMenuEquipStatus.prototype.constructor = Window_OmoMenuEquipStatus; //============================================================================= // * Object Initialization //============================================================================= Window_OmoMenuEquipStatus.prototype.initialize = function() { // Super Call Window_Base.prototype.initialize.call(this, 0, 0, this.windowWidth(), this.windowHeight()); // Create Bubble Sprites this.createBubbleSprites(); // Parameters to draw (Use 100+ for Xparam, 200+ For Sparam) this._params = [0,1,2, 3, 6, 7, [100, 8]]; // Set Actor & Temp actor to null this._actor = null; this._tempActor = null // Set Openness to 0 this.openness = 0; // Refresh this.refresh(); }; //============================================================================= // * Update Open //============================================================================= Window_OmoMenuEquipStatus.prototype.createBubbleSprites = function() { // Bubble Sprites Array this._bubbleSprites = []; // Bubble Positions var positions = [[9, -45, 110], [13, -20, 90]] // Go Through Positions for (var i = 0; i < positions.length; i++) { // Get Position var pos = positions[i]; // Create Sprite var sprite = new Sprite(this.makeBubbleBitmap(pos[0])) sprite.anchor.set(0.5, 0.5); sprite.scale.set(0, 0); // Set Sprite coordinates sprite.x = pos[1]; sprite.y = pos[2]; sprite._originY = sprite.y // Add Sprite to Bubble Sprites this._bubbleSprites[i] = sprite; this.addChild(sprite); } }; //============================================================================= // * Close Window //============================================================================= Window_OmoMenuEquipStatus.prototype.close = function() { // Super CAll Window_Base.prototype.close.call(this); // Set Closing Flag to true this._closing = true; }; //============================================================================= // * Update Open //============================================================================= Window_OmoMenuEquipStatus.prototype.updateOpen = function() { if (this._opening) { var prevDone = false; for (var i = 0; i < this._bubbleSprites.length; i++) { // Get Bubble Sprite Sprite var sprite = this._bubbleSprites[i]; if (i === 0 || prevDone) { sprite.scale.x = Math.min(sprite.scale.x + 0.2, 1); sprite.scale.y = Math.min(sprite.scale.x + 0.2, 1); }; prevDone = sprite.scale.x === 1 }; if (prevDone) { this.openness += 32; } if (this.isOpen()) { this._opening = false; } } }; //============================================================================= // * Update Close //============================================================================= Window_OmoMenuEquipStatus.prototype.updateClose = function() { if (this._closing) { // Decrease Openness this.openness -= 32; if (this.isClosed()) { var prevDone = false; for (var i = this._bubbleSprites.length-1; i >= 0; i--) { // Get Bubble Sprite Sprite var sprite = this._bubbleSprites[i]; if (i === this._bubbleSprites.length-1 || prevDone) { sprite.scale.x = Math.max(sprite.scale.x - 0.2, 0); sprite.scale.y = Math.max(sprite.scale.x - 0.2, 0); }; prevDone = sprite.scale.x === 0; }; if (prevDone) { this._closing = false; } } } }; //============================================================================= // * Make Bubble Bitmap //============================================================================= Window_OmoMenuEquipStatus.prototype.makeBubbleBitmap = function(size) { // Create Bitmap var bitmap = new Bitmap(size * 2, size * 2); // bitmap.fillAll('rgba(255, 0, 0, 1)') // Set X & Y var x = size, y = size; // Draw Circle bitmap.drawCircle(x, y, size, 'rgba(0, 0, 0, 1)') bitmap.drawCircle(x, y, size - 1, 'rgba(255, 255, 255, 1)'); bitmap.drawCircle(x, y, size - 3, 'rgba(0, 0, 0, 1)') // Return Bitmap return bitmap }; //============================================================================= // * Settings //============================================================================= Window_OmoMenuEquipStatus.prototype.isUsingCustomCursorRectSprite = function() { return true; }; Window_OmoMenuEquipStatus.prototype.standardOpennessType = function() { return 2;}; Window_OmoMenuEquipStatus.prototype.standardPadding = function() { return 4; } Window_OmoMenuEquipStatus.prototype.windowWidth = function () { return 237; }; Window_OmoMenuEquipStatus.prototype.windowHeight = function() { return 168; } //============================================================================= // * Set Actor //============================================================================= Window_OmoMenuEquipStatus.prototype.setActor = function(actor) { if (this._actor !== actor) { this._actor = actor; this.refresh(); }; }; //============================================================================= // * Set Temp Actor //============================================================================= Window_OmoMenuEquipStatus.prototype.setTempActor = function(tempActor) { if (this._tempActor !== tempActor) { this._tempActor = tempActor; this.refresh(); }; }; //============================================================================= // * Get Actor Parameter Value from id //============================================================================= Window_OmoMenuEquipStatus.prototype.actorParamValue = function(actor, param) { if (param >= 200) { return actor.sparam(param - 200); } else if (param >= 100 && param < 200) { return actor.xparam(param - 100) * 100; } else { return actor.param(param); }; }; //============================================================================= // * Refresh //============================================================================= Window_OmoMenuEquipStatus.prototype.refresh = function() { // Clear Contents this.contents.clear(); // Get Actor var actor = this._actor; // If Actor Exists if (actor) { // Get Arrow Bitmap var bitmap = ImageManager.loadSystem('equip_arrow'); // Stats (Use 100+ for Xparam, 200+ For Sparam) var stats = this._params; // Go Through Stats for (var i = 0; i < stats.length; i++) { // Get Param Index var paramIndex = stats[i]; var paramSub = Array.isArray(paramIndex) ? paramIndex[1] : null; if (paramSub) { paramIndex = paramIndex[0]; } // Get First Value var value1 = this.actorParamValue(actor, paramIndex); // Get Param Name var paramName = TextManager.param(paramSub ? paramSub : paramIndex); if(paramName.toLowerCase() === "max hp") {paramName = "HEART";} if(paramName.toLowerCase() === "max mp") {paramName = "JUICE";} this.contents.fontSize = 20; this.drawText(paramName.toUpperCase() + ':', 8, -5 + i * 21, 100) this.drawText(value1, 132, -5 + i * 21, 100) this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, 173, 13 + i * 21) // If Temp Actor Exists if (this._tempActor) { var value2 = this.actorParamValue(this._tempActor, paramIndex); this.resetTextColor(); if (value1 < value2) { this.contents.textColor = "#69ff90";} if (value1 > value2) { this.contents.textColor = "#ff2b2b";} } else { var value2 = '---'; } this.drawText(value2, 132 + 56, -5 + i * 21, 100) this.resetTextColor(); }; }; }; //============================================================================= // * Frame Update //============================================================================= Window_OmoMenuEquipStatus.prototype.update = function() { // Super Call Window_Base.prototype.update.call(this); // Update Bubble Sprites this.updateBubbleSprites(); }; //============================================================================= // * Update Bubble Sprites //============================================================================= Window_OmoMenuEquipStatus.prototype.updateBubbleSprites = function() { // If Bubble Sprites Exist if (this._bubbleSprites && this.openness > 0) { // Go Through Bubble Sprites Array for (var i = 0; i < this._bubbleSprites.length; i++) { // Get Bubble Sprite Sprite var sprite = this._bubbleSprites[i]; if (i === 0) { sprite.y = sprite._originY + 0.5 + (Math.sin(Graphics.frameCount * 0.05) * 5) } else { sprite.y = sprite._originY + 0.5 - (Math.sin(Graphics.frameCount * 0.05) * 5) }; }; }; }; //============================================================================= // ** Window_OmoMenuActorEquipItem //----------------------------------------------------------------------------- // The window for selecting equipment for an actor //============================================================================= function Window_OmoMenuActorEquipItem() { this.initialize.apply(this, arguments); } Window_OmoMenuActorEquipItem.prototype = Object.create(Window_ItemList.prototype); Window_OmoMenuActorEquipItem.prototype.constructor = Window_OmoMenuActorEquipItem; //============================================================================= // * Object Initialization //============================================================================= Window_OmoMenuActorEquipItem.prototype.initialize = function() { // Super Call Window_ItemList.prototype.initialize.call(this, 0, 0, this.windowWidth(), this.windowHeight()); // Init Actor & Slot ID this._actor = null; this._slotId = 0; this.deselect(0) this.deactivate() }; //============================================================================= // * Settings //============================================================================= Window_OmoMenuActorEquipItem.prototype.isUsingCustomCursorRectSprite = function() { return true; }; Window_OmoMenuActorEquipItem.prototype.standardPadding = function() { return 4;} Window_OmoMenuActorEquipItem.prototype.windowWidth = function() { return 170 + 277 + 18; } Window_OmoMenuActorEquipItem.prototype.windowHeight = function() { return 135; } Window_OmoMenuActorEquipItem.prototype.maxCols = function() { return 1 +1; }; Window_OmoMenuActorEquipItem.prototype.itemHeight = function() { return 32 + 3 - 3; }; Window_OmoMenuActorEquipItem.prototype.itemWidth = function() { return 160 ; }; //this.windowWidth() - 50 Window_OmoMenuActorEquipItem.prototype.customCursorRectXOffset = function() { return 0; } Window_OmoMenuActorEquipItem.prototype.customCursorRectYOffset = function() { return 5; } Window_OmoMenuActorEquipItem.prototype.customCursorRectTextXOffset = function() { return 25; } Window_OmoMenuActorEquipItem.prototype.isEnabled = function() { return true; }; Window_OmoMenuActorEquipItem.prototype.playOkSound = function() { }; Window_OmoMenuActorEquipItem.prototype.contentsWidth = function() { return this.windowWidth() - this.standardPadding() * 2; }; Window_OmoMenuActorEquipItem.prototype.contentsHeight = function() { return this.windowHeight() - this.standardPadding() * 2; }; //============================================================================= // * Set Actor //============================================================================= Window_OmoMenuActorEquipItem.prototype.setActor = function(actor) { // Set Actor if (this._actor !== actor) { this._actor = actor; this.refresh(); }; }; //============================================================================= // * Set Slot Id //============================================================================= Window_OmoMenuActorEquipItem.prototype.setSlotId = function(slotId) { if (this._slotId !== slotId) { this._slotId = slotId; this.refresh(); }; }; //============================================================================= // * Set Status Window //============================================================================= Window_OmoMenuActorEquipItem.prototype.setStatusWindow = function(statusWindow) { this._statusWindow = statusWindow; this.callUpdateHelp(); }; //============================================================================= // * Determine if item should be included //============================================================================= Window_OmoMenuActorEquipItem.prototype.includes = function(item) { if (item === null) { return true; } if (this._slotId < 0 || item.etypeId !== this._actor.equipSlots()[this._slotId]) { return false; }; return this._actor.canEquip(item); }; //============================================================================= // * Get Item Rect //============================================================================= Window_OmoMenuActorEquipItem.prototype.itemRect = function(index) { // Get Item Rect var rect = Window_ItemList.prototype.itemRect.call(this, index); // // Adjust Rect rect.x += 8; rect.y += 22; // Return rect return rect; }; //============================================================================= // * Update Arrows //============================================================================= Window_OmoMenuActorEquipItem.prototype._updateArrows = function() { Window_ItemList.prototype._updateArrows.call(this); this._downArrowSprite.visible = this._downArrowSprite.visible && this.x > 10; this._upArrowSprite.visible = this._upArrowSprite.visible && this.x > 10; }; //============================================================================= // * Refresh Arrows //============================================================================= Window_OmoMenuActorEquipItem.prototype._refreshArrows = function() { // Super Call Window_ItemList.prototype._refreshArrows.call(this); var w = this._width; var h = this._height; var p = 24; var q = p/2; this._downArrowSprite.move(w - q, h - q); this._upArrowSprite.move(w - q, q + 24); }; //============================================================================= // * Refresh //============================================================================= Window_OmoMenuActorEquipItem.prototype.refresh = function() { // Run Original Function Window_ItemList.prototype.refresh.call(this); // Draw Headers this.contents.fontSize = 22; this.drawText(LanguageManager.getPluginText('equipMenu', 'replace'), 8, -8, this.contents.width); }; //============================================================================= // * Draw Item //============================================================================= Window_OmoMenuActorEquipItem.prototype.drawItem = function(index) { // Get Rect var rect = this.itemRectForText(index); // Get Item var item = this._data[index] // Set Item Text var text = item ? item.name : '------------' // Set Font Size this.contents.fontSize = 24; // Draw Text this.contents.drawText(text, rect.x, rect.y, rect.width, rect.height); }; //============================================================================= // * Update Help //============================================================================= Window_OmoMenuActorEquipItem.prototype.updateHelp = function() { // Super Call Window_ItemList.prototype.updateHelp.call(this); if (this._actor && this._statusWindow) { var actor = JsonEx.makeDeepCopy(this._actor); actor.forceChangeEquip(this._slotId, this.item()); this._statusWindow.setTempActor(actor); }; };