OMORI_Android/www.eng/js/plugins/YEP_UtilityCommonEvents.js
2024-01-15 18:44:53 +03:00

261 lines
No EOL
9.7 KiB
JavaScript

//=============================================================================
// Yanfly Engine Plugins - Utility Common Events
// YEP_UtilityCommonEvents.js
//=============================================================================
var Imported = Imported || {};
Imported.YEP_UtilityCommonEvents = true;
var Yanfly = Yanfly || {};
Yanfly.UCE = Yanfly.UCE || {};
Yanfly.UCE.version = 1.01;
//=============================================================================
/*:
* @plugindesc v1.01 Make common events occur at specific gameplay points
* such as on loading, after battles, etc.
* @author Yanfly Engine Plugins
*
* @param ---General---
* @default
*
* @param Load Game Event
* @parent ---General---
* @type common_event
* @desc Run this common event each time the player loads a game.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Battle Won Event
* @parent ---General---
* @type common_event
* @desc Run this common event each time the player wins a battle.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Escape Battle Event
* @parent ---General---
* @type common_event
* @desc Run this common event each time the player wins a battle.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Close Menu Event
* @parent ---General---
* @type common_event
* @desc Run this common event each time the player closes main menu.
* Set as 0 if you do not wish to run a common event.
* @default 0
* @param ---Vehicles---
* @default
*
* @param Boat Enter Event
* @parent ---Vehicles---
* @type common_event
* @desc Run this common event each time the player enters a boat.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Boat Exit Event
* @parent ---Vehicles---
* @type common_event
* @desc Run this common event each time the player exits a boat.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Ship Enter Event
* @parent ---Vehicles---
* @type common_event
* @desc Run this common event each time the player enters a ship.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Ship Exit Event
* @parent ---Vehicles---
* @type common_event
* @desc Run this common event each time the player exits a ship.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Airship Enter Event
* @parent ---Vehicles---
* @type common_event
* @desc Run this common event each time the player enters airship.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @param Airship Exit Event
* @parent ---Vehicles---
* @type common_event
* @desc Run this common event each time the player exits airship.
* Set as 0 if you do not wish to run a common event.
* @default 0
*
* @help
* ============================================================================
* Introduction
* ============================================================================
*
* Sometimes, we'd like a little bit more control over the kinds of things that
* occur during certain aspects of our RPG Maker projects. What could have been
* easily done through common events is made more difficult because there are
* no proper triggers to activate those common events. This plugin enables
* certain triggers to occur from loading a game, winning a battle, escaping a
* battle, and more.
*
* ============================================================================
* Instructions
* ============================================================================
*
* Change the plugin parameters for each of the triggers you want tied to a
* common event to reflect the ID of that common event. The triggers will be
* the following along with some examples of how they can be used:
*
* - Load Game -
* Will occur whenever the game is loaded. This can be used for things like
* story recaps, adjusting in-game timers, or checking for updates.
*
* - Battle Won -
* Will proc whenever a battle is won and the player returns to the map. Can be
* used for things like updating certain variables or statistics after battle.
*
* - Escape Battle -
* Like the previous but will occur whenever the player escapes battle instead.
* This can be used for things such as events where the player would have to be
* on a stealth mission or whatever and escaping can bring them back into a
* certain spot.
*
* - Close Menu -
* Occurs when the player exits the main menu and returns to the map scene. Can
* be used for recalibrating equipment, making checks, custom events, and more.
*
* - Vehicle Enter -
* - Vehicle Exit -
* These events will occur whenever the player will enter/exit the specific
* vehicle. This can be used to enable/disable certain HUD's while in specific
* vehicles to give a more immersive feeling.
*
* ============================================================================
* Changelog
* ============================================================================
*
* Version 1.01:
* - Updated for RPG Maker MV version 1.5.0.
*
* Version 1.00:
* - Finished Plugin!
*/
//=============================================================================
//=============================================================================
// Parameter Variables
//=============================================================================
Yanfly.Parameters = PluginManager.parameters('YEP_UtilityCommonEvents');
Yanfly.Param = Yanfly.Param || {};
Yanfly.Param.UtilCommonEvents = {
load: Number(Yanfly.Parameters['Load Game Event']) || 0,
battleWon: Number(Yanfly.Parameters['Battle Won Event']) || 0,
battleEscape: Number(Yanfly.Parameters['Battle Escape Event']) || 0,
closeMenu: Number(Yanfly.Parameters['Close Menu Event']) || 0,
boatEnter: Number(Yanfly.Parameters['Boat Enter Event']) || 0,
boatExit: Number(Yanfly.Parameters['Boat Exit Event']) || 0,
shipEnter: Number(Yanfly.Parameters['Ship Enter Event']) || 0,
shipExit: Number(Yanfly.Parameters['Ship Exit Event']) || 0,
airshipEnter: Number(Yanfly.Parameters['Airship Enter Event']) || 0,
airshipExit: Number(Yanfly.Parameters['Airship Exit Event']) || 0,
};
//=============================================================================
// DataManager
//=============================================================================
Yanfly.UCE.DataManager_loadGame = DataManager.loadGame;
DataManager.loadGame = function(savefileId) {
var flag = Yanfly.UCE.DataManager_loadGame.call(this, savefileId);
if (flag && Yanfly.Param.UtilCommonEvents['load'] > 0) {
setTimeout(() => $gameTemp.reserveCommonEvent(Yanfly.Param.UtilCommonEvents['load']),2000);
}
return flag;
};
//=============================================================================
// Game_System
//=============================================================================
Yanfly.UCE.Game_System_onBattleWin = Game_System.prototype.onBattleWin;
Game_System.prototype.onBattleWin = function() {
Yanfly.UCE.Game_System_onBattleWin.call(this);
if (Yanfly.Param.UtilCommonEvents['battleWon'] > 0) {
$gameTemp.reserveCommonEvent(Yanfly.Param.UtilCommonEvents['battleWon']);
}
};
Yanfly.UCE.Game_System_onBattleEscape = Game_System.prototype.onBattleEscape;
Game_System.prototype.onBattleEscape = function() {
Yanfly.UCE.Game_System_onBattleEscape.call(this);
if (Yanfly.Param.UtilCommonEvents['battleEscape'] > 0) {
$gameTemp.reserveCommonEvent(Yanfly.Param.UtilCommonEvents['battleEscape']);
}
};
//=============================================================================
// Game_Player
//=============================================================================
Yanfly.UCE.Game_Player_getOnVehicle = Game_Player.prototype.getOnVehicle;
Game_Player.prototype.getOnVehicle = function() {
var success = Yanfly.UCE.Game_Player_getOnVehicle.call(this);
if (success) {
var events = Yanfly.Param.UtilCommonEvents;
if (this._vehicleType === 'airship' && events.airshipEnter > 0) {
$gameTemp.reserveCommonEvent(events.airshipEnter);
} else if (this._vehicleType === 'ship' && events.shipEnter > 0) {
$gameTemp.reserveCommonEvent(events.shipEnter);
} else if (this._vehicleType === 'boat' && events.boatEnter > 0) {
$gameTemp.reserveCommonEvent(events.boatEnter);
}
}
return success;
};
Yanfly.UCE.Game_Player_getOffVehicle = Game_Player.prototype.getOffVehicle;
Game_Player.prototype.getOffVehicle = function() {
var success = Yanfly.UCE.Game_Player_getOffVehicle.call(this);
if (success) {
var events = Yanfly.Param.UtilCommonEvents;
if (this._vehicleType === 'airship' && events.airshipExit > 0) {
$gameTemp.reserveCommonEvent(events.airshipExit);
} else if (this._vehicleType === 'ship' && events.shipExit > 0) {
$gameTemp.reserveCommonEvent(events.shipExit);
} else if (this._vehicleType === 'boat' && events.boatExit > 0) {
$gameTemp.reserveCommonEvent(events.boatExit);
}
}
return success;
};
//=============================================================================
// Scene_Menu
//=============================================================================
Yanfly.UCE.Scene_Menu_createCommandWindow =
Scene_Menu.prototype.createCommandWindow;
Scene_Menu.prototype.createCommandWindow = function() {
Yanfly.UCE.Scene_Menu_createCommandWindow.call(this);
this._commandWindow.setHandler('cancel', this.closeMainMenu.bind(this));
};
Scene_Menu.prototype.closeMainMenu = function() {
this.popScene();
if (Yanfly.Param.UtilCommonEvents['closeMenu'] > 0) {
$gameTemp.reserveCommonEvent(Yanfly.Param.UtilCommonEvents['closeMenu']);
}
};
//=============================================================================
// End of File
//=============================================================================