resolution result iteration
This commit is contained in:
@@ -74,22 +74,49 @@ function animatePhase(scene, game, resolution, cb) {
|
||||
|
||||
// Target cryp takes damage
|
||||
scene.time.delayedCall(ANIMATION_DURATION, () => {
|
||||
const combatTick = resolution.resolution.results[0][1];
|
||||
const damage = combatTick.category === 'PhysHeal' ? combatTick.amount * -1 : combatTick.amount;
|
||||
targetSpawn.takeDamage(damage);
|
||||
scene.registry.set('gameLog', scene.registry.get('gameLog') + 1);
|
||||
// ew
|
||||
const { resolution: { results } } = resolution;
|
||||
|
||||
// Move cryps back
|
||||
scene.time.delayedCall(DAMAGE_TICK, () => {
|
||||
if (moveSourceOrig) scene.tweens.add(moveSourceOrig);
|
||||
scene.tweens.add(moveTargetOrig);
|
||||
eachSeries(results,
|
||||
(result, tickCb) => {
|
||||
// touch
|
||||
if (!results.length) return tickCb();
|
||||
|
||||
// all done
|
||||
scene.time.delayedCall(MOVE_CREEP, () => {
|
||||
animations.destroy(true);
|
||||
return cb();
|
||||
const [resultType, values] = result;
|
||||
if (resultType === 'Damage') {
|
||||
targetSpawn.takeDamage(values.amount);
|
||||
scene.registry.set('gameLog', scene.registry.get('gameLog') + 1);
|
||||
return setTimeout(tickCb, DAMAGE_TICK);
|
||||
}
|
||||
if (resultType === 'Healing') {
|
||||
targetSpawn.takeDamage(values.amount * -1);
|
||||
scene.registry.set('gameLog', scene.registry.get('gameLog') + 1);
|
||||
return setTimeout(tickCb, DAMAGE_TICK);
|
||||
}
|
||||
if (resultType === 'Effect') {
|
||||
console.log('target has new effect', values.effect);
|
||||
return setTimeout(tickCb, DAMAGE_TICK);
|
||||
}
|
||||
|
||||
if (resultType === 'Removal') {
|
||||
console.log('target effect removed', values.effect);
|
||||
return setTimeout(tickCb, DAMAGE_TICK);
|
||||
}
|
||||
|
||||
// unhandled result type
|
||||
return tickCb();
|
||||
},
|
||||
(err) => {
|
||||
// Move cryps back
|
||||
if (moveSourceOrig) scene.tweens.add(moveSourceOrig);
|
||||
scene.tweens.add(moveTargetOrig);
|
||||
|
||||
// all done
|
||||
scene.time.delayedCall(MOVE_CREEP, () => {
|
||||
animations.destroy(true);
|
||||
return cb();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ function createSocket(events) {
|
||||
|
||||
if (!account) events.loginPrompt();
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
send({ method: 'account_login', params: { name: 'ntr', password: 'grepgrepgrep' } });
|
||||
// send({ method: 'account_login', params: { name: 'ntr', password: 'grepgrepgrep' } });
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user