]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/gamemodes/gamemode/tka/cl_tka.qc
Merge branch 'z411/bai-server' into LegendaryGuard/bai_mod
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / gamemodes / gamemode / tka / cl_tka.qc
1 #include "cl_tka.qh"
2
3 #include <client/draw.qh>
4 #include <client/hud/panel/modicons.qh>
5
6 // Keepaway HUD mod icon
7 int tkaball_prevstatus; // last remembered status
8 float tkaball_statuschange_time; // time when the status changed
9
10 // we don't need to reset for team keepaway since it immediately
11 // autocorrects prevstatus as to if the player has the ball or not
12
13 void HUD_Mod_TeamKeepaway(vector pos, vector mySize)
14 {
15         mod_active = 1; // team keepaway should always show the mod HUD
16
17         float tkaball_alpha = blink(0.85, 0.15, 5);
18
19         int stat_items = STAT(TKA_BALLSTATUS);
20         int tkaball = (stat_items & TKA_BALL_CARRYING);
21
22         if(tkaball != tkaball_prevstatus)
23         {
24                 tkaball_statuschange_time = time;
25                 tkaball_prevstatus = tkaball;
26         }
27
28         vector tkaball_pos, tkaball_size;
29
30         if(mySize.x > mySize.y) {
31                 tkaball_pos = pos + eX * 0.25 * mySize.x;
32                 tkaball_size = vec2(0.5 * mySize.x, mySize.y);
33         } else {
34                 tkaball_pos = pos + eY * 0.25 * mySize.y;
35                 tkaball_size = vec2(mySize.x, 0.5 * mySize.y);
36         }
37
38         float tkaball_statuschange_elapsedtime = time - tkaball_statuschange_time;
39         float f = bound(0, tkaball_statuschange_elapsedtime*2, 1);
40
41         if(tkaball_prevstatus && f < 1)
42                 drawpic_aspect_skin_expanding(tkaball_pos, "keepawayball_carrying", tkaball_size, '1 1 1', panel_fg_alpha * tkaball_alpha, DRAWFLAG_NORMAL, f);
43
44         if(stat_items & TKA_BALL_CARRYING) // TODO: unique team based icon while carrying
45                 drawpic_aspect_skin(pos, "keepawayball_carrying", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * tkaball_alpha * f, DRAWFLAG_NORMAL);
46         else if(stat_items & TKA_BALL_TAKEN_RED)
47                 drawpic_aspect_skin(pos, "tka_taken_red", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * tkaball_alpha * f, DRAWFLAG_NORMAL);
48         else if(stat_items & TKA_BALL_TAKEN_RED)
49                 drawpic_aspect_skin(pos, "tka_taken_blue", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * tkaball_alpha * f, DRAWFLAG_NORMAL);
50         else if(stat_items & TKA_BALL_TAKEN_RED)
51                 drawpic_aspect_skin(pos, "tka_taken_yellow", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * tkaball_alpha * f, DRAWFLAG_NORMAL);
52         else if(stat_items & TKA_BALL_TAKEN_RED)
53                 drawpic_aspect_skin(pos, "tka_taken_pink", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * tkaball_alpha * f, DRAWFLAG_NORMAL);
54
55 }