388 lines
No EOL
13 KiB
JavaScript
388 lines
No EOL
13 KiB
JavaScript
//=============================================================================
|
|
// セーブ画面 / AltSaveScreen.js
|
|
//=============================================================================
|
|
|
|
/*:ja
|
|
* v0.3.0
|
|
* @plugindesc
|
|
* セーブ/ロード画面のレイアウトを変更します。
|
|
* 導入前にヘルプを読むことを推奨
|
|
*
|
|
* @author Declare War
|
|
*
|
|
* @param UseBackPicture1
|
|
* @default true
|
|
* @desc 背景の画像を使うかどうか(true/false)
|
|
*
|
|
* @param BackPicture1
|
|
* @default Save_Back_Picture
|
|
* @desc 背景の画像のファイル名
|
|
*
|
|
* @param UseBackPicture2
|
|
* @default true
|
|
* @desc 背景の上に表示する画像を使うかどうか(ウィンドウの代わり、true/false)
|
|
*
|
|
* @param BackPicture2
|
|
* @default Save_Back_Picture2
|
|
* @desc 背景の上に表示する画像のファイル名
|
|
*
|
|
* @param Opacity
|
|
* @default 192
|
|
* @desc ウィンドウの不透明度
|
|
*
|
|
* @param DrawGauge
|
|
* @default true
|
|
* @desc HPMPゲージを描画するかどうか(true/false)
|
|
*
|
|
* @param MoveLvDraw
|
|
* @default false
|
|
* @desc レベルの描画を名前の下にするかどうか(true/false)
|
|
*
|
|
* @param FontSize1
|
|
* @default 24
|
|
* @desc 左のウィンドウのフォントサイズ(初期設定は24)
|
|
*
|
|
* @param FontSize2
|
|
* @default 28
|
|
* @desc 右のウィンドウのフォントサイズ(初期設定は28)
|
|
*
|
|
* @param Color1
|
|
* @default rgba(0,0,0,0.2)
|
|
* @desc ファイル名表示のところの背景の色の設定1
|
|
*
|
|
* @param Color2
|
|
* @default rgba(0,0,0,1)
|
|
* @desc ファイル名表示のところの背景の色の設定2
|
|
*
|
|
* @param Color3
|
|
* @default rgba(0,0,64,0.5)
|
|
* @desc マップ名表示のところの背景の色の設定1
|
|
*
|
|
* @param Color4
|
|
* @default rgba(0,0,64,0.5)
|
|
* @desc マップ名表示のところの背景の色の設定2
|
|
*
|
|
* @param Color5
|
|
* @default #00FF00
|
|
* @desc マップ名のテキストの色
|
|
*
|
|
* @help このプラグインには、プラグインコマンドはありません。
|
|
*
|
|
* ●マップ名表示について
|
|
* 実際のマップ名ではなく編集画面の表示名の方を表示する
|
|
*
|
|
* ●注意
|
|
* 導入前にsaveフォルダを空にする
|
|
* (global.rpgsaveも消す、コンフィグのは残してもOK)
|
|
*
|
|
* 画像はPicturesフォルダに入れる
|
|
*
|
|
*/
|
|
|
|
(function(){
|
|
// params --------------------------------------------------------
|
|
var parameters = PluginManager.parameters('savehenko');
|
|
var Params = {};
|
|
Params.useBackPicture1 = parameters['UseBackPicture1'] || '';
|
|
Params.backPicture1 = parameters['BackPicture1'] || '';
|
|
Params.useBackPicture2 = parameters['UseBackPicture2'] || '';
|
|
Params.backPicture2 = parameters['BackPicture2'] || '';
|
|
Params.opacity = Number(parameters['Opacity'] || 0);
|
|
Params.drawGauge = parameters['DrawGauge'] || '';
|
|
Params.moveLvDraw = parameters['MoveLvDraw'] || '';
|
|
Params.fontSize1 = Number(parameters['FontSize1'] || 24);
|
|
Params.fontSize2 = Number(parameters['FontSize2'] || 36);
|
|
Params.color = [parameters['Color1'], parameters['Color2'],
|
|
parameters['Color3'], parameters['Color4'], parameters['Color5']];
|
|
Params.defalutColor = ['rgba(0,0,0,0.2)', 'rgba(0,0,0,1)',
|
|
'rgba(0,0,64,0.5)', 'rgba(0,0,64,0.5)', '#00FF00'];
|
|
// DataManager -------------------------------------------------------------
|
|
// makeSavefileInfo
|
|
var _DataManager_makeSavefileInfo = DataManager.makeSavefileInfo;
|
|
DataManager.makeSavefileInfo = function() {
|
|
var info = _DataManager_makeSavefileInfo.call(this);
|
|
info.partyLeaderParam = $gameParty.leaderParam();
|
|
info.mapName = $gameMap.displayName();
|
|
return info;
|
|
};
|
|
// Game_Party --------------------------------------------------------------
|
|
// leaderParam
|
|
Game_Party.prototype.leaderParam = function() {
|
|
var actor = this.leader();
|
|
if (!actor) return null;
|
|
return [actor._level, actor.hp, actor.mhp, actor.mp, actor.mmp,
|
|
actor.atk, actor.def, actor.mat, actor.mdf, actor.agi,
|
|
actor.luk, actor.name()];
|
|
};
|
|
// Window_SavefileList -----------------------------------------------------
|
|
// maxItems
|
|
Window_SavefileList.prototype.maxItems = function() {
|
|
return DataManager.maxSavefiles();
|
|
};
|
|
// maxVisibleItems
|
|
Window_SavefileList.prototype.maxVisibleItems = function() {
|
|
return 15;
|
|
};
|
|
// setActorWindow
|
|
Window_SavefileList.prototype.setActorWindow = function(window) {
|
|
this._actorWindow = window;
|
|
this.updateActorWindow();
|
|
};
|
|
// updateActorWindow
|
|
Window_SavefileList.prototype.updateActorWindow = function() {
|
|
if (this._actorWindow){
|
|
var id = this.index() + 1;
|
|
this._actorWindow.setId(id);
|
|
}
|
|
};
|
|
// callUpdateHelp
|
|
var _Window_SavefileList_callUpdateHelp = Window_SavefileList.prototype.callUpdateHelp;
|
|
Window_SavefileList.prototype.callUpdateHelp = function() {
|
|
_Window_SavefileList_callUpdateHelp.call(this);
|
|
if (this.active && this._actorWindow) {
|
|
this.updateActorWindow();
|
|
}
|
|
};
|
|
// standardFontSize
|
|
Window_SavefileList.prototype.standardFontSize = function() {
|
|
return Params.fontSize1;
|
|
};
|
|
// leftWidth
|
|
Window_SavefileList.prototype.leftWidth = function() {
|
|
return 88;
|
|
};
|
|
// centerWidth
|
|
Window_SavefileList.prototype.centerWidth = function() {
|
|
return 240;
|
|
};
|
|
// drawItem
|
|
Window_SavefileList.prototype.drawItem = function(index) {
|
|
var id = index + 1;
|
|
var valid = DataManager.isThisGameFile(id);
|
|
var info = DataManager.loadSavefileInfo(id);
|
|
var rect = this.itemRect(index);
|
|
this.resetTextColor();
|
|
if (this._mode === 'load') {
|
|
this.changePaintOpacity(valid);
|
|
}
|
|
this.backGradient(rect);
|
|
this.drawFileId(id, rect.x + 4, rect.y);
|
|
if (info) {
|
|
this.changePaintOpacity(valid);
|
|
this.drawContents(info, rect, valid);
|
|
this.changePaintOpacity(true);
|
|
}
|
|
};
|
|
// drawFileId
|
|
Window_SavefileList.prototype.drawFileId = function(id, x, y) {
|
|
this.drawText('File ' + id, x, y, this.leftWidth());
|
|
};
|
|
// backGradient
|
|
Window_SavefileList.prototype.backGradient = function(rect) {
|
|
var c1 = Params.color[0] || Params.defalutColor[0];
|
|
var c2 = Params.color[1] || Params.defalutColor[1];
|
|
var c3 = Params.color[2] || Params.defalutColor[2];
|
|
var c4 = Params.color[3] || Params.defalutColor[3];
|
|
var w1 = this.leftWidth();
|
|
var w2 = rect.width - w1;
|
|
this.contents.gradientFillRect(rect.x, rect.y, w1, 36, c1, c2);
|
|
this.contents.gradientFillRect(rect.x+w1, rect.y, w2, 36, c3, c4);
|
|
};
|
|
// drawContents
|
|
Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
|
|
var x1 = rect.x + this.leftWidth() + 6;
|
|
var w1 = this.centerWidth();
|
|
this.drawMapName(info, x1, rect.y, w1);
|
|
var rx = x1 + this.centerWidth();
|
|
var rw = rect.width - x1 - this.centerWidth() - 6;
|
|
this.drawPlaytime(info, rx, rect.y, rw);
|
|
};
|
|
// drawMapName
|
|
Window_SavefileList.prototype.drawMapName = function(info, x, y, width) {
|
|
if (info.mapName) {
|
|
var color = Params.color[4] || Params.defalutColor[4];
|
|
this.changeTextColor(color);
|
|
this.drawText(info.mapName, x, y, width);
|
|
this.resetTextColor();
|
|
}
|
|
};
|
|
// Window_Save_Actor -------------------------------------------------------
|
|
//
|
|
function Window_Save_Actor() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Window_Save_Actor.prototype = Object.create(Window_Base.prototype);
|
|
Window_Save_Actor.prototype.constructor = Window_Save_Actor;
|
|
|
|
// standardFontSize
|
|
Window_Save_Actor.prototype.standardFontSize = function() {
|
|
return Params.fontSize2;
|
|
};
|
|
// setId
|
|
Window_Save_Actor.prototype.setId = function(id) {
|
|
this.refresh(id);
|
|
};
|
|
// refresh
|
|
Window_Save_Actor.prototype.refresh = function(id) {
|
|
this.contents.clear();
|
|
var info = DataManager.loadSavefileInfo(id);
|
|
if (!info) return;
|
|
var param = info.partyLeaderParam;
|
|
var name = String(param[param.length - 1]);
|
|
var cx = (this.contents.width - 144) / 2;
|
|
var bx = 6;
|
|
var by = 152;
|
|
var lh = 36;
|
|
var pw = 0;
|
|
var ph = 0;
|
|
var flag = Params.moveLvDraw === 'true';
|
|
if (flag){
|
|
pw += 72;
|
|
ph += lh;
|
|
|
|
}
|
|
|
|
this.drawActorName(name, param[1], param[2], bx, by + lh * 0, 200 + pw);
|
|
|
|
for (var i = 0; i < 6; i++) {
|
|
this.drawItem(param, bx, by + ph + lh * (3 + i), 2 + i, 5 + i);
|
|
}
|
|
};
|
|
// drawActorName
|
|
Window_Save_Actor.prototype.drawActorName = function(name, hp, mhp, x, y, width) {
|
|
width = width || 168;
|
|
var rate = hp / mhp;
|
|
this.changeTextColor(this.hpColor(rate));
|
|
this.drawText(name, x, y, width);
|
|
};
|
|
// drawActorLevel
|
|
Window_Save_Actor.prototype.drawActorLevel = function(num, x, y, flag) {
|
|
var dx = flag ? 6 : x
|
|
var dw = flag ? 60 : 36
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(TextManager.levelA, dx, y, dw);
|
|
this.resetTextColor();
|
|
this.drawText(num, dx + dw, y, dw, 'right');
|
|
};
|
|
// drawActorHp
|
|
Window_Save_Actor.prototype.drawActorHp = function(hp, mhp, x, y, width) {
|
|
var rate = hp / mhp;
|
|
width = width || 186;
|
|
if (Params.drawGauge === 'true'){
|
|
var color1 = this.hpGaugeColor1();
|
|
var color2 = this.hpGaugeColor2();
|
|
this.drawGauge(x, y, width, rate, color1, color2);
|
|
}
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(TextManager.hpA, x, y, 44);
|
|
this.drawCurrentAndMax(hp, mhp, x, y, width,
|
|
this.hpColor(rate), this.normalColor());
|
|
};
|
|
// hpColor
|
|
Window_Save_Actor.prototype.hpColor = function(rate) {
|
|
if (rate === 0) {
|
|
return this.deathColor();
|
|
} else if (rate <= 0.25) {
|
|
return this.crisisColor();
|
|
} else {
|
|
return this.normalColor();
|
|
}
|
|
};
|
|
// drawActorMp
|
|
Window_Save_Actor.prototype.drawActorMp = function(mp, mmp, x, y, width) {
|
|
var rate = mp / mmp;
|
|
width = width || 186;
|
|
if (Params.drawGauge === 'true'){
|
|
var color1 = this.mpGaugeColor1();
|
|
var color2 = this.mpGaugeColor2();
|
|
this.drawGauge(x, y, width, rate, color1, color2);
|
|
}
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(TextManager.mpA, x, y, 44);
|
|
this.drawCurrentAndMax(mp, mmp, x, y, width,
|
|
this.normalColor(), this.normalColor());
|
|
};
|
|
// drawItem
|
|
Window_Save_Actor.prototype.drawItem = function(param, x, y, paramId, paramId2) {
|
|
this.drawParamName(x, y, paramId);
|
|
this.drawCurrentParam(x + 180, y, param[paramId2]);
|
|
};
|
|
// drawParamName
|
|
Window_Save_Actor.prototype.drawParamName = function(x, y, paramId) {
|
|
this.changeTextColor(this.systemColor());
|
|
this.drawText(TextManager.param(paramId), x, y, 140);
|
|
};
|
|
// drawCurrentParam
|
|
Window_Save_Actor.prototype.drawCurrentParam = function(x, y, num) {
|
|
this.resetTextColor();
|
|
this.drawText(num, x, y, 15, 'right');
|
|
};
|
|
// Scene_Title -------------------------------------------------------------
|
|
// isReady
|
|
var _Scene_Title_isReady = Scene_Title.prototype.isReady;
|
|
Scene_Title.prototype.isReady = function() {
|
|
if (!this.faceLoadFlag){
|
|
this.faceLoadFlag = true;
|
|
DataManager.loadAllSavefileImages();
|
|
}
|
|
return _Scene_Title_isReady.call(this);
|
|
}
|
|
// Scene_File --------------------------------------------------------------
|
|
// createBackground
|
|
Scene_File.prototype.createBackground = function() {
|
|
this._backgroundSprite = new Sprite();
|
|
if (Params.useBackPicture1 === 'true'){
|
|
this._backgroundSprite.bitmap =
|
|
ImageManager.loadPicture(Params.backPicture1, 0);
|
|
}else{
|
|
this._backgroundSprite.bitmap = SceneManager.backgroundBitmap();
|
|
}
|
|
this.addChild(this._backgroundSprite);
|
|
|
|
if (Params.useBackPicture2 === 'true'){
|
|
this._backgroundSprite2 = new Sprite();
|
|
this._backgroundSprite2.bitmap =
|
|
ImageManager.loadPicture(Params.backPicture2, 0);
|
|
this.addChild(this._backgroundSprite2);
|
|
};
|
|
};
|
|
// create
|
|
var _Scene_File_create = Scene_File.prototype.create;
|
|
Scene_File.prototype.create = function() {
|
|
_Scene_File_create.call(this);
|
|
this.createActorWindow();
|
|
this.setWindowOpacity();
|
|
};
|
|
// createListWindow
|
|
Scene_File.prototype.createListWindow = function() {
|
|
var x = 0;
|
|
var y = this._helpWindow.height;
|
|
var width = 496;
|
|
var height = Graphics.boxHeight - y;
|
|
this._listWindow = new Window_SavefileList(x, y, width, height);
|
|
this._listWindow.setHandler('ok', this.onSavefileOk.bind(this));
|
|
this._listWindow.setHandler('cancel', this.popScene.bind(this));
|
|
this._listWindow.select(this.firstSavefileIndex());
|
|
this._listWindow.setTopRow(this.firstSavefileIndex() - 2);
|
|
this._listWindow.setMode(this.mode());
|
|
this._listWindow.refresh();
|
|
this.addWindow(this._listWindow);
|
|
};
|
|
// createActorWindow
|
|
Scene_File.prototype.createActorWindow = function() {
|
|
var x = this._listWindow.width;
|
|
var y = this._helpWindow.height;
|
|
var w = Graphics.boxWidth - x;
|
|
var h = Graphics.boxHeight - y;
|
|
this._actorWindow = new Window_Save_Actor(x, y, w, h);
|
|
this._listWindow.setActorWindow(this._actorWindow);
|
|
this.addWindow(this._actorWindow);
|
|
}
|
|
// setWindowOpacity
|
|
Scene_File.prototype.setWindowOpacity = function(){
|
|
this._helpWindow.opacity = Params.opacity;
|
|
this._listWindow.opacity = Params.opacity;
|
|
this._actorWindow.opacity = Params.opacity;
|
|
}
|
|
})(); |