From e34372891e0b87271f184269650e900951490659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Tue, 3 Oct 2017 22:56:25 +0200 Subject: [PATCH] Added laser effect --- TODO.md | 2 +- graphics/exported/battle/effects/laser.png | Bin 0 -> 2007 bytes graphics/ui/weaponeffects.svg | 42 +++++++-- out/assets/images/battle/arena/blast.png | Bin 90113 -> 0 bytes package.json | 2 +- src/core/ArenaLocation.spec.ts | 5 ++ src/core/ArenaLocation.ts | 14 +++ src/ui/Preload.ts | 1 - src/ui/battle/Arena.ts | 11 --- src/ui/battle/ArenaShip.ts | 4 + src/ui/battle/Targetting.ts | 4 +- src/ui/battle/WeaponEffect.spec.ts | 62 +++++++++++--- src/ui/battle/WeaponEffect.ts | 95 ++++++++++++++------- src/ui/common/Animations.ts | 2 +- yarn.lock | 6 +- 15 files changed, 185 insertions(+), 65 deletions(-) create mode 100644 graphics/exported/battle/effects/laser.png delete mode 100644 out/assets/images/battle/arena/blast.png diff --git a/TODO.md b/TODO.md index 2f5a10e..0429c7f 100644 --- a/TODO.md +++ b/TODO.md @@ -77,8 +77,8 @@ Ships models and equipments Artificial Intelligence ----------------------- +* Work on a simple representation of battle state, simulating effects on it, evaluating it, and only reevaluating parts that changed * Use a first batch of producers, and only if no "good" move has been found, go on with some infinite producers -* Evaluate buffs/debuffs * Abandon fight if the AI judges there is no hope of victory * Add combination of random small move and actual maneuver, as producer * New duel page with producers/evaluators tweaking diff --git a/graphics/exported/battle/effects/laser.png b/graphics/exported/battle/effects/laser.png new file mode 100644 index 0000000000000000000000000000000000000000..8632674f704fc63e750ec0646cebedb6b9b27b93 GIT binary patch literal 2007 zcmV;|2PpW7P)6xy~^r9OeKp;#nxFK2JqARPqr>3JfFRCi@37|kcN6+FvZ|z&eyv66O z?TEg`iTES@w4fgz&loTL&-Vbl>7~~%yu@HI7!1B1-T<$gYVG~}`~j!#!=Hd3CW?Oo zwv9K6w#ECcJy5*b;=euo{$ZXEVgLlCN8og?Of>a;afc$7z_r3!B@fjynE0lUbczmS#{#X(I`YQ ztL}`tawVo>R$>&>+vF`pBXNp7$s39tNu$_P55oC9#a{uQil+*U$1B92G0upYRrFrr zEEv}q=U2`you!E-z3SUFj?So5hNvaDM(3bj`1)r6x4^eQ!g*68)( zN_H?93Nh*jXXbM6>Tmn~+>MRN-1s4nU zZ-aLv6Ukcwqd1W4DZVEkuP{~Mfbl29JB$m)?=em|NBnlaX*auctfsSa+8d2(J5&?2 zUH9BId_q2j*$#4|c>^`v8Zt-a!W=UTnIRd5kO`2Rk%e#ogL|R0$Di#e;Q|9Bw-&f+NAdNp>XHB>$j*RQ<@ruNWQi4bI&vjGS)To#%9AIdQCsnD$HMesbUU z^h0yoqdbJSBho?AKHLwI_PFg$no_)3=H3`qa45plwJM{=j8Q}1~v-<_y*_2%cvY=2pVmGGN| z<85&Vd`Iywl6gG_Tr*Jb&m0%*#><%S^SbTZIJODd4zw43039&DQnPE9U1N5Q>ssbl z+5AdoN0}ee>>zJD+;-(YrP(AmFSCZ3VQxrPX1ZTNmYmWigR)10s3*-}Fc=IzGwOq& zfLfQ3DvAoKsCCtt>oPJU$xLPTj10?M6t<9g$*zmi=CYWTc`Do4DMuenrl-#i27|%i zOF=J&U{Ct1M(FvY+O*|=@d-}m+IB6RT2o`mTPbg5VsGkamviZcyEmC5voMSZD}uyP zSs4~d^-3<~dB$olx4p7<3Qc7`m0L42$INjv$t)$qOp*i=CZxxTs^=eYFc=I5pCONu zbGEJ3_c^1rot%|sn6d57{q=}_GdQtWZtA?hNw#LTnj0pUy9$}9)@)X7;t155 z-MXQniG#sl@TIXOsotZ?D%cWrs0gXOvOyZ8QFQ)`UUAi*@D@^C1#JU<-9w*vdSv_ST7y zm3h233J^a&a?Y7C7L4C*?Ga~rW$e;Vp6%FK%>nL>0#pqzUt;pf%N8r2vRQWwD{Ix% zy*BTIrq))I01DCC!}qy24|p;#7z_r3FOU8{d@u!gxYt?LLe)Ee{2n)~e<`zBtA zUd9!A7iHI3;(*9a029so!)hz{lFi%}%vmEFXD}EHzG4pdmU5fz+=q5^GjKT1YtD?Q z)n1NzXR2#ga!1jW_}gM4xqW0cH*F;x|F6~D7JXW?@*lQ#c{In1M&&?%Jw$OZ7z_r_ pX>XoYP6AI1%bB+Lr%!KI{$H9Mvvp5{y?X!v002ovPDHLkV1h{rvbq2O literal 0 HcmV?d00001 diff --git a/graphics/ui/weaponeffects.svg b/graphics/ui/weaponeffects.svg index 07e3fad..073bdc4 100644 --- a/graphics/ui/weaponeffects.svg +++ b/graphics/ui/weaponeffects.svg @@ -15,7 +15,7 @@ viewBox="0 0 128 128" version="1.1" id="svg8" - inkscape:version="0.92.0 r15299" + inkscape:version="0.92.1 r15371" sodipodi:docname="weaponeffects.svg" inkscape:export-filename="/tmp/image.png" inkscape:export-xdpi="96.000008" @@ -198,6 +198,19 @@ r="30.446428" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0997067,0,0,1.0997067,-4.1425418,-8.3253595)" /> + + + + inkscape:label="Stasis" + style="display:none"> + + + diff --git a/out/assets/images/battle/arena/blast.png b/out/assets/images/battle/arena/blast.png deleted file mode 100644 index e3dc23d29716aaafa0aa24dec9eb128de2a3495c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90113 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�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 !ship.isDead()); - } - return base.filter(ship => arenaInside(ship, area, border_inclusive)); - } - /** * Get the current MainUI instance */ diff --git a/src/ui/battle/ArenaShip.ts b/src/ui/battle/ArenaShip.ts index 17fd140..5a264ee 100644 --- a/src/ui/battle/ArenaShip.ts +++ b/src/ui/battle/ArenaShip.ts @@ -133,6 +133,10 @@ module TK.SpaceTac.UI { this.battleview.log_processor.registerForShip(ship, event => this.processShipLogEvent(event)); } + jasmineToString(): string { + return `ArenaShip ${this.ship.jasmineToString()}`; + } + /** * Process a battle log event */ diff --git a/src/ui/battle/Targetting.ts b/src/ui/battle/Targetting.ts index 0104dbf..ac241f4 100644 --- a/src/ui/battle/Targetting.ts +++ b/src/ui/battle/Targetting.ts @@ -161,8 +161,8 @@ module TK.SpaceTac.UI { } if (radius) { - area.lineStyle(2, 0x90481e, 0.6); - area.beginFill(0x90481e, 0.2); + area.lineStyle(2, color, 0.6); + area.beginFill(color, 0.2); if (angle) { area.arc(0, 0, radius, angle, -angle, true); } else { diff --git a/src/ui/battle/WeaponEffect.spec.ts b/src/ui/battle/WeaponEffect.spec.ts index 74f52cf..ca7a9d2 100644 --- a/src/ui/battle/WeaponEffect.spec.ts +++ b/src/ui/battle/WeaponEffect.spec.ts @@ -33,31 +33,45 @@ module TK.SpaceTac.UI.Specs { let battleview = testgame.battleview; battleview.timer = new Timer(); + let ship = nn(battleview.battle.playing_ship); + let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromShip(ship), new Equipment()); + effect.gunEffect(); + + let layer = battleview.arena.layer_weapon_effects; + expect(layer.children.length).toBe(1); + expect(layer.children[0] instanceof Phaser.Particles.Arcade.Emitter).toBe(true); + }); + + it("displays shield and hull effect on impacted ships", function () { + let battleview = testgame.battleview; + battleview.timer = new Timer(); + let ship = nn(battleview.battle.playing_ship); let sprite = nn(battleview.arena.findShipSprite(ship)); ship.setArenaPosition(50, 30); sprite.position.set(50, 30); sprite.hull_bar.setValue(10, 10); sprite.shield_bar.setValue(0, 10); - let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromShip(ship), new Equipment()); + + let weapon = new Equipment(); + weapon.action = new TriggerAction(weapon, [new DamageEffect()], 1, 500); + spyOn(weapon.action, "getImpactedShips").and.returnValue([ship]); + + let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromShip(ship), weapon); + spyOn(effect, "getEffectForWeapon").and.returnValue(() => 100); let mock_shield_impact = spyOn(effect, "shieldImpactEffect").and.stub(); let mock_hull_impact = spyOn(effect, "hullImpactEffect").and.stub(); - effect.gunEffect(); - - let layer = battleview.arena.layer_weapon_effects; - expect(layer.children.length).toBe(1); - - expect(layer.children[0] instanceof Phaser.Particles.Arcade.Emitter).toBe(true); + effect.start(); expect(mock_shield_impact).toHaveBeenCalledTimes(0); expect(mock_hull_impact).toHaveBeenCalledTimes(1); - expect(mock_hull_impact).toHaveBeenCalledWith(jasmine.objectContaining({ x: 0, y: 0 }), jasmine.objectContaining({ x: 50, y: 30 }), 100, 800); + expect(mock_hull_impact).toHaveBeenCalledWith(jasmine.objectContaining({ x: 0, y: 0 }), jasmine.objectContaining({ x: 50, y: 30 }), 40, 400); sprite.shield_bar.setValue(10, 10); - effect.gunEffect(); + effect.start(); expect(mock_shield_impact).toHaveBeenCalledTimes(1); - expect(mock_shield_impact).toHaveBeenCalledWith(jasmine.objectContaining({ x: 0, y: 0 }), jasmine.objectContaining({ x: 50, y: 30 }), 100, 800, true); + expect(mock_shield_impact).toHaveBeenCalledWith(jasmine.objectContaining({ x: 0, y: 0 }), jasmine.objectContaining({ x: 50, y: 30 }), 40, 800, false); expect(mock_hull_impact).toHaveBeenCalledTimes(1); }); @@ -68,7 +82,7 @@ module TK.SpaceTac.UI.Specs { let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromLocation(50, 50), new Equipment()); effect.gunEffect(); - checkEmitters("gun effect started", 2); + checkEmitters("gun effect started", 1); fastForward(6000); checkEmitters("gun effect ended", 0); @@ -77,5 +91,31 @@ module TK.SpaceTac.UI.Specs { fastForward(8500); checkEmitters("hull effect ended", 0); }); + + it("adds a laser effect", function () { + let battleview = testgame.battleview; + battleview.timer = new Timer(); + + let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromLocation(31, 49), new Equipment()); + + let result = effect.angularLaser({ x: 20, y: 30 }, 300, Math.PI / 4, -Math.PI / 2, 5); + expect(result).toBe(200); + + let layer = battleview.arena.layer_weapon_effects; + expect(layer.children.length).toBe(1); + expect(layer.children[0] instanceof Phaser.Image).toBe(true, "is image"); + let image = layer.children[0]; + expect(image.name).toEqual("battle-effects-laser"); + expect(image.width).toBe(300); + expect(image.x).toEqual(20); + expect(image.y).toEqual(30); + expect(image.rotation).toBeCloseTo(Math.PI / 4, 0.000001); + + let values = battleview.animations.simulate(image, "rotation", 4, result); + expect(values[0]).toBeCloseTo(Math.PI / 4, 0.000001); + expect(values[1]).toBeCloseTo(0, 0.000001); + expect(values[2]).toBeCloseTo(-Math.PI / 4, 0.000001); + expect(values[3]).toBeCloseTo(-Math.PI / 2, 0.000001); + }); }); } diff --git a/src/ui/battle/WeaponEffect.ts b/src/ui/battle/WeaponEffect.ts index 578e943..41bfa93 100644 --- a/src/ui/battle/WeaponEffect.ts +++ b/src/ui/battle/WeaponEffect.ts @@ -35,9 +35,6 @@ module TK.SpaceTac.UI { // Weapon used private weapon: Equipment - // Effect in use - private effect: Function - constructor(arena: Arena, ship: Ship, target: Target, weapon: Equipment) { this.ui = arena.game; this.arena = arena; @@ -47,7 +44,6 @@ module TK.SpaceTac.UI { this.ship = ship; this.target = target; this.weapon = weapon; - this.effect = this.getEffectForWeapon(weapon.code); this.source = this.getCoords(Target.newFromShip(this.ship)); this.destination = this.getCoords(this.target); @@ -59,11 +55,45 @@ module TK.SpaceTac.UI { * Returns the duration of the effect. */ start(): number { - if (this.effect) { - return this.effect(); - } else { - return 0; + // Fire effect + let effect = this.getEffectForWeapon(this.weapon.code, this.weapon.action); + let duration = effect(); + + // Damage effect + let action = this.weapon.action; + if (action instanceof TriggerAction && any(action.effects, effect => effect instanceof DamageEffect)) { + let ships = action.getImpactedShips(this.ship, this.target, this.source); + let source = action.blast ? this.target : this.source; + let damage_duration = this.damageEffect(source, ships, duration * 0.4, this.weapon.code == "gatlinggun"); + duration = Math.max(duration, damage_duration); } + + return duration; + } + + /** + * Add a damage effect on ships impacted by a weapon + */ + damageEffect(source: IArenaLocation, ships: Ship[], base_delay = 0, shield_flares = false): number { + let duration = 0; + + // TODO For each ship, delay should depend on fire effect animation + let delay = base_delay; + + ships.forEach(ship => { + let sprite = this.arena.findShipSprite(ship); + if (sprite) { + if (sprite.getValue("shield") > 0) { + this.shieldImpactEffect(source, sprite, delay, 800, shield_flares); + duration = Math.max(duration, delay + 800); + } else { + this.hullImpactEffect(source, sprite, delay, 400); + duration = Math.max(duration, delay + 400); + } + } + }); + + return duration; } /** @@ -85,12 +115,17 @@ module TK.SpaceTac.UI { /** * Get the function that will be called to start the visual effect */ - getEffectForWeapon(weapon: string): Function { + getEffectForWeapon(weapon: string, action: BaseAction | null): () => number { switch (weapon) { case "gatlinggun": - return this.gunEffect.bind(this); + return () => this.gunEffect(); + case "prokhorovlaser": + let trigger = nn(action); + let angle = arenaAngle(this.source, this.target); + let dangle = radians(trigger.angle) * 0.5; + return () => this.angularLaser(this.source, trigger.range, angle - dangle, angle + dangle); default: - return this.defaultEffect.bind(this); + return () => this.defaultEffect(); } } @@ -185,22 +220,28 @@ module TK.SpaceTac.UI { }); tween.start(); - if (blast_radius > 0 && this.weapon.action instanceof TriggerAction) { - if (any(this.weapon.action.effects, effect => effect instanceof DamageEffect)) { - let ships = this.arena.getShipsInCircle(new ArenaCircleArea(this.destination.x, this.destination.y, blast_radius)); - ships.forEach(sprite => { - if (sprite.getValue("shield") > 0) { - this.shieldImpactEffect(this.target, sprite, 1200, 800); - } else { - this.hullImpactEffect(this.target, sprite, 1200, 400); - } - }); - } - } - return projectile_duration + (blast_radius ? 1500 : 0); } + /** + * Laser effect, scanning from one angle to the other + */ + angularLaser(source: IArenaLocation, radius: number, start_angle: number, end_angle: number, speed = 1): number { + let duration = 1000 / speed; + + let laser = this.view.newImage("battle-effects-laser", source.x, source.y); + laser.anchor.set(0, 0.5); + laser.rotation = start_angle; + laser.scale.set(radius / laser.width); + this.layer.add(laser); + + let tween = this.view.tweens.create(laser).to({ rotation: end_angle }, duration); + tween.onComplete.addOnce(() => laser.destroy()); + tween.start(); + + return duration; + } + /** * Submachine gun effect (quick chain of small bullets) */ @@ -230,12 +271,6 @@ module TK.SpaceTac.UI { this.layer.add(emitter); this.timer.schedule(5000, () => emitter.destroy()); - if (has_shield) { - this.shieldImpactEffect(this.source, this.target, 100, 800, true); - } else { - this.hullImpactEffect(this.source, this.target, 100, 800); - } - return 1000; } } diff --git a/src/ui/common/Animations.ts b/src/ui/common/Animations.ts index eb5c490..ab98971 100644 --- a/src/ui/common/Animations.ts +++ b/src/ui/common/Animations.ts @@ -58,7 +58,7 @@ module TK.SpaceTac.UI { simulate(obj: any, property: string, points = 5, duration = 1000): number[] { let tween = first(this.tweens.getAll().concat((this.tweens)._add), tween => tween.target === obj && !tween.pendingDelete); if (tween) { - return [obj[property]].concat(tween.generateData(points - 1).map(data => data[property])); + return [obj[property]].concat(tween.generateData(1000 * (points - 1) / duration).map(data => data[property])); } else { return []; } diff --git a/yarn.lock b/yarn.lock index 1e46572..a3cb002 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1315,7 +1315,11 @@ istanbul@0.4.5, istanbul@^0.4.0: which "^1.1.1" wordwrap "^1.0.0" -jasmine-core@2.8.0, jasmine-core@~2.8.0: +jasmine-core@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" + +jasmine-core@~2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"