#pragma once #include "pickup.qh" CLASS(Health, Pickup) #ifdef SVQC ATTRIB(Health, m_pickupevalfunc, float(entity player, entity item), healtharmor_pickupevalfunc); ATTRIB(Health, m_botvalue, int, 5000); #endif ENDCLASS(Health) #ifdef SVQC #include #endif #ifdef GAMEQC MODEL(HealthSmall_ITEM, Item_Model("g_h1.md3")); SOUND(HealthSmall, Item_Sound("minihealth")); #endif #ifdef SVQC PROPERTY(float, g_pickup_healthsmall_anyway); PROPERTY(int, g_pickup_healthsmall); PROPERTY(int, g_pickup_healthsmall_max); void item_healthsmall_init(Pickup this, entity item) { if(!item.max_health) item.max_health = g_pickup_healthsmall_max; if(!GetResource(item, RES_HEALTH)) SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthsmall); } #endif REGISTER_ITEM(HealthSmall, Health) { this.m_canonical_spawnfunc = "item_health_small"; #ifdef GAMEQC this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE; this.m_model = MDL_HealthSmall_ITEM; this.m_sound = SND_HealthSmall; #endif this.netname = "health_small"; this.m_name = _("Small health"); this.m_icon = "health_small"; #ifdef CSQC if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "") this.m_icon = "health"; // compatible with Xonotic v0.8.2 or lower #endif #ifdef SVQC this.m_mins = ITEM_S_MINS; this.m_maxs = ITEM_S_MAXS; this.m_itemid = IT_RESOURCE; this.m_respawntime = GET(g_pickup_respawntime_health_small); this.m_respawntimejitter = GET(g_pickup_respawntimejitter_health_small); this.m_pickupanyway = GET(g_pickup_healthsmall_anyway); this.m_iteminit = item_healthsmall_init; #endif } SPAWNFUNC_ITEM(item_health_small, ITEM_HealthSmall) #ifdef GAMEQC MODEL(HealthMedium_ITEM, Item_Model("g_h25.md3")); SOUND(HealthMedium, Item_Sound("mediumhealth")); #endif #ifdef SVQC PROPERTY(float, g_pickup_healthmedium_anyway); PROPERTY(int, g_pickup_healthmedium); PROPERTY(int, g_pickup_healthmedium_max); void item_healthmedium_init(Pickup this, entity item) { if(!item.max_health) item.max_health = g_pickup_healthmedium_max; if(!GetResource(item, RES_HEALTH)) SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthmedium); } #endif REGISTER_ITEM(HealthMedium, Health) { this.m_canonical_spawnfunc = "item_health_medium"; #ifdef GAMEQC this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE; this.m_model = MDL_HealthMedium_ITEM; this.m_sound = SND_HealthMedium; #endif this.netname = "health_medium"; this.m_name = _("Medium health"); this.m_icon = "health_medium"; #ifdef CSQC if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "") this.m_icon = "health"; // compatible with Xonotic v0.8.2 or lower #endif #ifdef SVQC this.m_mins = ITEM_S_MINS; this.m_maxs = ITEM_S_MAXS; this.m_itemid = IT_RESOURCE; this.m_respawntime = GET(g_pickup_respawntime_health_medium); this.m_respawntimejitter = GET(g_pickup_respawntimejitter_health_medium); this.m_pickupanyway = GET(g_pickup_healthmedium_anyway); this.m_iteminit = item_healthmedium_init; #endif } SPAWNFUNC_ITEM(item_health_medium, ITEM_HealthMedium) #ifdef GAMEQC MODEL(HealthBig_ITEM, Item_Model("g_h50.md3")); SOUND(HealthBig, Item_Sound("mediumhealth")); #endif #ifdef SVQC PROPERTY(float, g_pickup_healthbig_anyway); PROPERTY(int, g_pickup_healthbig); PROPERTY(int, g_pickup_healthbig_max); void item_healthbig_init(Pickup this, entity item) { if(!item.max_health) item.max_health = g_pickup_healthbig_max; if(!GetResource(item, RES_HEALTH)) SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthbig); } #endif REGISTER_ITEM(HealthBig, Health) { this.m_canonical_spawnfunc = "item_health_big"; #ifdef GAMEQC this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE; this.m_model = MDL_HealthBig_ITEM; this.m_sound = SND_HealthBig; #endif this.netname = "health_big"; this.m_name = _("Big health"); this.m_icon = "health_big"; this.m_color = '1 0 0'; this.m_waypoint = _("Big health"); #ifdef CSQC if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "") this.m_icon = "health"; // compatible with Xonotic v0.8.2 or lower #endif #ifdef SVQC this.m_itemid = IT_RESOURCE; this.m_respawntime = GET(g_pickup_respawntime_health_big); this.m_respawntimejitter = GET(g_pickup_respawntimejitter_health_big); this.m_pickupanyway = GET(g_pickup_healthbig_anyway); this.m_iteminit = item_healthbig_init; #endif } SPAWNFUNC_ITEM(item_health_big, ITEM_HealthBig) #ifdef GAMEQC MODEL(HealthMega_ITEM, Item_Model("g_h100.md3")); SOUND(HealthMega, Item_Sound("megahealth")); #endif #ifdef SVQC PROPERTY(float, g_pickup_healthmega_anyway); PROPERTY(int, g_pickup_healthmega); PROPERTY(int, g_pickup_healthmega_max); void item_healthmega_init(Pickup this, entity item) { if(!item.max_health) item.max_health = g_pickup_healthmega_max; if(!GetResource(item, RES_HEALTH)) SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthmega); } #endif REGISTER_ITEM(HealthMega, Health) { this.m_canonical_spawnfunc = "item_health_mega"; #ifdef GAMEQC this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE; this.m_model = MDL_HealthMega_ITEM; this.m_sound = SND_HealthMega; #endif this.netname = "health_mega"; this.m_name = _("Mega health"); this.m_icon = "health_mega"; #ifdef CSQC if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "") this.m_icon = "item_mega_health"; // compatible with Xonotic v0.8.2 or lower #endif this.m_color = '1 0 0'; this.m_waypoint = _("Mega health"); this.m_waypointblink = 2; #ifdef SVQC this.m_maxs = ITEM_L_MAXS; this.m_itemid = IT_RESOURCE; this.m_respawntime = GET(g_pickup_respawntime_health_mega); this.m_respawntimejitter = GET(g_pickup_respawntimejitter_health_mega); this.m_pickupanyway = GET(g_pickup_healthmega_anyway); this.m_iteminit = item_healthmega_init; #endif } SPAWNFUNC_ITEM(item_health_mega, ITEM_HealthMega)