resolution result iteration

This commit is contained in:
ntr
2018-12-07 15:27:45 +11:00
parent 3c2a7dbd45
commit 436c4dc4ac
4 changed files with 55 additions and 25 deletions
+40 -13
View File
@@ -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();
});
});
});
});
});
}
+1 -1
View File
@@ -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;