2021-06-24 00:43:13 +02:00
|
|
|
#include "classicdyinganimationscenario.h"
|
|
|
|
#include "classicsprite.h"
|
|
|
|
|
|
|
|
void ClassicDyingAnimationScenario::launch(const std::shared_ptr<ClassicSprite> sprite, const microsec& time_begin, const microsec &time_end)
|
|
|
|
{
|
|
|
|
_sprite = sprite;
|
|
|
|
_time_begin = time_begin;
|
|
|
|
_time_end = time_end;
|
|
|
|
|
2021-10-04 16:20:24 +02:00
|
|
|
_sprite->setColor(sf::Color(140, 140, 140));
|
|
|
|
_sprite->setTrailColor(sf::Color(0, 0, 0, 0));
|
2021-11-24 19:21:30 +01:00
|
|
|
_sprite->setTrailCoordinates(Coordinates(0, 0));
|
2021-06-24 00:43:13 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void ClassicDyingAnimationScenario::update(const microsec& music_offset)
|
|
|
|
{
|
2021-07-27 20:18:37 +02:00
|
|
|
(void) music_offset;
|
2021-10-04 16:20:24 +02:00
|
|
|
|
|
|
|
auto fill_color = _sprite->color();
|
|
|
|
|
|
|
|
if (fill_color.a == 0)
|
|
|
|
{
|
|
|
|
fill_color.a = 0;
|
|
|
|
_sprite->setColor(fill_color);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
auto new_alpha = fill_color.a - 15;
|
|
|
|
fill_color.a = new_alpha < 0 ? 0 : new_alpha;
|
|
|
|
|
|
|
|
_sprite->setColor(fill_color);
|
2021-06-24 00:43:13 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
bool ClassicDyingAnimationScenario::isDone() const
|
|
|
|
{
|
2021-10-04 16:20:24 +02:00
|
|
|
return _sprite->color().a == 0;
|
2021-06-24 00:43:13 +02:00
|
|
|
}
|