alter-egoism/js/plugins/CBR_menu_equip.js
2025-11-03 10:49:50 -06:00

830 lines
28 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function () {
const _Scene_Base_createWindowLayer = Scene_Base.prototype.createWindowLayer;
Scene_Equip.prototype.createWindowLayer = function () {
_Scene_Base_createWindowLayer.call(this);
this._windowLayer.x = 0;
this._windowLayer.y = 0;
};
//##################### メニューの背景変える #####################
Scene_Equip.prototype.createBackground = function () {
this._backgroundSprite_sira = new Sprite();
this._backgroundSprite_yozu = new Sprite();
var name = $gameParty.menuActor()._name;
this._backgroundSprite_sira.bitmap = ImageManager.loadSystem("menu_equip_back_sira");
this._backgroundSprite_yozu.bitmap = ImageManager.loadSystem("menu_equip_back_yozu");
if (name == "Shirayuki") {
this._backgroundSprite_yozu.hide();
} else if (name == "Yotsuru") {
this._backgroundSprite_sira.hide();
}
this.addChild(this._backgroundSprite_yozu);
this.addChild(this._backgroundSprite_sira);
this._backgroundTextSprite = new Sprite(new Bitmap(Graphics.width, Graphics.height));
var b = this._backgroundTextSprite.bitmap;
b.fontFace = "serif";
b.fontSize = 32;
b.textColor = "#000000";
b.drawTextM("Equipment", 22, 20, 200, 22, "center");
this.addChild(this._backgroundTextSprite);
this._backgroundTextSprite2 = new Sprite(ImageManager.loadSystem("menu_equip_seifuku_1"));
this._backgroundTextSprite2.x = 838;
this._backgroundTextSprite2.y = 630;
//this.addChild(this._backgroundTextSprite2);
};
// 背景切り替え
Scene_Equip.prototype.refreshActor = function () {
const actor = this.actor();
this._statusWindow.setActor(actor);
this._slotWindow.setActor(actor);
this._itemWindow.setActor(actor);
if (actor._name == "Shirayuki") {
this._backgroundSprite_sira.show();
this._backgroundSprite_yozu.hide();
} else if (actor._name == "Yotsuru") {
this._backgroundSprite_sira.hide();
this._backgroundSprite_yozu.show();
}
};
Scene_Equip.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this.createStatusWindow();
this.createCommandWindow();
this.createSlotWindow();
this.createItemWindow();
this.createHelpWindow();
this._itemWindow.setHelpWindow(this._helpWindow);
this.refreshActor();
};
//最強と全て外すを消去し、別キャラクター追加
Window_EquipCommand.prototype.makeCommandList = function () {
this.addCommand(TextManager.equip2, "equip");
this.addCommand("Other Character", "pagedown");
};
Scene_Equip.prototype.commandWindowRect = function () {
const wx = 270;
const wy = -14;
const ww = 400;
const wh = 58 + 38;
return new Rectangle(wx, wy, ww, wh);
};
Window_EquipCommand.prototype.maxCols = function () {
return 2;
};
// デザイン関係
//カーソルの変更
Window_EquipCommand.prototype.loadWindowskin = function () {
this.windowskin = ImageManager.loadSystem("Window");
this.menu_item_skin = ImageManager.loadSystem("menu_item_categoly_select");
this.menu_cursor_skin = ImageManager.loadSystem("menu_item_categoly_cursor");
if (!this.menu_item_skin.isReady()) {
this.menu_item_skin.addLoadListener(() => {
this.refresh(); // 画像がロードされたら再描画
});
return;
}
};
Window_EquipCommand.prototype.lineHeight = function () {
return 58;
};
Window_EquipCommand.prototype._refreshCursor = function () {
const drect = this._cursorRect.clone();
const srect = { x: 0, y: 0, width: 126, height: 58 };
const m = 0;
for (const child of this._cursorSprite.children) {
child.bitmap = this.menu_cursor_skin;
}
this._setRectPartsGeometry(this._cursorSprite, srect, drect, m);
};
//カーソルを微調整、あとカーソルを常に不透明に
Window_EquipCommand.prototype._updateCursor = function () {
this._cursorSprite.alpha = 255;
this._cursorSprite.visible = this.isOpen() && this.cursorVisible;
this._cursorSprite.x = this._cursorRect.x;
this._cursorSprite.y = this._cursorRect.y - 4;
};
//未選択コマンドの背景を画像に
Window_EquipCommand.prototype.drawItemBackground = function (index) {
const rect = this.itemRect(index);
if (this.menu_item_skin.isReady()) {
const bitmap = this.menu_item_skin;
const dx = rect.x;
const dy = rect.y;
const dw = rect.width;
const dh = rect.height;
this.contentsBack.blt(bitmap, 0, 0, 126, 58, dx, dy - 4, dw, dh);
}
};
//カーソルが来た時、アイテムの文字名の色を変更する
Window_EquipCommand.prototype.drawItem = function (index) {
const rect = this.itemLineRect(index);
const align = this.itemTextAlign();
this.resetTextColor();
if (index == this._index) {
this.changeTextColor("#000000");
}
this.changePaintOpacity(this.isCommandEnabled(index));
//文字をちょっと下にする
this.drawTextS(this.commandName(index), rect.x, rect.y + 8, rect.width, align);
};
//セレクトするたびに背景をリフレッシュ
Window_EquipCommand.prototype.select = function (index) {
this._index = index;
this.contents.clear();
this.contentsBack.clear();
this.drawAllItems();
this.refreshCursor();
this.callUpdateHelp();
};
//↑のセレクトでの不具合を出ないようにする
Window_EquipCommand.prototype.drawAllItems = function () {
this.contents.fontFace = "serif";
const topIndex = this.topIndex();
for (let i = 0; i < this.maxVisibleItems(); i++) {
const index = topIndex + i;
if (this._list && index < this.maxItems()) {
//選択ちゅうだけ背景なくす
if (i != this._index) {
this.drawItemBackground(index);
}
this.drawItem(index);
}
}
};
Window_EquipCommand.prototype._refreshAllParts = function () {
//this._refreshBack();
//this._refreshFrame();
this._refreshCursor();
this._refreshArrows();
this._refreshPauseSign();
};
// ###########################################################
// ################### ステータスウィンドウ ####################
// ###########################################################
Scene_Equip.prototype.statusWindowRect = function () {
const ww = 700;
const wh = 250;
const wx = 0;
const wy = 450;
return new Rectangle(wx, wy, ww, wh);
};
Scene_Equip.prototype.createStatusWindow = function () {
const rect = this.statusWindowRect();
this._statusWindow = new Window_EquipStatus(rect);
this.addWindow(this._statusWindow);
};
Window_EquipStatus.prototype._refreshAllParts = function () {
this._padding = 0;
//this._refreshBack();
//this._refreshFrame();
this._refreshCursor();
this._refreshArrows();
this._refreshPauseSign();
};
Window_EquipStatus.prototype.resetFontSettings = function () {
this.contents.fontFace = "ヒラギノ明朝 ProN W3";
this.contents.fontSize = $gameSystem.mainFontSize();
this.resetTextColor();
};
Window_EquipStatus.prototype.refresh = function () {
this.contents.clear();
if (this._actor) {
const nameRect = this.itemLineRect(0);
//this.drawActorName(this._actor, nameRect.x, 0, nameRect.width);
//this.drawActorFace(this._actor, nameRect.x, nameRect.height);
this.drawAllParams();
this.changeTextColor("#000000");
this.contents.fontFace = "serif";
this.contents.fontSize = 22;
this.drawTextM("Artifact", 65, 204, 300);
//var weap = this._actor.equips()[6];
//if (weap) {
this.contents.fontSize = 26;
this.changeTextColor("#FFFFFF");
if ($gameParty.menuActor()._actorId === 1) {
this.drawTextM($gameVariables.value(225), 290, 203, 300);
} else {
this.drawTextM($gameVariables.value(226), 290, 203, 300);
}
//}
}
};
Window_EquipStatus.prototype.drawAllParams = function () {
this.contents.fontSize = 25;
for (let i = 0; i < 5; i++) {
const x = this.itemPadding() + 40;
const y = i * 28 + 27;
this.drawItem(x, y, 2 + i);
}
};
Window_EquipStatus.prototype.drawItem = function (x, y, paramId) {
const paramX = 150;
const paramWidth = this.paramWidth();
const rightArrowWidth = this.rightArrowWidth();
this.drawParamName(x, y, paramId);
if (this._actor) {
this.drawCurrentParam(paramX, y, paramId);
}
this.drawRightArrow(paramX - 30, y);
if (this._tempActor) {
//this.drawNewParam(paramX + paramWidth + rightArrowWidth, y, paramId);
}
};
Window_EquipStatus.prototype.drawParamName = function (x, y, paramId) {
const width = this.paramX() - this.itemPadding() * 2;
this.changeTextColor("#000000");
this.contents.fontFace = "serif";
this.contents.fontSize = 19;
this.drawTextM(TextManager.param(paramId), x, y, width);
};
Window_EquipStatus.prototype.drawCurrentParam = function (x, y, paramId) {
const paramWidth = this.paramWidth();
this.changeTextColor("#000000");
this.drawTextM(this._actor.paramBase(paramId), x, y, paramWidth, "right");
this.changeTextColor("#FFFFFF");
this.drawText(this._actor.param(paramId) - this._actor.paramBase(paramId), 238, y, paramWidth, "right");
};
Window_EquipStatus.prototype.drawRightArrow = function (x, y) {
const rightArrowWidth = this.rightArrowWidth();
this.changeTextColor("#000000");
this.drawTextM("", x, y, rightArrowWidth, "center");
this.changeTextColor("#FFFFFF");
this.drawTextM("", x + 104, y, rightArrowWidth, "center");
};
// ###########################################################
// ###################### 装備欄スロット ######################
// ###########################################################
Scene_Equip.prototype.slotWindowRect = function () {
const wx = 740;
const wy = 80;
const ww = Graphics.boxWidth - wx;
const wh = Graphics.boxHeight - wy;
return new Rectangle(wx, wy, ww, wh);
};
//コマンド変更
Scene_Equip.prototype.createCommandWindow = function () {
const rect = this.commandWindowRect();
this._commandWindow = new Window_EquipCommand(rect);
this._commandWindow.setHelpWindow(this._helpWindow);
this._commandWindow.setHandler("equip", this.commandEquip.bind(this));
//キーボードでの誤操作防止
//this._commandWindow.setHandler("optimize", this.commandOptimize.bind(this));
//this._commandWindow.setHandler("clear", this.commandClear.bind(this));
this._commandWindow.setHandler("cancel", this.popScene.bind(this));
this._commandWindow.setHandler("pagedown", this.nextActor.bind(this));
this._commandWindow.setHandler("pageup", this.previousActor.bind(this));
this.addWindow(this._commandWindow);
};
Scene_Equip.prototype.onSlotOk = function () {
if (this._slotWindow.index() === 6) {
if ($gameParty.menuActor()._actorId === 1) {
$gameTemp.reserveCommonEvent(907);
} else {
$gameTemp.reserveCommonEvent(908);
}
SceneManager.goto(Scene_Map);
} else {
this._slotWindow.hide();
this._itemWindow.show();
this._itemWindow.activate();
this._itemWindow.forceSelect(0);
this._helpWindow.show();
}
};
//装備欄
Window_EquipSlot.prototype.maxCols = function () {
return 1;
};
Window_EquipSlot.prototype.initialize = function (rect) {
Window_StatusBase.prototype.initialize.call(this, rect);
this._actor = null;
this.refresh();
// 装備禁止の時は1
this.CBR_ban = 0;
};
Window_EquipSlot.prototype.maxItems = function () {
return this._actor ? this._actor.equipSlots().length - this.CBR_ban : 0;
};
Window_EquipSlot.prototype.itemRect = function (index) {
const maxCols = this.maxCols();
var itemWidth = 498;
const itemHeight = this.itemHeight() + 16;
const colSpacing = this.colSpacing();
const rowSpacing = this.rowSpacing() + 16;
var row = index;
var x = 30;
var y = row * itemHeight + rowSpacing / 2 - this.scrollBaseY() + 48;
if (2 < index) {
y += 41;
}
if (index == 6) {
y += 44;
}
const width = itemWidth - colSpacing;
const height = itemHeight - rowSpacing;
return new Rectangle(x, y, width, height);
};
Window_EquipSlot.prototype.loadWindowskin = function () {
this.windowskin = ImageManager.loadSystem("Window");
this.menu_item_skin = ImageManager.loadSystem("menu_equip_item");
this.menu_cursor_skin = ImageManager.loadSystem("menu_equip_cursor");
// キャラクターイメージの描写
// const sprite = new Sprite(ImageManager.loadCharacter("00_MainChara01"));
// sprite.setFrame(0, 0, 48, 48);
// sprite.x = 300; // 表示位置(調整可)
// sprite.y = 500;
// this.fuku_sp = sprite;
// this.addChild(sprite);
};
Window_EquipSlot.prototype._createCursorSprite = function () {
this._cursorSprite = new Sprite();
for (let i = 0; i < 9; i++) {
this._cursorSprite.addChild(new Sprite());
}
this._clientArea.addChild(this._cursorSprite);
};
Window_EquipSlot.prototype._updateCursor = function () {
this._cursorSprite.alpha = 255;
this._cursorSprite.visible = this.isOpen() && this.cursorVisible;
this._cursorSprite.x = this._cursorRect.x;
this._cursorSprite.y = this._cursorRect.y;
const b = this._cursorTextSprite.bitmap;
b.clear();
b.fontFace = "serif";
b.fontSize = 24;
b.textColor = "#000000";
b.drawTextM(this.index() === 6 ? "Change Outfit" : "Equip", 0, 0, b.width, b.height, "center");
};
Window_EquipSlot.prototype._refreshCursor = function () {
const drect = this._cursorRect.clone();
const srect = { x: 0, y: 0, width: 170, height: 60 };
const m = 0;
for (const child of this._cursorSprite.children) {
if (!child.CBR_flag) {
child.bitmap = this.menu_cursor_skin;
}
}
this._setRectPartsGeometry2(this._cursorSprite, srect, drect, m);
// すでに作っていなければ作成
if (!this._cursorTextSprite) {
this._cursorTextSprite = new Sprite(new Bitmap(100, 32));
this._cursorTextSprite.CBR_flag = true;
this._cursorTextSprite.x = 30;
this._cursorTextSprite.y = 14;
const b = this._cursorTextSprite.bitmap;
b.clear();
b.fontFace = "serif";
b.fontSize = 24;
b.textColor = "#000000";
b.drawTextM("Equip", 0, 0, b.width, b.height, "center");
this._cursorSprite.addChild(this._cursorTextSprite);
}
};
Window_EquipSlot.prototype.refresh = function () {
this.hideAdditionalSprites();
Window_Selectable.prototype.refresh.call(this);
this.contents.fontFace = "serif";
this.contents.fontSize = 24;
this.contents.textColor = "#000000";
this.drawTextM("Accessories", 128, 10, 300, "center");
this.drawTextM("Passive Skills", 128, 232, 300, "center");
this.drawTextM("Change Outfit", 128, 454, 300, "center");
this.contents.fontSize = 20;
this.contents.textColor = "#FFFFFF";
if (this.CBR_ban) {
this.drawTextS("Dress Condition: Exposure Development B or Higher", 224, 505, 300, "left");
} else {
const fuku_id = $gameParty.menuActor()._name == "Shirayuki" ? 204 : 205;
this.drawText(["Uniform", "Naked", "Uniform", "Naked"][$gameVariables.value(fuku_id)], 224, 505, 300, "left");
}
};
Window_EquipSlot.prototype._setRectPartsGeometry2 = function (sprite, srect, drect, m) {
const dx = drect.x;
const dy = drect.y;
const dw = drect.width;
const dh = drect.height;
const children = sprite.children;
sprite.move(dx, dy);
for (const child of children) {
child.visible = dw > 0 && dh > 0;
}
};
Window_EquipSlot.prototype.refreshCursor = function () {
if (this._cursorAll) {
this.refreshCursorForAll();
} else if (this.index() >= 0) {
const rect = this.itemRect(this.index());
this.setCursorRect(rect.x + 7, rect.y - 8, rect.width, rect.height);
} else {
this.setCursorRect(0, 0, 0, 0);
}
};
Window_EquipSlot.prototype.drawItemBackground = function () {};
Window_EquipSlot.prototype._refreshAllParts = function () {
this._padding = 0;
// this._refreshBack();
// this._refreshFrame();
this._refreshCursor();
this._refreshArrows();
this._refreshPauseSign();
};
Window_EquipSlot.prototype.drawItem = function (index) {
if (this._actor) {
const slotName = this.actorSlotName(this._actor, index);
const item = this.itemAt(index);
const slotNameWidth = this.slotNameWidth();
const rect = this.itemLineRect(index);
const itemWidth = rect.width - slotNameWidth;
//this.changeTextColor(ColorManager.systemColor());
this.changePaintOpacity(this.isEnabled(index));
//this.drawText(slotName, rect.x, rect.y, slotNameWidth, rect.height);
this.drawItemName(item, rect.x + slotNameWidth + 10, rect.y, itemWidth);
this.changePaintOpacity(true);
}
};
Window_EquipSlot.prototype.drawItemName = function (item, x, y, width) {
if (item) {
const iconY = y + (this.lineHeight() - ImageManager.iconHeight) / 2;
const delta = ImageManager.standardIconWidth - ImageManager.iconWidth;
const textMargin = ImageManager.standardIconWidth + 4;
const itemWidth = Math.max(0, width - textMargin);
this.resetTextColor();
//this.drawIcon(item.iconIndex, x + delta / 2, iconY);
this.drawText(item.name, x + textMargin, y, itemWidth);
}
};
// ###########################################################
// ##################### アイテム一覧ウィンドウ ###################
// ###########################################################
Scene_Equip.prototype.createItemWindow = function () {
const rect = this.itemWindowRect();
this._itemWindow = new Window_EquipItem(rect);
this._itemWindow.setHelpWindow(this._helpWindow);
this._itemWindow.setStatusWindow(this._statusWindow);
this._itemWindow.setHandler("ok", this.onItemOk.bind(this));
this._itemWindow.setHandler("cancel", this.onItemCancel.bind(this));
this._itemWindow.hide();
this._slotWindow.setItemWindow(this._itemWindow);
this.addWindow(this._itemWindow);
};
Scene_Equip.prototype.itemWindowRect = function () {
const wx = 0;
const wh = Graphics.height;
const wy = Graphics.height - wh;
const ww = Graphics.width;
return new Rectangle(wx, wy, ww, wh);
};
Window_EquipItem.prototype.initialize = function (rect) {
Window_ItemList.prototype.initialize.call(this, rect);
this._actor = null;
this._slotId = 0;
this._customBackgroundSprite = new Sprite(ImageManager.loadSystem("menu_equip_item_back")); // img/system/text.png
this._customBackgroundSprite.opacity = 255;
this.addChildToBack(this._customBackgroundSprite);
this._bSprite = new Sprite(new Bitmap(Graphics.width, Graphics.height));
var b = this._bSprite.bitmap;
b.fontFace = "serif";
b.fontSize = 18;
b.textColor = "#000000";
b.drawTextM("Quantity", 570, 72, 200, 22, "center");
this.addChild(this._bSprite);
// windowが重なっても透過させる
this._isWindow = false;
};
Window_EquipItem.prototype.maxCols = function () {
return 1;
};
Scene_Equip.prototype.hideItemWindow = function () {
this._slotWindow.show();
this._slotWindow.activate();
this._itemWindow.hide();
this._itemWindow.deselect();
this._helpWindow.hide();
};
Window_EquipItem.prototype.paint = function () {
if (this.contents) {
this.contents.clear();
this.contentsBack.clear();
this.drawAllItems();
}
};
//未選択コマンドの背景を画像に
Window_EquipItem.prototype.drawItemBackground = function (index) {
const rect = this.itemRect(index);
if (this.menu_item_skin) {
const bitmap = this.menu_item_skin;
const dx = rect.x;
const dy = rect.y;
const dw = rect.width;
const dh = rect.height;
this.contentsBack.blt(bitmap, 0, 0, 588, 40, dx, dy, dw, dh);
}
};
const _Window_EquipItem_update = Window_EquipItem.prototype.update;
Window_EquipItem.prototype.update = function () {
_Window_EquipItem_update.call(this);
if (this._customBackgroundSprite && this._customBackgroundSprite.bitmap) {
this._customBackgroundSprite.x = 0;
this._customBackgroundSprite.y = 0;
this._customBackgroundSprite.scale.x = this.width / this._customBackgroundSprite.bitmap.width;
this._customBackgroundSprite.scale.y = this.height / this._customBackgroundSprite.bitmap.height;
}
};
const _Window_EquipItem_destroy = Window_EquipItem.prototype.destroy;
Window_EquipItem.prototype.destroy = function (options) {
if (this._customBackgroundSprite) {
this.removeChild(this._customBackgroundSprite);
this._customBackgroundSprite.destroy();
this._customBackgroundSprite = null;
}
_Window_EquipItem_destroy.call(this, options);
};
// ウィンドウの背景を変更する
Window_EquipItem.prototype.updateBackOpacity = function () {
this.backOpacity = 255;
};
//カーソルの変更
Window_EquipItem.prototype.loadWindowskin = function () {
this.windowskin = ImageManager.loadSystem("Window");
this.menu_cursor_skin = ImageManager.loadSystem("menu_item_selected");
this.menu_item_skin = ImageManager.loadSystem("menu_item_selected_2");
};
Window_EquipItem.prototype.drawItemName = function (item, x, y, width) {
if (item) {
const iconY = y + (this.lineHeight() - ImageManager.iconHeight) / 2;
const delta = ImageManager.standardIconWidth - ImageManager.iconWidth;
const textMargin = ImageManager.standardIconWidth + 4;
const itemWidth = Math.max(0, width - textMargin);
this.resetTextColor();
this.contents.fontSize = $gameSystem.mainFontSize();
this.contents.fontFace = "serif";
//this.drawIcon(item.iconIndex, x + delta / 2, iconY);
this.changeTextColor("#000000");
this.drawTextS(item.name, x + textMargin + 24, y, itemWidth);
this.resetTextColor();
}
};
Window_EquipItem.prototype.drawItemNumber = function (item, x, y, width) {
if (this.needsNumber()) {
this.changeTextColor("#000000");
this.drawTextS($gameParty.numItems(item), x - 30, y, width, "right");
this.resetTextColor();
}
};
Window_EquipItem.prototype._refreshCursor = function () {
const drect = this._cursorRect.clone();
const srect = { x: 0, y: 40, width: 588, height: 40 };
const m = 0;
for (const child of this._cursorSprite.children) {
child.bitmap = this.menu_item_skin;
}
this._setRectPartsGeometry(this._cursorSprite, srect, drect, m);
};
//########### ウィンドウのセレクトをセンタリングする ###################
Object.defineProperty(Window_EquipItem.prototype, "innerWidth", {
get: function () {
return 500;
},
configurable: true
});
// アイテム表示領域の変更
Object.defineProperty(Window_EquipItem.prototype, "innerHeight", {
get: function () {
return 440;
},
configurable: true
});
Object.defineProperty(Window_EquipItem.prototype, "innerRect", {
get: function () {
return new Rectangle(264, this._padding, this.innerWidth, this.innerHeight);
},
configurable: true
});
Window_EquipItem.prototype._createClientArea = function () {
this._clientArea = new Sprite();
this._clientArea.filters = [new PIXI.filters.AlphaFilter()];
this._clientArea.filterArea = new Rectangle();
this._clientArea.move(264, this._padding);
this.addChild(this._clientArea);
};
Window_EquipItem.prototype._updateClientArea = function () {
const pad = this._padding;
this._clientArea.move(264, pad);
this._clientArea.x = 264 - this.origin.x;
this._clientArea.y = pad - this.origin.y + 93;
if (this.innerWidth > 0 && this.innerHeight > 0) {
this._clientArea.visible = this.isOpen();
} else {
this._clientArea.visible = false;
}
};
// 表示領域をズラした分だけマウス操作のエリアを調整
Window_EquipItem.prototype.hitTest = function (x, y) {
y -= 93;
if (this.innerRect.contains(x, y)) {
const cx = this.origin.x + x - 264;
const cy = this.origin.y + y - this.padding;
const topIndex = this.topIndex();
for (let i = 0; i < this.maxVisibleItems(); i++) {
const index = topIndex + i;
if (index < this.maxItems()) {
const rect = this.itemRect(index);
if (rect.contains(cx, cy)) {
return index;
}
}
}
}
return -1;
};
// ホイールの挙動が認識される範囲修正
Window_EquipItem.prototype.isTouchedInsideFrame = function () {
const touchPos = new Point(TouchInput.x, TouchInput.y - 93);
const localPos = this.worldTransform.applyInverse(touchPos);
return this.innerRect.contains(localPos.x, localPos.y);
};
// スクロールの矢印の位置を微調整
Window_EquipItem.prototype._refreshArrows = function () {
const w = this._width;
const h = this._height;
const p = 24;
const q = p / 2;
const sx = 96 + p;
const sy = 0 + p;
this._downArrowSprite.bitmap = this._windowskin;
this._downArrowSprite.anchor.x = 0.5;
this._downArrowSprite.anchor.y = 0.5;
this._downArrowSprite.setFrame(sx + q, sy + q + p, p, q);
this._downArrowSprite.move(w / 2 - 120, h - q - 154);
this._upArrowSprite.bitmap = this._windowskin;
this._upArrowSprite.anchor.x = 0.5;
this._upArrowSprite.anchor.y = 0.5;
this._upArrowSprite.setFrame(sx + q, sy, p, q);
this._upArrowSprite.move(w / 2 - 120, q + 84);
};
//ウィンドウのバックグラウンド
Window_EquipItem.prototype._refreshAllParts = function () {
// this._refreshBack();
// this._refreshFrame();
this._refreshCursor();
this._refreshArrows();
this._refreshPauseSign();
};
// ###########################################################
// ###################### ヘルプウィンドウ ####################
// ###########################################################
Scene_Equip.prototype.createHelpWindow = function () {
const rect = this.helpWindowRect();
this._helpWindow = new Window_EquipHelp(rect);
this._helpWindow.hide();
//this._itemWindow.hide();
this.addWindow(this._helpWindow);
};
Scene_MenuBase.prototype.helpWindowRect = function () {
const ww = 720;
const wx = 40;
const wh = 89;
const wy = 570;
return new Rectangle(wx, wy, ww, wh);
};
function Window_EquipHelp() {
this.initialize(...arguments);
}
Window_EquipHelp.prototype = Object.create(Window_Help.prototype);
Window_EquipHelp.prototype.constructor = Window_EquipHelp;
const _Window_EquipHelp_initialize = Window_EquipHelp.prototype.initialize;
Window_EquipHelp.prototype.initialize = function (rect) {
_Window_EquipHelp_initialize.call(this, rect);
this._customBackgroundSprite = new Sprite();
this._customBackgroundSprite.bitmap = ImageManager.loadSystem("menu_equip_help_back"); // img/system/text.png
this._customBackgroundSprite.opacity = 255;
this.addChildToBack(this._customBackgroundSprite);
// windowが重なっても透過させる
this._isWindow = false;
};
const _Window_EquipHelp_update = Window_EquipHelp.prototype.update;
Window_EquipHelp.prototype.update = function () {
_Window_EquipHelp_update.call(this);
if (this._customBackgroundSprite && this._customBackgroundSprite.bitmap) {
this._customBackgroundSprite.x = 0;
this._customBackgroundSprite.y = 10;
this._customBackgroundSprite.scale.x = this.width / this._customBackgroundSprite.bitmap.width;
this._customBackgroundSprite.scale.y = this.height / this._customBackgroundSprite.bitmap.height;
}
};
const _Window_EquipHelp_destroy = Window_EquipHelp.prototype.destroy;
Window_EquipHelp.prototype.destroy = function (options) {
if (this._customBackgroundSprite) {
this.removeChild(this._customBackgroundSprite);
this._customBackgroundSprite.destroy();
this._customBackgroundSprite = null;
}
_Window_EquipHelp_destroy.call(this, options);
};
Window_EquipHelp.prototype.refresh = function () {
const rect = this.baseTextRect();
this.contents.clear();
this.contents.fontFace = "serif";
this.changeTextColor("#000000");
this.contents.fontSize = 20;
this.drawTextM("Description", 0, -3, 80, "center");
this.changeTextColor("#FFFFFF");
this.drawTextExS(this._text, rect.x + 88, rect.y + 2, rect.width);
};
//ウィンドウのバックグラウンド
Window_EquipHelp.prototype._refreshAllParts = function () {
//this._refreshBack();
//this._refreshFrame();
this._refreshCursor();
this._refreshArrows();
this._refreshPauseSign();
};
})();