1 #include "invisibility.qh"
4 METHOD(Invisibility, m_remove, void(StatusEffects this, entity actor, int removal_type))
6 bool wasactive = (actor.statuseffects && (actor.statuseffects.statuseffect_flags[this.m_id] & STATUSEFFECT_FLAG_ACTIVE));
7 if(removal_type == STATUSEFFECT_REMOVE_TIMEOUT && wasactive && IS_PLAYER(actor))
9 //Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_POWERDOWN_INVISIBILITY, actor.netname);
10 Send_Notification(NOTIF_ONE, actor, MSG_CENTER, CENTER_POWERDOWN_INVISIBILITY);
13 stopsound(actor, CH_TRIGGER_SINGLE); // get rid of the pickup sound
16 actor.alpha = default_player_alpha;
17 if(actor.exteriorweaponentity)
18 actor.exteriorweaponentity.alpha = default_weapon_alpha;
20 SUPER(Invisibility).m_remove(this, actor, removal_type);
22 METHOD(Invisibility, m_apply, void(StatusEffects this, entity actor, float eff_time, float eff_flags))
24 bool wasactive = (actor.statuseffects && (actor.statuseffects.statuseffect_flags[this.m_id] & STATUSEFFECT_FLAG_ACTIVE));
25 if(!wasactive && IS_PLAYER(actor))
28 Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_POWERUP_INVISIBILITY, actor.netname);
29 Send_Notification(NOTIF_ONE, actor, MSG_CENTER, CENTER_POWERUP_INVISIBILITY);
31 SUPER(Invisibility).m_apply(this, actor, eff_time, eff_flags);
33 METHOD(Invisibility, m_tick, void(StatusEffects this, entity actor))
35 play_countdown(actor, StatusEffects_gettime(this, actor), SND_POWEROFF);
38 actor.alpha = autocvar_g_balance_powerup_invisibility_alpha;
39 if(actor.exteriorweaponentity)
40 actor.exteriorweaponentity.alpha = autocvar_g_balance_powerup_invisibility_alpha;
42 SUPER(Invisibility).m_tick(this, actor);