mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 15:17:57 -05:00
Storm PSR: add scripted bullet penetration
Storm PSR: decrease minimum damage Storm PSR: scale damage Storm PSR: decrease charge time
This commit is contained in:
@ -379,6 +379,7 @@ on_player_connect()
|
||||
player thread on_player_revived();
|
||||
player thread on_player_fake_revive();
|
||||
|
||||
player thread weapon_fire_watcher();
|
||||
player thread grenade_fire_watcher();
|
||||
player thread player_hide_turrets_from_other_players();
|
||||
player thread sndmeleewpnsound();
|
||||
@ -608,10 +609,12 @@ set_dvars()
|
||||
if (level.script == "zm_transit")
|
||||
{
|
||||
setDvar("bg_chargeShotMaxBulletsInQueue", 5);
|
||||
setDvar("bg_chargeShotQueueTime", 250);
|
||||
}
|
||||
else
|
||||
{
|
||||
setDvar("bg_chargeShotMaxBulletsInQueue", 3);
|
||||
setDvar("bg_chargeShotQueueTime", 500);
|
||||
}
|
||||
}
|
||||
|
||||
@ -647,10 +650,12 @@ set_client_dvars()
|
||||
if (level.script == "zm_transit")
|
||||
{
|
||||
self setClientDvar("bg_chargeShotMaxBulletsInQueue", 5);
|
||||
self setClientDvar("bg_chargeShotQueueTime", 250);
|
||||
}
|
||||
else
|
||||
{
|
||||
self setClientDvar("bg_chargeShotMaxBulletsInQueue", 3);
|
||||
self setClientDvar("bg_chargeShotQueueTime", 500);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1896,6 +1901,22 @@ wallbuy_cost_changes()
|
||||
}
|
||||
}
|
||||
|
||||
weapon_fire_watcher()
|
||||
{
|
||||
level endon("end_game");
|
||||
self endon("disconnect");
|
||||
|
||||
while (1)
|
||||
{
|
||||
self waittill("weapon_fired", weapname);
|
||||
|
||||
if (issubstr(weapname, "metalstorm"))
|
||||
{
|
||||
self thread metalstorm_fired(weapname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grenade_fire_watcher()
|
||||
{
|
||||
level endon("end_game");
|
||||
@ -1917,6 +1938,67 @@ grenade_fire_watcher()
|
||||
}
|
||||
}
|
||||
|
||||
metalstorm_fired(weapname)
|
||||
{
|
||||
forward_angles = self getweaponforwarddir();
|
||||
fire_origin = self getweaponmuzzlepoint();
|
||||
end_origin = fire_origin + (forward_angles * 10000);
|
||||
cylinder_dist_squared = 12 * 12;
|
||||
height_dist = 36;
|
||||
targets = getaispeciesarray(level.zombie_team, "all");
|
||||
targets = arraycombine(targets, get_players(), 1, 0);
|
||||
|
||||
foreach (target in targets)
|
||||
{
|
||||
if (isdefined(self.team) && isdefined(target.team) && self.team == target.team)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (target damageconetrace(fire_origin, self) == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
test_origin = target getcentroid();
|
||||
normal = vectornormalize(test_origin - fire_origin);
|
||||
dot = vectordot(forward_angles, normal);
|
||||
|
||||
if (dot < 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
radial_origin = pointonsegmentnearesttopoint(fire_origin, end_origin, test_origin);
|
||||
|
||||
if (distance2dsquared(test_origin, radial_origin) > cylinder_dist_squared)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (abs(test_origin[2] - radial_origin[2]) > height_dist)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
damage = self metalstorm_get_damage(weapname);
|
||||
|
||||
target dodamage(damage, target.origin, self, self, "none", "MOD_RIFLE_BULLET", 0, weapname);
|
||||
}
|
||||
}
|
||||
|
||||
metalstorm_get_damage(weapname)
|
||||
{
|
||||
base_damage = 1000;
|
||||
|
||||
if (issubstr(weapname, "upgraded"))
|
||||
{
|
||||
base_damage = 2000;
|
||||
}
|
||||
|
||||
return base_damage * self.chargeshotlevel;
|
||||
}
|
||||
|
||||
temp_disable_offhand_weapons()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
@ -1572,6 +1572,18 @@ actor_damage_override(inflictor, attacker, damage, flags, meansofdeath, weapon,
|
||||
}
|
||||
}
|
||||
|
||||
if (issubstr(weapon, "metalstorm"))
|
||||
{
|
||||
if (issubstr(weapon, "upgraded"))
|
||||
{
|
||||
final_damage = scale_damage(final_damage, 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
final_damage = scale_damage(final_damage, 5000);
|
||||
}
|
||||
}
|
||||
|
||||
if (weapon == "staff_revive_zm")
|
||||
{
|
||||
if (!is_true(self.is_mechz))
|
||||
|
Reference in New Issue
Block a user