]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/powerups/powerup/invisibility.qh
Support the count field on powerups
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / powerups / powerup / invisibility.qh
1 #pragma once
2
3 #include <common/items/all.qh>
4 #include <common/mutators/mutator/powerups/powerups.qh>
5 #ifdef SVQC
6     // For FL_POWERUP
7     #include <common/constants.qh>
8     #include <server/items/items.qh>
9 #endif
10
11 #ifdef GAMEQC
12 //MODEL(Invisibility_ITEM, Item_Model("g_strength.md3")); // TODO: new model required
13 SOUND(Invisibility, Item_Sound("powerup"));
14 #endif
15
16 #ifdef SVQC
17 .float invisibility_finished;
18
19 bool autocvar_g_powerups_invisibility;
20 float autocvar_g_balance_powerup_invisibility_alpha = 0.15;
21 float autocvar_g_balance_powerup_invisibility_time = 30;
22 void powerup_invisibility_init(Pickup this, entity item)
23 {
24     if(!item.invisibility_finished)
25         item.invisibility_finished = (item.count) ? item.count : autocvar_g_balance_powerup_invisibility_time;
26 }
27 #endif
28 REGISTER_ITEM(Invisibility, Powerup) {
29     this.m_canonical_spawnfunc = "item_invisibility";
30 #ifdef SVQC
31     if(autocvar_g_powerups_invisibility)
32         this.spawnflags = ITEM_FLAG_NORMAL;
33     else
34         this.spawnflags = ITEM_FLAG_MUTATORBLOCKED;
35 #endif
36 #ifdef GAMEQC
37 //    this.m_model            =   MDL_Invisibility_ITEM; // TODO: new model required
38     this.m_model            =   MDL_BUFF;
39     this.m_skin             =   12;
40     this.m_sound            =   SND_Invisibility;
41     this.m_glow             =   true;
42     this.m_respawnsound     =   SND_STRENGTH_RESPAWN;
43 #endif
44     this.netname            =   "invisibility";
45     this.m_name             =   _("Invisibility");
46     this.m_icon             =   "buff_invisible";
47     this.m_color            =   '0.5 0.5 1';
48     this.m_waypoint         =   _("Invisibility");
49     this.m_waypointblink    =   2;
50 #ifdef GAMEQC
51     this.m_itemid           =   IT_INVISIBILITY;
52 #endif
53 #ifdef SVQC
54     this.m_iteminit         =   powerup_invisibility_init;
55 #endif
56 }
57
58 SPAWNFUNC_ITEM(item_invisibility, ITEM_Invisibility)
59 // compat
60 SPAWNFUNC_ITEM(item_invis, ITEM_Invisibility)
61
62 CLASS(Invisibility, Powerups)
63     ATTRIB(Invisibility, netname, string, "invisibility");
64     ATTRIB(Invisibility, m_name, string, _("Invisibility"));
65     ATTRIB(Invisibility, m_color, vector, '0.5 0.5 1');
66     ATTRIB(Invisibility, m_icon, string, "buff_invisible");
67 ENDCLASS(Invisibility)
68 REGISTER_STATUSEFFECT(Invisibility, NEW(Invisibility));