You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

306 lines
10 KiB
JavaScript

3 years ago
/*:
* NOTE: Images are stored in the img/system folder.
*
* @plugindesc Show a Splash Screen "Made with MV" and/or a Custom Splash Screen before going to main screen.
* @author Dan "Liquidize" Deptula
*
* @help This plugin does not provide plugin commands.
*
* @param Show Made With MV
* @desc Enabled/Disables showing the "Made with MV" splash screen.
* OFF - false ON - true
* Default: ON
* @default true
*
* @param Made with MV Image
* @desc The image to use when showing "Made with MV"
* Default: MadeWithMv
* @default MadeWithMv
* @require 1
* @dir img/system/
* @type file
*
* @param Show Custom Splash
* @desc Enabled/Disables showing the "Made with MV" splash screen.
* OFF - false ON - true
* Default: OFF
* @default false
*
* @param Custom Image
* @desc The image to use when showing "Made with MV"
* Default:
* @default
3 years ago
* @require 1
* @dir img/system/
* @type file
*
* @param Fade Out Time
* @desc The time it takes to fade out, in frames.
* Default: 120
* @default 120
*
* @param Fade In Time
* @desc The time it takes to fade in, in frames.
* Default: 120
* @default 120
*
* @param Wait Time
* @desc The time between fading in and out, in frames.
* Default: 160
* @default 160
*
*/
/*:ja
* メモ: イメージはimgsystemフォルダ内に保存されます
*
* @plugindesc メイン画面へ進む前に"Made with MV"のスプラッシュ画面もしくはカスタマイズされたスプラッシュ画面を表示します
* @author Dan "Liquidize" Deptula
*
* @help このプラグインにはプラグインコマンドはありません
*
* @param Show Made With MV
* @desc "Made with MV"のスプラッシュ画面を表示できる/できないようにします
3 years ago
* OFF - false ON - true
* デフォルト: ON
* @default true
*
* @param Made with MV Image
* @desc "Made with MV"を表示する際に使用する画像
* デフォルト: MadeWithMv
* @default MadeWithMv
* @require 1
* @dir img/system/
* @type file
*
* @param Show Custom Splash
* @desc "Made with MV"のスプラッシュ画面を表示できる/できないようにします
3 years ago
* OFF - false ON - true
* デフォルト: OFF
* @default false
*
* @param Custom Image
* @desc "Made with MV"を表示する際に使用する画像
* デフォルト:
* @default
3 years ago
* @require 1
* @dir img/system/
* @type file
*
* @param Fade Out Time
* @desc フェードアウトに要する時間フレーム数
* デフォルト: 120
* @default 120
*
* @param Fade In Time
* @desc フェードインに要する時間フレーム数
* デフォルト: 120
* @default 120
*
* @param Wait Time
* @desc フェードインからフェードアウトまでに要する時間フレーム数
* デフォルト: 160
* @default 160
*
*/
var Liquidize = Liquidize || {};
Liquidize.MadeWithMV = {};
Liquidize.MadeWithMV.Parameters = PluginManager.parameters("MadeWithMv");
3 years ago
Liquidize.MadeWithMV.ShowMV = JSON.parse(Liquidize.MadeWithMV.Parameters["Show Made With MV"]);
Liquidize.MadeWithMV.MVImage = String(Liquidize.MadeWithMV.Parameters["Made with MV Image"]);
Liquidize.MadeWithMV.ShowCustom = JSON.parse(Liquidize.MadeWithMV.Parameters["Show Custom Splash"]);
Liquidize.MadeWithMV.CustomImage = String(Liquidize.MadeWithMV.Parameters["Custom Image"]);
Liquidize.MadeWithMV.FadeOutTime = Number(Liquidize.MadeWithMV.Parameters["Fade Out Time"]) || 120;
Liquidize.MadeWithMV.FadeInTime = Number(Liquidize.MadeWithMV.Parameters["Fade In Time"]) || 120;
Liquidize.MadeWithMV.WaitTime = Number(Liquidize.MadeWithMV.Parameters["Wait Time"]) || 160;
//-----------------------------------------------------------------------------
// Scene_Splash
//
// This is a constructor, implementation is done in the inner scope.
function Scene_Splash() {
this.initialize.apply(this, arguments);
}
(function () {
3 years ago
//-----------------------------------------------------------------------------
// Scene_Boot
//
// The scene class for dealing with the game boot.
3 years ago
var _Scene_Boot_loadSystemImages = Scene_Boot.prototype.loadSystemImages;
Scene_Boot.prototype.loadSystemImages = function () {
3 years ago
_Scene_Boot_loadSystemImages.call(this);
if (Liquidize.MadeWithMV.ShowMV) {
ImageManager.loadSystem(Liquidize.MadeWithMV.MVImage);
}
if (Liquidize.MadeWithMV.ShowCustom) {
ImageManager.loadSystem(Liquidize.MadeWithMV.CustomImage);
}
};
var _Scene_Boot_start = Scene_Boot.prototype.start;
Scene_Boot.prototype.start = function () {
if (
(Liquidize.MadeWithMV.ShowMV || Liquidize.MadeWithMV.ShowCustom) &&
!DataManager.isBattleTest() &&
!DataManager.isEventTest()
) {
3 years ago
SceneManager.goto(Scene_Splash);
} else {
_Scene_Boot_start.call(this);
}
};
//-----------------------------------------------------------------------------
// Scene_Splash
//
// The scene class for dealing with the splash screens.
Scene_Splash.prototype = Object.create(Scene_Base.prototype);
Scene_Splash.prototype.constructor = Scene_Splash;
Scene_Splash.prototype.initialize = function () {
3 years ago
Scene_Base.prototype.initialize.call(this);
this._mvSplash = null;
this._customSplash = null;
this._mvWaitTime = Liquidize.MadeWithMV.WaitTime;
this._customWaitTime = Liquidize.MadeWithMV.WaitTime;
this._mvFadeOut = false;
this._mvFadeIn = false;
this._customFadeOut = false;
this._customFadeIn = false;
};
Scene_Splash.prototype.create = function () {
3 years ago
Scene_Base.prototype.create.call(this);
this.createSplashes();
};
Scene_Splash.prototype.start = function () {
3 years ago
Scene_Base.prototype.start.call(this);
SceneManager.clearStack();
if (this._mvSplash != null) {
this.centerSprite(this._mvSplash);
}
if (this._customSplash != null) {
this.centerSprite(this._customSplash);
}
};
Scene_Splash.prototype.update = function () {
3 years ago
if (Liquidize.MadeWithMV.ShowMV) {
if (!this._mvFadeIn) {
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
this._mvFadeIn = true;
} else {
if (this._mvWaitTime > 0 && this._mvFadeOut == false) {
this._mvWaitTime--;
} else {
if (this._mvFadeOut == false) {
this._mvFadeOut = true;
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
}
}
}
}
if (Liquidize.MadeWithMV.ShowCustom) {
if (Liquidize.MadeWithMV.ShowMV && this._mvFadeOut == true) {
if (!this._customFadeIn && this._fadeDuration == 0) {
this._customSplash.opacity = 255;
this._customWaitTime = Liquidize.MadeWithMV.WaitTime;
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
this._customFadeIn = true;
} else {
if (this._customWaitTime > 0 && this._customFadeOut == false) {
this._customWaitTime--;
} else {
if (this._customFadeOut == false) {
this._customFadeOut = true;
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
}
}
}
} else if (!Liquidize.MadeWithMV.ShowMV) {
if (!this._customFadeIn) {
this._customSplash.opacity = 255;
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
this._customFadeIn = true;
} else {
if (this._customWaitTime > 0 && this._customFadeOut == false) {
this._customWaitTime--;
} else {
if (this._customFadeOut == false) {
this._customFadeOut = true;
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
}
}
}
}
}
if (Liquidize.MadeWithMV.ShowCustom) {
if (Liquidize.MadeWithMV.ShowMV && this._mvFadeOut == true && this._customFadeOut == true) {
this.gotoTitleOrTest();
} else if (!Liquidize.MadeWithMV.ShowMV && this._customFadeOut == true) {
this.gotoTitleOrTest();
}
} else {
if (this._mvFadeOut == true) {
this.gotoTitleOrTest();
}
}
Scene_Base.prototype.update.call(this);
};
Scene_Splash.prototype.createSplashes = function () {
3 years ago
if (Liquidize.MadeWithMV.ShowMV) {
this._mvSplash = new Sprite(ImageManager.loadSystem(Liquidize.MadeWithMV.MVImage));
this.addChild(this._mvSplash);
}
if (Liquidize.MadeWithMV.ShowCustom) {
this._customSplash = new Sprite(ImageManager.loadSystem(Liquidize.MadeWithMV.CustomImage));
this._customSplash.opacity = 0;
this.addChild(this._customSplash);
}
};
Scene_Splash.prototype.centerSprite = function (sprite) {
3 years ago
sprite.x = Graphics.width / 2;
sprite.y = Graphics.height / 2;
sprite.anchor.x = 0.5;
sprite.anchor.y = 0.5;
};
Scene_Splash.prototype.gotoTitleOrTest = function () {
3 years ago
Scene_Base.prototype.start.call(this);
SoundManager.preloadImportantSounds();
if (DataManager.isBattleTest()) {
DataManager.setupBattleTest();
SceneManager.goto(Scene_Battle);
} else if (DataManager.isEventTest()) {
DataManager.setupEventTest();
SceneManager.goto(Scene_Map);
} else {
this.checkPlayerLocation();
DataManager.setupNewGame();
SceneManager.goto(Scene_Title);
Window_TitleCommand.initCommandPosition();
}
this.updateDocumentTitle();
};
Scene_Splash.prototype.updateDocumentTitle = function () {
3 years ago
document.title = $dataSystem.gameTitle;
};
Scene_Splash.prototype.checkPlayerLocation = function () {
3 years ago
if ($dataSystem.startMapId === 0) {
throw new Error("Player's starting position is not set");
3 years ago
}
};
})();