X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fitems%2Fitem%2Fhealth.qh;h=a7dd3c370fd513a76a4432304808144730ee07fa;hb=e30214cf338291f1709fb02ed5e84cad9321e156;hp=8eb463a8f97ddc9ed66c562748c1fe0732fe8ad3;hpb=cf7d70cea2066703aad74fce5931e635471904f3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/items/item/health.qh b/qcsrc/common/items/item/health.qh index 8eb463a8f..a7dd3c370 100644 --- a/qcsrc/common/items/item/health.qh +++ b/qcsrc/common/items/item/health.qh @@ -5,6 +5,169 @@ 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_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(!GetResourceAmount(item, RESOURCE_HEALTH)) + SetResourceAmount(item, RESOURCE_HEALTH, 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"; +#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 +} + +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(!GetResourceAmount(item, RESOURCE_HEALTH)) + SetResourceAmount(item, RESOURCE_HEALTH, 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"; +#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 +} + +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(!GetResourceAmount(item, RESOURCE_HEALTH)) + SetResourceAmount(item, RESOURCE_HEALTH, 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"; + 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 +} + +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(!GetResourceAmount(item, RESOURCE_HEALTH)) + SetResourceAmount(item, RESOURCE_HEALTH, 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 = "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 +} + +SPAWNFUNC_ITEM(item_health_mega, ITEM_HealthMega)