3 #include <common/items/all.qh>
4 #include <common/mutators/mutator/powerups/powerups.qh>
7 #include <common/constants.qh>
8 #include <server/items/items.qh>
12 MODEL(Shield_ITEM, Item_Model("g_invincible.md3"));
13 SOUND(Shield, Item_Sound("powerup_shield"));
17 bool autocvar_g_powerups_shield;
18 float autocvar_g_balance_powerup_invincible_takedamage;
19 float autocvar_g_balance_powerup_invincible_takeforce;
20 float autocvar_g_balance_powerup_invincible_time;
21 void powerup_shield_init(Pickup def, entity item)
23 if(!autocvar_g_powerups || !autocvar_g_powerups_shield)
24 def.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
26 if(!item.invincible_finished)
27 item.invincible_finished = (item.count) ? item.count : autocvar_g_balance_powerup_invincible_time;
30 REGISTER_ITEM(Shield, Powerup) {
31 this.m_canonical_spawnfunc = "item_shield";
33 this.m_iteminit = powerup_shield_init;
36 this.spawnflags = ITEM_FLAG_NORMAL;
37 this.m_itemid = IT_INVINCIBLE;
38 this.m_model = MDL_Shield_ITEM;
39 this.m_sound = SND_Shield;
41 this.m_respawnsound = SND_SHIELD_RESPAWN;
43 this.netname = "invincible";
44 this.m_name = _("Shield");
45 this.m_icon = "shield";
46 this.m_color = '1 0 1';
47 this.m_waypoint = _("Shield");
48 this.m_waypointblink = 2;
51 SPAWNFUNC_ITEM(item_shield, ITEM_Shield)
52 SPAWNFUNC_ITEM(item_invincible, ITEM_Shield)
54 CLASS(Shield, Powerups)
55 ATTRIB(Shield, netname, string, "invincible"); // NOTE: referring to as invincible so that it matches the powerup item
56 ATTRIB(Shield, m_name, string, _("Shield"));
57 ATTRIB(Shield, m_icon, string, "shield");
59 REGISTER_STATUSEFFECT(Shield, NEW(Shield));