add back overlap between anims and combattext

This commit is contained in:
Mashy 2019-12-06 01:47:08 +10:00
parent b8cb296bd6
commit 517b912c2e
3 changed files with 15 additions and 29 deletions

View File

@ -1,5 +1,3 @@
const { removeTier } = require('./utils');
function getObjects(resolution, game, account) { function getObjects(resolution, game, account) {
const [type, event] = resolution.variant; const [type, event] = resolution.variant;
@ -68,17 +66,6 @@ function getObjects(resolution, game, account) {
}; };
} }
function isCbAnim(skill) {
return ['Attack', 'Blast', 'Siphon', 'SiphonTick', 'Strike', 'Chaos', 'Slay', 'Heal',
'Buff', 'Amplify', 'Haste', 'Triage', 'TriageTick', 'Link', 'Hybrid', 'Intercept',
'Debuff', 'Curse', 'Decay', 'DecayTick', 'Purge', 'Silence', 'Restrict',
'Stun', 'Bash', 'Absorb', 'Sleep', 'Break', 'Ruin',
'Block', 'Sustain', 'Electrify', 'Electrocute', 'ElectrocuteTick',
'Counter', 'CounterAttack', 'Purify', 'Recharge', 'Reflect'].includes(removeTier(skill));
}
module.exports = { module.exports = {
getObjects, getObjects,
isCbAnim,
}; };

View File

@ -8,6 +8,7 @@ const actions = require('./actions');
const animations = require('./animations.utils'); const animations = require('./animations.utils');
const { infoToast, errorToast } = require('./utils'); const { infoToast, errorToast } = require('./utils');
const { tutorialVbox } = require('./tutorial.utils'); const { tutorialVbox } = require('./tutorial.utils');
const { TIMES } = require('./constants');
function registerEvents(store) { function registerEvents(store) {
function notify(msg) { function notify(msg) {
@ -91,27 +92,25 @@ function registerEvents(store) {
const timeout = r.delay; const timeout = r.delay;
if (r.variant[0].includes('Hit')) { if (r.variant[0].includes('Hit')) {
let animTimeOut = TIMES.TARGET_DURATION_MS;
const anims = animations.getObjects(r, game, account); const anims = animations.getObjects(r, game, account);
if (r.variant[0] === 'HitCast') { if (r.variant[0] === 'HitCast') {
animTimeOut += TIMES.TARGET_DELAY_MS;
store.dispatch(actions.setAnimSource(anims.animSource)); store.dispatch(actions.setAnimSource(anims.animSource));
} }
store.dispatch(actions.setAnimFocus(anims.focusTargets)); store.dispatch(actions.setAnimFocus(anims.focusTargets));
store.dispatch(actions.setAnimSkill(anims.skill)); store.dispatch(actions.setAnimSkill(anims.skill));
store.dispatch(actions.setAnimTarget(anims.animTarget)); store.dispatch(actions.setAnimTarget(anims.animTarget));
store.dispatch(actions.setAnimText(null)); store.dispatch(actions.setAnimText(null));
setTimeout(() => {
if (animations.isCbAnim(anims.skill)) store.dispatch(actions.setAnimCb(cb));
return setTimeout(() => {
store.dispatch(actions.setAnimSource(null)); store.dispatch(actions.setAnimSource(null));
store.dispatch(actions.setAnimTarget(null)); store.dispatch(actions.setAnimTarget(null));
if (r.variant[0].includes('Hit') && animations.isCbAnim(anims.skill)) return true; }, animTimeOut);
return cb(); } else {
}, timeout); store.dispatch(actions.setAnimText(r));
} }
store.dispatch(actions.setAnimText(r));
return setTimeout(cb, timeout); return setTimeout(cb, timeout);
}, err => { }, err => {
if (err) return console.error(err); if (err) return console.error(err);

View File

@ -258,15 +258,15 @@ pub enum EventVariant {
impl EventVariant { impl EventVariant {
fn delay(&self) -> i64 { fn delay(&self) -> i64 {
// let source_duration = 1000; // Time for SOURCE ONLY // let source_duration = 1000; // Time for SOURCE ONLY
let target_delay = 500; // Used for Source + Target let target_duration = 1500; // Time for target animation
let target_duration = 1500; // Time for TARGET ONLY let target_delay = 500; // Add delay if theres source animation
let post_skill = 1000; // Time for all POST let combat_text_delay = 1300; // Time for all post skill
let source_and_target_total = target_delay + target_duration; // SOURCE + TARGET time let combat_text_overlap = 600; // overlap between animation and combat text
match self { match self {
EventVariant::Hit { skill: _ } => target_duration, EventVariant::Hit { skill: _ } => target_duration - combat_text_overlap,
EventVariant::HitCast { skill: _, source: _ } => source_and_target_total, EventVariant::HitCast { skill: _, source: _ } => target_delay + target_duration - combat_text_overlap,
_ => post_skill, _ => combat_text_delay,
} }
} }
} }