]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/items/item/powerup.qh
Merge branch 'master' into terencehill/bot_ai
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / powerup.qh
index f443ab0af2a3e8887cf72128cdbbfc54cb0df4e9..9de1235361787678286474044f004ddbc8e4c31c 100644 (file)
@@ -1,20 +1,91 @@
+#pragma once
+
 #ifdef SVQC
     // For FL_POWERUP
-    #include "../../../server/constants.qh"
+    #include <server/constants.qh>
 #endif
 
-#ifndef POWERUP_H
-#define POWERUP_H
 #include "pickup.qh"
 CLASS(Powerup, Pickup)
 #ifdef SVQC
-    ATTRIB(Powerup, m_mins, vector, '-16 -16 0')
-    ATTRIB(Powerup, m_maxs, vector, '16 16 48')
-    ATTRIB(Powerup, m_botvalue, int, 100000)
-    ATTRIB(Powerup, m_itemflags, int, FL_POWERUP)
-    ATTRIB(Powerup, m_respawntime, float(), GET(g_pickup_respawntime_powerup))
-    ATTRIB(Powerup, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_powerup))
+    ATTRIB(Powerup, m_mins, vector, '-16 -16 0');
+    ATTRIB(Powerup, m_maxs, vector, '16 16 80');
+    ATTRIB(Powerup, m_botvalue, int, 11000);
+    ATTRIB(Powerup, m_itemflags, int, FL_POWERUP);
+    ATTRIB(Powerup, m_respawntime, float(), GET(g_pickup_respawntime_powerup));
+    ATTRIB(Powerup, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_powerup));
 #endif
 ENDCLASS(Powerup)
 
+#ifdef GAMEQC
+MODEL(Strength_ITEM, Item_Model("g_strength.md3"));
+SOUND(Strength, Item_Sound("powerup"));
+#endif
+
+#ifdef SVQC
+float autocvar_g_balance_powerup_strength_time;
+void powerup_strength_init(Pickup this, entity item)
+{
+    if(!item.strength_finished)
+        item.strength_finished = autocvar_g_balance_powerup_strength_time;
+}
+#endif
+REGISTER_ITEM(Strength, Powerup) {
+    this.m_canonical_spawnfunc = "item_strength";
+#ifdef GAMEQC
+       this.spawnflags = ITEM_FLAG_NORMAL;
+    this.m_model            =   MDL_Strength_ITEM;
+    this.m_sound            =   SND_Strength;
+    this.m_glow             =   true;
+    this.m_respawnsound     =   SND_STRENGTH_RESPAWN;
 #endif
+    this.netname            =   "strength";
+    this.m_name             =   "Strength Powerup";
+    this.m_icon             =   "strength";
+    this.m_color            =   '0 0 1';
+    this.m_waypoint         =   _("Strength");
+    this.m_waypointblink    =   2;
+    this.m_itemid           =   IT_STRENGTH;
+#ifdef SVQC
+    this.m_iteminit         =   powerup_strength_init;
+#endif
+}
+
+SPAWNFUNC_ITEM(item_strength, ITEM_Strength)
+
+#ifdef GAMEQC
+MODEL(Shield_ITEM, Item_Model("g_invincible.md3"));
+SOUND(Shield, Item_Sound("powerup_shield"));
+#endif
+
+#ifdef SVQC
+float autocvar_g_balance_powerup_invincible_time;
+void powerup_shield_init(Pickup this, entity item)
+{
+    if(!item.invincible_finished)
+        item.invincible_finished = autocvar_g_balance_powerup_invincible_time;
+}
+#endif
+REGISTER_ITEM(Shield, Powerup) {
+    this.m_canonical_spawnfunc = "item_shield";
+#ifdef GAMEQC
+       this.spawnflags = ITEM_FLAG_NORMAL;
+    this.m_model            =   MDL_Shield_ITEM;
+    this.m_sound            =   SND_Shield;
+    this.m_glow             =   true;
+    this.m_respawnsound     =   SND_SHIELD_RESPAWN;
+#endif
+    this.netname            =   "invincible";
+    this.m_name             =   "Shield";
+    this.m_icon             =   "shield";
+    this.m_color            =   '1 0 1';
+    this.m_waypoint         =   _("Shield");
+    this.m_waypointblink    =   2;
+    this.m_itemid           =   IT_INVINCIBLE;
+#ifdef SVQC
+    this.m_iteminit         =   powerup_shield_init;
+#endif
+}
+
+SPAWNFUNC_ITEM(item_shield, ITEM_Shield)
+SPAWNFUNC_ITEM(item_invincible, ITEM_Shield)