X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fitems%2Fitem%2Fhealth.qh;h=cad5a376e753d3cd18cfb997261ed37141072881;hb=f94eb06cd0ff401f63e8e8c81f55961544846ee6;hp=f7bfb5c9386d48e3d0d972fd04db2bc714769dd9;hpb=edf01df130d0d1877461561178b8833a9ab6051c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/items/item/health.qh b/qcsrc/common/items/item/health.qh index f7bfb5c93..cad5a376e 100644 --- a/qcsrc/common/items/item/health.qh +++ b/qcsrc/common/items/item/health.qh @@ -1,11 +1,157 @@ -#ifndef HEALTH_H -#define HEALTH_H +#pragma once + #include "pickup.qh" CLASS(Health, Pickup) #ifdef SVQC - ATTRIB(Health, m_mins, vector, '-16 -16 0') - ATTRIB(Health, m_maxs, vector, '16 16 48') - ATTRIB(Health, m_pickupevalfunc, float(entity player, entity item), commodity_pickupevalfunc) + ATTRIB(Health, m_mins, vector, '-16 -16 0'); + ATTRIB(Health, m_maxs, vector, '16 16 48'); + 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(entity item) +{ + if(!item.max_health) + item.max_health = g_pickup_healthsmall_max; + if(!item.health) + item.health = g_pickup_healthsmall; +} +#endif + +REGISTER_ITEM(HealthSmall, Health) { +#ifdef GAMEQC + this.m_model = MDL_HealthSmall_ITEM; + this.m_sound = SND_HealthSmall; +#endif + this.netname = "health_small"; + this.m_name = "5 Health"; + this.m_icon = "health"; +#ifdef SVQC + this.m_itemid = IT_5HP; + this.m_respawntime = GET(g_pickup_respawntime_short); + this.m_respawntimejitter = GET(g_pickup_respawntimejitter_short); + this.m_pickupanyway = GET(g_pickup_healthsmall_anyway); + this.m_iteminit = item_healthsmall_init; +#endif +} + +#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(entity item) +{ + if(!item.max_health) + item.max_health = g_pickup_healthmedium_max; + if(!item.health) + item.health = g_pickup_healthmedium; +} +#endif + +REGISTER_ITEM(HealthMedium, Health) { +#ifdef GAMEQC + this.m_model = MDL_HealthMedium_ITEM; + this.m_sound = SND_HealthMedium; +#endif + this.netname = "health_medium"; + this.m_name = "25 Health"; + this.m_icon = "health"; +#ifdef SVQC + this.m_itemid = IT_25HP; + this.m_respawntime = GET(g_pickup_respawntime_short); + this.m_respawntimejitter = GET(g_pickup_respawntimejitter_short); + this.m_pickupanyway = GET(g_pickup_healthmedium_anyway); + this.m_iteminit = item_healthmedium_init; +#endif +} + +#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(entity item) +{ + if(!item.max_health) + item.max_health = g_pickup_healthbig_max; + if(!item.health) + item.health = g_pickup_healthbig; +} +#endif + +REGISTER_ITEM(HealthBig, Health) { +#ifdef GAMEQC + this.m_model = MDL_HealthBig_ITEM; + this.m_sound = SND_HealthBig; +#endif + this.netname = "health_big"; + this.m_name = "50 Health"; + this.m_icon = "health"; + this.m_color = '1 0 0'; + this.m_waypoint = _("Big health"); +#ifdef SVQC + this.m_itemid = IT_25HP; + this.m_respawntime = GET(g_pickup_respawntime_medium); + this.m_respawntimejitter = GET(g_pickup_respawntimejitter_medium); + this.m_pickupanyway = GET(g_pickup_healthbig_anyway); + this.m_iteminit = item_healthbig_init; +#endif +} + +#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(entity item) +{ + if(!item.max_health) + item.max_health = g_pickup_healthmega_max; + if(!item.health) + item.health = g_pickup_healthmega; +} +#endif + +REGISTER_ITEM(HealthMega, Health) { +#ifdef GAMEQC + this.m_model = MDL_HealthMega_ITEM; + this.m_sound = SND_HealthMega; +#endif + this.netname = "health_mega"; + this.m_name = "100 Health"; + this.m_icon = "item_mega_health"; + this.m_color = '1 0 0'; + this.m_waypoint = _("Mega health"); + this.m_waypointblink = 2; +#ifdef SVQC + this.m_maxs = '16 16 70'; + this.m_itemid = IT_HEALTH; + this.m_respawntime = GET(g_pickup_respawntime_long); + this.m_respawntimejitter = GET(g_pickup_respawntimejitter_long); + this.m_pickupanyway = GET(g_pickup_healthmega_anyway); + this.m_iteminit = item_healthmega_init; #endif +}