1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-11 07:37:56 -05:00

Encounter: steal points from EMP Grenade and Meat

This commit is contained in:
Jbleezy
2024-01-03 19:50:26 -08:00
parent 5777f6a093
commit dc0e44895d
3 changed files with 117 additions and 90 deletions

View File

@ -201,7 +201,10 @@ player_perk_pause_and_unpause_all_perks(time, owner)
{
self.last_emped_by = spawnStruct();
self.last_emped_by.attacker = owner;
self [[level.store_player_damage_info_func]](owner, "emp_grenade_zm", "MOD_GRENADE_SPLASH");
self.player_damage_callback_score_only = 1;
self [[level._game_module_player_damage_callback]](owner, owner, 0, 0, "MOD_GRENADE_SPLASH", "emp_grenade_zm");
self.player_damage_callback_score_only = undefined;
}
else
{

View File

@ -439,7 +439,10 @@ meat_stink_player(who, owner)
{
who.last_meated_by = spawnStruct();
who.last_meated_by.attacker = owner;
who [[level.store_player_damage_info_func]](owner, level.item_meat_name, "MOD_UNKNOWN");
who.player_damage_callback_score_only = 1;
who [[level._game_module_player_damage_callback]](owner, owner, 0, 0, "MOD_UNKNOWN", level.item_meat_name);
who.player_damage_callback_score_only = undefined;
}
else
{

View File

@ -1661,6 +1661,15 @@ custom_end_screen()
game_module_player_damage_callback(einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, psoffsettime)
{
if (isdefined(self.player_damage_callback_score_only))
{
self do_game_mode_stun_score_steal(eattacker);
self store_player_damage_info(eattacker, sweapon, smeansofdeath);
return 0;
}
self.last_damage_from_zombie_or_player = 0;
if (isDefined(eattacker))
@ -1730,6 +1739,42 @@ game_module_player_damage_callback(einflictor, eattacker, idamage, idflags, smea
{
is_melee = true;
dir = vdir;
amount = self get_player_push_amount(idamage);
if (self isOnGround())
{
// don't move vertically if on ground
dir = (dir[0], dir[1], 0);
}
dir = vectorNormalize(dir);
self setVelocity(amount * dir);
}
if (is_true(self._being_shellshocked) && !is_melee)
{
return;
}
if (!is_true(self._being_shellshocked))
{
self do_game_mode_stun_score_steal(eattacker);
}
if (isDefined(level._effect["butterflies"]))
{
self do_game_mode_stun_fx(einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, psoffsettime);
}
self thread do_game_mode_shellshock(is_melee, is_weapon_upgraded(sweapon));
self playsound("zmb_player_hit_ding");
self store_player_damage_info(eattacker, sweapon, smeansofdeath);
}
}
get_player_push_amount(idamage)
{
amount = 0;
if (self maps\mp\zombies\_zm_laststand::is_reviving_any())
@ -1815,39 +1860,15 @@ game_module_player_damage_callback(einflictor, eattacker, idamage, idflags, smea
}
}
if (self isOnGround())
{
// don't move vertically if on ground
dir = (dir[0], dir[1], 0);
}
return amount;
}
dir = vectorNormalize(dir);
self setVelocity(amount * dir);
}
if (is_true(self._being_shellshocked) && !is_melee)
{
return;
}
if (!is_true(self._being_shellshocked))
{
do_game_mode_stun_score_steal(eattacker)
{
score = 100 * maps\mp\zombies\_zm_score::get_points_multiplier(eattacker);
self stun_score_steal(eattacker, score);
eattacker.killsdenied++;
}
if (isDefined(level._effect["butterflies"]))
{
self do_game_mode_stun_fx(einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, psoffsettime);
}
self thread do_game_mode_shellshock(is_melee, is_weapon_upgraded(sweapon));
self playsound("zmb_player_hit_ding");
self store_player_damage_info(eattacker, sweapon, smeansofdeath);
}
}
do_game_mode_stun_fx(einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, psoffsettime)