X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=02704629612f32eaec198bca03857447a7ba337f;hb=fc16e8523c1394347fcdd558775d9d8984ab4ec1;hp=eb03769285197e1af591e1a9c6f5dc67d21026d3;hpb=ca7828d63ca7878f31e92f1829bbeb48f20163ce;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index eb0376928..027046296 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -1,5 +1,6 @@ #include "g_damage.qh" +#include #include "bot/api.qh" #include "g_hook.qh" #include "mutators/_mod.qh" @@ -8,6 +9,7 @@ #include "../common/state.qh" #include "../common/physics/player.qh" #include "../common/t_items.qh" +#include "resources.qh" #include "../common/vehicles/all.qh" #include "../common/items/_mod.qh" #include "../common/mutators/mutator/waypoints/waypointsprites.qh" @@ -27,7 +29,7 @@ void UpdateFrags(entity player, int f) { - PlayerTeamScore_AddScore(player, f); + GameRules_scoring_add_team(player, SCORE, f); } void GiveFrags (entity attacker, entity targ, float f, int deathtype) @@ -40,23 +42,23 @@ void GiveFrags (entity attacker, entity targ, float f, int deathtype) if(targ == attacker) { // suicide - PlayerScore_Add(attacker, SP_SUICIDES, 1); + GameRules_scoring_add(attacker, SUICIDES, 1); } else { // teamkill - PlayerScore_Add(attacker, SP_KILLS, -1); // or maybe add a teamkills field? + GameRules_scoring_add(attacker, KILLS, -1); // or maybe add a teamkills field? } } else { // regular frag - PlayerScore_Add(attacker, SP_KILLS, 1); + GameRules_scoring_add(attacker, KILLS, 1); if(targ.playerid) PS_GR_P_ADDVAL(attacker, sprintf("kills-%d", targ.playerid), 1); } - PlayerScore_Add(targ, SP_DEATHS, 1); + GameRules_scoring_add(targ, DEATHS, 1); .entity weaponentity = weaponentities[0]; // TODO: unhardcode @@ -274,7 +276,7 @@ bool frag_centermessage_override(entity attacker, entity targ, int deathtype, in if(deathtype == DEATH_FIRE.m_id) { Send_Notification(NOTIF_ONE, attacker, MSG_CHOICE, CHOICE_FRAG_FIRE, targ.netname, kill_count_to_attacker, (IS_BOT_CLIENT(targ) ? -1 : CS(targ).ping)); - Send_Notification(NOTIF_ONE, targ, MSG_CHOICE, CHOICE_FRAGGED_FIRE, attacker.netname, kill_count_to_target, attacker.health, attacker.armorvalue, (IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping)); + Send_Notification(NOTIF_ONE, targ, MSG_CHOICE, CHOICE_FRAGGED_FIRE, attacker.netname, kill_count_to_target, GetResourceAmount(attacker, RESOURCE_HEALTH), GetResourceAmount(attacker, RESOURCE_ARMOR), (IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping)); return true; } @@ -426,8 +428,8 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) CHOICE_TYPEFRAGGED, attacker.netname, kill_count_to_target, - attacker.health, - attacker.armorvalue, + GetResourceAmount(attacker, RESOURCE_HEALTH), + GetResourceAmount(attacker, RESOURCE_ARMOR), (IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping) ); } @@ -449,8 +451,8 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) CHOICE_FRAGGED, attacker.netname, kill_count_to_target, - attacker.health, - attacker.armorvalue, + GetResourceAmount(attacker, RESOURCE_HEALTH), + GetResourceAmount(attacker, RESOURCE_ARMOR), (IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping) ); } @@ -508,7 +510,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype) LogDeath("accident", deathtype, targ, targ); GiveFrags(targ, targ, -1, deathtype); - if(PlayerScore_Add(targ, SP_SCORE, 0) == -5) + if(GameRules_scoring_add(targ, SCORE, 0) == -5) { Send_Notification(NOTIF_ONE, targ, MSG_ANNCE, ANNCE_ACHIEVEMENT_BOTLIKE); PS_GR_P_ADDVAL(attacker, PLAYERSTATS_ACHIEVEMENT_BOTLIKE, 1); @@ -542,7 +544,7 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo STAT(FROZEN, targ) = frozen_type; targ.revive_progress = ((frozen_type == 3) ? 1 : 0); - targ.health = ((frozen_type == 3) ? targ_maxhealth : 1); + SetResourceAmount(targ, RESOURCE_HEALTH, ((frozen_type == 3) ? targ_maxhealth : 1)); targ.revive_speed = freeze_time; if(targ.bot_attack) IL_REMOVE(g_bot_targets, targ); @@ -587,7 +589,7 @@ void Unfreeze (entity targ) if(STAT(FROZEN, targ) && STAT(FROZEN, targ) != 3) // only reset health if target was frozen { - targ.health = ((IS_PLAYER(targ)) ? start_health : targ.max_health); + SetResourceAmount(targ, RESOURCE_HEALTH, ((IS_PLAYER(targ)) ? start_health : targ.max_health)); targ.pauseregen_finished = time + autocvar_g_balance_pause_health_regen; } @@ -645,9 +647,9 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d // These are ALWAYS lethal // No damage modification here // Instead, prepare the victim for his death... - targ.armorvalue = 0; + SetResourceAmount(targ, RESOURCE_ARMOR, 0); targ.spawnshieldtime = 0; - targ.health = 0.9; // this is < 1 + SetResourceAmount(targ, RESOURCE_HEALTH, 0.9); // this is < 1 targ.flags -= targ.flags & FL_GODMODE; damage = 100000; } @@ -747,7 +749,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d if(damage >= autocvar_g_frozen_revive_falldamage) { Unfreeze(targ); - targ.health = autocvar_g_frozen_revive_falldamage_health; + SetResourceAmount(targ, RESOURCE_HEALTH, autocvar_g_frozen_revive_falldamage_health); Send_Effect(EFFECT_ICEORGLASS, targ.origin, '0 0 0', 3); Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_FREEZETAG_REVIVED_FALL, targ.netname); Send_Notification(NOTIF_ONE, targ, MSG_CENTER, CENTER_FREEZETAG_REVIVE_SELF); @@ -785,7 +787,6 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d setorigin(targ, spot.origin + '0 0 1' * (1 - targ.mins.z - 24)); // don't reset back to last position, even if new position is stuck in solid targ.oldorigin = targ.origin; - targ.prevorigin = targ.origin; Send_Effect(EFFECT_TELEPORT, targ.origin, '0 0 0', 1); } @@ -1064,7 +1065,7 @@ float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector in force = force * a; if(autocvar_g_throughfloor_debug) - LOG_INFOF(" D=%f F=%f\n", finaldmg, vlen(force)); + LOG_INFOF(" D=%f F=%f", finaldmg, vlen(force)); } //if (targ == attacker) @@ -1267,7 +1268,7 @@ void Fire_ApplyDamage(entity e) if(!IS_INDEPENDENT_PLAYER(e)) if(!STAT(FROZEN, e)) - FOREACH_CLIENT(IS_PLAYER(it) && it != e, LAMBDA( + FOREACH_CLIENT(IS_PLAYER(it) && it != e, { if(!IS_DEAD(it)) if(!IS_INDEPENDENT_PLAYER(it)) if(boxesoverlap(e.absmin, e.absmax, it.absmin, it.absmax)) @@ -1276,7 +1277,7 @@ void Fire_ApplyDamage(entity e) d = autocvar_g_balance_firetransfer_damage * e.fire_damagepersec * t; Fire_AddDamage(it, o, d, t, DEATH_FIRE.m_id); } - )); + }); } void Fire_ApplyEffect(entity e)