/*============================================================================ * ## Plugin Info *---------------------------------------------------------------------------- * # Plugin Name * DoubleX RMMV Death Records *---------------------------------------------------------------------------- * # Terms Of Use * 1. Commercial use's always allowed and crediting me's always optional. * 2. You shall keep this plugin's Plugin Info part's contents intact. * 3. You shalln't claim that this plugin's written by anyone other than * DoubleX or my aliases. I always reserve the right to deny you from * using any of my plugins anymore if you've violated this. * 4. CC BY 4.0, except those conflicting with any of the above, applies * to this plugin, unless you've my permissions to not to follow so. * 5. I always reserve the right to deny you from using this plugin * anymore if you've violated any of the above. *---------------------------------------------------------------------------- * # Prerequisites * Abilities: * 1. Little Javascript coding proficiency to fully utilize this plugin *---------------------------------------------------------------------------- * # Links * This plugin: * 1. [url]http://pastebin.com/5Vb2Uh17[/url] * Mentioned Patreon Supporters: * [url]https://www.patreon.com/posts/71738797[/url] *---------------------------------------------------------------------------- * # Author * DoubleX *---------------------------------------------------------------------------- * # Changelog * v1.00a(GMT 1400 19-2-2016): * 1. 1st version of this plugin finished *============================================================================*/ /*: * @plugindesc Lets users mark the actors/enemies' death times via their ids * @author DoubleX * * @help * Initializing a battler will raise its death record flag and set its death * record as 0 *============================================================================ * ## Plugin Call Info *---------------------------------------------------------------------------- * # Party manipulations * 1. markActorDeathRecords[actorId] = boolean * - Sets whether each death of actor with id actorId will be marked * 2. markEnemyDeathRecords[enemyId] = boolean * - Sets whether each death of enemy with id actorId will be marked * 3. actorDeathRecords[actorId] * - Returns the marked number of deaths of actor with id actorId * 4. enemyDeathRecords[enemyId] * - Returns the marked number of deaths of enemy with id actorId *============================================================================ */ "use strict"; var DoubleX_RMMV = DoubleX_RMMV || {}; DoubleX_RMMV["Death Records"] = "v1.00a"; /*============================================================================ * ## Plugin Implementations * You need not edit this part as it's about how this plugin works *---------------------------------------------------------------------------- * # Plugin Support Info: * 1. Prerequisites * - Little Javascript coding proficiency to fully comprehend this * plugin * 2. Function documentation * - The 1st part describes why this function's rewritten/extended for * rewritten/extended functions or what the function does for new * functions * - The 2nd part describes what the arguments of the function are * - The 3rd part informs which version rewritten, extended or created * this function * - The 4th part informs whether the function's rewritten or new * - The 5th part informs whether the function's a real or potential * hotspot * - The 6th part describes how this function works for new functions * only, and describes the parts added, removed or rewritten for * rewritten or extended functions only * Example: * /*---------------------------------------------------------------------- * * Why rewrite/extended/What this function does * *----------------------------------------------------------------------*/ /* // arguments: What these arguments are * functionName = function(arguments) { // Version X+; Hotspot * // Added/Removed/Rewritten to do something/How this function works * functionContents * // * } // functionName *----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- * # Edit class: Game_Actor *----------------------------------------------------------------------------*/ Game_Actor.prototype.initMembersDeathRecords = Game_Actor.prototype.initMembers; Game_Actor.prototype.initMembers = function() { this.initMembersDeathRecords(); this.initDeathRecords(); // Added }; // Game_Actor.prototype.initMembers Game_Actor.prototype.initDeathRecords = function() { // New $gameParty.markActorDeathRecords[this.actorId()] = true; $gameParty.actorDeathRecords[this.actorId()] = 0; }; // Game_Actor.prototype.initDeathRecords Game_Actor.prototype.die = function() { // New Game_BattlerBase.prototype.die.call(this); this.updateDeathRecords(); }; // Game_Actor.prototype.die Game_Actor.prototype.updateDeathRecords = function() { // New var actorId = this.actorId(); if (!$gameParty.markActorDeathRecords[actorId]) { return; } if (!$gameParty.actorDeathRecords[actorId]) { // It's just to play safe return $gameParty.actorDeathRecords[actorId] = 1; } $gameParty.actorDeathRecords[actorId] += 1; }; // Game_Actor.prototype.updateDeathRecords /*---------------------------------------------------------------------------- * # Edit class: Game_Enemy *----------------------------------------------------------------------------*/ Game_Enemy.prototype.initMembersDeathRecords = Game_Enemy.prototype.initMembers; Game_Enemy.prototype.initMembers = function() { this.initMembersDeathRecords(); this.initDeathRecords(); // Added }; // Game_Enemy.prototype.initMembers Game_Enemy.prototype.initDeathRecords = function() { // New $gameParty.markEnemyDeathRecords[this.enemyId()] = true; $gameParty.enemyDeathRecords[this.enemyId()] = 0; }; // Game_Enemy.prototype.initDeathRecords Game_Enemy.prototype.die = function() { // New Game_BattlerBase.prototype.die.call(this); this.updateDeathRecords(); }; // Game_Enemy.prototype.die Game_Enemy.prototype.updateDeathRecords = function() { // New var enemyId = this.enemyId(); if (!$gameParty.markEnemyDeathRecords[enemyId]) { return; } if (!$gameParty.enemyDeathRecords[enemyId]) { // It's just to play safe return $gameParty.enemyDeathRecords[enemyId] = 1; } $gameParty.enemyDeathRecords[enemyId] += 1; }; // Game_Enemy.prototype.updateDeathRecords /*---------------------------------------------------------------------------- * # Edit class: Game_Party *----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- * New public instance variables *----------------------------------------------------------------------------*/ Object.defineProperties(Game_Party.prototype, { markActorDeathRecords: { // The actor death number recording flag get: function() { return this._markActorDeathRecords; }, configurable: true }, actorDeathRecords: { // The records of the number of deaths of actors get: function() { return this._actorDeathRecords; }, configurable: true }, markEnemyDeathRecords: { // The enemy death number recording flag get: function() { return this._markEnemyDeathRecords; }, configurable: true }, enemyDeathRecords: { // The records of the number of deaths of enemies get: function() { return this._enemyDeathRecords; }, configurable: true } }); Game_Party.prototype.initAllItemsDeathRecords = Game_Party.prototype.initAllItems; Game_Party.prototype.initAllItems = function() { this.initAllItemsDeathRecords(); this.initDeathRecords(); // Added }; // Game_Party.prototype.initAllItems Game_Party.prototype.initDeathRecords = function() { // New this._markActorDeathRecords = {}; this._actorDeathRecords = {}; this._markEnemyDeathRecords = {}; this._enemyDeathRecords = {}; }; // Game_Party.prototype.initDeathRecords /*============================================================================*/