541 lines
17 KiB
JavaScript
541 lines
17 KiB
JavaScript
//=============================================================================
|
||
// AltMenuScreen3.js (ver1.0.1)
|
||
//=============================================================================
|
||
// [History]
|
||
// 2015.Nov.23 1.0.0 First Release
|
||
// 2018.Sep.19 1.0.1 add function to display current mapname.
|
||
|
||
/*:
|
||
* @plugindesc Yet Another menu screen layout (ver1.0.1)
|
||
* @author Sasuke KANNAZUKI, Yoji Ojima
|
||
*
|
||
* @default
|
||
* @param bgBitmapMenu
|
||
* @desc background bitmap file at menu scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
* *
|
||
* @param bgBitmapItem
|
||
* @desc background bitmap file at item scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapSkill
|
||
* @desc background bitmap file at skill scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapEquip
|
||
* @desc background bitmap file at equip scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapStatus
|
||
* @desc background bitmap file at status scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapOptions
|
||
* @desc background bitmap file at option scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapFile
|
||
* @desc background bitmap file at save/load scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapGameEnd
|
||
* @desc background bitmap file at gameEnd scene. put at img/pictures.
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param maxColsMenu
|
||
* @desc max column at menu window
|
||
* @default 4
|
||
*
|
||
* @param commandRows
|
||
* @desc number of visible rows at command window
|
||
* @default 2
|
||
*
|
||
* @param isDisplayStatus
|
||
* @desc whether display status or not. (1 = yes, 0 = no)
|
||
* @default 1
|
||
*
|
||
* @param display map name
|
||
* @desc whether to display map name. (1 = yes, 0 = no)
|
||
* @default 1
|
||
*
|
||
* @param location string
|
||
* @desc prefix of map name. drawn system color.
|
||
* @default Location:
|
||
*
|
||
* @help This plugin does not provide plugin commands.
|
||
* The differences with AltMenuscreen are follows:
|
||
* - windows are transparent at all menu scene.
|
||
* - it can set the background bitmap for each scenes at menu.
|
||
* - picture is actors' original
|
||
*
|
||
* Actor' note:
|
||
* <stand_picture:filename> set actor's standing picture at menu.
|
||
* put file at img/pictures.
|
||
*
|
||
* preferred size of actor's picture:
|
||
* width: 174px(maxColsMenu=4), 240px(maxColsMenu=3)
|
||
* height: 408px(commandRows=2), 444px(commandRows=1)
|
||
*/
|
||
|
||
/*:ja
|
||
* @plugindesc レイアウトの異なるメニュー画面(ver1.0.1)
|
||
* @author 神無月サスケ, Yoji Ojima
|
||
*
|
||
* @param bgBitmapMenu
|
||
* @desc メニュー背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapItem
|
||
* @desc アイテム画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapSkill
|
||
* @desc スキル画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapEquip
|
||
* @desc 装備画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapStatus
|
||
* @desc ステータス画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapOptions
|
||
* @desc オプション画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapFile
|
||
* @desc セーブ/ロード画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
* @require 1
|
||
* @dir img/pictures/
|
||
* @type file
|
||
*
|
||
* @param bgBitmapGameEnd
|
||
* @desc ゲーム終了画面背景にするビットマップファイルです。
|
||
* img/pictures に置いてください。
|
||
* @default
|
||
*
|
||
* @param maxColsMenu
|
||
* @desc アクターを表示するウィンドウの1画面の登録最大数です。
|
||
* @default 4
|
||
*
|
||
* @param commandRows
|
||
* @desc コマンドウィンドウの行数です。
|
||
* @default 2
|
||
*
|
||
* @param isDisplayStatus
|
||
* @desc ステータスを表示するかしないかを選びます。(1 = yes, 0 = no)
|
||
* @default 1
|
||
*
|
||
* @param display map name
|
||
* @desc 画面左下にマップ名を表示するか (1 = する, 0 = しない)
|
||
* @default 1
|
||
*
|
||
* @param location string
|
||
* @desc マップ名の前に付ける文字。システムカラーで描画されます。
|
||
* @default 現在地:
|
||
*
|
||
* @help このプラグインには、プラグインコマンドはありません。
|
||
*
|
||
* AltMenuscreen との違いは以下です:
|
||
* - メニュー画面すべてのウィンドウが透明です
|
||
* - メニューそれぞれのシーンに背景ビットマップを付けることが出来ます。
|
||
* - アクターに立ち絵を利用します。
|
||
*
|
||
* アクターのメモに以下のように書いてください:
|
||
* <stand_picture:ファイル名> ファイル名が、そのアクターの立ち絵になります。
|
||
* ファイルは img/pictures に置いてください。
|
||
*
|
||
* 望ましいアクター立ち絵のサイズ:
|
||
* 幅:3列:240px, 4列:174px
|
||
* 高さ: コマンドウィンドウ 1行:444px 2行:408px
|
||
*
|
||
*/
|
||
|
||
(function () {
|
||
// set parameters
|
||
var parameters = PluginManager.parameters("AltMenuScreen3");
|
||
var bgBitmapMenu = parameters["bgBitmapMenu"] || "";
|
||
var bgBitmapItem = parameters["bgBitmapItem"] || "";
|
||
var bgBitmapSkill = parameters["bgBitmapSkill"] || "";
|
||
var bgBitmapEquip = parameters["bgBitmapEquip"] || "";
|
||
var bgBitmapStatus = parameters["bgBitmapStatus"] || "";
|
||
var bgBitmapOptions = parameters["bgBitmapOptions"] || "";
|
||
var bgBitmapFile = parameters["bgBitmapFile"] || "";
|
||
var bgBitmapGameEnd = parameters["bgBitmapGameEnd"] || "";
|
||
var maxColsMenuWnd = Number(parameters["maxColsMenu"] || 4);
|
||
var rowsCommandWnd = Number(parameters["commandRows"] || 2);
|
||
var isDisplayStatus = !!Number(parameters["isDisplayStatus"]);
|
||
var isDisplayMapName = !!Number(parameters["display map name"]);
|
||
var locationString = parameters["location string"] || "";
|
||
|
||
//
|
||
// make transparent windows for each scene in menu.
|
||
//
|
||
var _Scene_Menu_create = Scene_Menu.prototype.create;
|
||
Scene_Menu.prototype.create = function () {
|
||
_Scene_Menu_create.call(this);
|
||
this._statusWindow.x = 0;
|
||
this._statusWindow.y = this._commandWindow.height;
|
||
this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;
|
||
// make transparent for all windows at menu scene.
|
||
this._statusWindow.opacity = 0;
|
||
this._goldWindow.opacity = 0;
|
||
this._commandWindow.opacity = 0;
|
||
this.createMapNameWindow();
|
||
};
|
||
|
||
var _Scene_Item_create = Scene_Item.prototype.create;
|
||
Scene_Item.prototype.create = function () {
|
||
_Scene_Item_create.call(this);
|
||
this._helpWindow.opacity = 0;
|
||
this._categoryWindow.opacity = 0;
|
||
this._itemWindow.opacity = 0;
|
||
this._actorWindow.opacity = 0;
|
||
};
|
||
|
||
var _Scene_Skill_create = Scene_Skill.prototype.create;
|
||
Scene_Skill.prototype.create = function () {
|
||
_Scene_Skill_create.call(this);
|
||
this._helpWindow.opacity = 0;
|
||
this._skillTypeWindow.opacity = 0;
|
||
this._statusWindow.opacity = 0;
|
||
this._itemWindow.opacity = 0;
|
||
this._actorWindow.opacity = 0;
|
||
};
|
||
|
||
var _Scene_Equip_create = Scene_Equip.prototype.create;
|
||
Scene_Equip.prototype.create = function () {
|
||
_Scene_Equip_create.call(this);
|
||
this._helpWindow.opacity = 0;
|
||
this._statusWindow.opacity = 0;
|
||
this._commandWindow.opacity = 0;
|
||
this._slotWindow.opacity = 0;
|
||
this._itemWindow.opacity = 0;
|
||
};
|
||
|
||
var _Scene_Status_create = Scene_Status.prototype.create;
|
||
Scene_Status.prototype.create = function () {
|
||
_Scene_Status_create.call(this);
|
||
this._statusWindow.opacity = 0;
|
||
};
|
||
|
||
var _Scene_Options_create = Scene_Options.prototype.create;
|
||
Scene_Options.prototype.create = function () {
|
||
_Scene_Options_create.call(this);
|
||
this._optionsWindow.opacity = 0;
|
||
};
|
||
|
||
var _Scene_File_create = Scene_File.prototype.create;
|
||
Scene_File.prototype.create = function () {
|
||
_Scene_File_create.call(this);
|
||
this._helpWindow.opacity = 0;
|
||
this._listWindow.opacity = 0;
|
||
};
|
||
|
||
var _Scene_GameEnd_create = Scene_GameEnd.prototype.create;
|
||
Scene_GameEnd.prototype.create = function () {
|
||
_Scene_GameEnd_create.call(this);
|
||
this._commandWindow.opacity = 0;
|
||
};
|
||
|
||
//
|
||
// display current map name
|
||
//
|
||
function Window_MapNameAlt3() {
|
||
this.initialize.apply(this, arguments);
|
||
}
|
||
|
||
Window_MapNameAlt3.prototype = Object.create(Window_MapName.prototype);
|
||
Window_MapNameAlt3.prototype.constructor = Window_MapNameAlt3;
|
||
|
||
Window_MapNameAlt3.prototype.initialize = function () {
|
||
Window_MapName.prototype.initialize.call(this);
|
||
};
|
||
|
||
Window_MapNameAlt3.prototype.windowWidth = function () {
|
||
return 600;
|
||
};
|
||
|
||
Window_MapNameAlt3.prototype.update = function () {
|
||
// do nothing
|
||
};
|
||
|
||
var mapName = function () {
|
||
var name = $gameMap.displayName();
|
||
return name ? name : $dataMapInfos[$gameMap.mapId()].name;
|
||
};
|
||
|
||
Window_MapNameAlt3.prototype.refresh = function () {
|
||
this.contents.clear();
|
||
this.x = 0;
|
||
this.y = Graphics.boxHeight - this.height;
|
||
if (mapName()) {
|
||
this.changeTextColor(this.systemColor());
|
||
var textWidth = this.textWidth(locationString) + 8;
|
||
var contentsWidth = this.contentsWidth();
|
||
if (textWidth) {
|
||
this.drawText(locationString, 4, 0, contentsWidth - 4, "left");
|
||
}
|
||
this.resetTextColor();
|
||
var orgX = 4 + textWidth;
|
||
this.drawText(mapName(), orgX, 0, contentsWidth - orgX, "left");
|
||
this.contentsOpacity = 255;
|
||
}
|
||
};
|
||
|
||
Scene_Menu.prototype.createMapNameWindow = function () {
|
||
if (isDisplayMapName) {
|
||
this._mapNameWindow = new Window_MapNameAlt3();
|
||
this.addChild(this._mapNameWindow);
|
||
this._mapNameWindow.opacity = 0;
|
||
}
|
||
};
|
||
|
||
var _Scene_Menu_terminate = Scene_Menu.prototype.terminate;
|
||
Scene_Menu.prototype.terminate = function () {
|
||
_Scene_Menu_terminate.call(this);
|
||
if (isDisplayMapName) {
|
||
this.removeChild(this._mapNameWindow);
|
||
}
|
||
};
|
||
|
||
//
|
||
// load bitmap that set in plugin parameter
|
||
//
|
||
var _Scene_Menu_createBackground = Scene_Menu.prototype.createBackground;
|
||
Scene_Menu.prototype.createBackground = function () {
|
||
if (bgBitmapMenu) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapMenu);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_Menu_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_Item_createBackground = Scene_Item.prototype.createBackground;
|
||
Scene_Item.prototype.createBackground = function () {
|
||
if (bgBitmapItem) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapItem);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_Item_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_Skill_createBackground = Scene_Skill.prototype.createBackground;
|
||
Scene_Skill.prototype.createBackground = function () {
|
||
if (bgBitmapSkill) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapSkill);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_Skill_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_Equip_createBackground = Scene_Equip.prototype.createBackground;
|
||
Scene_Equip.prototype.createBackground = function () {
|
||
if (bgBitmapEquip) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapEquip);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_Equip_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_Status_createBackground = Scene_Status.prototype.createBackground;
|
||
Scene_Status.prototype.createBackground = function () {
|
||
if (bgBitmapStatus) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapStatus);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_Status_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_Options_createBackground =
|
||
Scene_Options.prototype.createBackground;
|
||
Scene_Options.prototype.createBackground = function () {
|
||
if (bgBitmapOptions) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapOptions);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_Options_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_File_createBackground = Scene_File.prototype.createBackground;
|
||
Scene_File.prototype.createBackground = function () {
|
||
if (bgBitmapFile) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapFile);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_File_createBackground.call(this);
|
||
};
|
||
|
||
var _Scene_GameEnd_createBackground =
|
||
Scene_GameEnd.prototype.createBackground;
|
||
Scene_GameEnd.prototype.createBackground = function () {
|
||
if (bgBitmapGameEnd) {
|
||
this._backgroundSprite = new Sprite();
|
||
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapGameEnd);
|
||
this.addChild(this._backgroundSprite);
|
||
return;
|
||
}
|
||
// if background file is invalid, it does original process.
|
||
_Scene_GameEnd_createBackground.call(this);
|
||
};
|
||
|
||
//
|
||
// alt menu screen processes
|
||
//
|
||
Window_MenuCommand.prototype.windowWidth = function () {
|
||
return Graphics.boxWidth;
|
||
};
|
||
|
||
Window_MenuCommand.prototype.maxCols = function () {
|
||
return 4;
|
||
};
|
||
|
||
Window_MenuCommand.prototype.numVisibleRows = function () {
|
||
return rowsCommandWnd;
|
||
};
|
||
|
||
Window_MenuStatus.prototype.windowWidth = function () {
|
||
return Graphics.boxWidth;
|
||
};
|
||
|
||
Window_MenuStatus.prototype.windowHeight = function () {
|
||
var h1 = this.fittingHeight(1);
|
||
var h2 = this.fittingHeight(rowsCommandWnd);
|
||
return Graphics.boxHeight - h1 - h2;
|
||
};
|
||
|
||
Window_MenuStatus.prototype.maxCols = function () {
|
||
return maxColsMenuWnd;
|
||
};
|
||
|
||
Window_MenuStatus.prototype.numVisibleRows = function () {
|
||
return 1;
|
||
};
|
||
|
||
Window_MenuStatus.prototype.drawItemImage = function (index) {
|
||
var actor = $gameParty.members()[index];
|
||
var rect = this.itemRectForText(index);
|
||
// load stand_picture
|
||
var bitmapName = $dataActors[actor.actorId()].meta.stand_picture;
|
||
var bitmap = bitmapName ? ImageManager.loadPicture(bitmapName) : null;
|
||
var w = Math.min(rect.width, bitmapName ? bitmap.width : 144);
|
||
var h = Math.min(rect.height, bitmapName ? bitmap.height : 144);
|
||
var lineHeight = this.lineHeight();
|
||
this.changePaintOpacity(actor.isBattleMember());
|
||
if (bitmap) {
|
||
var sx = bitmap.width > w ? (bitmap.width - w) / 2 : 0;
|
||
var sy = bitmap.height > h ? (bitmap.height - h) / 2 : 0;
|
||
var dx =
|
||
bitmap.width > rect.width
|
||
? rect.x
|
||
: rect.x + (rect.width - bitmap.width) / 2;
|
||
var dy =
|
||
bitmap.height > rect.height
|
||
? rect.y
|
||
: rect.y + (rect.height - bitmap.height) / 2;
|
||
this.contents.blt(bitmap, sx, sy, w, h, dx, dy);
|
||
} else {
|
||
// when bitmap is not set, do the original process.
|
||
this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);
|
||
}
|
||
this.changePaintOpacity(true);
|
||
};
|
||
|
||
Window_MenuStatus.prototype.drawItemStatus = function (index) {
|
||
if (!isDisplayStatus) {
|
||
return;
|
||
}
|
||
var actor = $gameParty.members()[index];
|
||
var rect = this.itemRectForText(index);
|
||
var x = rect.x;
|
||
var y = rect.y;
|
||
var width = rect.width;
|
||
var bottom = y + rect.height;
|
||
var lineHeight = this.lineHeight();
|
||
this.drawActorName(actor, x, y + lineHeight * 0, width);
|
||
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
|
||
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
|
||
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
|
||
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
|
||
this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);
|
||
};
|
||
|
||
var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;
|
||
Window_MenuActor.prototype.initialize = function () {
|
||
_Window_MenuActor_initialize.call(this);
|
||
this.y = this.fittingHeight(2);
|
||
};
|
||
})();
|