Virtue-Slots/objects/LossAnimation.js

45 lines
1.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export class LossAnimation {
// sinBoxCenter: { x, y } screen position of the Sin fund box
play(scene, originX, originY, sinBoxCenter, onComplete) {
// Pick a random demon sprite (frames 05)
const frame = Phaser.Math.Between(0, 5);
const demon = scene.add.sprite(originX, originY, 'demon_sprites', frame)
.setOrigin(0.5, 0.5);
// Screen tint to dark red briefly
scene.cameras.main.flash(800, 150, 0, 0, true);
// Play a random no-match voice line
scene.sound.play(`sfx-nomatch-${Phaser.Math.Between(1, 6)}`);
// Travel from slot machine to sin box
scene.tweens.add({
targets: demon,
x: sinBoxCenter.x,
y: sinBoxCenter.y,
duration: 2800,
ease: 'Cubic.easeInOut',
onComplete: () => {
scene.tweens.add({
targets: demon,
alpha: 0,
duration: 600,
onComplete: () => {
demon.destroy();
if (onComplete) onComplete();
}
});
}
});
// Rock counter-clockwise and clockwise while travelling
scene.tweens.add({
targets: demon,
angle: { from: -8, to: 8 },
duration: 400,
yoyo: true,
repeat: 6
});
}
}