1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_CLIENT_COMPONENTS_EFFECTS_H
4#define GAME_CLIENT_COMPONENTS_EFFECTS_H
5
6#include <base/vmath.h>
7
8#include <game/client/component.h>
9
10class CEffects : public CComponent
11{
12 bool m_Add5hz;
13 bool m_Add50hz;
14 bool m_Add100hz;
15
16public:
17 CEffects();
18 virtual int Sizeof() const override { return sizeof(*this); }
19
20 virtual void OnRender() override;
21
22 void BulletTrail(vec2 Pos, float Alpha = 1.f, float TimePassed = 0.f);
23 void SmokeTrail(vec2 Pos, vec2 Vel, float Alpha = 1.f, float TimePassed = 0.f);
24 void SkidTrail(vec2 Pos, vec2 Vel, float Alpha = 1.0f);
25 void Explosion(vec2 Pos, float Alpha = 1.0f);
26 void HammerHit(vec2 Pos, float Alpha = 1.0f);
27 void AirJump(vec2 Pos, float Alpha = 1.0f);
28 void DamageIndicator(vec2 Pos, vec2 Dir, float Alpha = 1.0f);
29 void ResetDamageIndicator();
30 void PlayerSpawn(vec2 Pos, float Alpha = 1.0f);
31 void PlayerDeath(vec2 Pos, int ClientId, float Alpha = 1.0f);
32 void PowerupShine(vec2 Pos, vec2 Size, float Alpha = 1.0f);
33 void FreezingFlakes(vec2 Pos, vec2 Size, float Alpha = 1.0f);
34 void FinishConfetti(vec2 Pos, float Alpha = 1.0f);
35
36 void Update();
37};
38#endif
39