Xonotic
armor.qh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "pickup.qh"
5 #ifdef SVQC
6  ATTRIB(Armor, m_mins, vector, '-16 -16 0');
7  ATTRIB(Armor, m_maxs, vector, '16 16 48');
8  ATTRIB(Armor, m_pickupevalfunc, float(entity player, entity item), healtharmor_pickupevalfunc);
9  ATTRIB(Armor, m_botvalue, int, 5000);
10 #endif
12 
13 #ifdef SVQC
14  #include <server/items/items.qh>
15 #endif
16 
17 #ifdef GAMEQC
18 MODEL(ArmorSmall_ITEM, Item_Model("item_armor_small.md3"));
19 SOUND(ArmorSmall, Item_Sound("armor1"));
20 #endif
21 #ifdef SVQC
22 PROPERTY(float, g_pickup_armorsmall_anyway);
23 PROPERTY(int, g_pickup_armorsmall);
24 PROPERTY(int, g_pickup_armorsmall_max);
25 void item_armorsmall_init(Pickup this, entity item)
26 {
27  if(!item.max_armorvalue)
28  item.max_armorvalue = g_pickup_armorsmall_max;
29  if(!GetResource(item, RES_ARMOR))
30  SetResourceExplicit(item, RES_ARMOR, g_pickup_armorsmall);
31 }
32 #endif
33 
34 REGISTER_ITEM(ArmorSmall, Armor) {
35  this.m_canonical_spawnfunc = "item_armor_small";
36 #ifdef GAMEQC
38  this.m_model = MDL_ArmorSmall_ITEM;
39  this.m_sound = SND_ArmorSmall;
40 #endif
41  this.netname = "armor_small";
42  this.m_name = _("Small armor");
43  this.m_icon = "armor_small";
44 #ifdef CSQC
45  if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
46  this.m_icon = "armor"; // 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_armorsmall_anyway);
53  this.m_iteminit = item_armorsmall_init;
54 #endif
55 }
56 
57 SPAWNFUNC_ITEM(item_armor_small, ITEM_ArmorSmall)
58 
59 #ifdef GAMEQC
60 MODEL(ArmorMedium_ITEM, Item_Model("item_armor_medium.md3"));
61 SOUND(ArmorMedium, Item_Sound("armor10"));
62 #endif
63 #ifdef SVQC
64 PROPERTY(float, g_pickup_armormedium_anyway);
65 PROPERTY(int, g_pickup_armormedium);
66 PROPERTY(int, g_pickup_armormedium_max);
67 void item_armormedium_init(Pickup this, entity item)
68 {
69  if(!item.max_armorvalue)
70  item.max_armorvalue = g_pickup_armormedium_max;
71  if(!GetResource(item, RES_ARMOR))
72  SetResourceExplicit(item, RES_ARMOR, g_pickup_armormedium);
73 }
74 #endif
75 
76 REGISTER_ITEM(ArmorMedium, Armor) {
77  this.m_canonical_spawnfunc = "item_armor_medium";
78 #ifdef GAMEQC
80  this.m_model = MDL_ArmorMedium_ITEM;
81  this.m_sound = SND_ArmorMedium;
82 #endif
83  this.netname = "armor_medium";
84  this.m_name = _("Medium armor");
85  this.m_icon = "armor_medium";
86 #ifdef CSQC
87  if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
88  this.m_icon = "armor"; // 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_medium);
93  this.m_respawntimejitter = GET(g_pickup_respawntimejitter_medium);
94  this.m_pickupanyway = GET(g_pickup_armormedium_anyway);
95  this.m_iteminit = item_armormedium_init;
96 #endif
97 }
98 
99 SPAWNFUNC_ITEM(item_armor_medium, ITEM_ArmorMedium)
100 
101 #ifdef GAMEQC
102 MODEL(ArmorBig_ITEM, Item_Model("item_armor_big.md3"));
103 SOUND(ArmorBig, Item_Sound("armor17_5"));
104 #endif
105 #ifdef SVQC
106 PROPERTY(float, g_pickup_armorbig_anyway);
107 PROPERTY(int, g_pickup_armorbig);
108 PROPERTY(int, g_pickup_armorbig_max);
109 void item_armorbig_init(Pickup this, entity item)
110 {
111  if(!item.max_armorvalue)
112  item.max_armorvalue = g_pickup_armorbig_max;
113  if(!GetResource(item, RES_ARMOR))
114  SetResourceExplicit(item, RES_ARMOR, g_pickup_armorbig);
115 }
116 #endif
117 
118 REGISTER_ITEM(ArmorBig, Armor) {
119  this.m_canonical_spawnfunc = "item_armor_big";
120 #ifdef GAMEQC
122  this.m_model = MDL_ArmorBig_ITEM;
123  this.m_sound = SND_ArmorBig;
124 #endif
125  this.netname = "armor_big";
126  this.m_name = _("Big armor");
127  this.m_icon = "armor_big";
128 #ifdef CSQC
129  if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
130  this.m_icon = "armor"; // compatible with Xonotic v0.8.2 or lower
131 #endif
132  this.m_color = '0 1 0';
133  this.m_waypoint = _("Big armor");
134 #ifdef SVQC
135  this.m_itemid = IT_RESOURCE;
136  this.m_respawntime = GET(g_pickup_respawntime_long);
137  this.m_respawntimejitter = GET(g_pickup_respawntimejitter_long);
138  this.m_pickupanyway = GET(g_pickup_armorbig_anyway);
139  this.m_iteminit = item_armorbig_init;
140 #endif
141 }
142 
143 SPAWNFUNC_ITEM(item_armor_big, ITEM_ArmorBig)
144 
145 #ifdef GAMEQC
146 MODEL(ArmorMega_ITEM, Item_Model("item_armor_large.md3"));
147 SOUND(ArmorMega, Item_Sound("armor25"));
148 #endif
149 #ifdef SVQC
150 PROPERTY(float, g_pickup_armormega_anyway);
151 PROPERTY(int, g_pickup_armormega);
152 PROPERTY(int, g_pickup_armormega_max);
153 void item_armormega_init(Pickup this, entity item)
154 {
155  if(!item.max_armorvalue)
156  item.max_armorvalue = g_pickup_armormega_max;
157  if(!GetResource(item, RES_ARMOR))
158  SetResourceExplicit(item, RES_ARMOR, g_pickup_armormega);
159 }
160 #endif
161 
162 REGISTER_ITEM(ArmorMega, Armor) {
163  this.m_canonical_spawnfunc = "item_armor_mega";
164 #ifdef GAMEQC
166  this.m_model = MDL_ArmorMega_ITEM;
167  this.m_sound = SND_ArmorMega;
168 #endif
169  this.netname = "armor_mega";
170  this.m_name = _("Mega armor");
171  this.m_icon = "armor_mega";
172 #ifdef CSQC
173  if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
174  this.m_icon = "item_large_armor"; // compatible with Xonotic v0.8.2 or lower
175 #endif
176  this.m_color = '0 1 0';
177  this.m_waypoint = _("Mega armor");
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_armormega_anyway);
185  this.m_iteminit = item_armormega_init;
186 #endif
187 }
188 
189 SPAWNFUNC_ITEM(item_armor_mega, ITEM_ArmorMega)
Item is usable during normal gameplay.
Definition: item.qh:98
bool SetResourceExplicit(entity e, Resource res_type, float amount)
Sets the resource amount of an entity without calling any hooks.
Definition: cl_resources.qc:15
CLASS(Object) Object
Definition: oo.qh:318
SPAWNFUNC_ITEM(item_armor_green, ITEM_ArmorMedium) .float wait
entity() spawn
string netname
Definition: powerups.qc:20
int m_itemid
Definition: jetpack.qh:11
Definition: pickup.qh:22
float spawnflags
Definition: progsdefs.qc:191
string Item_Sound(string it_snd)
Definition: all.qc:18
#define ATTRIB(...)
Definition: oo.qh:136
Definition: armor.qh:4
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
Item is is a resource, not a held item.
Definition: item.qh:100
#define GET(name)
Definition: misc.qh:34
#define MODEL(name, path)
Definition: all.qh:8
vector(float skel, float bonenum) _skel_get_boneabs_hidden
#define PROPERTY(type, name)
Definition: misc.qh:36
float healtharmor_pickupevalfunc(entity player, entity item)
Definition: items.qc:889
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
Definition: cl_resources.qc:10
#define ENDCLASS(cname)
Definition: oo.qh:269
string Item_Model(string item_mdl)
Definition: all.qc:8
#define SOUND(name, path)
Definition: all.qh:30
REGISTER_ITEM(ArmorSmall, Armor)
Definition: armor.qh:34
string m_name
Definition: scores.qh:135