]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/nades.qh
Merge branch 'master' into terencehill/weapon_panel_fix
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / nades.qh
1 #ifndef NADES_H
2 #define NADES_H
3
4 .float healer_lifetime;
5 .float healer_radius;
6
7 // use slots 70-100
8 const int PROJECTILE_NADE = 71;
9 const int PROJECTILE_NADE_BURN = 72;
10 const int PROJECTILE_NADE_NAPALM = 73;
11 const int PROJECTILE_NADE_NAPALM_BURN = 74;
12 const int PROJECTILE_NAPALM_FOUNTAIN = 75;
13 const int PROJECTILE_NADE_ICE = 76;
14 const int PROJECTILE_NADE_ICE_BURN = 77;
15 const int PROJECTILE_NADE_TRANSLOCATE = 78;
16 const int PROJECTILE_NADE_SPAWN = 79;
17 const int PROJECTILE_NADE_HEAL = 80;
18 const int PROJECTILE_NADE_HEAL_BURN = 81;
19 const int PROJECTILE_NADE_MONSTER = 82;
20 const int PROJECTILE_NADE_MONSTER_BURN = 83;
21
22 const int NADE_TYPE_NORMAL = 1;
23 const int NADE_TYPE_NAPALM = 2;
24 const int NADE_TYPE_ICE = 3;
25 const int NADE_TYPE_TRANSLOCATE = 4;
26 const int NADE_TYPE_SPAWN = 5;
27 const int NADE_TYPE_HEAL = 6;
28 const int NADE_TYPE_MONSTER = 7;
29
30 const int NADE_TYPE_LAST = 7; // a check to prevent using higher values & crashing
31
32 vector Nade_Color(int nadeid)
33 {
34         switch(nadeid)
35         {
36                 case NADE_TYPE_NORMAL: return '1 1 1';
37                 case NADE_TYPE_NAPALM: return '2 0.5 0';
38                 case NADE_TYPE_ICE: return '0 0.5 2';
39                 case NADE_TYPE_TRANSLOCATE: return '1 0.0625 1';
40                 case NADE_TYPE_SPAWN: return '1 0.9 0.06';
41         case NADE_TYPE_HEAL: return '1 0 0';
42                 case NADE_TYPE_MONSTER: return '1 0.5 0';
43         }
44
45         return '0 0 0';
46 }
47
48 int Nade_IDFromProjectile(float proj)
49 {
50         switch(proj)
51         {
52                 case PROJECTILE_NADE:
53                 case PROJECTILE_NADE_BURN: return NADE_TYPE_NORMAL;
54                 case PROJECTILE_NADE_NAPALM:
55                 case PROJECTILE_NADE_NAPALM_BURN: return NADE_TYPE_NAPALM;
56                 case PROJECTILE_NADE_ICE:
57                 case PROJECTILE_NADE_ICE_BURN: return NADE_TYPE_ICE;
58                 case PROJECTILE_NADE_TRANSLOCATE: return NADE_TYPE_TRANSLOCATE;
59                 case PROJECTILE_NADE_SPAWN: return NADE_TYPE_SPAWN;
60         case PROJECTILE_NADE_HEAL:
61         case PROJECTILE_NADE_HEAL_BURN: return NADE_TYPE_HEAL;
62                 case PROJECTILE_NADE_MONSTER:
63                 case PROJECTILE_NADE_MONSTER_BURN: return NADE_TYPE_MONSTER;
64         }
65
66         return 0;
67 }
68
69 int Nade_ProjectileFromID(int proj, bool burn)
70 {
71         switch(proj)
72         {
73                 case NADE_TYPE_NORMAL: return (burn) ? PROJECTILE_NADE_BURN : PROJECTILE_NADE;
74                 case NADE_TYPE_NAPALM: return (burn) ? PROJECTILE_NADE_NAPALM_BURN : PROJECTILE_NADE_NAPALM;
75                 case NADE_TYPE_ICE: return (burn) ? PROJECTILE_NADE_ICE_BURN : PROJECTILE_NADE_ICE;
76                 case NADE_TYPE_TRANSLOCATE: return PROJECTILE_NADE_TRANSLOCATE;
77                 case NADE_TYPE_SPAWN: return PROJECTILE_NADE_SPAWN;
78         case NADE_TYPE_HEAL: return (burn) ? PROJECTILE_NADE_HEAL_BURN : PROJECTILE_NADE_HEAL;
79                 case NADE_TYPE_MONSTER: return (burn) ? PROJECTILE_NADE_MONSTER_BURN : PROJECTILE_NADE_MONSTER;
80         }
81
82         return 0;
83 }
84
85 string Nade_TrailEffect(float proj, float nade_team)
86 {
87         switch(proj)
88         {
89                 case PROJECTILE_NADE: return strcat("nade_", Static_Team_ColorName_Lower(nade_team));
90                 case PROJECTILE_NADE_BURN: return strcat("nade_", Static_Team_ColorName_Lower(nade_team), "_burn");
91                 case PROJECTILE_NADE_NAPALM: return "TR_ROCKET";
92                 case PROJECTILE_NADE_NAPALM_BURN: return "spiderbot_rocket_thrust";
93                 case PROJECTILE_NADE_ICE: return "TR_NEXUIZPLASMA";
94                 case PROJECTILE_NADE_ICE_BURN: return "wakizashi_rocket_thrust";
95                 case PROJECTILE_NADE_TRANSLOCATE: return "TR_CRYLINKPLASMA";
96                 case PROJECTILE_NADE_SPAWN: return "nade_yellow";
97         case PROJECTILE_NADE_HEAL: return "nade_red";
98         case PROJECTILE_NADE_HEAL_BURN: return "nade_red_burn";
99                 case PROJECTILE_NADE_MONSTER: return "nade_red";
100                 case PROJECTILE_NADE_MONSTER_BURN: return "nade_red_burn";
101         }
102
103         return "";
104 }
105
106 #ifdef SVQC
107 float healer_send(entity to, float sf);
108 #endif
109
110 #ifdef CSQC
111 // misc functions
112 void ent_healer();
113 #endif // CSQC
114 #endif