From df76d50a4ec2ed4e05ff490e5db72f5337837962 Mon Sep 17 00:00:00 2001 From: Mashy Date: Mon, 25 Mar 2019 15:08:12 +1000 Subject: [PATCH] Fixed resolutions with new format --- .../src/scenes/combat.render.resolutions.js | 75 +++++++------------ client/src/scenes/elements/combat.statbar.js | 8 +- 2 files changed, 33 insertions(+), 50 deletions(-) diff --git a/client/src/scenes/combat.render.resolutions.js b/client/src/scenes/combat.render.resolutions.js index f80d4481..c5eafdb7 100644 --- a/client/src/scenes/combat.render.resolutions.js +++ b/client/src/scenes/combat.render.resolutions.js @@ -7,15 +7,15 @@ const { } = require('./constants'); function findResolutionCryps(scene, group, resolution, game) { - const sourceCryp = game.teams.find(t => t.cryps.find(c => c.id === resolution.source_cryp_id)) - .cryps.find(c => c.id === resolution.source_cryp_id); + const sourceSpawn = group.children.entries.find(c => c.cryp.id === resolution.source.id); - const sourceSpawn = group.children.entries.find(c => c.cryp.id === sourceCryp.id); +/* const sourceCryp = game.teams.find(t => t.cryps.find(c => c.id === resolution.source_cryp_id)) + .cryps.find(c => c.id === resolution.source_cryp_id); const targetCryp = game.teams.find(t => t.cryps.find(c => c.id === resolution.target_cryp_id)) .cryps.find(c => c.id === resolution.target_cryp_id); - - const targetSpawn = group.children.entries.find(c => c.cryp.id === targetCryp.id); +*/ + const targetSpawn = group.children.entries.find(c => c.cryp.id === resolution.target.id); return { sourceSpawn, targetSpawn }; } @@ -46,8 +46,8 @@ function calculateTweenParams(sourceSpawn, targetSpawn, account) { function animatePhase(scene, game, resolution, cb) { // return early for disabled skills - if (resolution.resolutions.length === 0) return cb(); - // if (events[0] === 'Disable') return cb(); + if (resolution.length === 0) return cb(); + if (resolution.event[0] === 'Disable') return cb(); const group = scene.scene.get('CombatCryps').cryps; const animations = new CombatAnimations(scene); @@ -55,7 +55,6 @@ function animatePhase(scene, game, resolution, cb) { // Find cryps, targets const { sourceSpawn, targetSpawn } = findResolutionCryps(scene, group, resolution, game); - const { moveSourceBattle, moveSourceOrig, moveTargetBattle, moveTargetOrig, } = calculateTweenParams(sourceSpawn, targetSpawn, account); @@ -73,50 +72,34 @@ function animatePhase(scene, game, resolution, cb) { return scene.time.delayedCall(MOVE_CREEP, () => { const isAlly = sourceSpawn.cryp.account === account.id; - // animate animation animations.getSkill(resolution.skill, isAlly, castLocation); // Target cryp takes damage scene.time.delayedCall(ANIMATION_DURATION, () => { - console.log(resolution.resolutions); - eachSeries(resolution.resolutions, (events, tickCb) => { - // touch - if (!resolution.resolutions.length) return tickCb(); - if (events.event[0] === 'Damage') { - targetSpawn.takeDamage(events.event[1].amount); - scene.registry.set('gameLog', scene.registry.get('gameLog') + 1); - return setTimeout(tickCb, DAMAGE_TICK); - } - if (events.event[0] === 'Healing') { - targetSpawn.takeHealing(events.event[1].amount); - scene.registry.set('gameLog', scene.registry.get('gameLog') + 1); - return setTimeout(tickCb, DAMAGE_TICK); - } - if (events.event[0] === 'Effect') { - targetSpawn.effects.addEffect(events.event[0]); - console.log('target has new effect', events.event[1].effect); - return setTimeout(tickCb, DAMAGE_TICK); - } + if (resolution.event[0] === 'Damage') { + targetSpawn.takeDamage(resolution.event[1]); + scene.registry.set('gameLog', scene.registry.get('gameLog') + 1); + } + if (resolution.event[0] === 'Healing') { + targetSpawn.takeHealing(resolution.event[1]); + scene.registry.set('gameLog', scene.registry.get('gameLog') + 1); + } + if (resolution.event[0] === 'Effect') { + targetSpawn.effects.addEffect(resolution.event[1]); + console.log('target has new effect', resolution.event[1].effect); + } - if (events.event[0] === 'Removal') { - targetSpawn.effects.removeEffect(events.event[1].effect); - console.log('target effect removed', events.event[1].effect); - return setTimeout(tickCb, DAMAGE_TICK); - } + if (resolution.event[0] === 'Removal') { + targetSpawn.effects.removeEffect(resolution.event[1].effect); + console.log('target effect removed', resolution.event[1].effect); + } + if (moveSourceOrig) scene.tweens.add(moveSourceOrig); + scene.tweens.add(moveTargetOrig); - // 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(); - }); + // all done + scene.time.delayedCall(MOVE_CREEP, () => { + animations.destroy(true); + return cb(); }); }); }); diff --git a/client/src/scenes/elements/combat.statbar.js b/client/src/scenes/elements/combat.statbar.js index 621c07c9..7189e945 100644 --- a/client/src/scenes/elements/combat.statbar.js +++ b/client/src/scenes/elements/combat.statbar.js @@ -27,19 +27,19 @@ class StatBar extends Phaser.GameObjects.Graphics { if (type === 'HP') { this.val = this.crypObj.cryp.hp.value; - this.max = this.crypObj.cryp.hp.value; + this.max = this.crypObj.cryp.hp.max; this.margin = 0; } else if (type === 'Red Shield') { this.val = this.crypObj.cryp.red_shield.value; - this.max = this.crypObj.cryp.red_shield.value; + this.max = this.crypObj.cryp.red_shield.max; this.margin = 1; } else if (type === 'Blue Shield') { this.val = this.crypObj.cryp.blue_shield.value; - this.max = this.crypObj.cryp.blue_shield.value; + this.max = this.crypObj.cryp.blue_shield.max; this.margin = 2; } else if (type === 'Evasion') { this.val = this.crypObj.cryp.evasion.value; - this.max = this.crypObj.cryp.evasion.value; + this.max = this.crypObj.cryp.evasion.max; this.margin = 3; } const { statTextX, statTextY } = statTextCoord(cryp.team, cryp.iter, this.margin);