]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/items/item/health.qh
ca94651aa328a5e7d314e66c2d0b7906332c1129
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / health.qh
1 #pragma once
2
3 #include "pickup.qh"
4 CLASS(Health, Pickup)
5 #ifdef SVQC
6     ATTRIB(Health, m_mins, vector, '-16 -16 0');
7     ATTRIB(Health, m_maxs, vector, '16 16 48');
8     ATTRIB(Health, m_pickupevalfunc, float(entity player, entity item), healtharmor_pickupevalfunc);
9     ATTRIB(Health, m_botvalue, int, 5000);
10 #endif
11 ENDCLASS(Health)
12
13 #ifdef SVQC
14     #include <server/items/items.qh>
15 #endif
16
17 #ifdef GAMEQC
18 MODEL(HealthSmall_ITEM, Item_Model("g_h1.md3"));
19 SOUND(HealthSmall, Item_Sound("minihealth"));
20 #endif
21 #ifdef SVQC
22 PROPERTY(float, g_pickup_healthsmall_anyway);
23 PROPERTY(int, g_pickup_healthsmall);
24 PROPERTY(int, g_pickup_healthsmall_max);
25 void item_healthsmall_init(Pickup this, entity item)
26 {
27     if(!item.max_health)
28         item.max_health = g_pickup_healthsmall_max;
29     if(!GetResource(item, RES_HEALTH))
30         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthsmall);
31 }
32 #endif
33
34 REGISTER_ITEM(HealthSmall, Health) {
35     this.m_canonical_spawnfunc = "item_health_small";
36 #ifdef GAMEQC
37         this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
38     this.m_model                =   MDL_HealthSmall_ITEM;
39     this.m_sound                =   SND_HealthSmall;
40 #endif
41     this.netname                =   "health_small";
42     this.m_name                 =   _("Small health");
43     this.m_icon                 =   "health_small";
44 #ifdef CSQC
45     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
46         this.m_icon             =   "health"; // compatible with Xonotic v0.8.2 or lower
47 #endif
48 #ifdef SVQC
49     this.m_itemid               =   IT_RESOURCE;
50     this.m_respawntime          =   GET(g_pickup_respawntime_short);
51     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_short);
52     this.m_pickupanyway         =   GET(g_pickup_healthsmall_anyway);
53     this.m_iteminit             =   item_healthsmall_init;
54 #endif
55 }
56
57 SPAWNFUNC_ITEM(item_health_small, ITEM_HealthSmall)
58
59 #ifdef GAMEQC
60 MODEL(HealthMedium_ITEM, Item_Model("g_h25.md3"));
61 SOUND(HealthMedium, Item_Sound("mediumhealth"));
62 #endif
63 #ifdef SVQC
64 PROPERTY(float, g_pickup_healthmedium_anyway);
65 PROPERTY(int, g_pickup_healthmedium);
66 PROPERTY(int, g_pickup_healthmedium_max);
67 void item_healthmedium_init(Pickup this, entity item)
68 {
69     if(!item.max_health)
70         item.max_health = g_pickup_healthmedium_max;
71     if(!GetResource(item, RES_HEALTH))
72         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthmedium);
73 }
74 #endif
75
76 REGISTER_ITEM(HealthMedium, Health) {
77     this.m_canonical_spawnfunc = "item_health_medium";
78 #ifdef GAMEQC
79         this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
80     this.m_model                =   MDL_HealthMedium_ITEM;
81     this.m_sound                =   SND_HealthMedium;
82 #endif
83     this.netname                =   "health_medium";
84     this.m_name                 =   _("Medium health");
85     this.m_icon                 =   "health_medium";
86 #ifdef CSQC
87     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
88         this.m_icon             =   "health"; // compatible with Xonotic v0.8.2 or lower
89 #endif
90 #ifdef SVQC
91     this.m_itemid               =   IT_RESOURCE;
92     this.m_respawntime          =   GET(g_pickup_respawntime_short);
93     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_short);
94     this.m_pickupanyway         =   GET(g_pickup_healthmedium_anyway);
95     this.m_iteminit             =   item_healthmedium_init;
96 #endif
97 }
98
99 SPAWNFUNC_ITEM(item_health_medium, ITEM_HealthMedium)
100
101 #ifdef GAMEQC
102 MODEL(HealthBig_ITEM, Item_Model("g_h50.md3"));
103 SOUND(HealthBig, Item_Sound("mediumhealth"));
104 #endif
105 #ifdef SVQC
106 PROPERTY(float, g_pickup_healthbig_anyway);
107 PROPERTY(int, g_pickup_healthbig);
108 PROPERTY(int, g_pickup_healthbig_max);
109 void item_healthbig_init(Pickup this, entity item)
110 {
111     if(!item.max_health)
112         item.max_health = g_pickup_healthbig_max;
113     if(!GetResource(item, RES_HEALTH))
114         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthbig);
115 }
116 #endif
117
118 REGISTER_ITEM(HealthBig, Health) {
119     this.m_canonical_spawnfunc = "item_health_big";
120 #ifdef GAMEQC
121         this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
122     this.m_model                =   MDL_HealthBig_ITEM;
123     this.m_sound                =   SND_HealthBig;
124 #endif
125     this.netname                =   "health_big";
126     this.m_name                 =   _("Big health");
127     this.m_icon                 =   "health_big";
128     this.m_color                =   '1 0 0';
129     this.m_waypoint             =   _("Big health");
130 #ifdef CSQC
131     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
132         this.m_icon             =   "health"; // compatible with Xonotic v0.8.2 or lower
133 #endif
134 #ifdef SVQC
135     this.m_itemid               =   IT_RESOURCE;
136     this.m_respawntime          =   GET(g_pickup_respawntime_medium);
137     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_medium);
138     this.m_pickupanyway         =   GET(g_pickup_healthbig_anyway);
139     this.m_iteminit             =   item_healthbig_init;
140 #endif
141 }
142
143 SPAWNFUNC_ITEM(item_health_big, ITEM_HealthBig)
144
145 #ifdef GAMEQC
146 MODEL(HealthMega_ITEM, Item_Model("g_h100.md3"));
147 SOUND(HealthMega, Item_Sound("megahealth"));
148 #endif
149 #ifdef SVQC
150 PROPERTY(float, g_pickup_healthmega_anyway);
151 PROPERTY(int, g_pickup_healthmega);
152 PROPERTY(int, g_pickup_healthmega_max);
153 void item_healthmega_init(Pickup this, entity item)
154 {
155     if(!item.max_health)
156         item.max_health = g_pickup_healthmega_max;
157     if(!GetResource(item, RES_HEALTH))
158         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthmega);
159 }
160 #endif
161
162 REGISTER_ITEM(HealthMega, Health) {
163     this.m_canonical_spawnfunc = "item_health_mega";
164 #ifdef GAMEQC
165     this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
166     this.m_model                =   MDL_HealthMega_ITEM;
167     this.m_sound                =   SND_HealthMega;
168 #endif
169     this.netname                =   "health_mega";
170     this.m_name                 =   _("Mega health");
171     this.m_icon                 =   "health_mega";
172 #ifdef CSQC
173     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
174         this.m_icon             =   "item_mega_health"; // compatible with Xonotic v0.8.2 or lower
175 #endif
176     this.m_color                =   '1 0 0';
177     this.m_waypoint             =   _("Mega health");
178     this.m_waypointblink        =   2;
179 #ifdef SVQC
180     this.m_maxs                 =   '16 16 70';
181     this.m_itemid               =   IT_RESOURCE;
182     this.m_respawntime          =   GET(g_pickup_respawntime_long);
183     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_long);
184     this.m_pickupanyway         =   GET(g_pickup_healthmega_anyway);
185     this.m_iteminit             =   item_healthmega_init;
186 #endif
187 }
188
189 SPAWNFUNC_ITEM(item_health_mega, ITEM_HealthMega)