1
0
Fork 0

Add drone destroy animation

This commit is contained in:
Michaël Lemaire 2017-05-11 01:13:56 +02:00
parent 5d4315f1ca
commit 17b51bf4e0
3 changed files with 30 additions and 3 deletions

4
TODO
View file

@ -40,13 +40,15 @@
* AI: evaluate based on simulated list of effects * AI: evaluate based on simulated list of effects
* Map: remove jump links that cross the radius of other systems * Map: remove jump links that cross the radius of other systems
* Map: disable interaction (zoom, selection) while moving/jumping * Map: disable interaction (zoom, selection) while moving/jumping
* Add ship personality (with icons to identify ?) * Add ship personality (with icons to identify ?), with reaction to battle and map movements
* Add factions and reputation * Add factions and reputation
* Tutorial * Tutorial
* Missions/quests system * Missions/quests system
* Main story arc * Main story arc
Later, if possible: Later, if possible:
* Animated arena background, instead of big picture
* Dynamic music composition
* Replays * Replays
* Multiplayer * Multiplayer
* Formation or deployment phase * Formation or deployment phase

View file

@ -190,12 +190,14 @@ module TS.SpaceTac.UI {
} }
} }
// Remove a destroyed drone /**
* Remove a destroyed drone
*/
removeDrone(drone: Drone): void { removeDrone(drone: Drone): void {
let sprite = this.findDrone(drone); let sprite = this.findDrone(drone);
if (sprite) { if (sprite) {
remove(this.drone_sprites, sprite); remove(this.drone_sprites, sprite);
sprite.destroy(); sprite.setDestroyed();
} else { } else {
console.error("Drone not found in arena for removal", drone); console.error("Drone not found in arena for removal", drone);
} }

View file

@ -17,6 +17,9 @@ module TS.SpaceTac.UI {
// Activation effect // Activation effect
activation: Phaser.Graphics; activation: Phaser.Graphics;
// Destroyed state
destroyed = false;
constructor(battleview: BattleView, drone: Drone) { constructor(battleview: BattleView, drone: Drone) {
super(battleview.game); super(battleview.game);
@ -52,6 +55,10 @@ module TS.SpaceTac.UI {
* Return the animation duration * Return the animation duration
*/ */
setApplied(): number { setApplied(): number {
if (this.destroyed) {
return 0;
}
this.activation.scale.set(0.001, 0.001); this.activation.scale.set(0.001, 0.001);
this.activation.visible = true; this.activation.visible = true;
let tween = this.game.tweens.create(this.activation.scale).to({ x: 1, y: 1 }, 500); let tween = this.game.tweens.create(this.activation.scale).to({ x: 1, y: 1 }, 500);
@ -59,5 +66,21 @@ module TS.SpaceTac.UI {
tween.start(); tween.start();
return 500; return 500;
} }
/**
* Set the sprite as destroyed
*/
setDestroyed() {
this.destroyed = true;
this.game.tweens.create(this).to({ alpha: 0.3 }, 300).delay(200).start();
let tween = this.game.tweens.create(this.radius.scale).to({ x: 0, y: 0 }, 500);
tween.onComplete.addOnce(() => {
this.radius.destroy();
this.activation.destroy();
});
tween.start();
}
} }
} }