//============================================================================= // Yanfly Engine Plugins - Debugger // YEP_Debugger.js //============================================================================= if (Utils.isNwjs() && Utils.isOptionValid('test')) { var Imported = Imported || {}; Imported.YEP_Debugger = true; var Yanfly = Yanfly || {}; Yanfly.Debug = Yanfly.Debug || {}; Yanfly.Debug.version = 2.07; //============================================================================= /*: * @plugindesc v2.07 This is Yanfly's debugger plugin tool given to * faithful supporters to help you testplay your game better! * @author Yanfly Engine Plugins * * @param ---Startup--- * @default * * @param Auto New Game * @parent ---Startup--- * @type boolean * @on Auto-New Game * @off Normal * @desc Automatically start a new game upon test play. * ON - true OFF - false * @default false * * @param Auto Show FPS * @parent ---Startup--- * @type boolean * @on Show FPS * @off Hide FPS * @desc Automatically show FPS at the start of test play? * ON - true OFF - false * @default false * * @param Auto Full Screen * @parent ---Startup--- * @type boolean * @on Auto-Full Screen * @off Normal * @desc Automatically switch to full screen during test play? * ON - true OFF - false * @default false * * @param Auto Console * @parent ---Startup--- * @type boolean * @on Auto-Console * @off Normal * @desc Launch Console Window whenever an error occurs? * ON - true OFF - false * @default false * * @param ---Visual--- * @default * * @param Debug Window Tone * @parent ---Visual--- * @desc This is the tone color used for debug windows. * @default 50, 50, 50, 0 * * @param Console Messages * @type boolean * @on Display Errors * @off Don't Dispaly * @desc Display messages on the console when you're accessing the * debug menu? YES - true NO - false * @default true * * @param ---Field--- * @default * * @param Field Debug * @parent ---Field--- * @type boolean * @on Field Debug * @off No Debug * @desc Enable field debug menu when clicking on events? * NO - false YES - true * @default true * * @param Debug Menu Icon * @parent ---Field--- * @type number * @min 0 * @desc The icon used for the debug menu that will appear in the * upper right corner for the map. Use 0 to disable this. * @default 225 * * @param ---Battle--- * @default * * @param Battle Test TP Start * @parent ---Battle--- * @desc This is the amount of TP to start test battles with. * 'value' is the amount of HP. * @default value = user.maxTp() * * @param Damage CTRL Modifier * @parent ---Battle--- * @desc While holding down CTRL, alter damage like such: * 'value' is the damage amount. * @default value *= -1 * * @param Damage SHIFT Modifier * @parent ---Battle--- * @desc While holding down SHIFT, alter damage like such: * 'value' is the damage amount. * @default value *= 10 * * @param EXP CTRL Modifier * @parent ---Battle--- * @desc While holding down CTRL, alter EXP like such: * 'rate' is the exp rate. * @default rate *= 100 * * @param EXP SHIFT Modifier * @parent ---Battle--- * @desc While holding down SHIFT, alter EXP like such: * 'rate' is the exp rate. * @default rate *= 10 * * @param Warning Message * @parent ---Battle--- * @type boolean * @on Show Warnings * @off Hide Warnings * @desc Enable warning messages to be displayed in case Lunatic Mode * code goes wrong for HP/MP/TP. YES - true NO - false * @default true * * @param Disable Variance * @parent ---Battle--- * @type boolean * @on Enable Variance * @off Disable Variance * @desc Disable damage variance by default? * YES - true NO - false * @default false * * @param 100% State Rate * @parent ---Battle--- * @type boolean * @on 100% Rates * @off Normal Rates * @desc Enable 100% status proc rate by default? * YES - true NO - false * @default false * * @param ---Spawn Options--- * @default * * @param Spawn at Boat * @parent ---Spawn Options--- * @type boolean * @on Add Option * @off Hide Option * @desc Add an option to the title command window to spawn * at the boat location. YES - true NO - false * @default true * * @param Spawn at Ship * @parent ---Spawn Options--- * @type boolean * @on Add Option * @off Hide Option * @desc Add an option to the title command window to spawn * at the ship location. YES - true NO - false * @default true * * @param Spawn at Airship * @parent ---Spawn Options--- * @type boolean * @on Add Option * @off Hide Option * @desc Add an option to the title command window to spawn * at the airship location. YES - true NO - false * @default true * * @help * ============================================================================ * Introduction * ============================================================================ * * This is the revamped version of the YEP Debugger to offer a larger degree of * flexibility in helping you testplay your games. Chances are, if you have * this plugin, are you most likely contributing to Yanfly's Patreon & helping * to support Yanfly's works for RPG Maker MV. Thank you very much as it is * highly appreciated for you to provide support! * * This plugin is made to help you test your game more efficiently by providing * extra debugging tools that don't normally come with RPG Maker MV. Note that * all of these features added by this plugin are disabled when the game is not * being played in Play Test or Battle Test mode. * * ============================================================================ * Features * ============================================================================ * * The following is a list of the features that you'll find added to the * Debugger that are only available through Testplay. * * ---------------------------------------------------------------------------- * F9 - Debug Menu * ---------------------------------------------------------------------------- * * By default, pressing the F9 key while on a map will open up a mini debug * menu that lets you alter switches and variables. This plugin extends the F9 * key to almost all scenes and provides a huge variety of options. You can * access quick commands, alter switches and variables in a more efficient * manner, teleport to various maps, launch common events, enter battles of * your choice, modify actors and enemies, quickly apply states and buffs, * reach the main menu, or quickly alter the quantity of items, weapons, and/or * armors any time the menu is open. * * ---------------------------------------------------------------------------- * Automatic New Game, FPS, Full Screen, and Console * ---------------------------------------------------------------------------- * * Want to skip the title screen? You can do so by simply enabling it from the * plugin parameters. Every second of test-playing is important and sometimes * skipping straight to the map scene will save on that time. * * Alternatively, you can save yourself a few keypresses as well by turning on * the FPS counter, Full Screen, and Console Window (whenever an error occurs). * This way, you can monitor your game closely, quickly, and efficiently. * * ---------------------------------------------------------------------------- * Field Debug * ---------------------------------------------------------------------------- * * Quick a few debug options have been added to the debugger that function * while on the map. * * If you hold down the 'control' button and left click on the map, your player * character will be instantly teleported to that location to save travel time. * This will be used mostly to bypass unnecessary areas and save more time for * testing your game. * * The Field Debug menu will appear when you right click on the map. Instead of * instantly taking you to the main menu when you right click, depending on * where you right click, a different set of options will appear. If you right * click on open ground, you are given the option to warp to that spot. If you * right click on an event, you are given some options to alter that event. * * The Debug Menu Icon will appear in the upper right corner of the map if you * have it enabled. Clicking it will prompt open a new set of quick options for * you to utilize to quickly debug your game and save on testing time. * * ---------------------------------------------------------------------------- * Battle Debug * ---------------------------------------------------------------------------- * * While in battle, pressing F9 and accessing the 'Quick' menu will allow you * to quickly choose whether or not to win a battle, lose a battle, or to * recover everything for the party. * * You can also quickly set the amount of TP to start with for the battle using * the plugin parameters in a formulaic manner, too. Starting from 0 TP each * battle test can make things rather slow. This will help speed things up. * * Other new debugging functions involve holding down 'control' or 'shift' as * damage calculations are made. You can alter them via a formula any way you * wish through the plugin parameters, but by default, holding down shift will * inflate the damage dealt by 10x while 'control' will change it to healing. * This is to quickly get through battles quickly or to shift things into favor * of a certain side quickly. On that note, holding down 'control' or 'shift' * while EXP is being gained can also alter the amount of EXP earned, too, to * reduce the need for grinding. * * ------------------- * Version 2.02 Update * ------------------- * There are now options to enable/disable variance for damage formulas inside * the Debug menu's 'Quick' menu while in battle. They will do exactly as they * are named. Disabling damage variance will allow you to accurately judge how * much damage a skill will actually do without all the * random variable interference. * * There are now options to enable 100% state rates or apply normal state rates * in the Debug menu's 'Quick' menu while in battle. Doing so will make all * states applied through skills using traits will have a 100% success rate, * removing the frustration of having to keep casting the skill over and over * again to test the effects of a state. * * ---------------------------------------------------------------------------- * Spawn Options * ---------------------------------------------------------------------------- * * A large portion of games have their own debug rooms. However, it's a bit of * a tedious work each time to set the starting location of the player to the * debug room each time and return it back. This plugin adds a new solution to * reduce that tedious work. * * What this plugin does is add to your title screen's command window extra * options that appear only in debug menu. These options are linked to where * you have placed your vehicles in the editor and will allow you to start a * new game in that vehicle's default location. If a vehicle does not have a * starting location, the option will not appear in the window to select. * * The purpose of this feature is to allow you to teleport to your debug room * quickly without the need to constantly switch the player's start location. * As vehicles see very little use (and when they do, their start location in * the game is usually changed by an event), having a vehicle as a secondary * anchor point makes for a nice shortcut to your debug room. * * ============================================================================ * Special Thanks * ============================================================================ * * I just wanted to say, thank you, to soome very special people: * * Archeia - Thank you for letting me into beta for RPG Maker MV. Always * keeping me updated and figuring things out together to make this the best * RPG Maker yet. Let's walk together towards success. * * FlyingDream - Thank you for all you've done to me. You have a very special * place in my heart and I'll never be able to get as far as I did without you * supporting me from behind like always. When it comes to support, you're * second to none. We had a lot of wonderful moments together that I'll never * ever forget for the rest of my life. Thank you. * * Rukaroa - Thank you for always staying a wonderful friend and giving me so * many ideas to work with. It's always a blast to work together with you. * * And to all my supporters - I'm happy you're all faithful users of mine and * had it not been for you believing in my work these past years, I probably * wouldn't even be here right now. * * ============================================================================ * Changelog * ============================================================================ * * Version 2.04: * v2.00 - First ever v2 release! * v2.01 - Updated buff/debuff turns to last 5 turns minimum. * v2.02 - Added 'Disable Variance' and '100% State Rate' plugin parameters. * v2.03 - Added level changing options to 'Quick', 'Actor', and 'Enemy' menus. * v2.04 - Added skill learning options to 'Quick' and 'Actor' menus. * v2.05 - Fixed an error with item adding. * v2.06 - Updated for MV 1.5.0 * v2.07 - Updated for MV 1.6.1 * * Version 1.31: * - Last v1 release. * * Version 1.00: * - Finished Plugin * */ //============================================================================= //============================================================================= // Parameter Variables //============================================================================= Yanfly.SetupParameters = function () { Yanfly.Max = Yanfly.Max || {}; Yanfly.Param = Yanfly.Param || {}; Yanfly.Icon = Yanfly.Icon || {}; var params = PluginManager.parameters('YEP_Debugger'); // General Yanfly.Param.DebugAutoNewGame = eval(String(params['Auto New Game'])); Yanfly.Param.DebugAutoFPS = eval(String(params['Auto Show FPS'])); Yanfly.Param.DebugAutoFS = eval(String(params['Auto Full Screen'])); Yanfly.Param.DebugAutoConsole = eval(String(params['Auto Console'])); // Visual Yanfly.Param.DebugWindowTone = String(params['Debug Window Tone']); Yanfly.Param.DebugWindowTone = this.Param.DebugWindowTone.split(','); var length = Yanfly.Param.DebugWindowTone.length; for (var i = 0; i < length; ++i) { Yanfly.Param.DebugWindowTone[i] = parseInt(Yanfly.Param.DebugWindowTone[i].trim()); } Yanfly.Param.DebugConsoleMsg = eval(String(params['Console Messages'])); // Field Yanfly.Param.DebugFieldDebug = eval(String(params['Field Debug'])); Yanfly.Param.DebugMapIcon = Number(params['Debug Menu Icon']); // Battle Yanfly.Param.DebugTestTpStart = String(params['Battle Test TP Start']); Yanfly.Param.DebugModCtrl = String(params['Damage CTRL Modifier']); Yanfly.Param.DebugModShift = String(params['Damage SHIFT Modifier']); Yanfly.Param.DebugExpCtrl = String(params['EXP CTRL Modifier']); Yanfly.Param.DebugExpShift = String(params['EXP SHIFT Modifier']); Yanfly.Param.DebugWarning = eval(String(params['Warning Message'])) Yanfly.Param.DebugVariance = eval(String(params['Disable Variance'])) Yanfly.Param.DebugStateRate = eval(String(params['100% State Rate'])) // Spawn Options Yanfly.Param.DebugSpawnBoat = eval(String(params['Spawn at Boat'])); Yanfly.Param.DebugSpawnShip = eval(String(params['Spawn at Ship'])); Yanfly.Param.DebugSpawnAirship = eval(String(params['Spawn at Airship'])); }; Yanfly.SetupParameters(); //============================================================================= // DataManager //============================================================================= Yanfly.Debug.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded; DataManager.isDatabaseLoaded = function () { if (!Yanfly.Debug.DataManager_isDatabaseLoaded.call(this)) return false; if (!Yanfly._loaded_YEP_Debugger) { Yanfly.Max = Yanfly.Max || {}; Yanfly.Max.Actors = $dataActors.length; Yanfly.Max.Items = $dataItems.length; Yanfly.Max.Weapons = $dataWeapons.length; Yanfly.Max.Armors = $dataArmors.length; Yanfly._loaded_YEP_Debugger = true; } return true; }; DataManager.loadTeleportMapData = function (mapId) { if (mapId > 0) { var filename = 'Map%1.json'.format(mapId.padZero(3)); this.loadDataFile('$dataTeleportMap', filename); } else { this.makeEmptyMap(); } }; DataManager.debugStart = function (vehicle) { DataManager._debugStart = true; this.createGameObjects(); this.selectSavefileForNewGame(); $gameParty.setupStartingMembers(); $gamePlayer.reserveTransfer(vehicle.startMapId, vehicle.startX, vehicle.startY); Graphics.frameCount = 0; }; //============================================================================= // SceneManager //============================================================================= Yanfly.Debug.SceneManager_onSceneCreate = SceneManager.onSceneCreate; SceneManager.onSceneCreate = function () { Yanfly.Debug.SceneManager_onSceneCreate.call(this); if ($gameSystem) this._scene.createDebugWindows(); }; if (Yanfly.Param.DebugAutoConsole) { Yanfly.Debug.Graphics_printError = Graphics.printError; Graphics.printError = function (name, message) { var _debugWindow = require('nw.gui').window.showDevTools(); _debugWindow.moveTo(0, 0); window.focus(); Yanfly.Debug.Graphics_printError.call(this, name, message); }; }; // Yanfly.Param.DebugAutoConsole var log = function (v) { var _debugWindow = require('nw.gui').window.showDevTools(); _debugWindow.moveTo(0, 0); console.log(v); }; Yanfly.Debug.SceneManager_onKeyDown = SceneManager.onKeyDown; SceneManager.onKeyDown = function (event) { if (!event.ctrlKey && !event.altKey && event.keyCode === 116) { if (Utils.isNwjs() && Utils.isOptionValid('test')) { var win = require('nw.gui').window; win.closeDevTools(); } } Yanfly.Debug.SceneManager_onKeyDown.call(this, event); }; //============================================================================= // BattleManager //============================================================================= BattleManager.closeWindowsForDebugAction = function () { var scene = SceneManager._scene; var length = scene.children.length; for (var i = 0; i < length; ++i) { var child = scene.children[i]; if (child && child.windowskin) { child.deactivate(); child.close(); } } var length = scene._windowLayer.children.length; for (var i = 0; i < length; ++i) { var child = scene._windowLayer.children[i]; if (child && child.windowskin) { child.deactivate(); child.close(); } } this.startTurn(); this.update(); }; //============================================================================= // Game_Temp //============================================================================= Game_Temp.prototype.isDisableDamageVariance = function () { if (this._debugDisableDamageVariance === undefined) { this._debugDisableDamageVariance = Yanfly.Param.DebugVariance; } return this._debugDisableDamageVariance; }; Game_Temp.prototype.setDisableDamageVariance = function (value) { this._debugDisableDamageVariance = value; }; Game_Temp.prototype.isPerfectStateRate = function () { if (this._debugPerfectStateRate === undefined) { this._debugPerfectStateRate = Yanfly.Param.DebugStateRate; } return this._debugPerfectStateRate; }; Game_Temp.prototype.setPerfectStateRate = function (value) { this._debugPerfectStateRate = value; }; Game_Temp.prototype.addAllSkills = function () { var group = $gameParty.members(); var length = group.length; var skillLength = $dataSkills.length; while (length--) { var member = group.shift(); if (member) { for (var i = 1; i < skillLength; ++i) { var skill = $dataSkills[i]; if (skill) member.learnSkill(i); } } } }; Game_Temp.prototype.addAllNamedSkills = function () { var group = $gameParty.members(); var length = group.length; var skillLength = $dataSkills.length; while (length--) { var member = group.shift(); if (member) { for (var i = 1; i < skillLength; ++i) { var skill = $dataSkills[i]; if (!skill) continue; if (skill.name === '') continue; if (skill.stypeId < 1) continue; member.learnSkill(i); } } } }; Game_Temp.prototype.removeAllSkills = function () { var group = $gameParty.members(); var length = group.length; while (length--) { var member = group.shift(); if (member) { member._skills = []; } } }; //============================================================================= // Game_Enemy //============================================================================= if (Imported.YEP_EnemyLevels) { Game_Enemy.prototype.maxLevel = function () { return this.enemy().maxLevel; }; } // Imported.YEP_EnemyLevels //============================================================================= // Game_Action //============================================================================= Yanfly.Debug.Game_Action_makeDamageValue = Game_Action.prototype.makeDamageValue; Game_Action.prototype.makeDamageValue = function (target, cri) { value = Yanfly.Debug.Game_Action_makeDamageValue.call(this, target, cri); if (Input.isPressed('shift')) eval(Yanfly.Param.DebugModShift); if (Input.isPressed('control')) eval(Yanfly.Param.DebugModCtrl); return value; }; Yanfly.Debug.Game_Action_applyVariance = Game_Action.prototype.applyVariance; Game_Action.prototype.applyVariance = function (damage, variance) { if ($gameTemp.isDisableDamageVariance()) variance = 0; return Yanfly.Debug.Game_Action_applyVariance.call(this, damage, variance); }; Yanfly.Debug.Game_Action_itemEffectAddState = Game_Action.prototype.itemEffectAddState; Game_Action.prototype.itemEffectAddState = function (target, effect) { if ($gameTemp.isPerfectStateRate() && effect) { if (effect.dataId === 0) { this.perfectEffectAddAttackState(target, effect); } else { this.perfectAddNormalState(target, effect); } } else { Yanfly.Debug.Game_Action_itemEffectAddState.call(this, target, effect); } }; Game_Action.prototype.perfectEffectAddAttackState = function (target, effect) { this.subject().attackStates().forEach(function (stateId) { target.addState(stateId); this.makeSuccess(target); }.bind(this), target); }; Game_Action.prototype.perfectAddNormalState = function (target, effect) { target.addState(effect.dataId); this.makeSuccess(target); }; //============================================================================= // Game_BattlerBase //============================================================================= if (Yanfly.Param.DebugWarning) { Game_BattlerBase.prototype.issueWarningNaN = function (value, type) { if (Yanfly.Param.DebugAutoConsole) { var _debugWindow = require('nw.gui').window.showDevTools(); _debugWindow.moveTo(0, 0); } console.log('---WARNING---') console.log('You just tried to change ' + type + ' into an illegal value: ' + value); SoundManager.playBuzzer(); }; Yanfly.Debug.Game_BattlerBase_setHp = Game_BattlerBase.prototype.setHp; Game_BattlerBase.prototype.setHp = function (hp) { if (isNaN(Number(hp))) return this.issueWarningNaN(hp, 'HP'); Yanfly.Debug.Game_BattlerBase_setHp.call(this, hp); }; Yanfly.Debug.Game_BattlerBase_setMp = Game_BattlerBase.prototype.setMp; Game_BattlerBase.prototype.setMp = function (mp) { if (isNaN(Number(mp))) return this.issueWarningNaN(mp, 'MP'); Yanfly.Debug.Game_BattlerBase_setMp.call(this, mp); }; Yanfly.Debug.Game_BattlerBase_setTp = Game_BattlerBase.prototype.setTp; Game_BattlerBase.prototype.setTp = function (tp) { if (isNaN(Number(tp))) return this.issueWarningNaN(tp, 'TP'); Yanfly.Debug.Game_BattlerBase_setTp.call(this, tp); }; }; // Yanfly.Param.DebugWarning //============================================================================= // Game_Battler //============================================================================= Yanfly.Debug.Game_Battler_onBattleStart = Game_Battler.prototype.onBattleStart; Game_Battler.prototype.onBattleStart = function () { Yanfly.Debug.Game_Battler_onBattleStart.call(this); if (!BattleManager.isBattleTest()) return; var value = 0; var user = this; var target = this; var a = this; var b = this; var subject = this; var s = $gameSwitches._data; var v = $gameVariables._data; eval(Yanfly.Param.DebugTestTpStart); this.gainTp(value); }; //============================================================================= // Game_Actor //============================================================================= Yanfly.Debug.Game_Actor_finalExpRate = Game_Actor.prototype.finalExpRate; Game_Actor.prototype.finalExpRate = function () { var rate = Yanfly.Debug.Game_Actor_finalExpRate.call(this); if (Input.isPressed('shift')) eval(Yanfly.Param.DebugExpCtrl); if (Input.isPressed('control')) eval(Yanfly.Param.DebugExpShift); return rate; }; //============================================================================= // Game_Unit //============================================================================= Yanfly.Debug.Game_Unit_onBattleStart = Game_Unit.prototype.onBattleStart; Game_Unit.prototype.onBattleStart = function () { if ($gameTemp._debugBattle) return; Yanfly.Debug.Game_Unit_onBattleStart.call(this); }; Yanfly.Debug.Game_Unit_onBattleEnd = Game_Unit.prototype.onBattleEnd; Game_Unit.prototype.onBattleEnd = function () { if ($gameTemp._debugBattle) return; Yanfly.Debug.Game_Unit_onBattleEnd.call(this); }; //============================================================================= // Game_Vehicle //============================================================================= Yanfly.Debug.Game_Vehicle_loadSystemSettings = Game_Vehicle.prototype.loadSystemSettings; Game_Vehicle.prototype.loadSystemSettings = function () { if (DataManager._debugStart) { var vehicle = this.vehicle(); this._mapId = 0; this.setPosition(0, 0); this.setImage(vehicle.characterName, vehicle.characterIndex); } else { Yanfly.Debug.Game_Vehicle_loadSystemSettings.call(this); } }; //============================================================================= // Scene_Base //============================================================================= Yanfly.Debug.Scene_Base_initialize = Scene_Base.prototype.initialize; Scene_Base.prototype.initialize = function () { Yanfly.Debug.Scene_Base_initialize.call(this); this._debugActive = false; this._debugChildren = []; }; Scene_Base.prototype.addDebugWindow = function (window) { this._debugChildren.push(window); this.addChild(window); }; Scene_Base.prototype.createDebugWindows = function () { this._debugWindowHelp = new Window_Help(); this._debugWindowHelp.setDebug(); this.addDebugWindow(this._debugWindowHelp); this._debugWindowMenu = new Window_DebugMenu(this._debugWindowHelp); this.addDebugWindow(this._debugWindowMenu); this._debugWindowMenu.setHandler('cancel', this.debugClose.bind(this)); this._debugWindowAction = new Window_DebugAction(this._debugWindowHelp); this.addDebugWindow(this._debugWindowAction); this._debugWindowMenu.setActionWindow(this._debugWindowAction); this._debugWindowAction.setHandler('cancel', this.debugActClose.bind(this)); }; Yanfly.Debug.Scene_Base_update = Scene_Base.prototype.update; Scene_Base.prototype.update = function () { Yanfly.Debug.Scene_Base_update.call(this); if (this.isDebugCalled()) this.callDebug(); }; Scene_Base.prototype.updateDebugChildren = function () { this._debugChildren.forEach(function (child) { if (child.update) child.update(); }); }; Yanfly.Debug.Scene_Base_updateChildren = Scene_Base.prototype.updateChildren; Scene_Base.prototype.updateChildren = function () { if (this._debugActive) { this.updateDebugChildren(); } else { Yanfly.Debug.Scene_Base_updateChildren.call(this); } }; Scene_Base.prototype.isDebugCalled = function () { return Input.isTriggered('debug') && $gameTemp.isPlaytest() && $gameSystem; }; Scene_Base.prototype.debugStop = function () { this._active = false; this._debugActive = true; }; Scene_Base.prototype.debugResume = function () { this._active = true; this._debugActive = false; }; Scene_Base.prototype.callDebug = function () { if (this._debugWindowHelp.isOpen()) { this.debugClose(); } else { this.debugOpen(); } }; Scene_Base.prototype.debugOpen = function () { this.debugStop(); this._debugWindowHelp.open(); this._debugWindowMenu.open(); this._debugWindowMenu.activate(); this.onDebugOpen(); }; Scene_Base.prototype.debugMain = function () { this._debugWindowMenu.open(); this._debugWindowMenu.activate(); this._debugWindowAction.close(); this._debugWindowAction.deactivate(); }; Scene_Base.prototype.onDebugOpen = function () { if (Yanfly.Param.DebugConsoleMsg) { console.log('--------------------------------------'); console.log('Opening Yanfly Engine Plugins Debugger'); console.log('--------------------------------------'); } Input.keyMapper['prevEnd'] = Input.keyMapper[35]; Input.keyMapper['prevHome'] = Input.keyMapper[36]; Input.keyMapper[35] = 'end'; Input.keyMapper[36] = 'home'; if (Imported.YEP_ItemCore) $gameTemp.enableVarianceStock(); }; Scene_Base.prototype.debugClose = function () { this._debugWindowHelp.close(); this._debugWindowMenu.close(); this._debugWindowMenu.deactivate(); this._debugWindowAction.close(); this._debugWindowAction.deactivate(); this.debugRefreshAllWindows(); this.onDebugClose(); this.debugResume(); }; Scene_Base.prototype.onDebugClose = function () { if (Yanfly.Param.DebugConsoleMsg) { console.log('--------------------------------------'); console.log('Closing Yanfly Engine Plugins Debugger'); console.log('--------------------------------------'); } Input.keyMapper[35] = Input.keyMapper['prevEnd']; Input.keyMapper[36] = Input.keyMapper['prevHome']; Input.keyMapper['prevEnd'] = undefined; Input.keyMapper['prevHome'] = undefined; if (Imported.YEP_ItemCore) $gameTemp.disableVarianceStock(); }; Scene_Base.prototype.debugRefreshAllWindows = function () { var length = this.children.length; for (var i = 0; i < length; ++i) { var child = this.children[i]; if (this.isChildValid(child)) child.refresh(); } var length = this._windowLayer.children.length; for (var i = 0; i < length; ++i) { var child = this._windowLayer.children[i]; if (this.isChildValid(child)) child.refresh(); } }; Scene_Base.prototype.isChildValid = function (child) { if (!child) return false; if (!child.windowskin) return false; if (typeof child.refresh !== 'function') return false; if (Imported.YEP_MessageCore) { if (child instanceof Window_NameBox) return false; } if (Imported.YEP_ItemSynthesis) { if (child instanceof Window_SynthesisIngredients) return false; } if (Imported.YEP_VictoryAftermath) { if (child instanceof Window_VictoryTitle) return false; } if (Imported.YEP_GabWindow) { if (child instanceof Window_Gab) return false; } return true; }; Scene_Base.prototype.debugActClose = function () { if (this._debugWindowAction._battler) { this._debugWindowAction.removeBattler(); } else { this.debugMain(); } }; //============================================================================= // Scene_Boot //============================================================================= if (Yanfly.Param.DebugAutoNewGame) { Scene_Boot.prototype.start = function () { 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.newGame(); } this.updateDocumentTitle(); }; Scene_Boot.prototype.newGame = function () { this.checkPlayerLocation(); DataManager.setupNewGame(); SceneManager.goto(Scene_Map); }; }; // Yanfly.Param.DebugAutoNewGame Yanfly.Debug.Scene_Boot_start = Scene_Boot.prototype.start; Scene_Boot.prototype.start = function () { Yanfly.Debug.Scene_Boot_start.call(this); if (Yanfly.Param.DebugAutoFPS) Graphics._switchFPSMeter(); if (Yanfly.Param.DebugAutoFS) Graphics._requestFullScreen(); }; //============================================================================= // Scene_Title //============================================================================= Yanfly.Debug.Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow; Scene_Title.prototype.createCommandWindow = function () { Yanfly.Debug.Scene_Title_createCommandWindow.call(this); DataManager._debugStart = false; this._commandWindow.setHandler('startBoat', this.debugBoat.bind(this)); this._commandWindow.setHandler('startShip', this.debugShip.bind(this)); this._commandWindow.setHandler('startAirship', this.debugAirship.bind(this)); }; Scene_Title.prototype.debugBoat = function () { DataManager.debugStart($dataSystem.boat); SceneManager.goto(Scene_Map); }; Scene_Title.prototype.debugShip = function () { DataManager.debugStart($dataSystem.ship); SceneManager.goto(Scene_Map); }; Scene_Title.prototype.debugAirship = function () { DataManager.debugStart($dataSystem.airship); SceneManager.goto(Scene_Map); }; //============================================================================= // Scene_Menu //============================================================================= Scene_Menu.prototype.commandDebug = function () { this.callDebug(); this._commandWindow.activate(); }; //============================================================================= // Scene_Map //============================================================================= Scene_Base.prototype.isMap = function () { return false; }; Scene_Map.prototype.isMap = function () { return true; }; Yanfly.Debug.Scene_Map_createDisplayObjects = Scene_Map.prototype.createDisplayObjects; Scene_Map.prototype.createDisplayObjects = function () { Yanfly.Debug.Scene_Map_createDisplayObjects.call(this); Scene_Base.prototype.createDebugWindows.call(this); }; Yanfly.Debug.Scene_Map_updateMain = Scene_Map.prototype.updateMain; Scene_Map.prototype.updateMain = function () { if (this._debugActive) { $gameScreen.update(); } else { Yanfly.Debug.Scene_Map_updateMain.call(this); } }; Scene_Map.prototype.updateCallDebug = function () { }; Scene_Map.prototype.debugOpen = function () { Scene_Base.prototype.debugOpen.call(this); }; //============================================================================= // Game_Map // From Debugger v1 //============================================================================= Game_Map.prototype.getEventAtPos = function (x, y) { for (var i = 0; i < this.events().length; ++i) { var ev = this.events()[i]; if (!ev) continue; if (ev.x === x && ev.y === y) return ev; } return null; }; //============================================================================= // Scene_Map // From Debugger v1 //============================================================================= Yanfly.Debug.Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows; Scene_Map.prototype.createAllWindows = function () { Yanfly.Debug.Scene_Map_createAllWindows.call(this); this.createFieldDebugWindow(); this.createDebugMapIconWindow(); }; Yanfly.Debug.Scene_Map_processMapTouch = Scene_Map.prototype.processMapTouch; Scene_Map.prototype.processMapTouch = function () { if (Yanfly.Param.DebugMapIcon && TouchInput.isTriggered()) { if (this._debugMapIconWindow && this._debugMapIconWindow.isTouchedInsideFrame()) { $gameTemp._forcePlayerDebug = true; this.processFieldDebug(); $gameTemp._forcePlayerDebug = undefined; return; } } if (Yanfly.Param.DebugFieldDebug) { if (this.isProcessFieldDebug()) return this.processFieldDebug(); } if (this._fieldDebugWindow.isOpen()) return; Yanfly.Debug.Scene_Map_processMapTouch.call(this); if (TouchInput.isTriggered() && Input.isPressed('control')) { $gamePlayer.locate($gameTemp.destinationX(), $gameTemp.destinationY()); } }; Scene_Map.prototype.isProcessFieldDebug = function () { if (TouchInput.isCancelled()) return true; return false; }; Scene_Map.prototype.processFieldDebug = function () { this._fieldDebugWindow.openness = 0; this._fieldDebugWindow.setup(); }; Scene_Map.prototype.closeFieldDebug = function () { this._fieldDebugWindow.close(); this._fieldDebugWindow.deactivate(); }; Yanfly.Debug.Scene_Map_isMenuCalled = Scene_Map.prototype.isMenuCalled; Scene_Map.prototype.isMenuCalled = function () { if (Yanfly.Param.DebugFieldDebug && TouchInput.isCancelled()) return false; return Yanfly.Debug.Scene_Map_isMenuCalled.call(this); }; Scene_Map.prototype.createFieldDebugWindow = function () { this._fieldDebugWindow = new Window_FieldDebugCommand(); this.addChild(this._fieldDebugWindow); var win = this._fieldDebugWindow win.setHandler('warp', this.debugWarp.bind(this)); win.setHandler('main menu', this.debugMainMenu.bind(this)); win.setHandler('call event', this.debugCallEvent.bind(this)); win.setHandler('self switch', this.debugSelfSwitch.bind(this)); win.setHandler('erase event', this.debugEraseEvent.bind(this)); win.setHandler('menuToggle', this.debugToggleMenu.bind(this)); win.setHandler('randomEncounter', this.debugRandomEncounter.bind(this)); win.setHandler('encounterToggle', this.debugToggleEncounter.bind(this)); win.setHandler('quickSave', this.debugQuickSave.bind(this)); win.setHandler('quickLoad', this.debugQuickLoad.bind(this)); win.setHandler('saveToggle', this.debugToggleSave.bind(this)); win.setHandler('recoverAll', this.debugRecoverAll.bind(this)); win.setHandler('fillTp', this.debugFillTp.bind(this)); win.setHandler('hideDebugIcon', this.debugHideDebugIcon.bind(this)); win.setHandler('showDebugIcon', this.debugShowDebugIcon.bind(this)); }; Scene_Map.prototype.createDebugMapIconWindow = function () { this._debugMapIconWindow = new Window_DebugMapIcon(); this.addChild(this._debugMapIconWindow); }; Scene_Map.prototype.debugWarp = function () { var x = $gameMap.canvasToMapX(this._fieldDebugWindow._clickedX); var y = $gameMap.canvasToMapY(this._fieldDebugWindow._clickedY); $gameTemp.setDestination(x, y); $gamePlayer.locate($gameTemp.destinationX(), $gameTemp.destinationY()); }; Scene_Map.prototype.debugMainMenu = function () { this._fieldDebugWindow.hide(); this.callMenu(); }; Scene_Map.prototype.debugCallEvent = function () { var ev = this._fieldDebugWindow.getEventData(); if (ev) ev.start(); }; Scene_Map.prototype.debugSelfSwitch = function () { var ev = this._fieldDebugWindow._clickedEvent; if (!ev) return; var key = [ev._mapId, ev._eventId, this._fieldDebugWindow.currentExt()]; $gameSelfSwitches.setValue(key, !$gameSelfSwitches.value(key)); this._fieldDebugWindow.open(); this._fieldDebugWindow.activate(); this._fieldDebugWindow.refresh(); }; Scene_Map.prototype.debugEraseEvent = function () { var ev = this._fieldDebugWindow._clickedEvent; if (!ev) return; $gameMap.eraseEvent(ev._eventId); }; Scene_Map.prototype.debugToggleMenu = function () { if ($gameSystem.isMenuEnabled()) { $gameSystem.disableMenu(); } else { $gameSystem.enableMenu(); } }; Scene_Map.prototype.debugRandomEncounter = function () { $gamePlayer._encounterCount = 0; this.updateEncounter(); }; Scene_Map.prototype.debugToggleEncounter = function () { if ($gameSystem.isEncounterEnabled()) { $gameSystem.disableEncounter(); } else { $gameSystem.enableEncounter(); } }; Scene_Map.prototype.debugQuickSave = function () { SceneManager.push(Scene_Save); }; Scene_Map.prototype.debugQuickLoad = function () { SceneManager.push(Scene_Load); }; Scene_Map.prototype.debugToggleSave = function () { if ($gameSystem.isSaveEnabled()) { $gameSystem.disableSave(); } else { $gameSystem.enableSave(); } }; Scene_Map.prototype.debugRecoverAll = function () { SoundManager.playRecovery(); var length = $gameParty.members().length; for (var i = 0; i < length; ++i) { var member = $gameParty.members()[i]; if (member) member.recoverAll(); } }; Scene_Map.prototype.debugFillTp = function () { SoundManager.playRecovery(); var length = $gameParty.members().length; for (var i = 0; i < length; ++i) { var member = $gameParty.members()[i]; if (member) member.gainTp(member.maxTp()); } }; Scene_Map.prototype.debugHideDebugIcon = function () { $gameTemp._debugHideIcon = true; }; Scene_Map.prototype.debugShowDebugIcon = function () { $gameTemp._debugHideIcon = false; }; //============================================================================= // Window_FieldDebugCommand // From Debugger v1 //============================================================================= function Window_FieldDebugCommand() { this.initialize.apply(this, arguments); } Window_FieldDebugCommand.prototype = Object.create(Window_Command.prototype); Window_FieldDebugCommand.prototype.constructor = Window_FieldDebugCommand; Window_FieldDebugCommand.prototype.initialize = function () { Window_Command.prototype.initialize.call(this, 0, 0); this.openness = 0; this.deactivate(); }; Window_FieldDebugCommand.prototype.windowWidth = function () { return this._maxWidth || 240; }; Window_FieldDebugCommand.prototype.numVisibleRows = function () { return this.maxItems(); }; Window_FieldDebugCommand.prototype.itemTextAlign = function () { return 'center'; }; Window_FieldDebugCommand.prototype.makeCommandList = function () { this._maxWidth = 0; this.addWarpTo(); this.addCommand('Main Menu', 'main menu'); this.makeEventCommands(); this.makePlayerCommands(); if ($gameTemp._debugHideIcon) { var text = 'Show Debug Icon'; this.addCommand(text, 'showDebugIcon'); } this._maxWidth += this.standardPadding() * 4; }; Window_FieldDebugCommand.prototype.makeEventCommands = function () { if (!this._clickedEvent) return; if ($gameTemp._forcePlayerDebug) return; this.addCommand(this._clickedEvent.event().name, 'call event'); var key = [this._clickedEvent._mapId, this._clickedEvent._eventId, 'A']; var text = $gameSelfSwitches.value(key) ? ' ON' : 'OFF'; this.addCommand('Self Switch A: ' + text, 'self switch', true, 'A'); var key = [this._clickedEvent._mapId, this._clickedEvent._eventId, 'B']; var text = $gameSelfSwitches.value(key) ? ' ON' : 'OFF'; this.addCommand('Self Switch B: ' + text, 'self switch', true, 'B'); var key = [this._clickedEvent._mapId, this._clickedEvent._eventId, 'C']; var text = $gameSelfSwitches.value(key) ? ' ON' : 'OFF'; this.addCommand('Self Switch C: ' + text, 'self switch', true, 'C'); var key = [this._clickedEvent._mapId, this._clickedEvent._eventId, 'D']; var text = $gameSelfSwitches.value(key) ? ' ON' : 'OFF'; this.addCommand('Self Switch D: ' + text, 'self switch', true, 'D'); this.addCommand('Erase Event', 'erase event'); }; Window_FieldDebugCommand.prototype.makePlayerCommands = function () { var x = $gameMap.canvasToMapX(this._clickedX); var y = $gameMap.canvasToMapY(this._clickedY); if (!$gameTemp._forcePlayerDebug) { if (x !== $gamePlayer.x) return; if (y !== $gamePlayer.y) return; } // Menu Toggle if ($gameSystem.isMenuEnabled()) { var text = 'Disable Menu'; } else { var text = 'Enable Menu'; } this.addCommand(text, 'menuToggle'); // Recover All this.addCommand('Recover All', 'recoverAll'); this.addCommand('Fill TP', 'fillTp'); // Random Encounter var text = 'Random Encounter'; var enabled = $gamePlayer.makeEncounterTroopId(); this.addCommand(text, 'randomEncounter', enabled); // Encounter Toggle if ($gameSystem.isEncounterEnabled()) { var text = 'Disable Encounters'; } else { var text = 'Enable Encounters'; } this.addCommand(text, 'encounterToggle'); // Save Menu var text = 'Access Save Menu'; this.addCommand(text, 'quickSave'); // Load Menu var text = 'Access Load Menu'; this.addCommand(text, 'quickLoad'); // Save Toggle if ($gameSystem.isSaveEnabled()) { var text = 'Disable Save'; } else { var text = 'Enable Save'; } this.addCommand(text, 'saveToggle'); // Corner Debug Menu if ($gameTemp._forcePlayerDebug) { var text = 'Hide Debug Icon'; this.addCommand(text, 'hideDebugIcon'); } }; Window_FieldDebugCommand.prototype.addWarpTo = function () { if ($gameTemp._forcePlayerDebug) return; var x = $gameMap.canvasToMapX(this._clickedX); var y = $gameMap.canvasToMapY(this._clickedY); var text = 'Warp (X:' + x + ', Y:' + y + ')'; this.addCommand(text, 'warp'); }; Window_FieldDebugCommand.prototype.addCommand = function (name, symbol, enabled, ext) { Window_Command.prototype.addCommand.call(this, name, symbol, enabled, ext); if (!this._widthCalcEnabled) return; this._maxWidth = Math.max(this._maxWidth, this.textWidth(name)); this._maxWidth = this._maxWidth.clamp(0, Graphics.boxWidth); }; Window_FieldDebugCommand.prototype.setup = function () { SoundManager.playCursor(); this._widthCalcEnabled = true; this._clickedX = TouchInput.x; this._clickedY = TouchInput.y; this.makeEventData(); this.clearCommandList(); this.makeCommandList(); this.width = this.windowWidth(); this.height = this.windowHeight(); this.createContents(); this.refresh(); this.select(0); this.activate(); this.open(); this.show(); this.updatePosition(); }; Window_FieldDebugCommand.prototype.makeEventData = function () { var x = $gameMap.canvasToMapX(this._clickedX); var y = $gameMap.canvasToMapY(this._clickedY); this._clickedEvent = $gameMap.getEventAtPos(x, y); if (this._clickedEvent) this._clickedEvent._balloonId = 1; }; Window_FieldDebugCommand.prototype.getEventData = function () { return this._clickedEvent; }; Window_FieldDebugCommand.prototype.updatePosition = function () { var x = TouchInput.x; var y = TouchInput.y; if ($gameTemp._forcePlayerDebug) { x = Graphics.boxWidth; y = 0; } this.x = x.clamp(0, Graphics.boxWidth - this.width); this.y = y.clamp(0, Graphics.boxHeight - this.height); }; Window_FieldDebugCommand.prototype.processOk = function () { if (this.isCurrentItemEnabled()) this.processClose(); Window_Selectable.prototype.processOk.call(this); }; Window_FieldDebugCommand.prototype.processClose = function () { this.close(); this.deactivate(); }; Window_FieldDebugCommand.prototype.processTouch = function () { if (!this.isOpenAndActive()) return; if (TouchInput.isTriggered() && !this.isTouchedInsideFrame()) { this.processClose(); } else { Window_Selectable.prototype.processTouch.call(this); } }; //============================================================================= // Window_DebugMapIcon // From Debugger v1 //============================================================================= function Window_DebugMapIcon() { this.initialize.apply(this, arguments); } Window_DebugMapIcon.prototype = Object.create(Window_Base.prototype); Window_DebugMapIcon.prototype.constructor = Window_DebugMapIcon; Window_DebugMapIcon.prototype.initialize = function () { var ww = Window_Base._iconWidth + this.standardPadding() * 2; var wh = Window_Base._iconHeight + this.standardPadding() * 2; var wx = Graphics.boxWidth - ww + this.standardPadding() / 2; var wy = 0 - this.standardPadding() / 2; Window_Base.prototype.initialize.call(this, wx, wy, ww, wh); this.refresh(); this.opacity = 0; }; Window_DebugMapIcon.prototype.refresh = function () { this.contents.clear(); this.drawIcon(Yanfly.Param.DebugMapIcon, 2, 2); }; Window_DebugMapIcon.prototype.update = function () { Window_Base.prototype.update.call(this); this.visible = !$gameTemp._debugHideIcon; }; Window_DebugMapIcon.prototype.isTouchedInsideFrame = function () { if ($gameTemp._debugHideIcon) return false; var x = this.canvasToLocalX(TouchInput.x); var y = this.canvasToLocalY(TouchInput.y); return x >= 0 && y >= 0 && x < this.width && y < this.height; }; //============================================================================= // Scene_MapTeleport //============================================================================= function Scene_MapTeleport() { this.initialize.apply(this, arguments); } Scene_MapTeleport.prototype = Object.create(Scene_Map.prototype); Scene_MapTeleport.prototype.constructor = Scene_MapTeleport; Scene_MapTeleport.prototype.createDisplayObjects = function () { Scene_Map.prototype.createDisplayObjects.call(this); this.relocatePlayerToCenter(); this.createRegionDisplayWindow(); this.createCoordinatesWindow(); }; Scene_MapTeleport.prototype.createRegionDisplayWindow = function () { this._regionDisplayWindow = new Window_DebugRegionDisplay(); this.addChild(this._regionDisplayWindow); }; Scene_MapTeleport.prototype.createCoordinatesWindow = function () { this._coordinatesWindow = new Window_DebugCoordinates(); this.addChild(this._coordinatesWindow); }; Scene_MapTeleport.prototype.relocatePlayerToCenter = function () { var x = Math.floor($dataMap.width / 2); var y = Math.floor($dataMap.height / 2); $gamePlayer.locate(x, y); }; Scene_MapTeleport.prototype.update = function () { Scene_Base.prototype.update.call(this); this.updateTouchInputControls(); this.updateKeyInputControls(); }; Scene_MapTeleport.prototype.updateTouchInputControls = function () { if (!TouchInput.isTriggered()) return; var x = $gameMap.canvasToMapX(TouchInput.x); var y = $gameMap.canvasToMapY(TouchInput.y); if (x === $gamePlayer.x && y === $gamePlayer.y) { this.confirmAcceptLocation() } else { $gamePlayer.locate(x, y); } }; Scene_MapTeleport.prototype.updateKeyInputControls = function () { if (Input.isRepeated('down')) this.updateLocation(0, 1); if (Input.isRepeated('left')) this.updateLocation(-1, 0); if (Input.isRepeated('right')) this.updateLocation(1, 0); if (Input.isRepeated('up')) this.updateLocation(0, -1); if (Input.isTriggered('ok')) this.confirmAcceptLocation(); if (Input.isTriggered('cancel')) this.cancelLocation(); }; Scene_MapTeleport.prototype.updateLocation = function (x, y) { var dx = ($gamePlayer.x + x).clamp(0, $dataMap.width - 1); var dy = ($gamePlayer.y + y).clamp(0, $dataMap.height - 1); $gamePlayer.locate(dx, dy); }; Scene_MapTeleport.prototype.confirmAcceptLocation = function () { SoundManager.playOk(); SceneManager.push(Scene_Map); }; Scene_MapTeleport.prototype.cancelLocation = function () { SoundManager.playCancel(); var x = $gameTemp._preDebugTeleportX; var y = $gameTemp._preDebugTeleportY; var mapId = $gameTemp._preDebugTeleportMap; $gamePlayer.reserveTransfer(mapId, x, y, 2, 0); SceneManager.push(Scene_Map); }; Scene_MapTeleport.prototype.debugOpen = function () { }; Scene_MapTeleport.prototype.isMap = function () { return false; }; //============================================================================= // Window //============================================================================= Yanfly.Debug.Window_initialize = Window.prototype.initialize; Window.prototype.initialize = function () { Yanfly.Debug.Window_initialize.call(this); this._isDebugWindow = false; }; Window.prototype.setDebug = function () { this._isDebugWindow = true; this.opacity = 0; this.backOpacity = 0; this.contentsOpacity = 0; this.openness = 255; }; Window.prototype.isDebug = function () { return this._isDebugWindow; }; Yanfly.Debug.Window_isOpen = Window.prototype.isOpen; Window.prototype.isOpen = function () { if (this.isDebug()) return this.opacity >= 255; return Yanfly.Debug.Window_isOpen.call(this); }; Yanfly.Debug.Window_isClosed = Window.prototype.isClosed; Window.prototype.isClosed = function () { if (this.isDebug()) return this.opacity <= 0; return Yanfly.Debug.Window_isClosed.call(this); }; //============================================================================= // Window_Base //============================================================================= Yanfly.Debug.Window_Base_updateOpen = Window_Base.prototype.updateOpen; Window_Base.prototype.updateOpen = function () { if (this.isDebug() && this._opening) { this.opacity += 32; this.backOpacity += 24; this.contentsOpacity += 32; if (this.isOpen()) this._opening = false; } else { Yanfly.Debug.Window_Base_updateOpen.call(this); } }; Yanfly.Debug.Window_Base_updateClose = Window_Base.prototype.updateClose; Window_Base.prototype.updateClose = function () { if (this.isDebug() && this._closing) { this.opacity -= 32; this.backOpacity -= 24; this.contentsOpacity -= 32; if (this.isClosed()) this._closing = false; } else { Yanfly.Debug.Window_Base_updateClose.call(this); } }; Yanfly.Debug.Window_Base_updateTone = Window_Base.prototype.updateTone; Window_Base.prototype.updateTone = function () { if (this.isDebug()) { var tone = Yanfly.Param.DebugWindowTone; this.setTone(tone[0], tone[1], tone[2]); } else { Yanfly.Debug.Window_Base_updateTone.call(this); } }; //============================================================================= // Window_TitleCommand //============================================================================= Yanfly.Debug.Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList; Window_TitleCommand.prototype.makeCommandList = function () { Yanfly.Debug.Window_TitleCommand_makeCommandList.call(this); this.addDebugCommands(); }; Window_TitleCommand.prototype.addDebugCommands = function () { if (Yanfly.Param.DebugSpawnBoat && $dataSystem.boat.startMapId > 0) { this.addCommand('Start:Boat', 'startBoat'); } if (Yanfly.Param.DebugSpawnShip && $dataSystem.ship.startMapId > 0) { this.addCommand('Start:Ship', 'startShip'); } if (Yanfly.Param.DebugSpawnAirship && $dataSystem.airship.startMapId > 0) { this.addCommand('Start:Airship', 'startAirship'); } }; //============================================================================= // Window_DebugCoordinates //============================================================================= function Window_DebugCoordinates() { this.initialize.apply(this, arguments); } Window_DebugCoordinates.prototype = Object.create(Window_Base.prototype); Window_DebugCoordinates.prototype.constructor = Window_DebugCoordinates; Window_DebugCoordinates.prototype.initialize = function () { var width = Graphics.boxWidth; var height = this.fittingHeight(2); Window_Base.prototype.initialize.call(this, 0, 0, width, height); this._opacityCounter = 60; this._x = 0; this._y = 0; }; Window_DebugCoordinates.prototype.refresh = function () { this.contents.clear(); this._x = $gamePlayer.x; this._y = $gamePlayer.y; SoundManager.playCursor(); this._opacityCounter = 60; this.opacity = 255; this.contentsOpacity = 255; var text = $dataMapInfos[$gameMap.mapId()].name; this.drawText(text, 0, 0, this.contents.width, 'center'); text = this.getCoordinates(); this.drawText(text, 0, this.lineHeight(), this.contents.width, 'center'); }; Window_DebugCoordinates.prototype.getCoordinates = function () { var text = 'X: ' + this._x; text += ', Y: ' + this._y; return text; }; Window_DebugCoordinates.prototype.update = function () { Window_Base.prototype.update.call(this); this.updateOpacity(); if (this._x !== $gamePlayer.x) { this.refresh(); } else if (this._y !== $gamePlayer.y) { this.refresh(); } }; Window_DebugCoordinates.prototype.updateOpacity = function () { if (--this._opacityCounter < 0) { this.opacity -= 2; this.contentsOpacity -= 2; } }; //============================================================================= // Window_DebugRegionDisplay //============================================================================= function Window_DebugRegionDisplay() { this.initialize.apply(this, arguments); } Window_DebugRegionDisplay.prototype = Object.create(Window_Base.prototype); Window_DebugRegionDisplay.prototype.constructor = Window_DebugRegionDisplay; Window_DebugRegionDisplay.prototype.initialize = function () { var width = $gameMap.width() * $gameMap.tileWidth(); var height = $gameMap.height() * $gameMap.tileHeight(); width += this.standardPadding() * 2; height += this.standardPadding() * 2; var offset = this.standardPadding() * -1; Window_Base.prototype.initialize.call(this, -width, -height, width, height); this.x = 0; this.y = 0; this.opacity = 0; this.contentsOpacity = 128 this._opacityCounter = 60; this._x = 0; this._y = 0; this.refresh(); }; Window_DebugRegionDisplay.prototype.update = function () { Window_Base.prototype.update.call(this); this.updateOpacity(); if (this._x !== $gamePlayer.x) { this.updatePosition(); } else if (this._y !== $gamePlayer.y) { this.updatePosition(); } }; Window_DebugRegionDisplay.prototype.updateOpacity = function () { if (--this._opacityCounter < 0) { this.contentsOpacity -= 1; } }; Window_DebugRegionDisplay.prototype.updatePosition = function () { this.contentsOpacity = 128; this._opacityCounter = 60; this._x = $gamePlayer.x; this._y = $gamePlayer.y; var offset = this.standardPadding(); this.x = -1 * ($gameMap.displayX() * $gameMap.tileWidth()) - offset; this.y = -1 * ($gameMap.displayY() * $gameMap.tileHeight()) - offset; }; Window_DebugRegionDisplay.prototype.refresh = function () { this.contents.clear(); for (var x = 0; x < $gameMap.width(); ++x) { for (var y = 0; y < $gameMap.height(); ++y) { if ($gameMap.regionId(x, y) > 0) this.drawRegion(x, y); } } }; Window_DebugRegionDisplay.prototype.drawRegion = function (x, y) { var regionId = $gameMap.regionId(x, y); var rect = this.regionRect(x, y); this.drawRegionColor(regionId, rect); this.contents.drawText(regionId, rect.x, rect.y, rect.width, rect.height, 'center'); }; Window_DebugRegionDisplay.prototype.regionRect = function (dx, dy) { return { x: dx * $gameMap.tileWidth(), y: dy * $gameMap.tileHeight(), width: $gameMap.tileWidth(), height: $gameMap.tileHeight() } }; Window_DebugRegionDisplay.prototype.drawRegionColor = function (id, rect) { var color = '#ed145b'; switch (id % 12) { case 0: color = '#ed145b'; break; case 1: color = '#ed1c24'; break; case 2: color = '#f7941d'; break; case 3: color = '#fff200'; break; case 4: color = '#a3d39c'; break; case 5: color = '#00a651'; break; case 6: color = '#00a99d'; break; case 7: color = '#00bff3'; break; case 8: color = '#0072bc'; break; case 9: color = '#0054a6'; break; case 10: color = '#a864a8'; break; case 11: color = '#f06eaa'; break; } this.contents.fillRect(rect.x, rect.y, rect.width, rect.height, color); }; //============================================================================= // Window_DebugCommand //============================================================================= function Window_DebugCommand() { this.initialize.apply(this, arguments); }; Window_DebugCommand.prototype = Object.create(Window_Command.prototype); Window_DebugCommand.prototype.constructor = Window_DebugCommand; Window_DebugCommand.prototype.initialize = function (x, y, width, height) { this._windowWidth = width; this._windowHeight = height; Window_Command.prototype.initialize.call(this, x, y); this.setDebug(); this.deactivate(); this.opacity = 0; this.backOpacity = 0; this.contentsOpacity = 0; }; Window_DebugCommand.prototype.windowWidth = function () { return this._windowWidth; }; Window_DebugCommand.prototype.windowHeight = function () { return this._windowHeight; }; Window_DebugCommand.prototype.addEmptyCommand = function () { this.addCommand('', 'none', false); }; Window_DebugCommand.prototype.textWidthEx = function (text) { return this.drawTextEx(text, 0, this.contents.height + this.lineHeight()); }; Window_DebugCommand.prototype.drawItem = function (index) { var rect = this.itemRectForText(index); var align = this.itemTextAlign(); this.resetTextColor(); this.changePaintOpacity(this.isCommandEnabled(index)); var text = this.commandName(index); if (text.match('
')) { text = text.replace('
', ''); var tw = this.textWidthEx(text); rect.x += (rect.width - tw) / 2; } this.drawTextEx(text, rect.x, rect.y); }; Window_DebugCommand.prototype.processCursorMove = function () { if (this.isCursorMovable()) { var lastIndex = this.index(); if (Input.isRepeated('down')) { this.cursorDown(Input.isTriggered('down')); } if (Input.isRepeated('up')) { this.cursorUp(Input.isTriggered('up')); } if (Input.isRepeated('right')) { this.cursorRight(Input.isTriggered('right')); } if (Input.isRepeated('left')) { this.cursorLeft(Input.isTriggered('left')); } if (!this.isHandled('pagedown') && Input.isRepeated('pagedown')) { this.cursorPagedown(); } if (!this.isHandled('end') && Input.isRepeated('end')) { this.select(this.maxItems() - 1); }; if (!this.isHandled('pageup') && Input.isRepeated('pageup')) { this.cursorPageup(); } if (!this.isHandled('end') && Input.isRepeated('home')) { this.select(0); }; if (this.index() !== lastIndex) { SoundManager.playCursor(); } } }; Window_DebugCommand.prototype.updateDebugHelp = function (symbol) { if (this._helpWindow) { var text = ''; switch (symbol) { case 'actors': text = 'Modify the actors for your game.'; break; case 'armors': text = 'Modify armor quantities.'; break; case 'battle': text = 'Enter a battle of your choice.'; break; case 'buffs': text = 'Apply buffs to actors and/or enemies.'; break; case 'enemies': text = 'Modify the current set of enemies.'; break; case 'events': text = 'Play a common event of your choice.'; break; case 'exit': text = 'Exit the debug menu.' break; case 'items': text = 'Modify item quantities.'; break; case 'menu': text = 'Access the main menu.' break; case 'quick': text = 'A set of quick debug actions.'; break; case 'states': text = 'Apply states to actors and/or enemies.'; break; case 'switch': text = 'Lets you manually adjust switches.'; break; case 'teleport': text = 'Quickly teleport to a map you like.'; break; case 'variable': text = 'Lets you manually adjust variables.'; break; case 'weapons': text = 'Modify weapon quantities.'; break; } this._helpWindow.setText(text) } }; //============================================================================= // Window_DebugMenu //============================================================================= function Window_DebugMenu() { this.initialize.apply(this, arguments); }; Window_DebugMenu.prototype = Object.create(Window_DebugCommand.prototype); Window_DebugMenu.prototype.constructor = Window_DebugMenu; Window_DebugMenu.prototype.initialize = function (helpWindow) { var x = 0; var y = helpWindow.height; var width = Graphics.boxWidth; var height = Graphics.boxHeight - helpWindow.height; Window_DebugCommand.prototype.initialize.call(this, x, y, width, height); this.setHelpWindow(helpWindow); }; Window_DebugMenu.prototype.setActionWindow = function (win) { this._actionWindow = win; }; Window_DebugMenu.prototype.maxCols = function () { return 3; }; Window_DebugMenu.prototype.spacing = function () { return 0; }; Window_DebugMenu.prototype.itemHeight = function () { if (this._itemHeight) return this._itemHeight; this._itemHeight = Math.floor(this.contents.height / 5) return this._itemHeight; }; Window_DebugMenu.prototype.makeCommandList = function () { // Row 1 this.addCommand('Quick', 'quick', this.isEnabled('quick')); this.addCommand('Battle', 'battle', this.isEnabled('battle')); this.addCommand('Main Menu', 'menu', this.isEnabled('menu')); // Row 2 this.addCommand('Switches', 'switch', this.isEnabled('switch')); this.addCommand('Actors', 'actors', this.isEnabled('actors')); this.addCommand('Items', 'items', this.isEnabled('items')); // Row 3 this.addCommand('Variables', 'variable', this.isEnabled('variable')); this.addCommand('Enemies', 'enemies', this.isEnabled('enemies')); this.addCommand('Weapons', 'weapons', this.isEnabled('weapons')); // Row 4 this.addCommand('Teleport', 'teleport', this.isEnabled('teleport')); this.addCommand('States', 'states', this.isEnabled('states')); this.addCommand('Armors', 'armors', this.isEnabled('armors')); // Row 5 this.addCommand('Common Event', 'events', this.isEnabled('events')); this.addCommand('Buffs', 'buffs', this.isEnabled('buffs')); this.addCommand('Exit', 'cancel', this.isEnabled('exit')); }; Window_DebugMenu.prototype.isEnabled = function (symbol) { if (symbol === 'exit') return true; if (SceneManager._scene instanceof Scene_Title) return false; if (SceneManager._scene instanceof Scene_File) return false; if (SceneManager._scene instanceof Scene_Options) return false; if (SceneManager._scene instanceof Scene_GameEnd) return false; switch (symbol) { case 'battle': if (SceneManager._scene instanceof Scene_Battle) return false; return true; break; case 'menu': if (SceneManager._scene instanceof Scene_Map) return true; break; case 'teleport': return !DataManager.isBattleTest(); break; case 'enemies': return (SceneManager._scene instanceof Scene_Battle); break; default: return true; } return false; }; Window_DebugMenu.prototype.drawItem = function (index) { var rect = this.itemRectForText(index); var align = 'center'; this.resetTextColor(); this.changePaintOpacity(this.isCommandEnabled(index)); var y = rect.y + Math.floor((rect.height - this.lineHeight()) / 2); this.drawText(this.commandName(index), rect.x, y, rect.width, align); }; Window_DebugMenu.prototype.updateHelp = function () { this.updateDebugHelp(this.currentSymbol()); }; Window_DebugMenu.prototype.isHandled = function (symbol) { return true; }; Window_DebugMenu.prototype.callHandler = function (symbol) { switch (symbol) { case 'cancel': Window_DebugCommand.prototype.callHandler.call(this, symbol); break; case 'menu': SceneManager._scene.debugClose(); SceneManager.push(Scene_Menu); Window_MenuCommand.initCommandPosition(); break; case 'pagedown': this.activate(); this.selectSymbol('cancel'); break; case 'pageup': this.activate(); this.selectSymbol('quick'); break; default: this.activateActionWindow(symbol); break; } }; Window_DebugMenu.prototype.activateActionWindow = function (symbol) { this.deactivate(); this.close(); this._actionWindow.setSymbol(symbol); this._actionWindow.activate(); this._actionWindow.open(); }; Window_DebugMenu.prototype.cursorDown = function (wrap) { this._index += this.maxCols(); if (this._index >= 15) this._index -= 15; this.select(this._index); }; Window_DebugMenu.prototype.cursorUp = function (wrap) { this._index -= this.maxCols(); if (this._index < 0) this._index += 15; this.select(this._index); }; Window_DebugMenu.prototype.cursorRight = function (wrap) { if (this._index % 3 < 2) { this._index++; } else { this._index -= 2; } this.select(this._index); }; Window_DebugMenu.prototype.cursorLeft = function (wrap) { if (this._index % 3 > 0) { this._index--; } else { this._index += 2; } this.select(this._index); }; //============================================================================= // Window_DebugAction //============================================================================= function Window_DebugAction() { this.initialize.apply(this, arguments); }; Window_DebugAction.prototype = Object.create(Window_DebugCommand.prototype); Window_DebugAction.prototype.constructor = Window_DebugAction; Window_DebugAction.prototype.initialize = function (helpWindow) { var x = 0; var y = helpWindow.height; var width = Graphics.boxWidth; var height = Graphics.boxHeight - helpWindow.height; this._symbol = 'none'; Window_DebugCommand.prototype.initialize.call(this, x, y, width, height); this.setHelpWindow(helpWindow); }; Window_DebugAction.prototype.maxCols = function () { if (this._battler) { switch (this._battlerType) { case 'main': return 1; break; default: return 1; break; } } switch (this._symbol) { case 'quick': case 'switch': case 'battle': return 3; break; case 'variable': case 'items': case 'weapons': case 'armors': return 7; break; case 'actors': case 'enemies': case 'states': case 'buffs': return 2; break; }; return 1; }; Window_DebugAction.prototype.spacing = function () { return 0; }; Window_DebugAction.prototype.playOkSound = function () { }; Window_DebugAction.prototype.itemHeight = function () { return this.lineHeight(); }; Window_DebugAction.prototype.itemRect = function (index) { var rect = Window_Selectable.prototype.itemRect.call(this, index); if (this._miniWidth === undefined) { this._miniWidth = Math.ceil(this.textWidth('+100+')); } if (this._cwidth === undefined) { this._cwidth = this.contents.width; } var miniWidth = this._miniWidth; switch (this._symbol) { case 'switch': case 'battle': if (index % 3 === 0) { rect.width = Math.floor(this._cwidth / 2); } else if (index % 3 === 1) { rect.width = Math.floor(this._cwidth / 4); rect.x = Math.floor(this._cwidth * 2 / 4); } else if (index % 3 === 2) { rect.width = Math.floor(this._cwidth / 4); rect.x = Math.floor(this._cwidth * 3 / 4); } break; case 'variable': case 'items': case 'weapons': case 'armors': if (index % 7 === 0 || index % 7 === 1 || index % 7 === 2) { rect.width = miniWidth; rect.x = index % 7 * rect.width; } else if (index % 7 === 4 || index % 7 === 5 || index % 7 === 6) { rect.width = miniWidth; rect.x = this._cwidth - (7 - index % 7) * rect.width; } else if (index % 7 === 3) { rect.width = this._cwidth - miniWidth * 6; rect.x = miniWidth * 3; } break; }; return rect; }; Window_DebugAction.prototype.setSymbol = function (symbol) { this.resetScroll(); this._symbol = symbol; this._cachedKeyConfig = JsonEx.makeDeepCopy(Input.keyMapper); this.setupVariableKeyboard(); switch (symbol) { case 'variable': case 'items': case 'weapons': case 'armors': this.clearCachedItemList(); this.select(3); break; case 'actors': case 'enemies': case 'states': case 'buffs': this.select(2); break; default: this.select(0); break; } this.refresh(); }; Window_DebugAction.prototype.clearCachedItemList = function () { this._cachedItems = undefined; this._cachedWeapons = undefined; this._cachedArmors = undefined; }; Window_DebugAction.prototype.close = function () { Window_DebugCommand.prototype.close.call(this); if (this._cachedKeyConfig) { Input.keyMapper = this._cachedKeyConfig; this._cachedKeyConfig = undefined; } }; Window_DebugAction.prototype.setupVariableKeyboard = function () { Input.keyMapper[8] = 'backspace'; Input.keyMapper[46] = 'delete'; Input.keyMapper[48] = '0'; Input.keyMapper[96] = '0'; Input.keyMapper[49] = '1'; Input.keyMapper[97] = '1'; Input.keyMapper[50] = '2'; Input.keyMapper[98] = '2'; Input.keyMapper[51] = '3'; Input.keyMapper[99] = '3'; Input.keyMapper[52] = '4'; Input.keyMapper[100] = '4'; Input.keyMapper[53] = '5'; Input.keyMapper[101] = '5'; Input.keyMapper[54] = '6'; Input.keyMapper[102] = '6'; Input.keyMapper[55] = '7'; Input.keyMapper[103] = '7'; Input.keyMapper[56] = '8'; Input.keyMapper[104] = '8'; Input.keyMapper[57] = '9'; Input.keyMapper[105] = '9'; Input.keyMapper[107] = '+'; Input.keyMapper[187] = '+'; Input.keyMapper[109] = '-'; Input.keyMapper[189] = '-'; Input.keyMapper[192] = 'tilde'; }; Window_DebugAction.prototype.makeCommandList = function () { if (this._battler) return this.makeBattlerCommandList(); switch (this._symbol) { case 'quick': this.makeQuickList(); break; case 'switch': this.makeSwitchList(); break; case 'variable': this.makeVariableList(); break; case 'teleport': this.makeTeleportList(); break; case 'events': this.makeCommonEventList(); break; case 'battle': this.makeBattleList(); break; case 'actors': this.makeActorList(); break; case 'enemies': this.makeEnemyList(); break; case 'states': case 'buffs': this.makeBattlerList(); break; case 'items': this.makeItemList(); break; case 'weapons': this.makeWeaponList(); break; case 'armors': this.makeArmorList(); break; } }; Window_DebugAction.prototype.makeBattlerCommandList = function () { switch (this._battlerType) { case 'main': this.makeBattlerMainList(); break; case 'states': this.makeBattlerStatesList(); break; case 'buffs': this.makeBattlerBuffsList(); break; } }; Window_DebugAction.prototype.addFillerCommands = function () { while (this._list.length % this.maxCols() !== 0) { this.addCommand('', 'nothing'); } }; Window_DebugAction.prototype.addFillerLineBreak = function () { this.addFillerCommands(); this.addCommand('', 'nothing'); this.addFillerCommands(); }; Window_DebugAction.prototype.makeQuickList = function () { var text = ''; if ($gameParty.inBattle()) { // 1st Row this.addCommand('\\i[32]Quick Win', 'quickWin'); this.addCommand('\\i[1]Quick Lose', 'quickLose'); this.addCommand('\\i[72]Recover All', 'quickRecoverAll'); this.addCommand('\\i[78]Disable Variance', 'quickDisableVariance'); this.addCommand('\\i[78]Enable Variance', 'quickEnableVariance'); this.addCommand('\\i[78]Toggle Variance', 'quickToggleVariance'); this.addCommand('\\i[18]Normal State Rate', 'quickDisablePerfectStateRate'); this.addCommand('\\i[18]100% State Rate', 'quickEnablePerfectStateRate'); this.addCommand('\\i[18]Toggle State Rate', 'quickToggleStateRate'); this.addFillerLineBreak(); } // Skill Resources text = 'Refill ' + TextManager.hp; text = '\\i[' + (Yanfly.Icon.Hp || 0) + ']' + text; this.addCommand(text, 'quickRefillHp'); text = 'Refill ' + TextManager.mp; text = '\\i[' + (Yanfly.Icon.Mp || 0) + ']' + text; this.addCommand(text, 'quickRefillMp'); text = 'Refill ' + TextManager.tp; text = '\\i[' + (Yanfly.Icon.Tp || 0) + ']' + text; this.addCommand(text, 'quickRefillTp'); this.addCommand('\\i[2]Clear States', 'quickClearStates'); if (Imported.YEP_X_LimitedSkillUses) { text = 'Refill Uses'; text = '\\i[' + (Yanfly.Icon.LimitedUse || 0) + ']' + text; this.addCommand(text, 'quickRefillUses'); } if (Imported.YEP_X_SkillCooldowns) { text = 'Reset Cooldowns'; text = '\\i[' + (Yanfly.Icon.Cooldown || 0) + ']' + text; this.addCommand(text, 'quickResetCooldowns'); } this.addFillerLineBreak(); // Gold var icon = Yanfly.Icon.Gold || 0; text = Yanfly.Util.toGroup($gameParty.gold()); this.addCommand(text, 'currentGold'); text = '\\i[' + icon + ']Current ' + TextManager.currencyUnit; this.addCommand(text, 'nothing'); text = '\\i[' + icon + ']Clear ' + TextManager.currencyUnit; this.addCommand(text, 'quickClearGold'); text = '\\i[' + icon + ']' + '-1,000'; this.addCommand(text, 'quickGold-1000'); text = '\\i[' + icon + ']' + '=1,000'; this.addCommand(text, 'quickGold=1000'); text = '\\i[' + icon + ']' + '+1,000'; this.addCommand(text, 'quickGold+1000'); text = '\\i[' + icon + ']' + '-1,000,000'; this.addCommand(text, 'quickGold-1000000'); text = '\\i[' + icon + ']' + '=1,000,000'; this.addCommand(text, 'quickGold=1000000'); text = '\\i[' + icon + ']' + '+1,000,000'; this.addCommand(text, 'quickGold+1000000'); this.addFillerLineBreak(); // Items var icon = $dataItems[1].iconIndex; text = '\\i[' + icon + ']All Items +1'; this.addCommand(text, 'quickItems+1'); text = '\\i[' + icon + ']All Items +10'; this.addCommand(text, 'quickItems+10'); text = '\\i[' + icon + ']All Items +MAX'; this.addCommand(text, 'quickItems+MAX'); // Weapons var icon = $dataWeapons[1].iconIndex; text = '\\i[' + icon + ']All Weapons +1'; this.addCommand(text, 'quickWeapons+1'); text = '\\i[' + icon + ']All Weapons +10'; this.addCommand(text, 'quickWeapons+10'); text = '\\i[' + icon + ']All Weapons +MAX'; this.addCommand(text, 'quickWeapons+MAX'); // Armors var icon = $dataArmors[1].iconIndex; text = '\\i[' + icon + ']All Armors +1'; this.addCommand(text, 'quickArmors+1'); text = '\\i[' + icon + ']All Armors +10'; this.addCommand(text, 'quickArmors+10'); text = '\\i[' + icon + ']All Armors +MAX'; this.addCommand(text, 'quickArmors+MAX'); // Levels this.addFillerLineBreak(); var icon = 32; text = '\\i[' + icon + ']Party Level +1'; this.addCommand(text, 'quickPartyLevel+1'); text = '\\i[' + icon + ']Party Level +10'; this.addCommand(text, 'quickPartyLevel+10'); text = '\\i[' + icon + ']Party Level +MAX'; this.addCommand(text, 'quickPartyLevel+MAX'); var icon = 48; text = '\\i[' + icon + ']Party Level -1'; this.addCommand(text, 'quickPartyLevel-1'); text = '\\i[' + icon + ']Party Level -10'; this.addCommand(text, 'quickPartyLevel-10'); text = '\\i[' + icon + ']Party Level to 1'; this.addCommand(text, 'quickPartyLevelto1'); // Skills this.addFillerLineBreak(); var icon = 79; text = '\\i[' + icon + ']Add All Skills'; this.addCommand(text, 'quickAddAllSkills'); text = '\\i[' + icon + ']Add All Named Skills'; this.addCommand(text, 'quickAddAllNamedSkills'); text = '\\i[' + icon + ']Remove All Skills'; this.addCommand(text, 'quickRemoveAllSkills'); }; Window_DebugAction.prototype.makeSwitchList = function () { var switches = $dataSystem.switches; var length = switches.length; for (var i = 1; i < length; ++i) { var switchId = i; var switchName = $dataSystem.switches[i]; // Switch Name if ($gameSwitches.value(i)) { if (switchName.length === 0) { switchName = '\\C[18]' + '! ATTENTION !'; } else { switchName = '\\C[17]' + switchName; } } else { if (switchName.length === 0) { switchName = '\\C[8]' + ''; } else { switchName = '\\C[8]' + switchName; } } var fmt = '\\c[4]S%1:\\c[0]%2'; var text = fmt.format(switchId.padZero(4), switchName); this.addCommand(text, 'switchToggle', true, switchId); // [ON] if ($gameSwitches.value(i)) { text = '\\C[0]
' + '[ON]'; } else { text = '\\C[8]
' + '[ON]'; } this.addCommand(text, 'switchOn', true, switchId); // [ON] if ($gameSwitches.value(i)) { text = '\\C[8]
' + '[OFF]'; } else { text = '\\C[0]
' + '[OFF]'; } this.addCommand(text, 'switchOff', true, switchId); } }; Window_DebugAction.prototype.makeVariableList = function () { var variables = $dataSystem.variables; var length = variables.length; for (var i = 1; i < length; ++i) { var varId = i; var varName = $dataSystem.variables[i]; var enabled = typeof $gameVariables.value(varId) === 'number'; this.addCommand('
-100', 'var-100', enabled, varId); this.addCommand('
-10', 'var-10', enabled, varId); this.addCommand('
-1', 'var-1', enabled, varId); // Variable Name if ($gameVariables.value(i)) { if (varName.length === 0) { varName = '\\C[18]' + '! ATTENTION !'; } else { varName = '\\C[17]' + varName; } } else { if (varName.length === 0) { varName = '\\C[8]' + ''; } else { varName = '\\C[8]' + varName; } } var fmt = '\\c[4]V%1:\\c[0]%2'; var text = fmt.format(varId.padZero(4), varName); this.addCommand(text, 'variableSet', true, varId); this.addCommand('
+1', 'var+1', enabled, varId); this.addCommand('
+10', 'var+10', enabled, varId); this.addCommand('
+100', 'var+100', enabled, varId); } }; Window_DebugAction.prototype.makeTeleportList = function () { var length = $dataMapInfos.length; for (var i = 1; i < length; ++i) { var mapId = i; if ($dataMapInfos[mapId] === null) continue; var mapName = $dataMapInfos[mapId].name; if (mapName.match(//i)) continue; var fmt = '\\c[4]M%1:\\c[0]%2'; var text = fmt.format(mapId.padZero(3), mapName); this.addCommand(text, 'teleportMapId', true, mapId); } }; Window_DebugAction.prototype.makeCommonEventList = function () { var length = $dataCommonEvents.length; for (var i = 1; i < length; ++i) { var eventId = i; if ($dataCommonEvents[eventId] === null) continue; var name = $dataCommonEvents[eventId].name; if (name === '') continue; var fmt = '\\c[4]C%1:\\c[0]%2'; var text = fmt.format(eventId.padZero(4), name); this.addCommand(text, 'commonEvent', true, eventId); } }; Window_DebugAction.prototype.makeBattleList = function () { var length = $dataTroops.length; for (var i = 1; i < length; ++i) { var troopId = i; if ($dataTroops[troopId] === null) continue; var name = $dataTroops[troopId].name; if (name === '') continue; var fmt = '\\c[4]B%1:\\c[0]%2'; var text = fmt.format(troopId.padZero(4), name); var enabled = $dataTroops[troopId].members.length > 0; this.addCommand(text, 'battleNormal', enabled, troopId); var preemptive = '
\\c[17]Preemptive'; this.addCommand(preemptive, 'battleParty', enabled, troopId); var surprise = '
\\c[18]Surprise'; this.addCommand(surprise, 'battleTroop', enabled, troopId); } }; Window_DebugAction.prototype.makeActorList = function () { var column1 = ['\\c[17]Actor List']; var column2 = []; // Create Column 1 for (var i = 1; i < Yanfly.Max.Actors; ++i) { var actor = $gameActors.actor(i); if (actor) column1.push(actor); } // Create Column 2 var bmembers = $gameParty.battleMembers(); if (bmembers.length > 0) { column2.push('\\c[17]Battle Members'); var length = bmembers.length; for (var i = 0; i < length; ++i) { var actor = bmembers[i]; if (actor) column2.push(actor); } } var amembers = $gameParty.allMembers(); if (amembers.length > 0 && amembers.length > bmembers.length) { column2.push('\\c[17]Reserve Members'); var length = amembers.length; for (var i = 0; i < length; ++i) { var actor = amembers[i]; if (actor && !bmembers.contains(actor)) column2.push(actor); } } // Add Commands var length = Math.max(column1.length, column2.length); for (var i = 0; i < length; ++i) { var member = column1[i]; if (typeof member === 'string') { this.addCommand(member, 'none', true); } else if (member) { var name = member.name(); var fmt = '\\c[4]A%1:\\c[0]%2'; var text = fmt.format(member.actorId().padZero(4), name); this.addCommand(text, 'battlerMain', true, member); } else { this.addCommand('', 'none', true); } var member = column2[i]; if (typeof member === 'string') { this.addCommand(member, 'none', true); } else if (member) { var name = member.name(); var fmt = '\\c[4]A%1:\\c[0]%2'; var text = fmt.format(member.actorId().padZero(4), name); this.addCommand(text, 'battlerMain', true, member); } else { this.addCommand('', 'none', true); } } }; Window_DebugAction.prototype.makeEnemyList = function () { var column1 = ['\\c[17]Enemy List']; var column2 = []; // Create Column 1 var members = $gameTroop.allMembers(); var length = members.length; for (var i = 0; i < length; ++i) { var member = members[i]; if (member) column1.push(member); } // Create Column 2 var members = $gameTroop.aliveMembers(); var length = members.length; if (length > 0) { column2.push('\\c[17]Alive Enemies'); for (var i = 0; i < length; ++i) { var member = members[i]; if (member) column2.push(member); } } var members = $gameTroop.deadMembers(); var length = members.length; if (length > 0) { column2.push('\\c[17]Dead Enemies'); for (var i = 0; i < length; ++i) { var member = members[i]; if (member) column2.push(member); } } // Add Commands var length = Math.max(column1.length, column2.length); for (var i = 0; i < length; ++i) { var member = column1[i]; if (typeof member === 'string') { this.addCommand(member, 'none', true); } else if (member) { var name = member.name(); var fmt = '\\c[4]E%1:\\c[0]%2'; var text = fmt.format(member.enemyId().padZero(4), name); this.addCommand(text, 'battlerMain', true, member); } else { this.addCommand('', 'none', true); } var member = column2[i]; if (typeof member === 'string') { this.addCommand(member, 'none', true); } else if (member) { var name = member.name(); var fmt = '\\c[4]E%1:\\c[0]%2'; var text = fmt.format(member.enemyId().padZero(4), name); this.addCommand(text, 'battlerMain', true, member); } else { this.addCommand('', 'none', true); } } }; Window_DebugAction.prototype.makeBattlerList = function () { var column1 = []; var column2 = []; if ($gameParty.inBattle()) { // In Battle var members = $gameParty.battleMembers(); var length = members.length; if (length > 0) { column1.push('\\c[17]Battle Actors'); for (var i = 0; i < length; ++i) { var member = members[i]; if (member) column1.push(member); } } var members = $gameParty.allMembers(); var length = members.length; if ((length - $gameParty.battleMembers().length) > 0) { column1.push('\\c[17]Reserve Actors'); for (var i = 0; i < length; ++i) { var member = members[i]; if (member && !column1.contains(member)) column1.push(member); } } var members = $gameTroop.aliveMembers(); var length = members.length; if (length > 0) { column2.push('\\c[17]Alive Enemies'); for (var i = 0; i < length; ++i) { var member = members[i]; if (member) column2.push(member); } } var members = $gameTroop.deadMembers(); var length = members.length; if (length > 0) { column2.push('\\c[17]Dead Enemies'); for (var i = 0; i < length; ++i) { var member = members[i]; if (member) column2.push(member); } } } else { // Not In Battle column1.push('\\c[17]Actor List'); for (var i = 1; i < Yanfly.Max.Actors; ++i) { var actor = $gameActors.actor(i); if (actor) column1.push(actor); } var bmembers = $gameParty.battleMembers(); if (bmembers.length > 0) { column2.push('\\c[17]Battle Members'); var length = bmembers.length; for (var i = 0; i < length; ++i) { var actor = bmembers[i]; if (actor) column2.push(actor); } } var amembers = $gameParty.allMembers(); if (amembers.length > 0 && amembers.length > bmembers.length) { column2.push('\\c[17]Reserve Members'); var length = amembers.length; for (var i = 0; i < length; ++i) { var actor = amembers[i]; if (actor && !bmembers.contains(actor)) column2.push(actor); } } } // Add Commands var length = Math.max(column1.length, column2.length); for (var i = 0; i < length; ++i) { var member = column1[i]; if (typeof member === 'string') { this.addCommand(member, 'none', true); } else if (member) { var name = member.name(); var fmt = member.isActor() ? '\\c[4]A%1:\\c[0]%2' : '\\c[4]E%1:\\c[0]%2'; var id = member.isActor() ? member.actorId() : member.enemyId(); var text = fmt.format(id.padZero(4), name); this.addCommand(text, 'battlerList', true, member); } else { this.addCommand('', 'none', true); } var member = column2[i]; if (typeof member === 'string') { this.addCommand(member, 'none', true); } else if (member) { var name = member.name(); var fmt = member.isActor() ? '\\c[4]A%1:\\c[0]%2' : '\\c[4]E%1:\\c[0]%2'; var id = member.isActor() ? member.actorId() : member.enemyId(); var text = fmt.format(id.padZero(4), name); this.addCommand(text, 'battlerList', true, member); } else { this.addCommand('', 'none', true); } } }; Window_DebugAction.prototype.setBattler = function (battler, type) { this._battler = battler; this._battlerType = type; this.select(0); }; Window_DebugAction.prototype.removeBattler = function () { var ext = this._battler; this._battler = undefined; this._battlerType = undefined; this.refresh(); this.selectExt(ext); this.activate(); }; Window_DebugAction.prototype.makeBattlerMainList = function () { this.addCommand('\\c[17]' + this._battler.name(), 'none'); if (this._battler.isActor() && !$gameParty.inBattle()) { var inParty = $gameParty.allMembers().contains(this._battler); this.addCommand('Add to Party', 'battlerAddParty', !inParty); this.addCommand('Remove from Party', 'battlerRemoveParty', inParty); } else if (this._battler.isEnemy()) { var hidden = this._battler.isHidden(); this.addCommand('Show Enemy', 'battlerShowEnemy', hidden); this.addCommand('Hide Enemy', 'battlerHideEnemy', !hidden); } // Parameters this.addCommand('
\\c[17]Main Parameters', 'none'); this.addCommand('Recover ' + TextManager.hp, 'battlerRecoverHp'); this.addCommand('Recover ' + TextManager.mp, 'battlerRecoverMp'); this.addCommand('Recover ' + TextManager.tp, 'battlerRecoverTp'); this.addCommand('Clear States', 'battlerClearStates'); this.addCommand('
\\c[17]Base Parameters', 'none'); if (this.battlerAddLevelOption()) { this.addCommand(TextManager.level, 'battlerBaseLevel'); } for (var i = 0; i < 8; ++i) { var text = TextManager.param(i); this.addCommand(text, 'battlerBaseParam', true, i); } // Skills if (this._battler.isActor() && !$gameParty.inBattle()) { this.addCommand('
\\c[17]Skills', 'none'); this.addCommand('Add All Skills', 'battlerAddAllSkills'); this.addCommand('Add All Named Skills', 'battlerAddAllNamedSkills'); this.addCommand('Remove All Skills', 'battlerRemoveAllSkills'); }; }; Window_DebugAction.prototype.battlerAddLevelOption = function () { if (this._battler.isActor()) return true; if (this._battler.isEnemy()) { if (Imported.YEP_EnemyLevels) return true; } return false; }; Window_DebugAction.prototype.makeBattlerStatesList = function () { this.addCommand('\\c[17]' + this._battler.name(), 'none'); this.addCommand('Clear States', 'battlerClearStates'); this.addCommand('
\\c[17]Sort States', 'none'); this._sortStates = this._sortStates || 'id1'; this.addCommand('Sort by ID', 'battlerStatesSortID'); this.addCommand('Sort by Priority', 'battlerStatesSortPriority'); this.addCommand('Sort by Name', 'battlerStatesSortName'); this.addCommand('
\\c[17]States List', 'none'); var states = this.getSortDebugStates(); var battlerStates = this._battler.states(); var length = states.length; for (var i = 0; i < length; ++i) { var state = states[i]; if (!state) continue; if (state.name === '') continue; var fmt = '\\c[4]T%1:\\i[%2]\\c[%3]%4'; var id = state.id; var icon = state.iconIndex; var name = state.name; var color = battlerStates.contains($dataStates[state.id]) ? 0 : 8; var text = fmt.format(id.padZero(4), icon, color, name); this.addCommand(text, 'battlerState', true, state); } }; Window_DebugAction.prototype.getSortDebugStates = function () { if (this._cachedStates) return this._cachedStates; var group = JsonEx.makeDeepCopy($dataStates); group.shift(); if (this._sortStates === 'id1') { group.sort(function (a, b) { var t1 = a.id; var t2 = b.id; if (t1 !== t2) return t1 - t2; return a.name === b.name ? 0 : +(a.name > b.name) || -1; }); } else if (this._sortStates === 'id2') { group.sort(function (a, b) { var t1 = a.id; var t2 = b.id; if (t1 !== t2) return t2 - t1; return a.name === b.name ? 0 : +(a.name > b.name) || -1; }); } else if (this._sortStates === 'priority1') { group.sort(function (a, b) { var t1 = a.priority; var t2 = b.priority; if (t1 !== t2) return t1 - t2; return a.name === b.name ? 0 : +(a.name > b.name) || -1; }); } else if (this._sortStates === 'priority2') { group.sort(function (a, b) { var t1 = a.priority; var t2 = b.priority; if (t1 !== t2) return t2 - t1; return a.name === b.name ? 0 : +(a.name > b.name) || -1; }); } else if (this._sortStates === 'name1') { group.sort(function (a, b) { return a.name === b.name ? 0 : +(a.name > b.name) || -1; }); } else if (this._sortStates === 'name2') { group.sort(function (a, b) { return a.name === b.name ? 0 : +(a.name < b.name) || -1; }); } this._cachedStates = group; return this._cachedStates; }; Window_DebugAction.prototype.makeBattlerBuffsList = function () { this.addCommand('\\c[17]' + this._battler.name(), 'none'); this.addCommand('Clear Buffs', 'battlerClearBuffs'); this.addCommand('Clear Debuffs', 'battlerClearDebuffs'); this.addCommand('Clear Buffs & Debuffs', 'battlerClearBuffsDebuffs'); this.addCommand('
\\c[17]Main Parameters', 'none'); for (var i = 0; i < 8; ++i) { var level = this._battler._buffs[i] || 1; var icon = this._battler.buffIconIndex(level, i); var name = TextManager.param(i); var fmt = '\\i[%1]\\c[4]%2'; var text = fmt.format(icon, name); this.addCommand(text, 'battlerBuff', true, i); } }; Window_DebugAction.prototype.addDebugItem = function (item) { if (!item) return; if (item.name === '') return; var enabled = true; if (Imported.YEP_ItemCore && item.baseItemId) { this.addCommand('', 'none'); this.addCommand('
\\}Delete', 'item-delete', enabled, item); this.addCommand('', 'none'); } else if (Imported.YEP_ItemCore && DataManager.isIndependent(item)) { this.addCommand('', 'none'); this.addCommand('
\\}Clear', 'item-clear', enabled, item); this.addCommand('', 'none'); } else { this.addCommand('
Zero', 'item-max', enabled, item); this.addCommand('
-10', 'item-10', enabled, item); this.addCommand('
-1', 'item-1', enabled, item); } var fmt = '\\c[%5]%4%1\\i[%2]\\c[0]%3'; var id = item.id; var icon = item.iconIndex; var name = item.name; if (DataManager.isItem(item)) { var type = 'I'; } else if (DataManager.isWeapon(item)) { var type = 'W'; } else { var type = 'A'; } if (Imported.YEP_ItemCore && item.baseItemId) { var color = 5; } else { var color = 4; } var text = fmt.format(id.padZero(4), icon, name, type, color); this.addCommand(text, 'item', enabled, item); if (Imported.YEP_ItemCore && item.baseItemId) { this.addCommand('', 'none'); this.addCommand('
\\}Add', 'item-dupe', enabled, item); this.addCommand('', 'none'); } else if (Imported.YEP_ItemCore && DataManager.isIndependent(item)) { this.addCommand('', 'none'); this.addCommand('
\\}Make', 'item-make', enabled, item); this.addCommand('', 'none'); } else { this.addCommand('
+1', 'item+1', enabled, item); this.addCommand('
+10', 'item+10', enabled, item); this.addCommand('
+MAX', 'item+max', enabled, item); } }; Window_DebugAction.prototype.makeItemList = function () { var items = this.getDataItems(); var length = items.length; for (var i = 0; i < length; ++i) { var id = items[i].id; var item = $dataItems[id]; this.addDebugItem(item); } }; Window_DebugAction.prototype.getDataItems = function () { if (this._cachedItems) return this._cachedItems; this._cachedItems = []; var length = $dataItems.length; for (var i = 0; i < length; ++i) { var item = $dataItems[i]; if (item && item.name !== '') this._cachedItems.push(item); } return this._cachedItems; }; Window_DebugAction.prototype.makeWeaponList = function () { var items = this.getDataWeapons(); var length = items.length; for (var i = 0; i < length; ++i) { var id = items[i].id; var item = $dataWeapons[id]; this.addDebugItem(item); } }; Window_DebugAction.prototype.getDataWeapons = function () { if (this._cachedWeapons) return this._cachedWeapons; this._cachedWeapons = []; var length = $dataWeapons.length; for (var i = 0; i < length; ++i) { var item = $dataWeapons[i]; if (item && item.name !== '') this._cachedWeapons.push(item); } return this._cachedWeapons; }; Window_DebugAction.prototype.makeArmorList = function () { var items = this.getDataArmors(); var length = items.length; for (var i = 0; i < length; ++i) { var id = items[i].id; var item = $dataArmors[id]; this.addDebugItem(item); } }; Window_DebugAction.prototype.getDataArmors = function () { if (this._cachedArmors) return this._cachedArmors; this._cachedArmors = []; var length = $dataArmors.length; for (var i = 0; i < length; ++i) { var item = $dataArmors[i]; if (item && item.name !== '') this._cachedArmors.push(item); } return this._cachedArmors; }; Window_DebugAction.prototype.drawItem = function (index) { var symbol = this._list[index].symbol; var ext = this._list[index].ext; var rect = this.itemRect(index); switch (symbol) { case 'currentGold': rect.width -= this.textPadding(); this.drawText(this.commandName(index), rect.x, rect.y, rect.width, 'right'); return; break; }; Window_DebugCommand.prototype.drawItem.call(this, index); switch (symbol) { case 'variableSet': var value = Yanfly.Util.toGroup($gameVariables.value(ext)); this.resetFontSettings(); rect.width -= this.textPadding(); this.drawText(value, rect.x, rect.y, rect.width, 'right'); break; case 'battlerRecoverHp': var x = Math.floor(rect.x + rect.width / 3); var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawActorHp(this._battler, x, y, w); break; case 'battlerRecoverMp': var x = Math.floor(rect.x + rect.width / 3); var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawActorMp(this._battler, x, y, w); break; case 'battlerRecoverTp': var x = Math.floor(rect.x + rect.width / 3); var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawActorTp(this._battler, x, y, w); break; case 'battlerClearStates': var x = Math.floor(rect.x + rect.width / 3); var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawActorIcons(this._battler, x, y, w); break; case 'battlerBaseLevel': var x = Math.floor(rect.x + rect.width / 3); var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawActorLevel(this._battler, x, y, w, ext); break; case 'battlerBaseParam': var x = Math.floor(rect.x + rect.width / 3); var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawActorParam(this._battler, x, y, w, ext); break; case 'battlerState': var states = this._battler.states(); var state = $dataStates[ext.id]; var stateId = state.id; this.resetFontSettings(); var x = Math.ceil(rect.width / 2); var y = rect.y; var w = Math.ceil(rect.width / 4); this.changePaintOpacity(states.contains(state)); var text = states.contains(state) ? 'Affected' : 'Unaffected'; this.drawText(text, x, y, w, 'center'); x += w; var turns = this._battler._stateTurns[stateId] || 0; text = 'Turns: ' + turns; this.drawText(text, x, y, w, 'center'); break; case 'battlerStatesSortID': if (this._sortStates === 'id2') { var text = 'High to Low'; this.changeTextColor(this.textColor(17)); } else if (this._sortStates === 'id1') { var text = 'Low to High'; this.changeTextColor(this.textColor(17)); } else { var text = 'Low to High'; this.changeTextColor(this.textColor(0)); } var x = rect.x; var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawText(text, x, y, w, 'right'); break; case 'battlerStatesSortPriority': if (this._sortStates === 'priority2') { var text = 'High to Low'; this.changeTextColor(this.textColor(17)); } else if (this._sortStates === 'priority1') { var text = 'Low to High'; this.changeTextColor(this.textColor(17)); } else { var text = 'Low to High'; this.changeTextColor(this.textColor(0)); } var x = rect.x; var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawText(text, x, y, w, 'right'); break; case 'battlerStatesSortName': if (this._sortStates === 'name2') { var text = 'Z to A'; this.changeTextColor(this.textColor(17)); } else if (this._sortStates === 'name1') { var text = 'A to Z'; this.changeTextColor(this.textColor(17)); } else { var text = 'A to Z'; this.changeTextColor(this.textColor(0)); } var x = rect.x; var y = rect.y; var w = rect.width - x - this.textPadding(); this.drawText(text, x, y, w, 'right'); break; case 'battlerBuff': var x = rect.x; var y = rect.y; var w = Math.ceil(rect.width / 2); var value = Yanfly.Util.toGroup(this._battler.param(ext)); var stacks = this._battler._buffs[ext] || 0; var text = value; if (stacks > 0) { this.changeTextColor(this.powerUpColor()); } else if (stacks < 0) { this.changeTextColor(this.powerDownColor()); } else { this.changeTextColor(this.normalColor()); } this.drawText(text, x, y, w - this.textPadding(), 'right'); x += w + this.textPadding(); w = Math.ceil(rect.width / 4); var rate = Math.floor(this._battler.paramBuffRate(ext) * 100); text = '(' + rate + '%)'; this.drawText(text, x, y, w - this.textPadding(), 'left'); x += w; this.resetFontSettings(); text = 'Stacks: ' + Yanfly.Util.toGroup(stacks); this.drawText(text, x, y, w - this.textPadding(), 'center'); break; case 'item': var x = rect.x; var y = rect.y; var w = rect.width - this.textPadding(); Window_ItemList.prototype.drawItemNumber.call(this, ext, x, y, w); break; }; }; Window_DebugAction.prototype.needsNumber = function () { return true; }; Window_DebugAction.prototype.drawItemCarryNumber = function (item, dx, dy, dw) { var text = ''; if (item.baseItemId) { text = 'Independent'; } else if (DataManager.isIndependent(item)) { text = 'Template'; } if (text === '') return; this.resetFontSettings(); this.makeFontSmaller(); dw -= this.textPadding(); this.drawText(text, dx, dy, dw, 'right'); }; Window_DebugAction.prototype.drawActorLevel = function (battler, x, y, w, id) { var rate = battler.level / battler.maxLevel(); var color1 = this.textColor(30); var color2 = this.textColor(31); this.drawGauge(x, y, w, rate, color1, color2); var text = Yanfly.Util.toGroup(battler.level); this.drawText(text, x, y, w, 'right'); }; Window_DebugAction.prototype.drawActorParam = function (battler, x, y, w, id) { var rate = battler.param(id) / battler.paramMax(id); var color1 = this.textColor(30); var color2 = this.textColor(31); this.drawGauge(x, y, w, rate, color1, color2); var text = Yanfly.Util.toGroup(battler.param(id)); if (battler._paramPlus[id] !== 0) { var add = '('; add += (battler._paramPlus[id] > 0) ? '+' : ''; add += Yanfly.Util.toGroup(battler._paramPlus[id]) + ') '; text = add + text; } this.drawText(text, x, y, w, 'right'); }; Window_DebugAction.prototype.updateHelp = function () { this.updateDebugHelp(this._symbol); }; Window_DebugAction.prototype.update = function () { Window_DebugCommand.prototype.update.call(this); this.processExtraKeys(); }; Window_DebugAction.prototype.processExtraKeys = function () { if (!this.isOpenAndActive()) return; if (this._battler) return this.processBattlerKeys(); var symbol = this._symbol; switch (symbol) { case 'quick': this.processQuickKeys(); break; case 'switch': case 'battle': case 'events': this.processQuickSelectKeys(); break; case 'variable': this.processVariableKeys(); break; } }; Window_DebugAction.prototype.processVariableKeys = function () { if (this.currentSymbol() !== 'variableSet') return; var varId = this.currentExt(); var value = Number($gameVariables.value(varId)); if (value === NaN) value = 0; if (Input.isTriggered('delete')) { value = 0; } else if (Input.isRepeated('backspace')) { value = String(value); value = value.substring(0, value.length - 1); value = Number(value); } else if (Input.isRepeated('0')) { value = Number(String(value) + '0'); } else if (Input.isRepeated('1')) { value = Number(String(value) + '1'); } else if (Input.isRepeated('2')) { value = Number(String(value) + '2'); } else if (Input.isRepeated('3')) { value = Number(String(value) + '3'); } else if (Input.isRepeated('4')) { value = Number(String(value) + '4'); } else if (Input.isRepeated('5')) { value = Number(String(value) + '5'); } else if (Input.isRepeated('6')) { value = Number(String(value) + '6'); } else if (Input.isRepeated('7')) { value = Number(String(value) + '7'); } else if (Input.isRepeated('8')) { value = Number(String(value) + '8'); } else if (Input.isRepeated('9')) { value = Number(String(value) + '9'); } else if (Input.isTriggered('-')) { value = -1 * Math.abs(value); } else if (Input.isTriggered('+')) { value = Math.abs(value); } else { return; } SoundManager.playCursor(); $gameVariables.setValue(varId, value); this.refresh(); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + varId.padZero(4) + ': ' + ($dataSystem.variables[varId] || '') + ' set to ' + Yanfly.Util.toGroup($gameVariables.value(varId))); } }; Window_DebugAction.prototype.processQuickKeys = function () { if (this.currentSymbol() !== 'currentGold') return; var value = $gameParty.gold(); if (value === NaN) value = 0; if (Input.isTriggered('delete')) { value = 0; } else if (Input.isRepeated('backspace')) { value = String(value); value = value.substring(0, value.length - 1); value = Number(value); } else if (Input.isRepeated('0')) { value = Number(String(value) + '0'); } else if (Input.isRepeated('1')) { value = Number(String(value) + '1'); } else if (Input.isRepeated('2')) { value = Number(String(value) + '2'); } else if (Input.isRepeated('3')) { value = Number(String(value) + '3'); } else if (Input.isRepeated('4')) { value = Number(String(value) + '4'); } else if (Input.isRepeated('5')) { value = Number(String(value) + '5'); } else if (Input.isRepeated('6')) { value = Number(String(value) + '6'); } else if (Input.isRepeated('7')) { value = Number(String(value) + '7'); } else if (Input.isRepeated('8')) { value = Number(String(value) + '8'); } else if (Input.isRepeated('9')) { value = Number(String(value) + '9'); } else { return; } SoundManager.playCursor(); $gameParty._gold = value.clamp(0, $gameParty.maxGold()); this.refresh(); if (Yanfly.Param.DebugConsoleMsg) { var text = 'Quick: Set ' + TextManager.currencyUnit; text += ' to ' + Yanfly.Util.toGroup($gameParty.gold()); console.log(text); } }; Window_DebugAction.prototype.processQuickSelectKeys = function () { if (Input.isTriggered('tilde')) { SoundManager.playCursor(); this.select(0); } else if (Input.isTriggered('0')) { SoundManager.playCursor(); this.select(this.maxItems() - 1); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('1')) { SoundManager.playCursor(); this.selectExt(100); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('2')) { SoundManager.playCursor(); this.selectExt(200); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('3')) { SoundManager.playCursor(); this.selectExt(300); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('4')) { SoundManager.playCursor(); this.selectExt(400); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('5')) { SoundManager.playCursor(); this.selectExt(500); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('6')) { SoundManager.playCursor(); this.selectExt(600); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('7')) { SoundManager.playCursor(); this.selectExt(700); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('8')) { SoundManager.playCursor(); this.selectExt(800); this.setTopRow(Math.floor(this.index() / this.maxCols())); } else if (Input.isTriggered('9')) { SoundManager.playCursor(); this.selectExt(900); this.setTopRow(Math.floor(this.index() / this.maxCols())); } }; Window_DebugAction.prototype.processBattlerKeys = function () { var value = undefined; var ext = this.currentExt(); switch (this.currentSymbol()) { case 'battlerRecoverHp': value = this._battler.hp; break; case 'battlerRecoverMp': value = this._battler.mp; break; case 'battlerRecoverTp': value = this._battler.tp; break; case 'battlerBaseLevel': value = this._battler.level; break; case 'battlerBaseParam': value = this._battler._paramPlus[ext]; break; case 'battlerState': value = this._battler._stateTurns[ext.id] || 0; break; case 'battlerBuff': value = this._battler._buffs[ext] || 0; break; } if (value === undefined) return; if (value === NaN) value = 0; if (Input.isTriggered('delete')) { value = 0; } else if (Input.isRepeated('backspace')) { value = String(value); value = value.substring(0, value.length - 1); if (value === '-') value = 0; value = Number(value); } else if (Input.isRepeated('0')) { value = Number(String(value) + '0'); } else if (Input.isRepeated('1')) { value = Number(String(value) + '1'); } else if (Input.isRepeated('2')) { value = Number(String(value) + '2'); } else if (Input.isRepeated('3')) { value = Number(String(value) + '3'); } else if (Input.isRepeated('4')) { value = Number(String(value) + '4'); } else if (Input.isRepeated('5')) { value = Number(String(value) + '5'); } else if (Input.isRepeated('6')) { value = Number(String(value) + '6'); } else if (Input.isRepeated('7')) { value = Number(String(value) + '7'); } else if (Input.isRepeated('8')) { value = Number(String(value) + '8'); } else if (Input.isRepeated('9')) { value = Number(String(value) + '9'); } else if (Input.isTriggered('-')) { value = -1 * Math.abs(value); } else if (Input.isTriggered('+')) { value = Math.abs(value); } else if (Input.isRepeated('left')) { var mod = 1; if (Input.isPressed('shift')) mod *= 10; if (Input.isPressed('control')) mod *= 100; value -= mod; } else if (Input.isRepeated('right')) { var mod = 1; if (Input.isPressed('shift')) mod *= 10; if (Input.isPressed('control')) mod *= 100; value += mod; } else { return; } SoundManager.playCursor(); if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); }; switch (this.currentSymbol()) { case 'battlerRecoverHp': this._battler.setHp(value); text += ' - Changed ' + TextManager.hp + ' to ' + this._battler.hp; break; case 'battlerRecoverMp': this._battler.setMp(value); text += ' - Changed ' + TextManager.mp + ' to ' + this._battler.mp; break; case 'battlerRecoverTp': this._battler.setTp(value); text += ' - Changed ' + TextManager.tp + ' to ' + this._battler.tp; break; case 'battlerBaseLevel': value = value.clamp(1, this._battler.maxLevel()); this._battler.changeLevel(value); this._battler.refresh(); break; case 'battlerBaseParam': value = value.clamp(-999999999999999, 999999999999999); this._battler._paramPlus[this.currentExt()] = value; this._battler.refresh(); break; case 'battlerState': this._battler._stateTurns[ext.id] = Math.max(0, value); text += ' - Changed ' + ext.name + ' turns to ' + value; var affected = this._battler.states().contains($dataStates[ext.id]); if (this._battler._stateTurns[ext.id] > 0 && !affected) { this._battler.addState(ext.id); this._battler._stateTurns[ext.id] = Math.max(0, value); } else if (this._battler._stateTurns[ext.id] <= 0 && affected) { this._battler.removeState(ext.id); } this._battler.clearResult(); break; case 'battlerBuff': if (Imported.YEP_BuffsStatesCore) { var max = this._battler.maxBuffLimit(ext); var min = -1 * this._battler.maxBuffLimit(ext); } else { var max = 2; var min = -2; } this._battler._buffs[ext] = value.clamp(min, max); this._battler._buffTurns[ext] = Math.max(this._battler._buffTurns[ext], 5); this._battler.refresh(); text += ' - ' + TextManager.param(ext) + ' Stacks changed to '; text += this._battler._buffs[ext]; break; } this._battler.clearResult(); this.refresh(); if (Yanfly.Param.DebugConsoleMsg) console.log(text); }; Window_DebugAction.prototype.callOkHandler = function () { this.activate(); var symbol = this.currentSymbol(); var ext = this.currentExt(); switch (symbol) { case 'quickWin': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Win Battle'); SceneManager._scene.debugClose(); $gameTroop.members().forEach(function (enemy) { enemy.setHp(0); enemy.performCollapse(); }); BattleManager.closeWindowsForDebugAction(); break; case 'quickLose': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Lose Battle'); SceneManager._scene.debugClose(); $gameParty.battleMembers().forEach(function (actor) { actor.setHp(0); actor.performCollapse(); actor.requestMotion('dead'); }); BattleManager.closeWindowsForDebugAction(); break; case 'quickRecoverAll': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Recover All'); $gameParty.battleMembers().forEach(function (actor) { actor.recoverAll(); }); break; case 'quickDisableVariance': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Disable Variance'); $gameTemp.setDisableDamageVariance(true); break; case 'quickEnableVariance': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Enable Variance'); $gameTemp.setDisableDamageVariance(false); break; case 'quickToggleVariance': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Toggle Variance'); var value = !$gameTemp.isDisableDamageVariance(); $gameTemp.setDisableDamageVariance(false); break; case 'quickDisablePerfectStateRate': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Normal State Rates'); $gameTemp.setPerfectStateRate(false); break; case 'quickEnablePerfectStateRate': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: 100% State Rates'); $gameTemp.setPerfectStateRate(true); break; case 'quickToggleStateRate': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Toggle State Rates'); var value = !$gameTemp.isPerfectStateRate(); $gameTemp.setPerfectStateRate(false); break; case 'quickRefillHp': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Refill ' + TextManager.hp); } $gameParty.battleMembers().forEach(function (actor) { actor.setHp(actor.mhp); }); break; case 'quickRefillMp': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Refill ' + TextManager.mp); } $gameParty.battleMembers().forEach(function (actor) { actor.setMp(actor.mmp); }); break; case 'quickRefillTp': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Refill ' + TextManager.tp); } $gameParty.battleMembers().forEach(function (actor) { actor.setTp(actor.maxTp()); }); break; case 'quickClearStates': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Clear States'); $gameParty.battleMembers().forEach(function (actor) { actor.clearStates(); }); break; case 'quickRefillUses': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Refill Uses'); $gameParty.battleMembers().forEach(function (actor) { actor.initSkillLimitedUses(); }); break; case 'quickResetCooldowns': if (Yanfly.Param.DebugConsoleMsg) console.log('Quick: Reset Cooldowns'); $gameParty.battleMembers().forEach(function (actor) { actor.clearCooldowns(); actor.clearWarmups(); }); break; case 'switchToggle': var value = $gameSwitches.value(ext); $gameSwitches.setValue(ext, !value); if (Yanfly.Param.DebugConsoleMsg) { console.log('S' + ext.padZero(4) + ': ' + ($dataSystem.switches[ext] || '') + ' set to ' + ($gameSwitches.value(ext) ? 'ON' : 'OFF')); } break; case 'quickClearGold': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Clear All ' + TextManager.currencyUnit); } $gameParty._gold = 0; break; case 'quickGold-1000': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Lose 1,000 ' + TextManager.currencyUnit); } $gameParty.loseGold(1000); break; case 'quickGold=1000': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Set 1,000 ' + TextManager.currencyUnit); } $gameParty._gold = 1000; break; case 'quickGold+1000': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Gain 1,000 ' + TextManager.currencyUnit); } $gameParty.gainGold(1000); break; case 'quickGold-1000000': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Lose 1,000,000 ' + TextManager.currencyUnit); } $gameParty.loseGold(1000000); break; case 'quickGold=1000000': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Set 1,000,000 ' + TextManager.currencyUnit); } $gameParty._gold = 1000000; break; case 'quickGold+1000000': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Gain 1,000,000 ' + TextManager.currencyUnit); } $gameParty.gainGold(1000000); break; case 'quickItems+1': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Items +1'); } var length = $dataItems.length; length = Math.min(length, Yanfly.Max.Items); for (var i = 1; i < length; ++i) { var item = $dataItems[i]; if (item && item.name) $gameParty.gainItem(item, 1); } break; case 'quickItems+10': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Items +10'); } var length = $dataItems.length; length = Math.min(length, Yanfly.Max.Items); for (var i = 1; i < length; ++i) { var item = $dataItems[i]; if (item && item.name) $gameParty.gainItem(item, 10); } break; case 'quickItems+MAX': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Items +MAX'); } var length = $dataItems.length; length = Math.min(length, Yanfly.Max.Items); for (var i = 1; i < length; ++i) { var item = $dataItems[i]; if (item && item.name) { var max = $gameParty.maxItems(item); $gameParty.gainItem(item, max); } } break; case 'quickWeapons+1': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Weapons +1'); } var length = $dataWeapons.length; length = Math.min(length, Yanfly.Max.Weapons); for (var i = 1; i < length; ++i) { var item = $dataWeapons[i]; if (item && item.name) $gameParty.gainItem(item, 1); } break; case 'quickWeapons+10': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Weapons +10'); } var length = $dataWeapons.length; length = Math.min(length, Yanfly.Max.Weapons); for (var i = 1; i < length; ++i) { var item = $dataWeapons[i]; if (item && item.name) $gameParty.gainItem(item, 10); } break; case 'quickWeapons+MAX': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Weapons +MAX'); } var length = $dataWeapons.length; length = Math.min(length, Yanfly.Max.Weapons); for (var i = 1; i < length; ++i) { var item = $dataWeapons[i]; if (item && item.name) { var max = $gameParty.maxItems(item); $gameParty.gainItem(item, max); } } break; case 'quickArmors+1': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Armors +1'); } var length = $dataArmors.length; length = Math.min(length, Yanfly.Max.Armors); for (var i = 1; i < length; ++i) { var item = $dataArmors[i]; if (item && item.name) $gameParty.gainItem(item, 1); } break; case 'quickArmors+10': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Armors +10'); } var length = $dataArmors.length; length = Math.min(length, Yanfly.Max.Armors); for (var i = 1; i < length; ++i) { var item = $dataArmors[i]; if (item && item.name) $gameParty.gainItem(item, 10); } break; case 'quickArmors+MAX': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: All Armors +MAX'); } var length = $dataArmors.length; length = Math.min(length, Yanfly.Max.Armors); for (var i = 1; i < length; ++i) { var item = $dataArmors[i]; if (item && item.name) { var max = $gameParty.maxItems(item); $gameParty.gainItem(item, max); } } break; case 'quickPartyLevel+1': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Party Level +1'); } var group = $gameParty.members(); var length = group.length; for (var i = 0; i < length; ++i) { var member = group[i]; if (member) member.changeLevel(member.level + 1, false); } break; case 'quickPartyLevel+10': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Party Level +10'); } var group = $gameParty.members(); var length = group.length; for (var i = 0; i < length; ++i) { var member = group[i]; if (member) member.changeLevel(member.level + 10, false); } break; case 'quickPartyLevel+MAX': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Party Level +MAX'); } var group = $gameParty.members(); var length = group.length; for (var i = 0; i < length; ++i) { var member = group[i]; if (member) member.changeLevel(member.maxLevel(), false); } break; case 'quickPartyLevel-1': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Party Level -1'); } var group = $gameParty.members(); var length = group.length; for (var i = 0; i < length; ++i) { var member = group[i]; if (member) member.changeLevel(member.level - 1, false); } break; case 'quickPartyLevel-10': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Party Level -10'); } var group = $gameParty.members(); var length = group.length; for (var i = 0; i < length; ++i) { var member = group[i]; if (member) member.changeLevel(member.level - 10, false); } break; case 'quickPartyLevelto1': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Party Level to 1'); } var group = $gameParty.members(); var length = group.length; for (var i = 0; i < length; ++i) { var member = group[i]; if (member) member.changeLevel(1, false); } break; case 'quickAddAllSkills': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Add All Skills'); } $gameTemp.addAllSkills(); break; case 'quickAddAllNamedSkills': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Add All Named Skills'); } $gameTemp.addAllNamedSkills(); break; case 'quickRemoveAllSkills': if (Yanfly.Param.DebugConsoleMsg) { console.log('Quick: Removal All Skills'); } $gameTemp.removeAllSkills(); break; case 'switchOn': $gameSwitches.setValue(ext, true); if (Yanfly.Param.DebugConsoleMsg) { console.log('S' + ext.padZero(4) + ': ' + ($dataSystem.switches[ext] || '') + ' set to ' + ($gameSwitches.value(ext) ? 'ON' : 'OFF')); } break; case 'switchOff': $gameSwitches.setValue(ext, false); if (Yanfly.Param.DebugConsoleMsg) { console.log('S' + ext.padZero(4) + ': ' + ($dataSystem.switches[ext] || '') + ' set to ' + ($gameSwitches.value(ext) ? 'ON' : 'OFF')); } break; case 'var-1': if (typeof $gameVariables.value(ext) !== 'number') return; var value = $gameVariables.value(ext); $gameVariables.setValue(ext, value - 1); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + ext.padZero(4) + ': ' + ($dataSystem.variables[ext] || '') + ' - 1 = ' + $gameVariables.value(ext)); } break; case 'var-10': if (typeof $gameVariables.value(ext) !== 'number') return; var value = $gameVariables.value(ext); $gameVariables.setValue(ext, value - 10); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + ext.padZero(4) + ': ' + ($dataSystem.variables[ext] || '') + ' - 10 = ' + $gameVariables.value(ext)); } break; case 'var-100': if (typeof $gameVariables.value(ext) !== 'number') return; var value = $gameVariables.value(ext); $gameVariables.setValue(ext, value - 100); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + ext.padZero(4) + ': ' + ($dataSystem.variables[ext] || '') + ' - 100 = ' + $gameVariables.value(ext)); } break; case 'var+1': if (typeof $gameVariables.value(ext) !== 'number') return; var value = $gameVariables.value(ext); $gameVariables.setValue(ext, value + 1); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + ext.padZero(4) + ': ' + ($dataSystem.variables[ext] || '') + ' + 1 = ' + $gameVariables.value(ext)); } break; case 'var+10': if (typeof $gameVariables.value(ext) !== 'number') return; var value = $gameVariables.value(ext); $gameVariables.setValue(ext, value + 10); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + ext.padZero(4) + ': ' + ($dataSystem.variables[ext] || '') + ' + 10 = ' + $gameVariables.value(ext)); } break; case 'var+100': if (typeof $gameVariables.value(ext) !== 'number') return; var value = $gameVariables.value(ext); $gameVariables.setValue(ext, value + 100); if (Yanfly.Param.DebugConsoleMsg) { console.log('V' + ext.padZero(4) + ': ' + ($dataSystem.variables[ext] || '') + ' + 100 = ' + $gameVariables.value(ext)); } break; case 'teleportMapId': var mapId = this.currentExt(); if (Yanfly.Param.DebugConsoleMsg) { console.log('Teleporting to Map ' + mapId + '! Loading Teleporter.'); console.log('...Please be patient as Teleporter loads.'); }; $gameTemp._preDebugTeleportX = $gamePlayer.x; $gameTemp._preDebugTeleportY = $gamePlayer.y; $gameTemp._preDebugTeleportMap = $gameMap.mapId(); SceneManager._scene.debugClose(); SceneManager.push(Scene_MapTeleport); $gamePlayer.reserveTransfer(mapId, 0, 0, 2, 0); break; case 'commonEvent': if (Yanfly.Param.DebugConsoleMsg) { console.log('C' + ext.padZero(4) + ': ' + ($dataCommonEvents[ext].name || '') + ' - Reserving Common Event'); console.log('NOTE: Common Event will launch when possible!') }; if (SceneManager._scene instanceof Scene_Map) { $gameTemp.reserveCommonEvent(ext); } else if (SceneManager._scene instanceof Scene_Battle) { $gameTemp.reserveCommonEvent(ext); } else { SceneManager.push(Scene_Map); $gameTemp.reserveCommonEvent(ext); } SceneManager._scene.debugClose(); break; case 'battleNormal': if (Yanfly.Param.DebugConsoleMsg) { console.log('B' + ext.padZero(4) + ': ' + ($dataTroops[ext].name || '') + ' - Engaged! Normal Battle!'); }; SceneManager._scene.debugClose(); SoundManager.playBattleStart(); BattleManager.setup(ext, true, true); $gamePlayer.makeEncounterCount(); SceneManager.push(Scene_Battle); break; case 'battleParty': if (Yanfly.Param.DebugConsoleMsg) { console.log('B' + ext.padZero(4) + ': ' + ($dataTroops[ext].name || '') + ' - Engaged! Party Advantage!'); }; SceneManager._scene.debugClose(); SoundManager.playBattleStart(); BattleManager.setup(ext, true, true); BattleManager._preemptive = true; $gamePlayer.makeEncounterCount(); SceneManager.push(Scene_Battle); break; case 'battleTroop': if (Yanfly.Param.DebugConsoleMsg) { console.log('B' + ext.padZero(4) + ': ' + ($dataTroops[ext].name || '') + ' - Engaged! Enemy Advantage!'); }; SceneManager._scene.debugClose(); SoundManager.playBattleStart(); BattleManager.setup(ext, true, true); BattleManager._surprise = true; $gamePlayer.makeEncounterCount(); SceneManager.push(Scene_Battle); break; case 'battlerMain': if (Yanfly.Param.DebugConsoleMsg) { var member = ext; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } console.log(text + ' - Battler Parameters Modification') }; this.setBattler(member, 'main'); break; case 'battlerAddParty': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = 'A%1: %2'; var text = fmt.format(this._battler.actorId().padZero(4), name); console.log(text + ' - Added to Party'); }; $gameParty.addActor(this._battler.actorId()); break; case 'battlerRemoveParty': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = 'A%1: %2'; var text = fmt.format(this._battler.actorId().padZero(4), name); console.log(text + ' - Removed from Party'); }; $gameParty.removeActor(this._battler.actorId()); break; case 'battlerRecoverHp': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); console.log(text + ' - Recovered Full ' + TextManager.hp); }; this._battler.setHp(this._battler.mhp); break; case 'battlerRecoverMp': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); console.log(text + ' - Recovered Full ' + TextManager.mp); }; this._battler.setMp(this._battler.mmp); break; case 'battlerRecoverTp': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); console.log(text + ' - Recovered Full ' + TextManager.tp); }; this._battler.setTp(this._battler.maxTp()); break; case 'battlerClearStates': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); console.log(text + ' - Cleared All Possible States'); }; this._battler.clearStates(); this._battler.clearResult(); break; case 'battlerShowEnemy': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); console.log(text + ' - Is now Shown'); }; this._battler.appear(); this._battler.refresh(); break; case 'battlerHideEnemy': if (Yanfly.Param.DebugConsoleMsg) { var name = this._battler.name(); var fmt = this._battler.isActor() ? 'A%1: %2' : 'E%1: %2'; var id = this._battler.isActor() ? this._battler.actorId() : this._battler.enemyId(); var text = fmt.format(id.padZero(4), name); console.log(text + ' - Is now Shown'); }; this._battler.hide(); this._battler.refresh(); break; case 'battlerList': if (Yanfly.Param.DebugConsoleMsg) { var member = ext; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Battler ' + (this._symbol === 'states' ? 'States' : 'Buffs'); text += ' Modification'; console.log(text); }; this.setBattler(member, this._symbol); break; case 'battlerStatesSortID': this._sortStates = (this._sortStates === 'id1') ? 'id2' : 'id1'; if (Yanfly.Param.DebugConsoleMsg) { var text = 'Sort States: ID'; console.log(text); } this._cachedStates = undefined; break; case 'battlerStatesSortPriority': this._sortStates = (this._sortStates === 'priority1') ? 'priority2' : 'priority1'; if (Yanfly.Param.DebugConsoleMsg) { var text = 'Sort States: Priority'; console.log(text); } this._cachedStates = undefined; break; case 'battlerStatesSortName': this._sortStates = (this._sortStates === 'name1') ? 'name2' : 'name1'; if (Yanfly.Param.DebugConsoleMsg) { var text = 'Sort States: Name'; console.log(text); } this._cachedStates = undefined; break; case 'battlerState': if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } }; var state = ext; var states = member.states(); var affected = states.contains($dataStates[state.id]); if (affected) { member.removeState(state.id); } else { member.addState(state.id); } member.clearResult(); if (Yanfly.Param.DebugConsoleMsg) { states = member.states(); if (states.contains($dataStates[state.id])) { text += ' - Applied State ' + state.name; } else { text += ' - Removed State ' + state.name; } console.log(text); }; break; case 'battlerClearBuffs': for (var i = 0; i < 8; ++i) { var stacks = this._battler._buffs[i] || 0; if (stacks > 0) this._battler.removeBuff(i); } if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Cleared All Buffs'; console.log(text); }; break; case 'battlerClearDebuffs': for (var i = 0; i < 8; ++i) { var stacks = this._battler._buffs[i] || 0; if (stacks < 0) this._battler.removeBuff(i); } if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Cleared All Debuffs'; console.log(text); }; break; case 'battlerClearBuffsDebuffs': for (var i = 0; i < 8; ++i) { this._battler.removeBuff(i); } if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Cleared All Buffs & Debuffs'; console.log(text); }; break; case 'battlerBuff': if (this._battler.isBuffOrDebuffAffected(ext)) { this._battler.removeBuff(ext); } else { this._battler.addBuff(ext, 5); } if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Toggle ' + TextManager.param(ext) + ' Buff!'; console.log(text); }; break; case 'battlerAddAllSkills': var skillLength = $dataSkills.length; for (var i = 1; i < skillLength; ++i) { var skill = $dataSkills[i]; if (skill) this._battler.learnSkill(i); } if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Add All Skills'; console.log(text); }; break; case 'battlerAddAllNamedSkills': var skillLength = $dataSkills.length; for (var i = 1; i < skillLength; ++i) { var skill = $dataSkills[i]; if (!skill) continue; if (skill.name === '') continue; if (skill.stypeId < 1) continue; this._battler.learnSkill(i); } if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Add All Skills'; console.log(text); }; break; case 'battlerRemoveAllSkills': this._battler._skills = []; if (Yanfly.Param.DebugConsoleMsg) { var member = this._battler; if (!member) return; if (member.isActor()) { var name = member.name(); var fmt = 'A%1: %2'; var text = fmt.format(member.actorId().padZero(4), name); } else { var name = member.name(); var fmt = 'E%1: %2'; var text = fmt.format(member.enemyId().padZero(4), name); } text += ' - Add All Skills'; console.log(text); }; break; case 'item-max': var item = ext; if (Imported.YEP_ItemCore && DataManager.isIndependent(item)) { var num = 1; } else { var num = $gameParty.maxItems(item); } $gameParty.gainItem(item, -num); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Set to zero in quantity'; console.log(text); } break; case 'item-10': var item = ext; $gameParty.gainItem(item, -10); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Reduced -10 in quantity'; console.log(text); } break; case 'item-1': var item = ext; $gameParty.gainItem(item, -1); this.clearCachedItemList(); var item = ext; if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Reduced -1 in quantity'; console.log(text); } break; case 'item+1': var item = ext; $gameParty.gainItem(item, 1); this.clearCachedItemList(); var item = ext; if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Added +1 in quantity'; console.log(text); } break; case 'item+10': var item = ext; $gameParty.gainItem(item, 10); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Added +10 in quantity'; console.log(text); } break; case 'item+max': var item = ext; if (Imported.YEP_ItemCore && DataManager.isIndependent(item)) { var num = 1; } else { var num = $gameParty.maxItems(item); } $gameParty.gainItem(item, num); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Set to maximum in quantity'; console.log(text); } break; case 'item-make': var item = ext; $gameTemp.enableVarianceStock(); $gameParty.gainItem(item, 1); $gameTemp.disableVarianceStock(); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Made independent ' + name + ' from template'; console.log(text); } break; case 'item-clear': var item = ext; $gameParty.clearAllMatchingBaseItems(item, false); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Cleared all un-equipped copies of ' + name; console.log(text); } break; case 'item-dupe': var itemId = ext.baseItemId; var group = DataManager.getDatabase(ext); var item = group[itemId]; $gameTemp.enableVarianceStock(); $gameParty.gainItem(item, 1); $gameTemp.disableVarianceStock(); this.clearCachedItemList(); if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); text += ' - Made independent ' + name + ' from template'; console.log(text); } break; case 'item-delete': var item = ext; if (Yanfly.Param.DebugConsoleMsg) { if (DataManager.isItem(item)) { var fmt = 'I%1: %2'; } else if (DataManager.isWeapon(item)) { var fmt = 'W%1: %2'; } else { var fmt = 'A%1: %2'; } var id = item.id; var name = item.name; var text = fmt.format(id.padZero(4), name); if ($gameParty.checkItemIsEquipped(item)) { text += ' - Is currently equipped and cannot be removed'; } else { text += ' - Removed ' + name; } console.log(text); } $gameParty.removeIndependentItem(item, false); DataManager.removeIndependentItem(item); this.clearCachedItemList(); break; default: return; }; SoundManager.playOk(); this.refresh(); }; //============================================================================= // Utilities //============================================================================= Yanfly.Util = Yanfly.Util || {}; if (!Yanfly.Util.toGroup) { Yanfly.Util.toGroup = function (inVal) { return inVal; } }; //============================================================================= // End of File //============================================================================= };