//============================================================================= // MOG_BattlerMotion.js //============================================================================= /*: * @target MZ * @plugindesc (v1.0) Adiciona efeitos animados nos battlers. * @author Moghunter * @url https://mogplugins.wordpress.com * * @param Default Damage Motion * @desc Definição da animação ao receber dano. * @default 0 * @type select * @option Shake * @value 0 * @option Zoom * @value 1 * @option Knockback (Left) * @value 2 * @option Knockback (Right) * @value 3 * * @param Damage Motion Actor * @desc Ativar o efeito tremer no aliado. * @default true * @type boolean * * @param Damage Motion Enemy * @desc Ativar o efeito tremer no aliado. * @default true * @type boolean * * @param Disable Blink Damage * @desc Desativar o efeito de piscar o battler no dano. * @default true * @type boolean * * @param Actor Action Motion * @desc Ativar o Motion de ação para no grupo. * @default false * @type boolean * * @param Enemy Action Motion * @desc Ativar o Motion de ação para nos inimigos. * @default true * @type boolean * * @param Shadow (Float Motion) * @desc Ativar a sombra no movimento de levitar. * @default true * @type boolean * * @param Shadow Opacity * @desc Definição da transparência da sombra. * @default 170 * @type boolean * * @param Shadow Zoom Effect * @desc Ativar o efeito de zoom na sombra. * @default true * @type boolean * * @param Battleback Ground Height * @desc O valor define o limite Y-axis da sombra baseado no battleback. * @default 200 * @type number * * @help * ============================================================================= * ============================================================================= * ♦♦♦ MOG - Battler Motion ♦♦♦ * Author - Moghunter * Version - 1.0 * Updated - 2021/04/17 * https://mogplugins.wordpress.com * ============================================================================= * Adiciona efeitos animados nos battlers. * * ============================================================================= * - IDLE MOTION - (Enemy Notetags) * ============================================================================= * Para ativar os esfeitos de animações em posição de espera use as Tags abaixo * na caixa de notas dos battlers. * * breath motion : X * * 0 - Vertical Zoom * 1 - Vertical & Horizontal Zoom * 2 - Vertical & Horizontal Zoom (Strong/Slime Mode) * 3 - Horizontal Zoom (Strong) * 4 - Diagonal Breath (Right) * 5 - Diagonal Breath (Left) * * float motion : X * * 0 - Vertical * 1 - Vertical Right * 2 - Vertical Left * 3 - Vertical Right & Left * * swing motion : X * * 0 - Swing Left & Right * 1 - Rotation 360 * * damage motion : X * * 0 - Shake * 1 - Slime Mode * 2 - Move Left * 3 - Move Right * * ============================================================================= * - X & Y Offset - (Enemy Notetags) * ============================================================================= * Use as tags abaixo para forçar a posição dos battlers. * * X Offset : X * Y Offset : Y * * ============================================================================= * - ACTION MOTION - (Skill Notetags) * ============================================================================= * Para ativar os esfeitos de animações de ação use as Tags abaixo na caixa * de notas das habilidades. * * Action Motion : X * * 0 - Zoom * 1 - Round Attack Right * 2 - Round Attack Left * 3 - Jump Attack * 4 - Jump Attack (Rotation) * 5 - Jump Slime * 6 - Rotation Attack * 7 - Move Down * 8 - Wave Attack * 9 - Shake * 10 - Swing Right * 11 - Swing Right (Double) * 12 - Move Right * 13 - Charged Attack Right * */ //============================================================================= // ** PLUGIN PARAMETERS //============================================================================= var Imported = Imported || {}; Imported.MOG_BattlerMotion = true; var Moghunter = Moghunter || {}; Moghunter.parameters = PluginManager.parameters("MOG_BattlerMotion"); Moghunter.b_motion_shake_effect_actor = String( Moghunter.parameters["Damage Motion Actor"] || "true" ); Moghunter.b_motion_shake_effect_enemy = String( Moghunter.parameters["Damage Motion Enemy"] || "true" ); Moghunter.b_motion_disable_blink_damage = String( Moghunter.parameters["Disable Blink Damage"] || "true" ); Moghunter.b_motion_shadow = String( Moghunter.parameters["Shadow (Float Motion)"] || "true" ); Moghunter.b_motion_shadowOpacity = Number( Moghunter.parameters["Shadow Opacity"] || 170 ); Moghunter.b_motion_shadowZoom = String( Moghunter.parameters["Shadow Zoom Effect"] || "true" ); Moghunter.b_motion_defaultDamage = Number( Moghunter.parameters["Default Damage Motion"] || 0 ); Moghunter.b_motion_actorAction = String( Moghunter.parameters["Actor Action Motion"] || "false" ); Moghunter.b_motion_enemyAction = String( Moghunter.parameters["Enemy Action Motion"] || "true" ); Moghunter.b_motion_groundHeight = Number( Moghunter.parameters["Battleback Ground Height"] || 200 ); //============================================================================= // ■■■ Game System ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Initialize //============================== var _mog_bmotion_sys_initialize = Game_System.prototype.initialize; Game_System.prototype.initialize = function () { _mog_bmotion_sys_initialize.call(this); this._bmotion = [false, false, false, false]; if (String(Moghunter.b_motion_shake_effect_actor) == "true") { this._bmotion[0] = true; } if (String(Moghunter.b_motion_shake_effect_enemy) == "true") { this._bmotion[1] = true; } if (String(Moghunter.b_motion_actorAction) == "true") { this._bmotion[2] = true; } if (String(Moghunter.b_motion_enemyAction) == "true") { this._bmotion[3] = true; } }; //============================================================================= // ■■■ Game Action ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Prepare //============================== var _mog_bmotion_gaction_prepare = Game_Action.prototype.prepare; Game_Action.prototype.prepare = function () { _mog_bmotion_gaction_prepare.call(this); if (this.canBmotionAction(this._item)) { this.subject().prepareBmotionAction(this._item, 0); this.subject().clearBwalk(); } }; //============================== // * can Bmotion Action //============================== Game_Action.prototype.canBmotionAction = function (item) { if (this.subject().isActor() && !$gameSystem._bmotion[2]) { return false; } if (this.subject().isEnemy() && !$gameSystem._bmotion[3]) { return false; } return true; }; //============================== // * need Set Bmotion Damage //============================== Game_Action.prototype.needSetBmotionDamage = function (target, oldhp) { if (target._bmotion.damage.mode == -1) { return false; } if (target.hp >= oldhp) { return false; } if (target.isActor() && !$gameSystem._bmotion[0]) { return false; } if (target.isEnemy() && !$gameSystem._bmotion[1]) { return false; } return true; }; //============================== // ♦ ALIAS ♦ Apply //============================== var _mog_bMotion_apply = Game_Action.prototype.apply; Game_Action.prototype.apply = function (target) { var oldHP = target.hp; _mog_bMotion_apply.call(this, target); if ($dataSystem.optSideView) { target.clearBwalk(); } if (this.needSetBmotionDamage(target, oldHP)) { target.setBmotionDamageApply(target); } }; //============================================================================= // ■■■ Game Battler ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ iniMembers //============================== var _mog_bmotion_gbattler_initMembers = Game_Battler.prototype.initMembers; Game_Battler.prototype.initMembers = function () { _mog_bmotion_gbattler_initMembers.call(this); this.setMotionData(); }; //============================== // * Notetags //============================== Game_Battler.prototype.notetags = function () { if (this.isEnemy()) { return this.enemy().note.split(/[\r\n]+/); } if (this.isActor()) { return this.actor().note.split(/[\r\n]+/); } }; //============================== // ** Set Motion Data //============================== Game_Battler.prototype.setMotionData = function () { this._bmotion = {}; this._bmotion.action = {}; this.clearBaction(); this._bmotion.idle = {}; this._bmotion.idle.mode = -1; this._bmotion.idle.wait = false; this._bmotion.idle.walk = {}; this._bmotion.idle.walk.enable = false; this._bmotion.idle.walk.start = true; this._bmotion.idle.walk.rangeReal = 40; this._bmotion.x_Offset = 0; this._bmotion.y_Offset = 0; this._bmotion.breathEffect = {}; this._bmotion.breathEffect.phase = 0; this._bmotion.breathEffect.duration; this._bmotion.breathEffect.rangeMax = 0.001; this._bmotion.breathEffect.range = 0; this._bmotion.breathEffect.speed = 0; this._bmotion.breathEffect.scale = 0; this._bmotion.idle.float = {}; this._bmotion.idle.float.mode = 0; this._bmotion.idle.float.enable = false; this._bmotion.idle.float.shadow = Moghunter.b_motion_shadow == "true" ? true : false; this._bmotion.idle.float.range = 1.0; this._bmotion.idle.float.speed = 0.02; this._bmotion.idle.float.animation = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; this._bmotion.idle.float.x = 0; this._bmotion.idle.float.y = 0; this._bmotion.idle.float.groundH = Moghunter.b_motion_groundHeight; if (Imported.MOG_BattleCameraFrontal) { this._bmotion.idle.float.groundH -= (Moghunter.b_motion_groundHeight * 50) / 100; } this._bmotion.idle.swing = {}; this._bmotion.idle.swing.mode = 0; this._bmotion.idle.swing.enable = false; this._bmotion.idle.swing.range = 0.3; this._bmotion.idle.swing.rotation = 0; this._bmotion.idle.swing.speed = 0.005; this._bmotion.idle.swing.animation = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; this._bmotion.idle.swing.y = 0; this.clearBidle(); this._bmotion.damage = {}; this._bmotion.damage.mode = Math.min( Math.max(Moghunter.b_motion_defaultDamage, 0), 3 ); this._bmotion.damage.wait = false; this.clearBdamage(); }; //============================== // ** clear Baction //============================== Game_Battler.prototype.clearBaction = function () { this._bmotion.action.mode = -1; this._bmotion.action.initial = true; this._bmotion.action.wait = false; this._bmotion.action.x = 0; this._bmotion.action.y = 0; this._bmotion.action.y2 = 0; this._bmotion.action.orgX = 0; this._bmotion.action.orgY = 0; this._bmotion.action.scaleX = 0; this._bmotion.action.scaleY = 0; this._bmotion.action.rotation = 0; this._bmotion.action.animation = [0, 0, 0, 0, 0, 0]; if (this._batPoses && this._batPoses[2] > 0) { this._batPoses[2] = 1; } }; //============================== // ** clear idle //============================== Game_Battler.prototype.clearBidle = function () { this._bmotion.idle.wait = false; this._bmotion.idle.x = 0; this._bmotion.idle.y = 0; this._bmotion.idle.orgX = 0; this._bmotion.idle.orgY = 0; this._bmotion.idle.walk.x = 0; this._bmotion.idle.walk.y = 0; this._bmotion.idle.walk.wait = 0; this._bmotion.idle.walk.scaleX = 0; this._bmotion.idle.walk.phase = 0; this._bmotion.idle.walk.duration = 0; this._bmotion.idle.walk.frequence = 20; this._bmotion.idle.walk.sX = 0; this._bmotion.idle.walk.sY = 0; this._bmotion.idle.walk.speed = 0.007; this._bmotion.idle.walk.skip = 0; this._bmotion.idle.walk.skipN = false; this.clearBidleWalk(); this._bmotion.idle.scaleX = 0; this._bmotion.idle.scaleY = 0; this._bmotion.idle.rotation = 0; this._bmotion.idle.animation = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; }; //============================== // ** clear Bidle Walk //============================== Game_Battler.prototype.clearBidleWalk = function () { this._bmotion.idle.walk.rangeRealM = (this._bmotion.idle.walk.rangeReal * 70) / 100; this._bmotion.idle.walk.rangeX1 = -this._bmotion.idle.walk.rangeReal; this._bmotion.idle.walk.rangeX2 = this._bmotion.idle.walk.rangeReal; this._bmotion.idle.walk.rangeX3 = Graphics.boxWidth; this._bmotion.idle.walk.rangeY1 = -this._bmotion.idle.walk.rangeReal; this._bmotion.idle.walk.rangeY2 = this._bmotion.idle.walk.rangeReal; this._bmotion.idle.walk.rangeY3 = Graphics.boxHeight - 160; }; //============================== // ** clear B walk //============================== Game_Battler.prototype.clearBwalk = function () { this._bmotion.idle.walk.sX = 0; this._bmotion.idle.walk.sY = 0; this._bmotion.idle.walk.wait = 5; this._bmotion.idle.walk.duration = 30; this._bmotion.idle.walk.scaleX = 0; this._bmotion.idle.walk.scaleY = 0; this._bmotion.idle.walk.start = true; }; //============================== // ** clear idle //============================== Game_Battler.prototype.clearBdamage = function () { this._bmotion.damage.wait = false; this._bmotion.damage.duration = 0; this._bmotion.damage.x = 0; this._bmotion.damage.y = 0; this._bmotion.damage.orgX = 0; this._bmotion.damage.orgY = 0; this._bmotion.damage.scaleX = 0; this._bmotion.damage.scaleY = 0; this._bmotion.damage.rotation = 0; this._bmotion.damage.animation = [0, 0, 0, 0, 0, 0]; }; //============================== // ** need Refresh Bmotion Walk //============================== Game_Battler.prototype.needRefreshBmotionWalk = function (x, y) { if (this._bmotion.idle.walk.skip > 0) { return false; } if (this._bmotion.idle.walk.x < this._bmotion.idle.walk.rangeX1) { return true; } if (this._bmotion.idle.walk.x > this._bmotion.idle.walk.rangeX2) { return true; } if (this._bmotion.idle.walk.y < this._bmotion.idle.walk.rangeY1) { return true; } if (this._bmotion.idle.walk.y > this._bmotion.idle.walk.rangeY2) { return true; } if (x < 0) { return true; } if (x > this._bmotion.idle.walk.rangeX3) { return true; } if (y < 0) { return true; } if (y > this._bmotion.idle.walk.rangeY3) { return true; } if (this._bmotion.idle.walk.duration <= 0) { return true; } return false; }; //============================== // ** setBmotionWalkD //============================== Game_Battler.prototype.setBmotionWalkD = function (value, x, y) { if (x > this._bmotion.idle.walk.rangeX3) { return 1; } if (x < 0) { return 0; } if (y > this._bmotion.idle.walk.rangeY3) { return 1; } if (y < 0) { return 0; } if (value > this._bmotion.idle.walk.rangeRealM) { return 1; } if (value < -this._bmotion.idle.walk.rangeRealM) { return 0; } return Math.randomInt(2); }; //============================== // ** refreshBmotionWalk //============================== Game_Battler.prototype.refreshBmotionWalk = function (x, y) { this._bmotion.idle.walk.duration = 60 + Math.randomInt(60); var wait = Math.randomInt(100); if ( !this._bmotion.idle.walk.start && wait < this._bmotion.idle.walk.frequence ) { this._bmotion.idle.walk.sX = 0; this._bmotion.idle.walk.sY = 0; this._bmotion.idle.walk.wait = this._bmotion.idle.walk.duration; return; } this._bmotion.idle.walk.start = false; var preD = this._bmotion.idle.walk.sX; var sx = Math.randomInt(100) * this._bmotion.idle.walk.speed; var d = this.setBmotionWalkD(this._bmotion.idle.walk.x, x, y); this._bmotion.idle.walk.sX = d == 0 ? sx : -sx; var sy = Math.randomInt(100) * this._bmotion.idle.walk.speed; var d = this.setBmotionWalkD(this._bmotion.idle.walk.y, x, y); this._bmotion.idle.walk.sY = d == 0 ? sy : -sy; this._bmotion.idle.walk.skip = 20; }; //============================== // * update Bmotion Walk //============================== Sprite_Battler.prototype.updateBmotionWalk = function (x, y) { if (this._battler._bmotion.idle.walk.wait > 0) { this._battler._bmotion.idle.walk.wait--; return; } if (this._battler._bmotion.idle.walk.skip > 0) { this._battler._bmotion.idle.walk.skip--; } this._battler._bmotion.idle.walk.duration--; this._battler._bmotion.idle.walk.x += this._battler._bmotion.idle.walk.sX; this._battler._bmotion.idle.walk.y += this._battler._bmotion.idle.walk.sY; if (this._battler.needRefreshBmotionWalk(x, y)) { this._battler.refreshBmotionWalk(x, y); } }; //============================== // ** get Bmotion Idle //============================== Game_Battler.prototype.getBmotionIdle = function () { this.notetags().forEach(function (note) { var note_data = note.split(" : "); if (note_data[0].toLowerCase() == "breath motion") { var par = note_data[1].split(":"); this._bmotion.idle.mode = Math.min(Math.max(Number(par[0]), 0), 5); } else if (note_data[0].toLowerCase() == "float motion") { var par = note_data[1].split(":"); var floatMode = Math.min(Math.max(Number(par[0]), 0), 3); this._bmotion.idle.float.mode = floatMode; this._bmotion.idle.float.enable = true; } else if (note_data[0].toLowerCase() == "float motion height") { var par = note_data[1].split(":"); var floatHeight = Math.min(Math.max(Number(par[0]), 0), 20); this._bmotion.idle.float.range = floatHeight * 0.1; this._bmotion.idle.float.enable = true; } else if (note_data[0].toLowerCase() == "float motion speed") { var par = note_data[1].split(":"); var floatSpeed = Math.min(Math.max(Number(par[0]), 1), 10); this._bmotion.idle.float.speed = floatSpeed * 0.01; this._bmotion.idle.float.enable = true; } else if (note_data[0].toLowerCase() == "swing motion") { var par = note_data[1].split(":"); var mode = Math.min(Math.max(Number(par[0]), 0), 1); this._bmotion.idle.swing.mode = mode; this._bmotion.idle.swing.enable = true; } else if (note_data[0].toLowerCase() == "swing motion speed") { var par = note_data[1].split(":"); this._bmotion.idle.swing.speed = Number(par[0]) * 0.001; this._bmotion.idle.swing.enable = true; } else if (note_data[0].toLowerCase() == "swing motion rate") { var par = note_data[1].split(":"); var rate = Math.min(Math.max(Number(par[0]), 0), 360); this._bmotion.idle.swing.range = rate * 0.01; this._bmotion.idle.swing.enable = true; } else if (note_data[0].toLowerCase() == "walk motion speed") { var par = note_data[1].split(":"); var walkSpeed = Math.min(Math.max(Number(par[0]), 1), 20); this._bmotion.idle.walk.speed = walkSpeed * 0.001; this._bmotion.idle.walk.enable = true; } else if (note_data[0].toLowerCase() == "walk motion frequence") { var par = note_data[1].split(":"); var walkfreq = Math.min(Math.max(Number(par[0]), 0), 100); var walkfreqReal = 100 - walkfreq; this._bmotion.idle.walk.frequence = walkfreqReal; this._bmotion.idle.walk.enable = true; } else if (note_data[0].toLowerCase() == "walk motion range") { var par = note_data[1].split(":"); var walkRange = Math.min(Math.max(Number(par[0]), 10), Graphics.boxWidth); this._bmotion.idle.walk.rangeReal = walkRange; this._bmotion.idle.walk.enable = true; this.clearBidleWalk(); } else if (note_data[0].toLowerCase() == "damage motion") { var par = note_data[1].split(":"); var mode = Math.min(Math.max(Number(par[0]), 0), 3); this._bmotion.damage.mode = mode; } else if (note_data[0].toLowerCase() == "x offset") { var par = note_data[1].split(":"); this._bmotion.x_Offset = Number(par[0]); } else if (note_data[0].toLowerCase() == "y offset") { var par = note_data[1].split(":"); this._bmotion.y_Offset = Number(par[0]); } }, this); }; //============================== // ** prepare Bmotion Action //============================== Game_Battler.prototype.prepareBmotionAction = function (item, mode) { if (!item) { return; } if (mode == 1) { var item_notes = item.note.split(/[\r\n]+/); } else { if (!item.object()) { return; } var item_notes = item.object().note.split(/[\r\n]+/); } item_notes.forEach(function (note) { var note_data = note.split(" : "); if (note_data[0].toLowerCase() == "action motion") { var par = note_data[1].split(":"); this.clearBaction(); this.clearBdamage(); this._bmotion.action.mode = Math.min(Math.max(Number(par[0]), 0), 13); } }, this); }; //============================== // ** b motion X //============================== Game_Battler.prototype.bmotionX = function () { return ( this._bmotion.x_Offset + this._bmotion.action.x + this._bmotion.idle.x + Math.abs(this._bmotion.damage.x) + this._bmotion.idle.walk.x + this._bmotion.idle.float.x ); }; //============================== // ** b motion Y //============================== Game_Battler.prototype.bmotionY = function () { return ( this._bmotion.y_Offset + this.bmotionFlyY() + this._bmotion.action.y + this._bmotion.idle.y + this._bmotion.damage.y + this._bmotion.idle.walk.y + this._bmotion.idle.swing.y ); }; //============================== // ** bmotion Fly Y //============================== Game_Battler.prototype.bmotionFlyY = function () { return this._bmotion.idle.float.y + this._bmotion.action.y2; }; //============================== // ** b motion scale X //============================== Game_Battler.prototype.bmotionScaleX = function () { var n = this._bmotion.action.scaleX + this._bmotion.idle.scaleX + this._bmotion.damage.scaleX; if (Imported.MOG_BattleCameraFrontal) { n += this.camScaleX(); } return n; }; //============================== // ** b motion scale Y //============================== Game_Battler.prototype.bmotionScaleY = function () { var n = this._bmotion.action.scaleY + this._bmotion.idle.scaleY + this._bmotion.damage.scaleY; if (Imported.MOG_BattleCameraFrontal) { n += this.camScaleY(); } return n; }; //============================== // ** b motion rotation //============================== Game_Battler.prototype.bmotionRotation = function () { return ( this._bmotion.action.rotation + this._bmotion.idle.rotation + this._bmotion.idle.swing.rotation + this._bmotion.damage.rotation ); }; //============================== // * Force Action //============================== var _mog_bmotion_gbattler_forceAction = Game_Battler.prototype.forceAction; Game_Battler.prototype.forceAction = function (skillId, targetIndex) { _mog_bmotion_gbattler_forceAction.call(this, skillId, targetIndex); var itemD = $dataSkills[skillId]; this.prepareBmotionAction(itemD, 1); }; //============================== // ** set Bmotion Damage Apply //============================== Game_Battler.prototype.setBmotionDamageApply = function (target) { target.clearBdamage(); if (target._bmotion.damage.mode == 0) { target._bmotion.damage.duration = 45; } else { target._bmotion.damage.duration = 20; } }; //============================================================================= // ■■■ Sprite Enemy ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ init Visibility //============================== var _mog_bmotion_sprtEnemy_initVisibility = Sprite_Enemy.prototype.initVisibility; Sprite_Enemy.prototype.initVisibility = function () { _mog_bmotion_sprtEnemy_initVisibility.call(this); this.refreshBmotionData(); }; //============================================================================= // ■■■ Sprite Enemy ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ createStateIconSprite //============================== const _mog_battlerMotion_spriteEnemy_createStateIconSprite = Sprite_Enemy.prototype.createStateIconSprite; Sprite_Enemy.prototype.createStateIconSprite = function () { _mog_battlerMotion_spriteEnemy_createStateIconSprite.call(this); this.removeChild(this._stateIconSprite); }; //============================================================================= // ■■■ Spriteset_Battle ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ create Enemies //============================== const _mog_battlerMotion_spriteset_battle = Spriteset_Battle.prototype.createEnemies; Spriteset_Battle.prototype.createEnemies = function () { _mog_battlerMotion_spriteset_battle.call(this); this.createStateIconsEnemies(); }; //============================== // * createStateIconsEnemies //============================== Spriteset_Battle.prototype.createStateIconsEnemies = function () { for (const enemy of this._enemySprites) { var enemySprite = new EnemyIconsSprites(enemy); this._battleField.addChild(enemySprite); } }; //============================================================================= // ■■■ EnemyIconsSprites ■■■ //============================================================================= function EnemyIconsSprites() { this.initialize.apply(this, arguments); } EnemyIconsSprites.prototype = Object.create(Sprite.prototype); EnemyIconsSprites.prototype.constructor = EnemyIconsSprites; //============================== // * Initialize //============================== EnemyIconsSprites.prototype.initialize = function (enemy_sprite) { Sprite.prototype.initialize.call(this); this._enemy_sprite = enemy_sprite; this.addChild(this._enemy_sprite._stateIconSprite); }; //============================== // * Is Visible //============================== EnemyIconsSprites.prototype.isVisible = function () { if (!this._enemy_sprite.visible) { return false; } if (!this._enemy_sprite._battler) { return false; } if (this._enemy_sprite._battler.allIcons().length == 0) { return false; } if (this._enemy_sprite._battler.isDead()) { return false; } return true; }; //============================== // * Update //============================== EnemyIconsSprites.prototype.update = function (update) { Sprite.prototype.update.call(this); this.x = this._enemy_sprite.x; this.y = this._enemy_sprite.y; this.opacity = this._enemy_sprite.opacity; this.visible = this.isVisible(); }; //============================================================================= // ■■■ Sprite Battler ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ init Members //============================== var _mog_bmotion_sprBat_initMembers = Sprite_Battler.prototype.initMembers; Sprite_Battler.prototype.initMembers = function () { _mog_bmotion_sprBat_initMembers.call(this); this.initBmotion(); }; //============================== // * init Bmotion //============================== Sprite_Battler.prototype.initBmotion = function () { this._bmotion = {}; this._bmotion.initial = true; this._bmotion.shadow = false; }; //============================== // * set Init Bmotion Data //============================== Sprite_Battler.prototype.setInitBmotionData = function () { this._bmotion.initial = false; this._bmotion.shadow = this._battler._bmotion.idle.float.shadow; this._battler.clearBaction(); this._battler.clearBidle(); this._battler.clearBdamage(); this._battler._bmotion.idle.orgX = this.x; this._battler._bmotion.idle.orgY = this.y; this.setBmotionIdle(); }; //============================== // * set Init Bmotion Data //============================== Sprite_Battler.prototype.setBmotionIdle = function () { this._battler.getBmotionIdle(); if (this._battler._bmotion.idle.float.enable) { this.setupBmotionFloat(); } else if (this._battler._bmotion.idle.swing.enable) { this.setupBmotionSwing(); } if (this._battler._bmotion.idle.mode >= 0) { this.setupBmotionBreath(); } if (this._battler._bmotion.idle.walk.enable) { this._battler.refreshBmotionWalk(); } this._battler._bmotion.idle.animation[10] = Math.randomInt(25); }; //============================== // * setup Bmotion Breath //============================== Sprite_Battler.prototype.setupBmotionBreath = function () { switch (this._battler._bmotion.idle.mode) { case 0: this.setupBMotionIdle1(); // Normal Breath Effect break; case 1: this.setupBMotionIdle1(); // Normal Breath Effect 2 break; case 2: this.setupBMotionIdle3(); // Normal Breath Effect 3 break; case 3: this.setupBMotionIdle1(); // Normal Breath Effect 4 break; case 4: this.setupBMotionIdle4(); // Normal Breath Effect 5 break; case 5: this.setupBMotionIdle4(); // Normal Breath Effect 6 break; default: break; } }; //============================== // * update Idle Bmotion //============================== Sprite_Battler.prototype.updateIdleBmotion = function () { if (this._battler._bmotion.idle.animation[10] > 0) { this._battler._bmotion.idle.animation[10]--; return; } if (this.canUpdateWalk()) { this.updateBmotionWalk(this.x, this.y); } if (this.canUpdateFloat()) { this.updateBMotionFloat(); } else if (this._battler._bmotion.idle.swing.enable) { this.updateBmotionSwing(); } this.updateBmotionBreathEffect(); }; //============================== // * update Bmotion Breath Effect //============================== Sprite_Battler.prototype.updateBmotionBreathEffect = function () { switch (this._battler._bmotion.idle.mode) { case 0: this.updateBMotionIdle1(); break; case 1: this.updateBMotionIdle2(); break; case 2: this.updateBMotionIdle3(); break; case 3: this.updateBMotionIdle4(); break; case 4: this.updateBMotionIdle5(); break; case 5: this.updateBMotionIdle6(); break; default: break; } }; //============================== // * setupBmotionSwing //============================== Sprite_Battler.prototype.setupBmotionSwing = function () { if (this._battler._bmotion.idle.swing.mode == 0) { this.setupBmotionSwingWave(); } else if (this._battler._bmotion.idle.swing.mode == 1) { this.setupBmotionSwing360(); } }; //============================== // * setupBmotionSwingWave //============================== Sprite_Battler.prototype.setupBmotionSwingWave = function () { this._battler._bmotion.idle.swing.animation[0] = 0; var rds = Math.randomInt(100); var rds2 = rds * 0.0000001; this._battler._bmotion.idle.swing.animation[2] = 0.00048 + 0.01 / this.bitmap.height + rds2; this._battler._bmotion.idle.swing.animation[3] = 0.0096 + 0.25 / this.bitmap.height; var int = this._battler._bmotion.idle.swing.animation[3]; var int2 = (Math.randomInt(int) * 0.0001).toFixed(4); this._battler._bmotion.idle.swing.animation[1] = int2; }; //============================== // * updateBmotionSwing //============================== Sprite_Battler.prototype.updateBmotionSwing = function () { if (this._battler._bmotion.idle.swing.mode == 0) { this.updateBmotionSwingWave(); } else if (this._battler._bmotion.idle.swing.mode == 1) { this.updateBmotionSwing360(); } }; //============================== // * update Bmotion Swing Wave //============================== Sprite_Battler.prototype.updateBmotionSwingWave = function () { var maxAngle = this._battler._bmotion.idle.swing.range; if (this._battler._bmotion.idle.swing.animation[0] == 0) { var speed = this._battler._bmotion.idle.swing.speed + Math.abs(this._battler._bmotion.idle.swing.rotation - maxAngle) * 0.015; this._battler._bmotion.idle.swing.rotation += speed; if (this._battler._bmotion.idle.swing.rotation >= maxAngle) { this._battler._bmotion.idle.swing.rotation = maxAngle; this._battler._bmotion.idle.swing.animation[0] = 1; } } else { var speed = this._battler._bmotion.idle.swing.speed + Math.abs(-this._battler._bmotion.idle.swing.rotation - maxAngle) * 0.01; this._battler._bmotion.idle.swing.rotation -= speed; if (this._battler._bmotion.idle.swing.rotation <= -maxAngle) { this._battler._bmotion.idle.swing.rotation = -maxAngle; this._battler._bmotion.idle.swing.animation[0] = 0; } } }; //============================== // * setupBmotionSwing360 //============================== Sprite_Battler.prototype.setupBmotionSwing360 = function () { this._battler._bmotion.idle.swing.speed *= 3; this._battler._bmotion.idle.swing.y = -(this.bitmap.height / 2); this._battler._bmotion.idle.swing.rotation = Math.randomInt(360); this.anchor.y = 0.5; }; //============================== // * update BmotionSwing360 //============================== Sprite_Battler.prototype.updateBmotionSwing360 = function () { this._battler._bmotion.idle.swing.rotation += this._battler._bmotion.idle.swing.speed; }; //============================== // * need Get Data Motion //============================== Sprite_Battler.prototype.needGetDataBmotion = function () { if (!this._bmotion.initial) { return false; } if (!this._battler) { return false; } if (!this.bitmap) { return false; } if (!this.bitmap.isReady()) { return false; } return true; }; //============================== // * can Update Bmotion //============================== Sprite_Battler.prototype.canUpdateBmotion = function () { if (!this._battler) { return false; } if (!this.visible) { return false; } return true; }; //============================== // * can Update Idle BMotion //============================== Sprite_Battler.prototype.canUpdateIdleBMotion = function () { if (this.canUpdateActionBMotion()) { return false; } if (this._battler.isDead()) { return false; } return true; }; //============================== // * can Update Action BMotion //============================== Sprite_Battler.prototype.canUpdateActionBMotion = function () { if (this._battler._bmotion.action.mode < 0) { return false; } return true; }; //============================== // * can Update Walk //============================== Sprite_Battler.prototype.canUpdateWalk = function () { if (!this._battler._bmotion.idle.walk.enable) { return false; } if (BattleManager.isBusy()) { return false; } return true; }; //============================== // * can Update Float //============================== Sprite_Battler.prototype.canUpdateFloat = function () { if (!this._battler._bmotion.idle.float.enable) { return false; } return true; }; //============================== // * setup BMotion Idle 1 //============================== Sprite_Battler.prototype.setupBMotionIdle1 = function () { this._battler._bmotion.idle.animation[0] = 0; this._battler._bmotion.breathEffect = {}; this._battler._bmotion.breathEffect.phase = 0; this._battler._bmotion.breathEffect.duration = 0; this._battler._bmotion.breathEffect.rangeMax = 0.0017; var sp = Number(Math.randomInt(170) * 0.00001).toFixed(5); this._battler._bmotion.breathEffect.range = Number(sp); var sp = Number(Math.randomInt(50) * 0.0000001).toFixed(7); this._battler._bmotion.breathEffect.speed = 0.00006 + Number(sp); this._battler._bmotion.breathEffect.scale = 0.0; }; //============================== // * update BMotion Idle 1 //============================== Sprite_Battler.prototype.updateBMotionIdle1 = function () { if (this._battler._bmotion.breathEffect.phase == 0) { this._battler._bmotion.breathEffect.range -= this._battler._bmotion.breathEffect.speed; if ( this._battler._bmotion.breathEffect.range <= -this._battler._bmotion.breathEffect.rangeMax ) { this._battler._bmotion.breathEffect.range = -this._battler._bmotion.breathEffect.rangeMax; this._battler._bmotion.breathEffect.phase = 1; } } else { this._battler._bmotion.breathEffect.range += this._battler._bmotion.breathEffect.speed; if ( this._battler._bmotion.breathEffect.range >= this._battler._bmotion.breathEffect.rangeMax ) { this._battler._bmotion.breathEffect.range = this._battler._bmotion.breathEffect.rangeMax; this._battler._bmotion.breathEffect.phase = 0; } } this._battler._bmotion.breathEffect.scale -= this._battler._bmotion.breathEffect.range; this._battler._bmotion.idle.scaleY = this._battler._bmotion.breathEffect.scale; }; //============================== // * update BMotionIdle 2 //============================== Sprite_Battler.prototype.updateBMotionIdle2 = function () { if (this._battler._bmotion.breathEffect.phase == 0) { this._battler._bmotion.breathEffect.range -= this._battler._bmotion.breathEffect.speed; if ( this._battler._bmotion.breathEffect.range <= -this._battler._bmotion.breathEffect.rangeMax ) { this._battler._bmotion.breathEffect.range = -this._battler._bmotion.breathEffect.rangeMax; this._battler._bmotion.breathEffect.phase = 1; } } else { this._battler._bmotion.breathEffect.range += this._battler._bmotion.breathEffect.speed; if ( this._battler._bmotion.breathEffect.range >= this._battler._bmotion.breathEffect.rangeMax ) { this._battler._bmotion.breathEffect.range = this._battler._bmotion.breathEffect.rangeMax; this._battler._bmotion.breathEffect.phase = 0; } } this._battler._bmotion.breathEffect.scale -= this._battler._bmotion.breathEffect.range; this._battler._bmotion.idle.scaleX = -this._battler._bmotion.breathEffect.scale; this._battler._bmotion.idle.scaleY = this._battler._bmotion.breathEffect.scale; }; //============================== // * setup BMotion Idle 3 //============================== Sprite_Battler.prototype.setupBMotionIdle3 = function () { this._battler._bmotion.idle.animation[0] = 0; var rds = Math.randomInt(100); var rds2 = rds * 0.0000001; this._battler._bmotion.idle.animation[2] = 0.00001 + 0.01 / this.bitmap.height + rds2; this._battler._bmotion.idle.animation[3] = 0.0002 + 0.25 / this.bitmap.height; var int = this._battler._bmotion.idle.animation[3]; var int2 = (Math.randomInt(int) * 0.0001).toFixed(4); this._battler._bmotion.idle.animation[1] = int2; }; //============================== // * update BMotionIdle 3 //============================== Sprite_Battler.prototype.updateBMotionIdle3 = function () { if (this._battler._bmotion.idle.animation[0] == 0) { this._battler._bmotion.idle.animation[1] -= this._battler._bmotion.idle.animation[2]; var speed = this._battler._bmotion.idle.animation[1] * 5; this._battler._bmotion.idle.scaleY += speed; this._battler._bmotion.idle.scaleX -= speed * 1.5; if ( this._battler._bmotion.idle.animation[1] <= -this._battler._bmotion.idle.animation[3] ) { this._battler._bmotion.idle.animation[1] = -this._battler._bmotion.idle.animation[3]; this._battler._bmotion.idle.animation[0] = 1; } } else { this._battler._bmotion.idle.animation[1] += this._battler._bmotion.idle.animation[2]; var speed = this._battler._bmotion.idle.animation[1] * 5; this._battler._bmotion.idle.scaleY += speed; this._battler._bmotion.idle.scaleX -= speed * 1.5; if ( this._battler._bmotion.idle.animation[1] >= this._battler._bmotion.idle.animation[3] ) { this._battler._bmotion.idle.animation[1] = this._battler._bmotion.idle.animation[3]; this._battler._bmotion.idle.animation[0] = 0; } } }; //============================== // * update BMotionIdle 4 //============================== Sprite_Battler.prototype.updateBMotionIdle4 = function () { if (this._battler._bmotion.breathEffect.phase == 0) { this._battler._bmotion.breathEffect.range -= this._battler._bmotion.breathEffect.speed; if ( this._battler._bmotion.breathEffect.range <= -this._battler._bmotion.breathEffect.rangeMax ) { this._battler._bmotion.breathEffect.range = -this._battler._bmotion.breathEffect.rangeMax; this._battler._bmotion.breathEffect.phase = 1; } } else { this._battler._bmotion.breathEffect.range += this._battler._bmotion.breathEffect.speed; if ( this._battler._bmotion.breathEffect.range >= this._battler._bmotion.breathEffect.rangeMax ) { this._battler._bmotion.breathEffect.range = this._battler._bmotion.breathEffect.rangeMax; this._battler._bmotion.breathEffect.phase = 0; } } this._battler._bmotion.breathEffect.scale -= this._battler._bmotion.breathEffect.range; this._battler._bmotion.idle.scaleX = -this._battler._bmotion.breathEffect.scale; }; //============================== // * setup BMotion Idle 4 //============================== Sprite_Battler.prototype.setupBMotionIdle4 = function () { this._battler._bmotion.idle.animation[1] = -Math.randomInt(60); }; //============================== // * updateBmotionDamageKnock //============================== Sprite_Battler.prototype.updateBMotionIdle5 = function () { var speed = 2; var speedScale = 0.003; var rot = 0.003; var range = -80; if (this._battler._bmotion.idle.animation[0] == 0) { this._battler._bmotion.idle.animation[1] -= speed; this._battler._bmotion.idle.rotation += rot; this._battler._bmotion.idle.scaleX -= speedScale; this._battler._bmotion.idle.scaleY += speedScale; if (this._battler._bmotion.idle.animation[1] <= range) { this._battler._bmotion.idle.animation[1] = range; this._battler._bmotion.idle.animation[0] = 1; } } else if (this._battler._bmotion.idle.animation[0] == 1) { this._battler._bmotion.idle.animation[1] += speed; this._battler._bmotion.idle.rotation -= rot; this._battler._bmotion.idle.scaleX += speedScale; this._battler._bmotion.idle.scaleY -= speedScale; if (this._battler._bmotion.idle.animation[1] >= 0) { this._battler._bmotion.idle.animation[0] = 0; } } }; //============================== // * updateBmotionDamageKnock //============================== Sprite_Battler.prototype.updateBMotionIdle6 = function () { var speed = 2; var speedScale = 0.003; var rot = 0.003; var range = -80; if (this._battler._bmotion.idle.animation[0] == 0) { this._battler._bmotion.idle.animation[1] -= speed; this._battler._bmotion.idle.rotation -= rot; this._battler._bmotion.idle.scaleX -= speedScale; this._battler._bmotion.idle.scaleY += speedScale; if (this._battler._bmotion.idle.animation[1] <= range) { this._battler._bmotion.idle.animation[1] = range; this._battler._bmotion.idle.animation[0] = 1; } } else if (this._battler._bmotion.idle.animation[0] == 1) { this._battler._bmotion.idle.animation[1] += speed; this._battler._bmotion.idle.rotation += rot; this._battler._bmotion.idle.scaleX += speedScale; this._battler._bmotion.idle.scaleY -= speedScale; if (this._battler._bmotion.idle.animation[1] >= 0) { this._battler._bmotion.idle.animation[0] = 0; } } }; //============================== // * setup BMotion Float //============================== Sprite_Battler.prototype.setupBmotionFloat = function () { this._battler._bmotion.idle.animation[0] = 0; var rds = Math.randomInt(100); var rds2 = rds * 0.0001; this._battler._bmotion.idle.float.animation[2] = this._battler._bmotion.idle.float.speed + rds2; this._battler._bmotion.idle.float.animation[3] = this._battler._bmotion.idle.float.range; var int = this._battler._bmotion.idle.float.animation[3] * 10000; var int2 = Math.randomInt(int) * 0.01; this._battler._bmotion.idle.animation[1] = int2; this._battler._bmotion.idle.float.animation[9] = Math.randomInt(10); this._battler._bmotion.idle.float.animation[5] = 0; this._battler._bmotion.idle.float.animation[6] = Math.randomInt(2); this._battler._bmotion.idle.float.animation[7] = Math.random(2); this._d = [0, 0]; }; //============================== // * set Bmotion Float Mode //============================== Sprite_Battler.prototype.setBmotionFloatMode = function () { if (this._battler._bmotion.idle.float.mode == 0) { return 0; } else if (this._battler._bmotion.idle.float.mode == 1) { return -this._battler._bmotion.idle.float.animation[1]; } else if (this._battler._bmotion.idle.float.mode == 2) { return this._battler._bmotion.idle.float.animation[1]; } else if (this._battler._bmotion.idle.float.mode == 3) { if (this._battler._bmotion.idle.float.animation[6] == 0) { if (this._battler._bmotion.idle.float.animation[5] == 0) { return -this._battler._bmotion.idle.float.animation[1]; } else { return this._battler._bmotion.idle.float.animation[1]; } } else { if (this._battler._bmotion.idle.float.animation[5] == 0) { return this._battler._bmotion.idle.float.animation[1]; } else { return -this._battler._bmotion.idle.float.animation[1]; } } } return this._battler._bmotion.idle.float.animation[1]; }; //============================== // * update BMotion Float //============================== Sprite_Battler.prototype.updateBMotionFloat = function () { if (this._battler._bmotion.idle.float.animation[9] > 0) { this._battler._bmotion.idle.float.animation[9]--; return; } if (this._battler._bmotion.idle.float.animation[0] == 0) { this._battler._bmotion.idle.float.animation[1] -= this._battler._bmotion.idle.float.animation[2]; this._battler._bmotion.idle.float.animation[4] = this.setBmotionFloatMode(); this._battler._bmotion.idle.float.y += this._battler._bmotion.idle.float.animation[1]; this._battler._bmotion.idle.float.x += this._battler._bmotion.idle.float.animation[4]; this._d[0] = 0; if ( this._battler._bmotion.idle.float.animation[1] <= -this._battler._bmotion.idle.float.animation[3] ) { this._battler._bmotion.idle.float.animation[1] = -this._battler._bmotion.idle.float.animation[3]; this._battler._bmotion.idle.float.animation[0] = 1; } } else { this._battler._bmotion.idle.float.animation[1] += this._battler._bmotion.idle.float.animation[2]; this._battler._bmotion.idle.float.animation[4] = this.setBmotionFloatMode(); this._battler._bmotion.idle.float.y += this._battler._bmotion.idle.float.animation[1]; this._battler._bmotion.idle.float.x += this._battler._bmotion.idle.float.animation[4]; this._d[0] = 1; if ( this._battler._bmotion.idle.float.animation[1] >= this._battler._bmotion.idle.float.animation[3] ) { this._battler._bmotion.idle.float.animation[1] = this._battler._bmotion.idle.float.animation[3]; this._battler._bmotion.idle.float.animation[0] = 0; } } this._d[0] = this._battler._bmotion.idle.float.animation[1] > 0 ? 0 : 1; if (this._d[1] != this._d[0]) { this._d[1] = this._d[0]; this._battler._bmotion.idle.float.animation[5]++; if (this._battler._bmotion.idle.float.animation[5] > 1) { this._battler._bmotion.idle.float.animation[5] = 0; this._battler._bmotion.idle.float.animation[6]++; if (this._battler._bmotion.idle.float.animation[6] > 1) { this._battler._bmotion.idle.float.animation[6] = 0; } } } }; //============================== // * update Action Bmotion //============================== Sprite_Battler.prototype.updateActionBmotion = function () { if (this._battler._bmotion.action.initial) { this.setupInitialBmotionAction(); } if (this._battler._bmotion.action.animation[9] > 0) { this._battler._bmotion.action.animation[9]--; return; } switch (this._battler._bmotion.action.mode) { case 0: this.updateBMotionActionZoom1(); break; case 1: this.updateBMotionSwingRight(); break; case 2: this.updateBMotionSwingLeft(); break; case 3: this.updateBmotionJump(); break; case 4: this.updateBmotionJumpRoll(); break; case 5: this.updateBmotionJumpSlime(); break; case 6: this.updateBmotionRotation(); break; case 7: this.updateBmotionFrontalAttackCharge(); break; case 8: this.updateBmotionWaveAttack(); break; case 9: this.updateBmotionShakeAttack(); break; case 10: this.updateBmotionSideRightSlash(); break; case 11: this.updateBmotionSideRightSlashDouble(); break; case 12: this.updateBmotionSideAttack(); break; case 13: this.updateBmotionSideRightAttackCharge(); break; default: break; } if (this.needBmotionResetZoomAction()) { this._battler._bmotion.action.scaleX = 0; this._battler._bmotion.action.scaleY = 0; } }; //============================== // * need Bmotion ResetZoom Action //============================== Sprite_Battler.prototype.needBmotionResetZoomAction = function () { return false; }; //============================== // * is Jump Action? //============================== Sprite_Battler.prototype.isBJumpAction = function () { if (this._battler._bmotion.action.mode == 3) { return true; } if (this._battler._bmotion.action.mode == 4) { return true; } if (this._battler._bmotion.action.mode == 10) { return true; } return false; }; //============================== // * setup Initial Bmotion Action //============================== Sprite_Battler.prototype.setupInitialBmotionAction = function () { this._battler._bmotion.action.initial = false; if (this._battler._bmotion.action.initial) { this.setupInitialBmotionAction(); } switch (this._battler._bmotion.action.mode) { case 0: this.setupBMotionActionZoom1(); break; case 3: this.setupBMotionActionJump1(); break; case 4: this.setupBMotionActionJumpRoll(); break; case 5: this.setupBmotionJumpSlime(); break; case 8: this.setupBmotionWaveAttack(); case 13: this.setupBmotionSideRightSlashCharge(); break; default: break; } }; //============================== // * setup B motion Action Zoom 1 //============================== Sprite_Battler.prototype.setupBMotionActionZoom1 = function () { this._battler._bmotion.action.animation[1] = 0.005 + 1.0 / this.bitmap.height; }; //============================== // * update BMotion Action 1 //============================== Sprite_Battler.prototype.updateBMotionActionZoom1 = function () { this._battler._bmotion.action.animation[0] += 0.5; if (this._battler._bmotion.action.animation[0] < 15) { this._battler._bmotion.action.scaleX += this._battler._bmotion.action.animation[1]; this._battler._bmotion.action.scaleY = this._battler._bmotion.action.scaleX; } else if (this._battler._bmotion.action.animation[0] < 30) { this._battler._bmotion.action.scaleX -= this._battler._bmotion.action.animation[1]; this._battler._bmotion.action.scaleY = this._battler._bmotion.action.scaleX; } else { this._battler.clearBaction(); } }; //============================== // * updateBMotionSwingRight //============================== Sprite_Battler.prototype.updateBMotionSwingRight = function () { this._battler._bmotion.action.animation[0]++; var speed = 8; if (this._battler._bmotion.action.animation[0] < 10) { this._battler._bmotion.action.x += speed; this._battler._bmotion.action.y += speed; if (Imported.MOG_BattleCameraFrontal) { this._battler._bmotion.action.scaleX = -2.0 - this._battler.camScaleX() * 2.0; } else { this._battler._bmotion.action.scaleX = -2.0; } } else if (this._battler._bmotion.action.animation[0] < 30) { this._battler._bmotion.action.x -= speed; } else if (this._battler._bmotion.action.animation[0] < 40) { this._battler._bmotion.action.scaleX = 0; this._battler._bmotion.action.x += speed; this._battler._bmotion.action.y -= speed; } else { this._battler.clearBaction(); } }; //============================== // * updateBMotionSwingLeft //============================== Sprite_Battler.prototype.updateBMotionSwingLeft = function () { this._battler._bmotion.action.animation[0]++; var speed = 8; if (this._battler._bmotion.action.animation[0] < 10) { this._battler._bmotion.action.x -= speed; this._battler._bmotion.action.y += speed; } else if (this._battler._bmotion.action.animation[0] < 30) { this._battler._bmotion.action.x += speed; } else if (this._battler._bmotion.action.animation[0] < 40) { this._battler._bmotion.action.x -= speed; this._battler._bmotion.action.y -= speed; if (Imported.MOG_BattleCameraFrontal) { this._battler._bmotion.action.scaleX = -2.0 - this._battler.camScaleX() * 2.0; } else { this._battler._bmotion.action.scaleX = -2.0; } } else { this._battler.clearBaction(); } }; //============================== // * setup B motion Action Jump 1 //============================== Sprite_Battler.prototype.setupBMotionActionJump1 = function () { this._battler._bmotion.action.animation[1] = -7; }; //============================== // * update BMotion Jump //============================== Sprite_Battler.prototype.updateBmotionJump = function () { this._battler._bmotion.action.animation[1] += 0.3; this._battler._bmotion.action.y2 += this._battler._bmotion.action.animation[1]; if (this._battler._bmotion.action.animation[1] >= 7) { this._battler._bmotion.action.y2 = 0; this._battler.clearBaction(); } }; //============================== // * setup B motion Action Jump Roll //============================== Sprite_Battler.prototype.setupBMotionActionJumpRoll = function () { this._battler._bmotion.action.animation[1] = -8; }; //============================== // * update BMotion Jump Roll //============================== Sprite_Battler.prototype.updateBmotionJumpRoll = function () { this._battler._bmotion.action.animation[0]++; this._battler._bmotion.action.animation[1] += 0.3; this._battler._bmotion.action.y2 += this._battler._bmotion.action.animation[1]; if (this._battler._bmotion.action.animation[1] >= 8) { this._battler.clearBaction(); } if (this._battler._bmotion.action.animation[0] > 5) { this._battler._bmotion.action.animation[0] = 0; if (Imported.MOG_BattleCameraFrontal) { var s = -2.0 - this._battler.camScaleX() * 2.0; this._battler._bmotion.action.scaleX = this._battler._bmotion.action.scaleX == 0 ? s : 0; } else { this._battler._bmotion.action.scaleX = this._battler._bmotion.action.scaleX == 0 ? -2.0 : 0; } } }; //============================== // * setup B motion Action Jump Slime //============================== Sprite_Battler.prototype.setupBmotionJumpSlime = function () { this._battler._bmotion.action.animation[1] = -14; this._battler._bmotion.action.wait = true; this._movementDuration = 10; }; //============================== // * update BMotion Jump Slime //============================== Sprite_Battler.prototype.updateBmotionJumpSlime = function () { if (this._battler._bmotion.action.animation[0] == 0) { this._battler._bmotion.action.animation[1] += 1; this._battler._bmotion.action.y2 += this._battler._bmotion.action.animation[1]; if (this._battler._bmotion.action.scaleX >= -0.8) { this._battler._bmotion.action.scaleX -= 0.02; this._battler._bmotion.action.scaleY += 0.05; } if (this._battler._bmotion.action.animation[1] >= 14) { this._battler._bmotion.action.animation[0] = 1; this._battler._bmotion.action.y2 = 0; } } else if (this._battler._bmotion.action.animation[0] == 1) { this._battler._bmotion.action.scaleX += 0.12; this._battler._bmotion.action.scaleY -= 0.08; if (this._battler._bmotion.action.scaleX >= 2.5) { this._battler._bmotion.action.animation[0] = 2; this._battler._bmotion.action.wait = false; this._movementDuration = 0; } } else if (this._battler._bmotion.action.animation[0] == 2) { if (this._battler._bmotion.action.scaleX >= 0.0) { this._battler._bmotion.action.scaleX -= 0.14; if (this._battler._bmotion.action.scaleX < 0.0) { this._battler._bmotion.action.scaleX = 0; } } if (this._battler._bmotion.action.scaleY < 0.0) { this._battler._bmotion.action.scaleY += 0.06; if (this._battler._bmotion.action.scaleY >= 0.0) { this._battler._bmotion.action.scaleY = 0; } } if ( this._battler._bmotion.action.scaleX == 0 && this._battler._bmotion.action.scaleY == 0 ) { this._battler.clearBaction(); this._movementDuration = 0; } } }; //============================== // * setup B motion Action Jump Frontal //============================== Sprite_Battler.prototype.setupBMotionActionJumpFrontal = function () { this._battler._bmotion.action.animation[1] = -7; this._battler._bmotion.action.wait = true; this._movementDuration = 10; }; //============================== // * update BMotion Jump Frontal //============================== Sprite_Battler.prototype.updateBmotionJumpFrontal = function () { this._battler._bmotion.action.animation[1] += 0.3; this._battler._bmotion.action.y2 += this._battler._bmotion.action.animation[1]; if (this._battler._bmotion.action.animation[1] > 4) { this._battler._bmotion.action.wait = false; this._movementDuration = 0; } if (this._battler._bmotion.action.animation[1] >= 7) { if (this._battler._bmotion.action.animation[0] == 0) { this._battler._bmotion.action.animation[0] = 1; this._battler._bmotion.action.animation[1] = -7; this._battler._bmotion.action.animation[9] = 5; } else { this._battler.clearBaction(); } } if (this._battler._bmotion.action.animation[0] == 0) { this._battler._bmotion.action.scaleX += 0.015; this._battler._bmotion.action.y2 += 3; } else { this._battler._bmotion.action.scaleX -= 0.015; this._battler._bmotion.action.y2 -= 3; } this._battler._bmotion.action.scaleY = this._battler._bmotion.action.scaleX; }; //============================== // * update BMotion Rotation //============================== Sprite_Battler.prototype.updateBmotionRotation = function () { this._battler._bmotion.action.animation[1]++; var speed = this._battler.isActor() ? -0.2 : 0.2; this._battler._bmotion.action.rotation += speed; if (this._battler._bmotion.action.animation[1] > 30) { this._battler.clearBaction(); this._movementDuration = 0; } }; //============================== // * update BMotion Side Right Slash //============================== Sprite_Battler.prototype.updateBmotionSideRightSlash = function () { var speed = this._battler.isActor() ? -0.1 : 0.1; this._battler._bmotion.action.animation[0]++; if (this._battler._bmotion.action.animation[0] < 10) { this._battler._bmotion.action.rotation -= speed; } else if (this._battler._bmotion.action.animation[0] < 30) { this._battler._bmotion.action.rotation += speed; } else if (this._battler._bmotion.action.animation[0] < 40) { this._battler._bmotion.action.rotation -= speed; } else { this._battler.clearBaction(); } }; //============================== // * update BMotion Frontal Side Slash Double //============================== Sprite_Battler.prototype.updateBmotionSideRightSlashDouble = function () { var speed = this._battler.isActor() ? -0.2 : 0.2; this._battler._bmotion.action.animation[0]++; if (this._battler._bmotion.action.animation[0] < 5) { this._battler._bmotion.action.rotation -= speed; } else if (this._battler._bmotion.action.animation[0] < 15) { this._battler._bmotion.action.rotation += speed; } else if (this._battler._bmotion.action.animation[0] < 25) { this._battler._bmotion.action.rotation -= speed; } else if (this._battler._bmotion.action.animation[0] < 35) { this._battler._bmotion.action.rotation += speed; } else if (this._battler._bmotion.action.animation[0] < 40) { this._battler._bmotion.action.rotation -= speed; } else { this._battler.clearBaction(); } }; //============================== // * update BMotion Side Attack //============================== Sprite_Battler.prototype.updateBmotionSideAttack = function () { var speed = this._battler.isActor() ? -3 : 3; this._battler._bmotion.action.animation[0]++; if (this._battler._bmotion.action.animation[0] < 20) { this._battler._bmotion.action.x += speed; } else if (this._battler._bmotion.action.animation[0] < 40) { this._battler._bmotion.action.x -= speed; } else { this._battler.clearBaction(); } }; //============================== // * setup BMotion Frontal Side Slash Charge //============================== Sprite_Battler.prototype.setupBmotionSideRightSlashCharge = function () { this._battler._bmotion.action.animation[1] = -8; this._battler._bmotion.action.wait = true; this._movementDuration = 10; }; //============================== // * update BMotion Frontal Side Attack Charge //============================== Sprite_Battler.prototype.updateBmotionSideRightAttackCharge = function () { if (this._battler._bmotion.action.animation[0] == 0) { this._battler._bmotion.action.animation[1] += 0.45; this._battler._bmotion.action.y += this._battler._bmotion.action.animation[1]; var speed = this._battler.isActor() ? -3 : 3; this._battler._bmotion.action.x -= speed; if (this._battler._bmotion.action.animation[1] >= 8) { this._battler._bmotion.action.animation[0] = 1; this._battler._bmotion.action.y = 0; } } else if (this._battler._bmotion.action.animation[0] == 1) { this._battler._bmotion.action.animation[0] = 2; this._battler._bmotion.action.animation[3] = -this._battler._bmotion.action.x; this._battler._bmotion.action.animation[9] = 10; this._movementDuration = 0; this._battler._bmotion.action.wait = false; } else if (this._battler._bmotion.action.animation[0] == 2) { this._battler._bmotion.action.scaleX = 0; if (this._battler.isActor()) { this._battler._bmotion.action.x -= 24; if ( this._battler._bmotion.action.x <= this._battler._bmotion.action.animation[3] ) { this._battler._bmotion.action.x = this._battler._bmotion.action.animation[3]; this._battler._bmotion.action.animation[0] = 3; } } else { this._battler._bmotion.action.x += 24; if ( this._battler._bmotion.action.x >= this._battler._bmotion.action.animation[3] ) { this._battler._bmotion.action.x = this._battler._bmotion.action.animation[3]; this._battler._bmotion.action.animation[0] = 3; } } } else if (this._battler._bmotion.action.animation[0] == 3) { if (this._battler.isActor()) { var speed = this._battler.isActor() ? -3 : 3; this._battler._bmotion.action.x -= speed; if (this._battler._bmotion.action.x >= 0) { this._battler.clearBaction(); } } else { var speed = this._battler.isActor() ? -3 : 3; this._battler._bmotion.action.x -= speed; if (this._battler._bmotion.action.x <= 0) { this._battler.clearBaction(); } } } }; //============================== // * setup BMotion Wave Attack //============================== Sprite_Battler.prototype.setupBmotionWaveAttack = function () { this._battler._bmotion.action.wait = true; this._movementDuration = 10; }; //============================== // * update BMotion Wave Attack //============================== Sprite_Battler.prototype.updateBmotionWaveAttack = function () { this._battler._bmotion.action.animation[0]++; var speed = 0.2; if (this._battler._bmotion.action.animation[0] < 5) { this._battler._bmotion.action.rotation += speed; } else if (this._battler._bmotion.action.animation[0] < 15) { this._battler._bmotion.action.rotation -= speed; } else if (this._battler._bmotion.action.animation[0] < 25) { this._battler._bmotion.action.rotation += speed; this._battler._bmotion.action.wait = false; this._movementDuration = 0; } else if (this._battler._bmotion.action.animation[0] < 35) { this._battler._bmotion.action.rotation -= speed; } else if (this._battler._bmotion.action.animation[0] < 45) { this._battler._bmotion.action.rotation += speed; } else if (this._battler._bmotion.action.animation[0] < 50) { this._battler._bmotion.action.rotation -= speed; } else { this._battler._bmotion.action.rotation = 0; this._battler.clearBaction(); this._movementDuration = 0; } }; //============================== // * update BMotion Shake Attack //============================== Sprite_Battler.prototype.updateBmotionShakeAttack = function () { this._battler._bmotion.action.animation[0]++; this._battler._bmotion.action.animation[1]++; if (this._battler._bmotion.action.animation[1] < 2) { return; } this._battler._bmotion.action.animation[1] = 0; this._battler._bmotion.action.x = Math.randomInt(30) - 15; this._battler._bmotion.action.y = Math.randomInt(30) - 15; if (this._battler._bmotion.action.animation[0] > 40) { this._battler.clearBaction(); this._movementDuration = 0; } }; //============================== // * update BMotion Frontal Attack Charge //============================== Sprite_Battler.prototype.updateBmotionFrontalAttackCharge = function () { this._movementDuration = 10; this._battler._bmotion.action.wait = true; this._battler._bmotion.action.animation[0]++; if (this._battler._bmotion.action.animation[0] < 20) { } else if (this._battler._bmotion.action.animation[0] < 30) { this._battler._bmotion.action.scaleX = 0; this._battler._bmotion.action.y += 15; this._movementDuration = 0; this._battler._bmotion.action.wait = false; } else if (this._battler._bmotion.action.animation[0] < 40) { this._battler._bmotion.action.y -= 15; } else { this._battler.clearBaction(); this._movementDuration = 0; } }; //============================== // * update Bmotion Base //============================== Sprite_Battler.prototype.updateBmotionBase = function () { if (this.canUpdateIdleBMotion()) { this.updateIdleBmotion(); } if (this.canUpdateActionBMotion()) { this.updateActionBmotion(); } if (this.canUpdateDamageBmotion()) { this.updateDamageBmotion(); } }; //============================== // * can Update Damage Bmotion //============================== Sprite_Battler.prototype.canUpdateDamageBmotion = function () { if (this._battler._bmotion.damage.mode < 0) { return false; } if (this._battler._bmotion.damage.duration <= 0) { return false; } return true; }; //============================== // * update Damage Bmotion //============================== Sprite_Battler.prototype.updateDamageBmotion = function () { if (this._battler._bmotion.damage.mode == 0) { this.updateBmotionDamageShake(); } else if (this._battler._bmotion.damage.mode == 1) { this.updateBmotionDamageZoom(); } else if (this._battler._bmotion.damage.mode == 2) { this.updateBmotionDamageKnockBackRight(); } else if (this._battler._bmotion.damage.mode == 3) { this.updateBmotionDamageKnockBackLeft(); } }; //============================== // * update Bmotion Damage Shake //============================== Sprite_Battler.prototype.updateBmotionDamageShake = function () { this._battler._bmotion.damage.animation[0]++; if (this._battler._bmotion.damage.animation[0] < 1) { return; } this._battler._bmotion.damage.animation[0] = 0; this._battler._bmotion.damage.x = -10 + Math.randomInt(20); this._battler._bmotion.damage.duration--; if (this._battler._bmotion.damage.duration <= 0) { this._movementDuration = 0; this._battler.clearBdamage(); } }; //============================== // * update Bmotion Damage Zoom //============================== Sprite_Battler.prototype.updateBmotionDamageZoom = function () { var speed = 0.03; var range = 0.4; if (this._battler._bmotion.damage.animation[0] == 0) { this._battler._bmotion.damage.scaleX -= speed; this._battler._bmotion.damage.scaleY += speed; if (this._battler._bmotion.damage.scaleX <= -range) { this._battler._bmotion.damage.scaleX = -range; this._battler._bmotion.damage.scaleY = range; this._battler._bmotion.damage.animation[0] = 1; } } else if (this._battler._bmotion.damage.animation[0] == 1) { this._battler._bmotion.damage.scaleX += speed; this._battler._bmotion.damage.scaleY -= speed; if (this._battler._bmotion.damage.scaleX >= 0.0) { this._battler.clearBdamage(); this._movementDuration = 0; } } }; //============================== // * updateBmotionDamageKnockBackLeft //============================== Sprite_Battler.prototype.updateBmotionDamageKnockBackLeft = function () { var speed = 3; var rot = 0.01; var range = 40; if (this._battler._bmotion.damage.animation[0] == 0) { this._battler._bmotion.damage.x += speed; this._battler._bmotion.damage.rotation += rot; if (this._battler._bmotion.damage.x >= range) { this._battler._bmotion.damage.x = range; this._battler._bmotion.damage.animation[0] = 1; } } else if (this._battler._bmotion.damage.animation[0] == 1) { this._battler._bmotion.damage.x -= speed; this._battler._bmotion.damage.rotation -= rot; if (this._battler._bmotion.damage.x <= 0) { this._battler.clearBdamage(); this._movementDuration = 0; } } }; //============================== // * updateBmotionDamageKnockBackRight //============================== Sprite_Battler.prototype.updateBmotionDamageKnockBackRight = function () { var speed = 3; var rot = 0.01; var range = -40; if (this._battler._bmotion.damage.animation[0] == 0) { this._battler._bmotion.damage.x -= speed; this._battler._bmotion.damage.rotation -= rot; if (this._battler._bmotion.damage.x <= range) { this._battler._bmotion.damage.x = range; this._battler._bmotion.damage.animation[0] = 1; } } else if (this._battler._bmotion.damage.animation[0] == 1) { this._battler._bmotion.damage.x += speed; this._battler._bmotion.damage.rotation += rot; if (this._battler._bmotion.damage.x >= 0) { this._battler.clearBdamage(); this._movementDuration = 0; } } }; //============================== // * init Members //============================== var _mog_bmotion_sprtEnemy_initMembers = Sprite_Enemy.prototype.initMembers; Sprite_Enemy.prototype.initMembers = function () { _mog_bmotion_sprtEnemy_initMembers.call(this); this._skipBlink = String(Moghunter.b_motion_disable_blink_damage) == "true" ? true : false; }; //============================== // * startBlink //============================== var _mog_bmotion_srtenemy_startBlink = Sprite_Enemy.prototype.startBlink; Sprite_Enemy.prototype.startBlink = function () { if (this._skipBlink) { this._effectDuration = 1; return; } _mog_bmotion_srtenemy_startBlink.call(this); }; //============================== // * can Update Battler Motion //============================== Sprite_Battler.prototype.canUpdateBattlerMotion = function () { if (!this._battler) { return false; } if (Imported.MOG_EmergeMotion) { if (this._battler._emergeMotion.enabled) { return false; } } return true; }; //============================== // * update Battler Motion //============================== Sprite_Battler.prototype.updateBattlerMotion = function () { if (this.needGetDataBmotion()) { this.setInitBmotionData(); } if (this.canUpdateBmotion()) { this.updateBmotionBase(); } if (this._battler) { this.updatepBmotionRealData(); } }; //============================== // * update //============================== var _mog_bmotion_sptBat_update = Sprite_Battler.prototype.update; Sprite_Battler.prototype.update = function () { _mog_bmotion_sptBat_update.call(this); if (this.canUpdateBattlerMotion()) { this.updateBattlerMotion(); } }; //============================== // * Update Bmotion Real Data //============================== Sprite_Battler.prototype.updatepBmotionRealData = function () { this.x += this._battler.bmotionX(); this.y += this._battler.bmotionY(); if (!this._battler.isDead()) { this.scale.x = 1.0 + this._battler.bmotionScaleX(); this.scale.y = 1.0 + this._battler.bmotionScaleY(); this.rotation = this._battler.bmotionRotation(); } if (this.scale.y < 0) { this.scale.y = 0; } }; //============================== // * need Wait Update Move //============================== Sprite_Battler.prototype.needWaitUpdateMove = function () { if (!this._battler) { return false; } if (this._battler._bmotion.action.wait) { return true; } if (this._battler._bmotion.idle.wait) { return true; } if (this._battler._bmotion.damage.wait) { return true; } return false; }; //============================== // * Update Move //============================== var _mog_battlerMotion_sprbtr_updateMove = Sprite_Battler.prototype.updateMove; Sprite_Battler.prototype.updateMove = function () { if (this.needWaitUpdateMove()) { return; } _mog_battlerMotion_sprbtr_updateMove.call(this); }; //============================== // * refresh Bmotion Data //============================== Sprite_Battler.prototype.refreshBmotionData = function () { this._bmotion.initial = true; this._bmotion.shadow = false; if (this._bmotionShadow) { this.removeBShadow(); } this._battler.setMotionData(); }; //============================== // * update Idle Bmotion //============================== var _mog_bmotion_sprtBattler_updateIdleBmotion = Sprite_Battler.prototype.updateIdleBmotion; Sprite_Battler.prototype.updateIdleBmotion = function () { _mog_bmotion_sprtBattler_updateIdleBmotion.call(this); if (this.needCreateBmotionShadow()) { this.createBmotionShadow(); } }; //============================== // * need Create Shadow //============================== Sprite_Battler.prototype.needCreateBmotionShadow = function () { if (this._bmotionShadow) { return false; } if (!this._bmotion.shadow) { return false; } if (!this._battler._bmotion.idle.float.enable) { return false; } return true; }; //============================== // * create Bmotion Shadow //============================== Sprite_Battler.prototype.createBmotionShadow = function () { this._bmotionShadow = new Sprite(this.bitmap); this._bmotionShadow.anchor.x = 0.5; this._bmotionShadow.anchor.y = 0.5; this._bmotionShadow.y = 10; this._bmotionShadow.org = [this._bmotionShadow.x, this._bmotionShadow.y]; this._bmotionShadow.zoomEffect = Moghunter.b_motion_shadowZoom == "true" ? true : false; this._bmotionShadow.scale.y = 0.2; this._bmotionShadow.opacity = Moghunter.b_motion_shadowOpacity; this._bmotionShadow.scale.mv = (this.bitmap.height * 10) / 100; this._bmotionShadow.setBlendColor([0, 0, 0, 255]); this.addChild(this._bmotionShadow); if (Imported.MOG_EnemyPoses && this._battler._batPoses[0]) { w = this.bitmap.width / 4; h = this.bitmap.height; this._bmotionShadow.setFrame(0, 0, w, h); } }; //============================== // * setBmotionFloatActionOffset //============================== Sprite_Battler.prototype.setBmotionFloatActionOffset = function () { return 0; }; //============================== // * update Bmotion Shadow //============================== Sprite_Battler.prototype.updateBmotionShadow = function () { var mz = (this.bitmap.height * 10) / 100; var nz = this.setBmotionFloatActionOffset(); var rz = 0; if (this.y < this._battler._bmotion.idle.float.groundH) { rz = this._battler._bmotion.idle.float.groundH - this.y; } this._bmotionShadow.y = mz + this._bmotionShadow.org[1] - this._battler.bmotionFlyY() + nz + rz; this._bmotionShadow.rotation = -this._battler._bmotion.action.rotation; if (this._bmotionShadow.zoomEffect) { var nz = Number((this._battler.bmotionFlyY() / 5) * 0.004); this._bmotionShadow.scale.x = 1.0 + nz; this._bmotionShadow.scale.y = 0.2 + nz; } }; //============================== // * update Bmotion Base //============================== var _mog_bmotion_sprtBattler_updateBmotionBase = Sprite_Battler.prototype.updateBmotionBase; Sprite_Battler.prototype.updateBmotionBase = function () { _mog_bmotion_sprtBattler_updateBmotionBase.call(this); if (this._bmotionShadow) { this.updateBmotionShadow(); } }; //============================== // * remove BShadow //============================== Sprite_Battler.prototype.removeBShadow = function () { this.removeChild(this._bmotionShadow); this._bmotionShadow = null; };