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