#endif
#ifdef SVQC
+bool autocvar_g_powerups_shield;
float autocvar_g_balance_powerup_invincible_takedamage;
-float autocvar_g_balance_powerup_invincible_takeforce = 0.33;
+float autocvar_g_balance_powerup_invincible_takeforce;
float autocvar_g_balance_powerup_invincible_time;
-void powerup_shield_init(Pickup this, entity item)
+void powerup_shield_init(Pickup def, entity item)
{
+ if(!autocvar_g_powerups || !autocvar_g_powerups_shield)
+ def.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
+
if(!item.invincible_finished)
- item.invincible_finished = autocvar_g_balance_powerup_invincible_time;
+ item.invincible_finished = (item.count) ? item.count : autocvar_g_balance_powerup_invincible_time;
}
#endif
REGISTER_ITEM(Shield, Powerup) {
this.m_canonical_spawnfunc = "item_shield";
+#ifdef SVQC
+ this.m_iteminit = powerup_shield_init;
+#endif
#ifdef GAMEQC
- this.spawnflags = ITEM_FLAG_NORMAL;
+ this.spawnflags = ITEM_FLAG_NORMAL;
+ this.m_itemid = IT_INVINCIBLE;
this.m_model = MDL_Shield_ITEM;
this.m_sound = SND_Shield;
this.m_glow = true;
this.m_color = '1 0 1';
this.m_waypoint = _("Shield");
this.m_waypointblink = 2;
-#ifdef GAMEQC
- this.m_itemid = IT_INVINCIBLE;
-#endif
-#ifdef SVQC
- this.m_iteminit = powerup_shield_init;
-#endif
}
SPAWNFUNC_ITEM(item_shield, ITEM_Shield)
SPAWNFUNC_ITEM(item_invincible, ITEM_Shield)
CLASS(Shield, Powerups)
- ATTRIB(Shield, netname, string, "shield");
+ ATTRIB(Shield, netname, string, "invincible"); // NOTE: referring to as invincible so that it matches the powerup item
ATTRIB(Shield, m_name, string, _("Shield"));
ATTRIB(Shield, m_icon, string, "shield");
ENDCLASS(Shield)