Impact animations

This commit is contained in:
Ian Gulliver
2021-05-12 05:03:57 +00:00
parent a067dc616f
commit bfa3f71e49
9 changed files with 47 additions and 32 deletions

View File

@@ -24,6 +24,7 @@ export class ProjectileTileFactory extends TileFactory {
total_distance = h1_distance + h2_distance;
vertex_offset = h1_distance / total_distance;
}
this.duration = total_distance / speed * 100;
copy.add_animation('launch-x', [
{
'offset': 0.0,
@@ -37,7 +38,7 @@ export class ProjectileTileFactory extends TileFactory {
'transform': `rotate(${Math.sign(target_relative_x) * total_distance * spin * 10}deg)`,
},
], {
'duration': total_distance / speed * 100,
'duration': this.duration,
'iterations': 1,
});
copy.add_animation('launch-y', [
@@ -56,7 +57,7 @@ export class ProjectileTileFactory extends TileFactory {
'top': `${target_relative_y / tile_factory.height * 100}%`,
},
], {
'duration': total_distance / speed * 100,
'duration': this.duration,
'iterations': 1,
});
this.tile_factory = new LayeredTileFactory([copy]);

View File

@@ -1 +1 @@
{"version":3,"file":"projectile_tile_factory.js","sourceRoot":"","sources":["../ts/projectile_tile_factory.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"projectile_tile_factory.js","sourceRoot":"","sources":["../ts/projectile_tile_factory.ts"],"names":[],"mappings":"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"}

View File

@@ -58,13 +58,13 @@ export const TOWER_FIREBALL1 = new LayeredTileFactory([
]);
export const FIREBALL = new SimpleTileFactory('projectile', 2, 2, 'fireball');
export const FIREBALL_IMPACT = new SequenceTileFactory([
new SimpleTileFactory('surface', 4, 4, 'fireball-impact1'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact2'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact3'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact4'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact5'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact6'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact7'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact8'),
], 100, false);
new SimpleTileFactory('surface', 2, 2, 'fireball-impact1'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact2'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact3'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact4'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact5'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact6'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact7'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact8'),
], 50, false);
//# sourceMappingURL=tiles.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../ts/tiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,SAAS;AACT,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAEtE,QAAQ;AACR,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAEtE,IAAI;AACJ,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAExE,IAAI;AACJ,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;AAE1E,aAAa;AACb,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAElE,WAAW;AACX,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAEzE,QAAQ;AACR,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;AAE5E,MAAM,oBAAoB,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACtF,MAAM,eAAe,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;AAC5E,MAAM,qBAAqB,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAExF,KAAK,MAAM,YAAY,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,EAAE;IACxE,YAAY,CAAC,aAAa,CACxB,MAAM,EACN;QACE;YACE,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,sCAAsC;YAEhD,KAAK,EAAE,GAAG;SACX;QACD;YACE,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,QAAQ;YAElB,KAAK,EAAE,KAAK;SACb;QACD;YACE,QAAQ,EAAE,GAAG;YAEb,KAAK,EAAE,GAAG;SACX;KACF,EACD;QACE,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,CAAC;KAChB,CACF,CAAC;CACH;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,kBAAkB,CAAC;IACpD,oBAAoB;IACpB,eAAe;IACf,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,mBAAmB,CAAC;IACrD,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1D,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;CAC3D,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../ts/tiles.ts"],"names":[],"mappings":"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"}

View File

@@ -75,14 +75,20 @@ export function main() {
grid.add_tile(tiles.BRIDGE_LR, 46, 18);
grid.add_tile(tiles.BRIDGE_LR, 46, 10);
function rand(min, max) {
return Math.random() * (max - min) + min;
return Math.round(Math.random() * (max - min) + min);
}
const tower = grid.add_tile(tiles.TOWER_FIREBALL1, 30, 28);
setInterval(() => {
tower.play('fire');
grid.add_tile(new ProjectileTileFactory(tiles.FIREBALL, rand(-20, 20), rand(-10, 20), 5, 1.5, 5), 31, 27);
const target_relative_x = rand(-20, 20);
const target_relative_y = rand(-10, 20);
const factory = new ProjectileTileFactory(tiles.FIREBALL, target_relative_x, target_relative_y, 5, 1.5, 5);
grid.add_tile(factory, 31, 27);
setTimeout(() => {
console.log('impact!', 31 + target_relative_x, 27 + target_relative_y);
grid.add_tile(tiles.FIREBALL_IMPACT, 31 + target_relative_x, 27 + target_relative_y);
}, factory.duration);
}, 3250);
grid.add_tile(tiles.FIREBALL_IMPACT, 15, 15);
}
;
main();

File diff suppressed because one or more lines are too long

View File

@@ -14,6 +14,7 @@ export class ProjectileTileFactory extends TileFactory {
spin: number;
speed: number;
loft: number;
duration: number;
tile_factory: TileFactory;
@@ -41,6 +42,8 @@ export class ProjectileTileFactory extends TileFactory {
vertex_offset = h1_distance / total_distance;
}
this.duration = total_distance / speed * 100;
copy.add_animation(
'launch-x',
[
@@ -57,7 +60,7 @@ export class ProjectileTileFactory extends TileFactory {
},
],
{
'duration': total_distance / speed * 100,
'duration': this.duration,
'iterations': 1,
},
);
@@ -81,7 +84,7 @@ export class ProjectileTileFactory extends TileFactory {
},
],
{
'duration': total_distance / speed * 100,
'duration': this.duration,
'iterations': 1,
},
);

View File

@@ -78,12 +78,12 @@ export const TOWER_FIREBALL1 = new LayeredTileFactory([
export const FIREBALL = new SimpleTileFactory('projectile', 2, 2, 'fireball');
export const FIREBALL_IMPACT = new SequenceTileFactory([
new SimpleTileFactory('surface', 4, 4, 'fireball-impact1'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact2'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact3'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact4'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact5'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact6'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact7'),
new SimpleTileFactory('surface', 4, 4, 'fireball-impact8'),
], 100, false);
new SimpleTileFactory('surface', 2, 2, 'fireball-impact1'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact2'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact3'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact4'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact5'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact6'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact7'),
new SimpleTileFactory('surface', 2, 2, 'fireball-impact8'),
], 50, false);

View File

@@ -83,16 +83,21 @@ export function main() {
grid.add_tile(tiles.BRIDGE_LR, 46, 10);
function rand(min: number, max: number): number {
return Math.random() * (max - min) + min;
return Math.round(Math.random() * (max - min) + min);
}
const tower = grid.add_tile(tiles.TOWER_FIREBALL1, 30, 28);
setInterval(() => {
tower.play('fire');
grid.add_tile(new ProjectileTileFactory(tiles.FIREBALL, rand(-20, 20), rand(-10, 20), 5, 1.5, 5), 31, 27);
const target_relative_x = rand(-20, 20);
const target_relative_y = rand(-10, 20);
const factory = new ProjectileTileFactory(tiles.FIREBALL, target_relative_x, target_relative_y, 5, 1.5, 5);
grid.add_tile(factory, 31, 27);
setTimeout(() => {
console.log('impact!', 31 + target_relative_x, 27 + target_relative_y);
grid.add_tile(tiles.FIREBALL_IMPACT, 31 + target_relative_x, 27 + target_relative_y);
}, factory.duration);
}, 3250);
grid.add_tile(tiles.FIREBALL_IMPACT, 15, 15);
};
main();