//============================================================================= // 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.00100; 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.00; 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.30; 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.00170; 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.000060 + Number(sp); this._battler._bmotion.breathEffect.scale = 0.000000 }; //============================== // * 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.00 / 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.00 - this._battler.camScaleX() * 2.0; } else { this._battler._bmotion.action.scaleX = -2.00; }; } 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.00 - this._battler.camScaleX() * 2.0; } else { this._battler._bmotion.action.scaleX = -2.00; }; } 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.30; 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.30; 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.00 - 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.00 : 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.50) { 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.00) { this._battler._bmotion.action.scaleX -= 0.14; if (this._battler._bmotion.action.scaleX < 0.00) {this._battler._bmotion.action.scaleX = 0} } if (this._battler._bmotion.action.scaleY < 0.00) { this._battler._bmotion.action.scaleY += 0.06; if (this._battler._bmotion.action.scaleY >= 0.00) {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.30; 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.40; 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.00) { 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.00 + this._battler.bmotionScaleX(); this.scale.y = 1.00 + 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.20; 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; };