105 lines
No EOL
3.9 KiB
JavaScript
105 lines
No EOL
3.9 KiB
JavaScript
//=============================================================================
|
|
// Simple Event Fade
|
|
// SimpleEventFade.js
|
|
// Version: 1.1
|
|
// Author: Kuoushi
|
|
//=============================================================================
|
|
|
|
//=============================================================================
|
|
/*:
|
|
* @plugindesc v1.1 Makes fading events in or out easier.
|
|
* @author Kuoushi
|
|
*
|
|
* @param Default Fade Time
|
|
* @desc The default number of frames to fade an event in or out. (1 - 255)
|
|
* @default 30
|
|
*
|
|
* @help
|
|
* ============================================================================
|
|
* Introduction
|
|
* ============================================================================
|
|
*
|
|
* This plugin is meant to make events fading in or out a much simpler process
|
|
* than having to set the opacity over and over. Not sure if anyone else has
|
|
* that issue or not, (or if it's actually fixable in engine), but I made a
|
|
* plugin to help simplify the process.
|
|
*
|
|
* In the move route of the event you want to fade, add a script call where
|
|
* you want the fade to occur. The script call would be one of the following:
|
|
*
|
|
* this.fadeIn(x)
|
|
* this.fadeOut(x)
|
|
*
|
|
* x is the number of frames you want the fade to last. If you just want to use
|
|
* the default in the plugin parameters then you can just say this.fadeIn() for
|
|
* even further convenience. The fade will start on whatever your character's
|
|
* current opacity is set at.
|
|
*
|
|
* ============================================================================
|
|
* Changelog
|
|
* ============================================================================
|
|
*
|
|
* 1.1 Fixed possible bug where we didn't move the moveroute index back
|
|
* after splicing in the new fade commands. Also added in a new fadeTo
|
|
* command that'll allow you to fade to a specific opacity instead of
|
|
* just in or out.
|
|
* 1.01 Fixed the issue which required the call to be at the end of the
|
|
* route list. Now it can be called in any location in a movement route.
|
|
* 1.00 Plugin with basic functionality created.
|
|
*
|
|
*/
|
|
//=============================================================================
|
|
|
|
(function() {
|
|
|
|
var Parameters = PluginManager.parameters('SimpleEventFade');
|
|
var DefaultFadeTime = Number(Parameters['Default Fade Time']);
|
|
|
|
Game_CharacterBase.prototype.fadeOut = function(numFrames) {
|
|
this.fadeTo(0,numFrames);
|
|
};
|
|
|
|
Game_CharacterBase.prototype.fadeIn = function(numFrames) {
|
|
this.fadeTo(255,numFrames);
|
|
};
|
|
|
|
Game_CharacterBase.prototype.fadeTo = function(fadeOpac, numFrames) {
|
|
var time = DefaultFadeTime;
|
|
if(numFrames)
|
|
time = numFrames;
|
|
|
|
var route = {};
|
|
route.list = [];
|
|
var waitObj = {};
|
|
waitObj.code = Game_Character.ROUTE_WAIT;
|
|
waitObj.parameters = [1];
|
|
|
|
var step = (fadeOpac - this._opacity) / time;
|
|
|
|
if(step < 0)
|
|
step = Math.ceil(Math.abs(step)) * -1;
|
|
else
|
|
step = Math.ceil(step);
|
|
|
|
for(var i = this._opacity; i != fadeOpac; i += step) {
|
|
var command = new Object();
|
|
command.code = Game_Character.ROUTE_CHANGE_OPACITY;
|
|
command.parameters = [i];
|
|
route.list.push(command);
|
|
route.list.push(waitObj);
|
|
if(i != fadeOpac) {
|
|
if((step > 0 && (i + step) > fadeOpac) || (step < 0 && (i + step) < fadeOpac)) {
|
|
var last = new Object();
|
|
last.code = Game_Character.ROUTE_CHANGE_OPACITY;
|
|
last.parameters = [fadeOpac];
|
|
route.list.push(last);
|
|
i = fadeOpac - step;
|
|
}
|
|
}
|
|
}
|
|
|
|
route.list = this._moveRoute.list.slice(0,this._moveRouteIndex).concat(route.list).concat(this._moveRoute.list.slice(this._moveRouteIndex+1));
|
|
this._moveRoute.list = route.list;
|
|
this._moveRouteIndex--;
|
|
};
|
|
})(); |