I think I managed to fix the animated SV battlers not playing damage animation, it only took like a minute, I just copied the code from yanfly animated SV into the bottom of the dragonbones code
Code:
Game_Enemy.prototype.performDamage = function() {
Game_Battler.prototype.performDamage.call(this);
SoundManager.playEnemyDamage();
var result = false;
if (this.hasDragonBone === true) {
result = dragonBonesIntegration.PlayAnimationOnBattler(this, "damage");
}
//if dragonbones animation fail to play then run default
if (result === false) {
if (!this.hasSVBattler()) {
return Yanfly.SVE.Game_Enemy_performDamage.call(this);
}
Game_Battler.prototype.performDamage.call(this);
if (this.isSpriteVisible()) {
this.requestMotion(this.damageMotion());
} else {
$gameScreen.startShake(5, 5, 10);
}
SoundManager.playEnemyDamage();
this.requestEffect('blink');
}
};
Just Ctrl+F the top line and copy and paste over it all to the bottom };
You can erase the this.requestEffect('blink'); if you don't want them to blink.
As for evade motion or others I'm not even sure if there are problems with as I haven't tested any of them, mine don't seem to play evade animation even with dragonbones off.
Turned off my plugins in batches, seems to be Yanfly HitAccuracy causing evasion not to play.
Ok figured out and solved reason why it never plays evade with Yanfly HitAccuracy plugin, by default the formula turns everything into hits and misses and 0 chance to evade.
I edited the formula to be
Code:
skillHitRate * userHitRate
for accuracy, so it multiplies the skill itselfs chance by user hit rate from actor traits ect.
Code:
targetEvadeRate - skillHitRate * userHitRate
then I made it so it does that again but minus the targets evasion. Now this still doesn't solve the fact that on misses against it doesn't evade motion so I did the opposite and made it so the actors also not evade during misses.
Code:
Game_Actor.prototype.performEvasion = function() {
Game_Battler.prototype.performEvasion.call(this);
var result = this.result();
if (!result.missed) this.requestMotion('evade');
};
Game_Actor.prototype.performMagicEvasion = function() {
Game_Battler.prototype.performMagicEvasion.call(this);
var result = this.result();
if (!result.missed) this.requestMotion('evade');
};
I changed that in the base scripts but you can probably put it in there as a script high up the list.
Or you can leave the default hit formula in the plugin and just use this which erases misses turning it into only evades.
Code:
Game_Action.prototype.apply = function(target) {
var result = target.result();
this.subject().clearResult();
result.clear();
result.used = this.testApply(target);
result.evaded = (result.used && Math.random() >= this.itemHit(target));
result.physical = this.isPhysical();
result.drain = this.isDrain();
if (result.isHit()) {
if (this.item().damage.type > 0) {
result.critical = (Math.random() < this.itemCri(target));
var value = this.makeDamageValue(target, result.critical);
this.executeDamage(target, value);
}
this.item().effects.forEach(function(effect) {
this.applyItemEffect(target, effect);
}, this);
this.applyItemUserEffect(target);
}
};
Probably affects dragonbones as well, doubt they evade with that plugin used.