#include "effect_system.h" #include "game.h" void EffectSystem::tick(double dt) { if (game_.isGameplayPaused()) return; screenFade_.tick(dt); mapFade_.tick(dt); circleEffect_.tick(dt); if (cameraShaking_) { cameraShakeTimer_.accumulate(dt); while (cameraShakeTimer_.step()) { cameraShakeOn_ = !cameraShakeOn_; } if (cameraShakeOn_) { cameraShakeOffset_.x() = 8; cameraShakeOffset_.y() = 8; } else { cameraShakeOffset_.x() = 0; cameraShakeOffset_.y() = 0; } } } void EffectSystem::fadeScreen(int length, double amount) { screenFade_.start(length, amount); } void EffectSystem::fadeMap(int length, double amount) { mapFade_.start(length, amount); } void EffectSystem::shakeCamera(int period) { cameraShaking_ = true; cameraShakeOffset_ = { 0, 0 }; cameraShakeOn_ = false; cameraShakeTimer_ = Timer(period); } void EffectSystem::stopShakingCamera() { cameraShaking_ = false; cameraShakeOffset_ = { 0, 0 }; } void EffectSystem::circleTransition(int length, double amount) { circleEffect_.start(length, amount); }