#pragma once

#include <common/items/item/pickup.qh>

#ifdef SVQC
float autocvar_g_pickup_respawntime_powerup;
float autocvar_g_pickup_respawntimejitter_powerup;
#endif

CLASS(Powerup, Pickup)
#ifdef SVQC
    ATTRIB(Powerup, m_maxs, vector, ITEM_L_MAXS);
    ATTRIB(Powerup, m_botvalue, int, 11000);
    ATTRIB(Powerup, m_itemflags, int, FL_POWERUP);
    ATTRIB(Powerup, m_respawntime, float, autocvar_g_pickup_respawntime_powerup);
    ATTRIB(Powerup, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_powerup);
#endif
#ifdef MENUQC
    METHOD(Powerup, describe, string(Powerup this))
    {
        TC(Powerup, this);
        return SUPER(Powerup).describe(this);
    }
#endif

#ifndef SVQC
    METHOD(Powerup, display, void(Powerup this, void(string name, string icon) returns))
    {
        TC(Powerup, this);
        return SUPER(Powerup).display(this, returns);
    }
#endif
ENDCLASS(Powerup)

#include <common/mutators/mutator/status_effects/all.qh>
CLASS(PowerupStatusEffect, StatusEffect)
#ifdef GAMEQC
    ATTRIB(PowerupStatusEffect, m_sound_rm, Sound, SND_POWEROFF);
#endif
ENDCLASS(PowerupStatusEffect)
