From 07f8ef4d2077c9307bf60b39b759d670a21845c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Wed, 8 Feb 2017 01:18:54 +0100 Subject: [PATCH] Added repair drone graphics and description --- TODO | 1 - graphics/ui/actions.svg | 61 +- graphics/ui/drones.svg | 589 ++++++++++++++++++ .../battle/actions/deploy-repairdrone.png | Bin 0 -> 42959 bytes src/game/Equipment.spec.ts | 2 +- src/game/Equipment.ts | 2 +- src/game/effects/ValueEffect.spec.ts | 8 + src/game/effects/ValueEffect.ts | 5 + src/game/equipments/RepairDrone.spec.ts | 16 + src/view/Preload.ts | 1 + 10 files changed, 654 insertions(+), 31 deletions(-) create mode 100644 graphics/ui/drones.svg create mode 100644 out/assets/images/battle/actions/deploy-repairdrone.png diff --git a/TODO b/TODO index bfd0d4d..ed22cb4 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,6 @@ * Restore serialization * Drones: add hooks on game events * Drones: add sprite, radius and tooltip -* Repair drone: add graphics and proper description * Allow to cancel last moves * Effect should be random in a range (eg. "damage target 50-75") * Add an overload/cooling system diff --git a/graphics/ui/actions.svg b/graphics/ui/actions.svg index 7afe7eb..1908227 100644 --- a/graphics/ui/actions.svg +++ b/graphics/ui/actions.svg @@ -10,15 +10,16 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="256" - height="256" + width="273.06668" + height="273.06668" id="svg2" version="1.1" - inkscape:version="0.91 r13725" + inkscape:version="0.92.0 r15299" sodipodi:docname="actions.svg" inkscape:export-filename="/home/michael/workspace/perso/spacetac/out/assets/images/battle/actions/fire-submunitionmissile.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> + inkscape:export-ydpi="90" + viewBox="0 0 256 256"> @@ -172,9 +173,9 @@ xlink:href="#linearGradient10423" id="linearGradient10429" x1="87.630737" - y1="128.00001" + y1="128.00002" x2="239.40616" - y2="128.00001" + y2="128.00002" gradientUnits="userSpaceOnUse" /> + height="2.0060079"> @@ -262,7 +263,7 @@ height="168.81219" x="-227.39804" y="-205.73518" - transform="matrix(0,1,-1,0,0,0)" /> + transform="rotate(90)" /> + id="grid3004" + originx="0" + originy="0" + spacingx="1" + spacingy="1" /> @@ -334,7 +339,7 @@ image/svg+xml - + @@ -350,13 +355,13 @@ sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" id="path3935" - d="m 21.185297,881.63628 73.244367,128.17762 0,-79.34804 z" + d="M 21.185297,881.63628 94.429664,1009.8139 V 930.46586 Z" style="fill:#39c731;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> @@ -367,13 +372,13 @@ style="display:none"> @@ -409,7 +414,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/out/assets/images/battle/actions/deploy-repairdrone.png b/out/assets/images/battle/actions/deploy-repairdrone.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c48ddf37018ed751d6dfbb4d71f1096f6c249a GIT binary patch literal 42959 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 literal 0 HcmV?d00001 diff --git a/src/game/Equipment.spec.ts b/src/game/Equipment.spec.ts index 6feb3e0..49f4918 100644 --- a/src/game/Equipment.spec.ts +++ b/src/game/Equipment.spec.ts @@ -41,7 +41,7 @@ module TS.SpaceTac.Game.Specs { expect(equipment.getActionDescription()).toEqual("- 50 damage on target"); equipment.blast = 20; - expect(equipment.getActionDescription()).toEqual("- 50 damage on all ships in 20km of impact"); + expect(equipment.getActionDescription()).toEqual("- 50 damage in 20km radius"); equipment.blast = 0; equipment.target_effects.push(new StickyEffect(new AttributeLimitEffect("shield_capacity", 200), 3)); diff --git a/src/game/Equipment.ts b/src/game/Equipment.ts index 054a556..7a578b3 100644 --- a/src/game/Equipment.ts +++ b/src/game/Equipment.ts @@ -81,7 +81,7 @@ module TS.SpaceTac.Game { } else { var result: string[] = []; this.target_effects.forEach(effect => { - let suffix = this.blast ? `on all ships in ${this.blast}km of impact` : "on target"; + let suffix = this.blast ? `in ${this.blast}km radius` : "on target"; if (effect instanceof StickyEffect) { suffix = `for ${effect.duration} turn${effect.duration > 1 ? "s" : ""} ${suffix}`; } diff --git a/src/game/effects/ValueEffect.spec.ts b/src/game/effects/ValueEffect.spec.ts index f971327..b8ffd35 100644 --- a/src/game/effects/ValueEffect.spec.ts +++ b/src/game/effects/ValueEffect.spec.ts @@ -14,5 +14,13 @@ module TS.SpaceTac.Game { effect.applyOnShip(ship); expect(ship.values.shield.get()).toEqual(80); }); + + it("has a description", function () { + let effect = new ValueEffect("power", 12); + expect(effect.getDescription()).toEqual("power +12"); + + effect = new ValueEffect("power", -4); + expect(effect.getDescription()).toEqual("power -4"); + }); }); } diff --git a/src/game/effects/ValueEffect.ts b/src/game/effects/ValueEffect.ts index 9a28183..e97adc7 100644 --- a/src/game/effects/ValueEffect.ts +++ b/src/game/effects/ValueEffect.ts @@ -31,5 +31,10 @@ module TS.SpaceTac.Game { getFullCode(): string { return `${this.code}-${this.valuetype}`; } + + getDescription(): string { + let attrname = SHIP_VALUES[this.valuetype].name; + return `${attrname} ${this.value > 0 ? "+" : "-"}${Math.abs(this.value)}`; + } } } diff --git a/src/game/equipments/RepairDrone.spec.ts b/src/game/equipments/RepairDrone.spec.ts index e12f1b8..f006562 100644 --- a/src/game/equipments/RepairDrone.spec.ts +++ b/src/game/equipments/RepairDrone.spec.ts @@ -5,6 +5,22 @@ module TS.SpaceTac.Game.Equipments { let equipment = template.generateFixed(0); expect(equipment.target_effects).toEqual([new ValueEffect("hull", 10)]); + + let battle = new Battle(); + let ship = new Ship(); + battle.playing_ship = ship; + TestTools.setShipAP(ship, 10); + let result = equipment.action.apply(battle, ship, new Target(5, 5, null)); + expect(result).toBe(true); + + expect(battle.drones.length).toBe(1); + let drone = battle.drones[0]; + ship.setAttribute("hull_capacity", 100); + ship.setValue("hull", 85); + drone.singleApply(ship); + expect(ship.getValue("hull")).toBe(95); + drone.singleApply(ship); + expect(ship.getValue("hull")).toBe(100); }); }); } diff --git a/src/view/Preload.ts b/src/view/Preload.ts index 4ea0fa4..bbc2e85 100644 --- a/src/view/Preload.ts +++ b/src/view/Preload.ts @@ -53,6 +53,7 @@ module TS.SpaceTac.View { this.loadImage("battle/actions/fire-gatlinggun.png"); this.loadImage("battle/actions/fire-powerdepleter.png"); this.loadImage("battle/actions/fire-submunitionmissile.png"); + this.loadImage("battle/actions/deploy-repairdrone.png"); this.loadImage("battle/weapon/bullet.png"); this.loadImage("battle/attributes/power.png"); this.loadImage("battle/attributes/effect-increase.png");