Skip to content

Commit

Permalink
improve the logic for sniper pickups
Browse files Browse the repository at this point in the history
  • Loading branch information
nikitawastaken committed Jan 20, 2025
1 parent fd45c7c commit 4a58738
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions lua/weapontweakdata.lua
Original file line number Diff line number Diff line change
Expand Up @@ -446,15 +446,18 @@ function WeaponTweakData:_init_weapons()
weap_data.stats.alert_size = 20
weap_data.steelsight_time = 0.35
weap_data.steelsight_move_speed_mul = 0.5

local is_bolt_action = cat_map.snp and weap_data.use_data and weap_data.use_data.align_place = "right_hand"

local bolt_action_pickup_mul = 1
bolt_action_pickup_mul = (weap_data.stats.damage / 900) * 3
bolt_action_pickup_mul = bolt_action_pickup_mul * math.sqrt(480 / weap_data.stats.damage)

weap_data.pickup_mul = weap_data.pickup_mul or is_bolt_action and bolt_action_pickup_mul or 1


if cat_map.single_action then
local damage_modifier = weap_data.stats_modifiers and weap_data.stats_modifiers.damage or 1
local true_damage = weap_data.stats.damage * damage_modifier

local bolt_action_pickup_mul = 1
bolt_action_pickup_mul = (true_damage / 900) * 3
bolt_action_pickup_mul = bolt_action_pickup_mul * math.sqrt(480 / true_damage)

weap_data.pickup_mul = weap_data.pickup_mul or bolt_action_pickup_mul or 1
end

weap_data.spread_multiplier = {
standing = {
hipfire = 3,
Expand Down Expand Up @@ -871,7 +874,7 @@ function WeaponTweakData:_init_weapons()
local total_damage_mul = 1 + (burst_count - 1) * 0.25
weap_data.pickup_damage = weap_data.pickup_damage * total_damage_mul
end

if weap_data.can_shoot_through_enemy and not (cat_map.snp or cat_map.dmr) then
weap_data.pickup_damage = weap_data.pickup_damage / 2
end
Expand Down Expand Up @@ -2102,6 +2105,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.victor.fire_mode_data.fire_rate = 60 / 200

-- Rangehitter
table.insert(self.sbl.categories, "single_action")
table.insert(self.sbl.categories, "ng")
self.sbl.use_data.selection_index = 1
self.sbl.CLIP_AMMO_MAX = 10
Expand All @@ -2114,6 +2118,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.sbl.stats_modifiers = nil

-- Rattlesnake
table.insert(self.msr.categories, "single_action")
self.msr.CLIP_AMMO_MAX = 10
self.msr.stats.damage = 320
self.msr.stats.spread = 23
Expand All @@ -2124,6 +2129,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.msr.stats_modifiers = nil

-- Repeater
table.insert(self.winchester1874.categories, "single_action")
self.winchester1874.CLIP_AMMO_MAX = 15
self.winchester1874.stats.damage = 320
self.winchester1874.stats.spread = 24
Expand All @@ -2134,6 +2140,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.winchester1874.stats_modifiers = nil

-- R700
table.insert(self.r700.categories, "single_action")
self.r700.CLIP_AMMO_MAX = 10
self.r700.stats.damage = 320
self.r700.stats.spread = 24
Expand All @@ -2144,6 +2151,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.r700.stats_modifiers = nil

-- Scout
table.insert(self.scout.categories, "single_action")
self.scout.CLIP_AMMO_MAX = 5
self.scout.stats.damage = 320
self.scout.stats.spread = 21
Expand All @@ -2154,6 +2162,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.scout.stats_modifiers = nil

-- R93
table.insert(self.r93.categories, "single_action")
self.r93.CLIP_AMMO_MAX = 5
self.r93.stats.damage = 480
self.r93.stats.spread = 24
Expand All @@ -2164,6 +2173,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.r93.stats_modifiers = nil

-- Platypus
table.insert(self.model70.categories, "single_action")
self.model70.CLIP_AMMO_MAX = 6
self.model70.stats.damage = 480
self.model70.stats.spread = 24
Expand All @@ -2174,6 +2184,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.model70.stats_modifiers = nil

-- Nagant
table.insert(self.mosin.categories, "single_action")
self.mosin.CLIP_AMMO_MAX = 5
self.mosin.stats.damage = 480
self.mosin.stats.spread = 24
Expand All @@ -2184,6 +2195,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.mosin.stats_modifiers = nil

-- Desert Fox
table.insert(self.desertfox.categories, "single_action")
self.desertfox.CLIP_AMMO_MAX = 5
self.desertfox.stats.damage = 480
self.desertfox.stats.spread = 22
Expand All @@ -2210,6 +2222,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.contender.rays = nil

-- Thanatos
table.insert(self.m95.categories, "single_action")
self.m95.CLIP_AMMO_MAX = 5
self.m95.stats.damage = 755
self.m95.stats.spread = 24
Expand All @@ -2221,6 +2234,7 @@ Hooks:PostHook(WeaponTweakData, "init", "eclipse_init", function(self, tweak_dat
self.m95.swap_speed_multiplier = 0.75

-- AWP
table.insert(self.awp.categories, "single_action")
self.awp.CLIP_AMMO_MAX = 5
self.awp.stats.damage = 755
self.awp.stats.spread = 23
Expand Down

0 comments on commit 4a58738

Please sign in to comment.