brainwashing-school/js/plugins/MOG_BattlerMotion.js
2025-02-25 10:53:19 -06:00

2371 lines
78 KiB
JavaScript

//=============================================================================
// 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;
};