.entity pusher;\r
\r
.float taunt_soundtime;\r
-.float taunt_soundtimefiltered;\r
.float taunt_soundtype;\r
\r
-void SetAutoTaunt(entity e, float t_soundtime, float t_soundtimefiltered, float soundtype)\r
+void SetAutoTaunt(entity e, float t_soundtime, float t_soundtype)\r
{\r
e.taunt_soundtime = t_soundtime;\r
- e.taunt_soundtimefiltered = t_soundtimefiltered;\r
- e.taunt_soundtype = soundtype;\r
+ e.taunt_soundtype = t_soundtype;\r
}\r
\r
float IsDifferentTeam(entity a, entity b)\r
bprint ("^1",s, "^1 burned to death\n");\r
else if (deathtype == DEATH_DIGESTION)\r
bprint ("^1",s, "^1 was digested\n");\r
+ else if (deathtype == DEATH_REGURGITATION)\r
+ bprint ("^1",s, "^1 regurgitated to death\n");\r
else if (deathtype == DEATH_STOMACHKICK)\r
bprint ("^1",s, "^1 was ripped apart from the inside\n");\r
else if (deathtype != DEATH_TEAMCHANGE && deathtype != DEATH_QUIET)\r
centerprint(attacker, strcat(DAMAGE_CENTERPRINT_SPACER, blood_message, "^4You ate ^7", s, GetAdvancedDeathReports(targ)));\r
centerprint(targ, strcat(DAMAGE_CENTERPRINT_SPACER, victim_message, "^1You were eaten by ^7", a, GetAdvancedDeathReports(attacker)));\r
}\r
- SetAutoTaunt(attacker, time + 1, FALSE, TAUNTTYPE_DEATH);\r
+ SetAutoTaunt(attacker, time + 1, TAUNTTYPE_DEATH);\r
}\r
}\r
else\r
centerprint(attacker, strcat(DAMAGE_CENTERPRINT_SPACER, blood_message, "^4You killed ^7", s, GetAdvancedDeathReports(targ)));\r
centerprint(targ, strcat(DAMAGE_CENTERPRINT_SPACER, victim_message, "^1You were killed by ^7", a, GetAdvancedDeathReports(attacker)));\r
}\r
- SetAutoTaunt(attacker, time + 1, FALSE, TAUNTTYPE_DEATH);\r
+ SetAutoTaunt(attacker, time + 1, TAUNTTYPE_DEATH);\r
}\r
}\r
\r
bprint ("^1",s, "^1 was burnt to death by ^1", a, "\n");\r
else if (deathtype == DEATH_DIGESTION)\r
bprint ("^1",s, "^1 was digested by ^1", a, "\n");\r
+ else if (deathtype == DEATH_REGURGITATION)\r
+ bprint ("^1",s, "^1 regurgitated to death due to ^1", a, "\n");\r
else if (deathtype == DEATH_STOMACHKICK)\r
bprint ("^1",s, "^1 was ripped apart from the inside by ^1", a, "\n");\r
else if (deathtype == DEATH_CUSTOM)\r
if (attacker.isbot)\r
damage = damage * bound(0.1, (skill + 5) * 0.1, 1);\r
\r
+ // if a predator is taking damage, check if he should regurgitate his prey, based on the damage he took\r
+ if(cvar("g_balance_vore_escapeprobability"))\r
+ {\r
+ entity e;\r
+ FOR_EACH_PLAYER(e)\r
+ {\r
+ if(e.predator != world && e.predator == targ)\r
+ if(random() < cvar("g_balance_vore_escapeprobability") * damage)\r
+ Vore_Regurgitate(e);\r
+ }\r
+ }\r
+\r
// nullify damage if teamplay is on\r
if(deathtype != DEATH_TELEFRAG)\r
if(attacker.classname == "player")\r
}\r
}\r
}\r
+\r
+ // lean the player based on the amount of damage taken\r
+ if(cvar("g_leanplayer_damage"))\r
+ {\r
+ if(hitloc != targ.origin) // prevents a bug\r
+ targ.leanangle_damage_loc = hitloc - targ.origin;\r
+ targ.leanangle_damage_force += force * cvar("g_leanplayer_damage"); // keep existing force if any\r
+\r
+ // bound angles to the specified limit\r
+ targ.leanangle_damage_force_x = bound(-cvar("g_leanplayer_damage_max"), targ.leanangle_damage_force_x, cvar("g_leanplayer_damage_max"));\r
+ targ.leanangle_damage_force_y = bound(-cvar("g_leanplayer_damage_max"), targ.leanangle_damage_force_y, cvar("g_leanplayer_damage_max"));\r
+ targ.leanangle_damage_force_z = bound(-cvar("g_leanplayer_damage_max"), targ.leanangle_damage_force_z, cvar("g_leanplayer_damage_max"));\r
+ }\r
}\r
\r
// apply push\r