From 0d2bb8689a3c4b2e04706f9f1ef6bb8abccfa81a Mon Sep 17 00:00:00 2001 From: Noep Date: Sun, 17 Sep 2023 11:01:04 -0400 Subject: [PATCH 01/65] support for Sidewinder SMR --- lua/sc/tweak_data/tweakdata.lua | 7 +-- lua/sc/tweak_data/weapontweakdata.lua | 43 +++++++++++++++++-- lua/sc/units/player/playerstandard.lua | 1 + lua/sc/units/weapons/newraycastweaponbase.lua | 6 +++ 4 files changed, 51 insertions(+), 6 deletions(-) diff --git a/lua/sc/tweak_data/tweakdata.lua b/lua/sc/tweak_data/tweakdata.lua index 024b3d9f48..3bea9f85fd 100644 --- a/lua/sc/tweak_data/tweakdata.lua +++ b/lua/sc/tweak_data/tweakdata.lua @@ -66,14 +66,15 @@ tweak_data.shotgun = { ads_moving_spread_mult = 1.5 } tweak_data.shotgun_light = { - hipfire_spread_mult = 1.2, + hipfire_spread_mult = 1.3, + ads_multishot_spread_mult = 4, moving_spread_mult = 1.8 } tweak_data.shotgun_heavy = { - hipfire_spread_mult = 0.5 + hipfire_spread_mult = 0.45 } tweak_data.shotgun_break = { - hipfire_spread_mult = 1.2 + hipfire_spread_mult = 1.15 } tweak_data.shotgun_pistol = { ads_move_speed_mult = 1.6, diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index ffd356caef..955640fae3 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -13966,6 +13966,39 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.umd_launcher.always_play_anims = true end + if self.sidewinder then --Cpone's Titanfall 2 Sidewinder SMR + self.sidewinder.categories = { + "grenade_launcher", + "raygun" + } + self.sidewinder.use_data.selection_index = 2 + self.sidewinder.CLIP_AMMO_MAX = 20 + self.sidewinder.AMMO_MAX = 80 + self.sidewinder.fire_mode_data.fire_rate = 0.11111111 + self.sidewinder.kick = self.stat_info.kick_tables.even_recoil + self.sidewinder.supported = true + self.sidewinder.ads_speed = 0.300 + self.sidewinder.stats = { + damage = 45, + spread = 66, + recoil = 71, + zoom = 1, + concealment = 17, + alert_size = 2, + suppression = 6, + extra_ammo = 101, + total_ammo_mod = 200, + reload = 20, + value = 10 + } + self.sidewinder.panic_suppression_chance = 0.05 + self.sidewinder.timers.reload_exit_not_empty = 0.9 + self.sidewinder.timers.reload_not_empty = 3.9 + self.sidewinder.timers.reload_exit_empty = 0.9 + self.sidewinder.timers.reload_empty = 3.9 + self.sidewinder.always_play_anims = true + end + if self.m712 then --Pawcio's M712 self.m712.categories = {"pistol"} self.m712.recategorize = {"heavy_pis"} @@ -18097,21 +18130,25 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) weap.rays = not weap.keep_rays and 1 or weap.rays elseif weap.damage_falloff and weap.damage_falloff.start_dist and weap.rays and weap.damage_type and not table.contains(weap.categories, "flamethrower") then weap.alt_shotgunraycast = weap.alt_shotgunraycast or true - weap.ads_speed = weap.ads_speed - 0.1 if weap.recategorize and weap.damage_type == "shotgun" or weap.damage_type == "shotgun_heavy" then if weap.recategorize[1] == "light_shot" and not table.contains(weap.categories, "shotgun_light") then table.insert(weap.categories, "shotgun_light") weap.ene_hs_mult = 0.5 + weap.damage_falloff.start_dist = math.ceil( (weap.damage_falloff.start_dist / 100) * 0.85 ) * 100 + weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1 ) * 100 + weap.ads_speed = weap.ads_speed - 0.02 elseif weap.recategorize[1] == "heavy_shot" and not table.contains(weap.categories, "shotgun_heavy") then table.insert(weap.categories, "shotgun_heavy") weap.damage_falloff.start_dist = math.ceil( (weap.damage_falloff.start_dist / 100) * 1.1 ) * 100 - weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1.2 ) * 100 + weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1.1 ) * 100 weap.ene_hs_mult = 0.65 + weap.ads_speed = weap.ads_speed - 0.1 elseif weap.recategorize[1] == "break_shot" and not table.contains(weap.categories, "shotgun_break") then table.insert(weap.categories, "shotgun_break") weap.damage_falloff.start_dist = math.ceil( (weap.damage_falloff.start_dist / 100) * 1.1 ) * 100 - weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1.2 ) * 100 + weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1.15 ) * 100 weap.ene_hs_mult = 0.8 + weap.ads_speed = weap.ads_speed - 0.06 end end if weap.damage_type == "shotgun" or weap.damage_type == "shotgun_heavy" then diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index d59a590a1e..e15fafb760 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -3686,6 +3686,7 @@ function PlayerStandard:_check_action_cash_inspect(t, input) --Applys the anim weight self._camera_unit:anim_state_machine():set_parameter(state, "alt_inspect", anim_weight) + self._equipped_unit:base():tweak_data_anim_play("inspect") managers.player:send_message(Message.OnCashInspectWeapon) end diff --git a/lua/sc/units/weapons/newraycastweaponbase.lua b/lua/sc/units/weapons/newraycastweaponbase.lua index 67d4547cae..ee74ed8931 100644 --- a/lua/sc/units/weapons/newraycastweaponbase.lua +++ b/lua/sc/units/weapons/newraycastweaponbase.lua @@ -218,7 +218,13 @@ function NewRaycastWeaponBase:conditional_accuracy_multiplier(current_state) if full_steelsight then if multi_ray then mul = mul * tweak_data.weapon.stat_info.shotgun_spread_increase_ads or 1 + + for _, category in ipairs(self:categories()) do + local multishot_spread = tweak_data[category] and tweak_data[category].ads_multishot_spread_mult or 1 + mul = mul * multishot_spread + end end + if self:weapon_tweak_data().always_hipfire or self.AKIMBO then mul = mul * tweak_data.weapon.stat_info.hipfire_only_spread_increase or 1 end From 73fd3207cb226214e89d398f280cf7ff8e8de1b0 Mon Sep 17 00:00:00 2001 From: SC Date: Sun, 17 Sep 2023 10:24:23 -0700 Subject: [PATCH 02/65] Balloon Popper Crash * Fixed a crash with Balloon Poppers when killing an LPF. --- lua/sc/tweak_data/mutatortweakdata.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lua/sc/tweak_data/mutatortweakdata.lua b/lua/sc/tweak_data/mutatortweakdata.lua index ebc8737a28..96a8b517ce 100644 --- a/lua/sc/tweak_data/mutatortweakdata.lua +++ b/lua/sc/tweak_data/mutatortweakdata.lua @@ -14,6 +14,10 @@ function MutatorTweakData:init_birthday(tweak_data) buff_id = 2, spawn_rate = 1 }, + lpf = { + buff_id = 2, + spawn_rate = 1 + }, shield = { buff_id = 3, spawn_rate = 2 From f8edd4b23fee9f2b3b7b37f9e8817ef89d428b83 Mon Sep 17 00:00:00 2001 From: Noep Date: Sun, 17 Sep 2023 21:53:23 -0400 Subject: [PATCH 03/65] Carl's M2019 Blaster --- lua/sc/loc/loc.lua | 2 + lua/sc/tweak_data/tweakdata.lua | 2 +- lua/sc/tweak_data/weaponfactorytweakdata.lua | 20 ++++++++++ lua/sc/tweak_data/weapontweakdata.lua | 42 +++++++++++++++++++- 4 files changed, 64 insertions(+), 2 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index bb46785ef2..d7777a782d 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -2072,6 +2072,8 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc --SAA/Peacemaker ["bm_ap_weapon_peacemaker_sc_desc"] = "#{risk}#The greatest handgun ever made.##\n\n#{skill_color}#Can pierce body armor, multiple enemies, shields and thin walls.##\n\nCan be #{skill_color}#fanned for an increased fire rate## at the cost of #{important_1}#more recoil, reduced effective range and the inabilty to aim down your sights.##", --CUSTOM PISTOLS + --M2019 Blaster + ["thatgun_desc"] = "It's the gun!\n\nYou know, that gun!\n\n#{skill_color}#Deals 50% of its damage through body armor and can pierce multiple enemies.##", --Malorian 3516 ["whydoyoucome"] = "The only one of its kind, made specially for rockerboy Johnny Silverhand.\n\n#{skill_color}#Can pierce multiple enemies and their body armor.\nRounds ricochet off surfaces while firing from the hip and pierce walls while aiming.\nWeapon Butt attacks shoot out a short ranged wave of fire.##", --Colt Detective diff --git a/lua/sc/tweak_data/tweakdata.lua b/lua/sc/tweak_data/tweakdata.lua index 3bea9f85fd..97387d10e6 100644 --- a/lua/sc/tweak_data/tweakdata.lua +++ b/lua/sc/tweak_data/tweakdata.lua @@ -66,7 +66,7 @@ tweak_data.shotgun = { ads_moving_spread_mult = 1.5 } tweak_data.shotgun_light = { - hipfire_spread_mult = 1.3, + hipfire_spread_mult = 1.25, ads_multishot_spread_mult = 4, moving_spread_mult = 1.8 } diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index 55b82ea277..c9ade6b8d9 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -31603,6 +31603,26 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se } end + if self.parts.wpn_fps_pis_lapd_grip_pearl then + + self.parts.wpn_fps_pis_lapd_body_standard.stance_mod = { + wpn_fps_pis_lapd = { translation = Vector3(0.15, 0, -0.65) } + } + + self.parts.wpn_fps_pis_lapd_grip_cherry.supported = true + self.parts.wpn_fps_pis_lapd_grip_cherry.stats = deep_clone(grips.recoil_acc) + self.parts.wpn_fps_pis_lapd_grip_cherry.custom_stats = deep_clone(grips.recoil_acc) + + self.parts.wpn_fps_pis_lapd_grip_pearl.supported = true + self.parts.wpn_fps_pis_lapd_grip_pearl.stats = deep_clone(grips.acc_1) + self.parts.wpn_fps_pis_lapd_grip_pearl.custom_stats = deep_clone(grips.acc_1) + + self.parts.wpn_fps_pis_lapd_grip_polymer.supported = true + self.parts.wpn_fps_pis_lapd_grip_polymer.stats = deep_clone(grips.quickdraw_1) + self.parts.wpn_fps_pis_lapd_grip_polymer.custom_stats = deep_clone(grips.quickdraw_1) + + end + --Make more attachments universally available, cartridge mismatching be damned for factory_id, i in pairs(self) do if self[factory_id] and self[factory_id .. "_npc"] and not self[factory_id].real_factory_id then diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index 955640fae3..95d3bc52d3 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -13708,7 +13708,46 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.czevo.panic_suppression_chance = 0.05 self.czevo.timers = deep_clone(self.shepheard.timers) self.x_czevo.use_data.selection_index = 5 - end + end + + if self.lapd then --Carl's M2019 Blaster + self.lapd.recategorize = {"heavy_pis", "handcannon"} + self.lapd.damage_type = "heavy_pistol" + self.lapd.desc_id = "thatgun_desc" + self.lapd.has_description = true + self.lapd.fire_mode_data.fire_rate = 0.24 + self.lapd.CLIP_AMMO_MAX = 5 + self.lapd.AMMO_MAX = 30 + self.lapd.kick = self.stat_info.kick_tables.moderate_kick + self.lapd.supported = true + self.lapd.ads_speed = 0.200 + self.lapd.damage_falloff = { + start_dist = 1500, + end_dist = 4800, + min_mult = 0.3 + } + self.lapd.stats = { + damage = 60, + spread = 86, + recoil = 57, + spread_moving = 9, + zoom = 1, + concealment = 27, + suppression = 8, + alert_size = 2, + extra_ammo = 101, + total_ammo_mod = 200, + value = 1, + reload = 20 + } + self.lapd.stats_modifiers = nil + self.lapd.panic_suppression_chance = 0.05 + self.lapd.armor_piercing_chance = 0.5 + self.lapd.can_shoot_through_enemy = true + self.lapd.can_shoot_through_enemy_unlim = true + self.lapd.sounds.fire2 = "rbull_fire" + self.lapd.timers = deep_clone(self.new_raging_bull.timers) + end if self.akm_nomag then --Leather Dann's Early Access AK self.akm_nomag.warsaw = true @@ -13996,6 +14035,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.sidewinder.timers.reload_not_empty = 3.9 self.sidewinder.timers.reload_exit_empty = 0.9 self.sidewinder.timers.reload_empty = 3.9 + self.sidewinder.always_hipfire = true self.sidewinder.always_play_anims = true end From 299e110a2eb4493bc0e6d74a1f370eae0274c0ad Mon Sep 17 00:00:00 2001 From: Gullwing-door <58391080+Gullwing-door@users.noreply.github.com> Date: Mon, 18 Sep 2023 13:18:40 +0900 Subject: [PATCH 04/65] Update locko.lua --- lua/sc/loc/locko.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index 76c5d9447b..b4b5aebb7f 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -1470,17 +1470,21 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization", function(loc) ["bm_w_x_model3"] = "아킴보 Frenchman Model 87 리볼버", ["bm_x_model3_sc_desc"] = "이 쌍리볼버를 들고 정오에 당신의 내면에 있는 투덜거리는 자질을 끌어내고 경찰에게 듀얼을 도전하세요.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 적을 관통할 수 있습니다.##", --Raging bull - ["bm_rage_sc_desc"] = "매우 강력한 단거리 대포. 정렬하는 멍청이들을 맞추어 빠르게 쓰려트립니다.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 적 여러 명을 관통할 수 있습니다.##", - ["bm_x_rage_sc_desc"] = "전혀 좋지도 않고 실용적이지도 않지만, 은행 강도 사건에서 이것들을 빼내서 경찰력을 압박하고 싶을 때 사용할 수 있습니다.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 적 여러 명을 관통할 수 있습니다.##", + ["bm_rage_sc_desc"] = "매우 강력한 단거리 대포. 정렬하는 멍청이들을 맞추어 빠르게 쓰려트립니다.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 다수의 적을 관통할 수 있습니다.##", + ["bm_x_rage_sc_desc"] = "전혀 좋지도 않고 실용적이지도 않지만, 은행 강도 사건에서 이것들을 빼내서 경찰력을 압박하고 싶을 때 사용할 수 있습니다.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 다수의 적을 관통할 수 있습니다.##", --Castigo ["bm_chinchilla_sc_desc"] = "강력하고 정확하며 스타일리시합니다. DC에서 더 내구성이 강한 적들을 돌파하는 데 유용합니다.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 적을 관통할 수 있습니다.##", ["bm_x_chinchilla_sc_desc"] = "시카리오는 그의 마크가 다운되었는지 확인해야 하며, 이 2개가 이를 보장합니다.\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 적을 관통할 수 있습니다.##", --RUS-12 - ["bm_rsh12_sc_desc"] = "한 손으로 대구경탄 싸기 시합의 절대적인 마지막 수단.\n\n#{skill_color}#방탄복과 여러 적, 방패 및 얇은 벽을 관통할 수 있습니다.##", + ["bm_rsh12_sc_desc"] = "한 손으로 대구경탄 싸기 시합의 절대적인 마지막 수단.\n\n#{skill_color}#방탄복과 다수의 적, 방패 및 얇은 벽을 관통할 수 있습니다.##", --SAA/Peacemaker ["bm_w_peacemaker"] = "Peacemaker .45LC 리볼버", - ["bm_ap_weapon_peacemaker_sc_desc"] = "#{risk}#인류 최고의 권총.##\n\n#{skill_color}#방탄복과 여러 적, 방패 및 얇은 벽을 관통할 수 있습니다.##\n\n#{important_1}#반동이 증가하고 유효 범위가 감소하고 조준을 할 수 없는 대신## #{skill_color}#발사 속도가 증가시키는## 팬링 기능이 있습니다.", + ["bm_ap_weapon_peacemaker_sc_desc"] = "#{risk}#인류 최고의 권총.##\n\n#{skill_color}#방탄복과 다수의 적, 방패 및 얇은 벽을 관통할 수 있습니다.##\n\n#{important_1}#반동이 증가하고 유효 범위가 감소하고 조준을 할 수 없는 대신## #{skill_color}#발사 속도가 증가시키는## 팬링 기능이 있습니다.", --CUSTOM HANDGUNS + --M2019 Blaster + ["thatgun_desc"] = "이건 총이야!\n\n알잖아, 그 총!\n\n#{skill_color}#방탄복을 관통해 피해의 50%를 가하고 다수의 적을 관통할 수 있습니다.##", + --Malorian 3516 + ["whydoyoucome"] = "로커보이 조니 실버핸드를 위한 특별히 제작된 유일한 총기입니다.\n\n#{skill_color}#다수의 적과 방탄복을 관통할 수 있습니다.\n탄은 지향 사격하는 동안 표면을 튕겨내고 조준하는 동안에는 벽을 관통합니다.\n개머리판으로 공격할 시 단거리를 가진 불길을 발사합니다.##", --Px4 ["bm_w_px4"] = "Bernetti Hx4 Canaan 권총", --Browning Hi-Power @@ -2660,9 +2664,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc --Derringer ["bm_w_derringer"] = "Derringer", --Automag .44 - ["bm_w_amt"] = "Automag .44", - --Malorian 3516 - ["whydoyoucome"] = "로커보이 조니 실버핸드를 위한 특별히 제작된 유일한 총기입니다.\n\n#{skill_color}#다수의 적과 방탄복을 관통할 수 있습니다.\n탄은 지향 사격하는 동안 표면을 튕겨내고 조준하는 동안에는 벽을 관통합니다.\n개머리판으로 공격할 시 단거리를 가진 불길을 발사합니다.##", + ["bm_w_amt"] = "Automag .44", --Colt Detective ["bm_w_coltds"] = "Crosskill Investigator", From 4d5edb4a316d216e4382cde9e12d74fd1cb751e1 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Mon, 18 Sep 2023 22:49:01 +0300 Subject: [PATCH 05/65] Shayu portrait from PD3 for Alpha UI --- addhudmisc.xml | 1 + .../mission_briefing/shayu.texture | Bin 0 -> 1048704 bytes lua/managers/hud/HUDMissionBriefing.lua | 9 +++++---- 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 assets/guis/textures/restoration/mission_briefing/shayu.texture diff --git a/addhudmisc.xml b/addhudmisc.xml index d536bcbc10..afcfc3ee49 100644 --- a/addhudmisc.xml +++ b/addhudmisc.xml @@ -55,6 +55,7 @@ + diff --git a/assets/guis/textures/restoration/mission_briefing/shayu.texture b/assets/guis/textures/restoration/mission_briefing/shayu.texture new file mode 100644 index 0000000000000000000000000000000000000000..c3ed3d73a84cab0a75cebb822a86bfc08efb7e22 GIT binary patch literal 1048704 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

JMXn>&%+XWCuR| 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 literal 0 HcmV?d00001 diff --git a/lua/managers/hud/HUDMissionBriefing.lua b/lua/managers/hud/HUDMissionBriefing.lua index b938976067..aa6a6b26bf 100644 --- a/lua/managers/hud/HUDMissionBriefing.lua +++ b/lua/managers/hud/HUDMissionBriefing.lua @@ -749,8 +749,8 @@ function HUDMissionBriefing:set_contact_info(contact, interupt) shatter = "guis/textures/restoration/mission_briefing/shatter", akashic = "guis/textures/pd2/mission_briefing/hector/contact", jiufeng = "guis/textures/restoration/mission_briefing/jiufeng", - shayu = "guis/textures/restoration/mission_briefing/event", -- Maybe someday she get own portrait - mcshay = "guis/textures/restoration/mission_briefing/mcshay", + shayu = "guis/textures/restoration/mission_briefing/shayu", + mcshay = "guis/textures/restoration/mission_briefing/mcshay", blaine = "guis/textures/restoration/mission_briefing/blaine", --Support for "Campaign Contract Sorting" mod (aka thanks OVK that you made random contractors and give them only 1 heist) silkroad = "guis/textures/restoration/mission_briefing/locke", @@ -778,8 +778,9 @@ function HUDMissionBriefing:set_contact_info(contact, interupt) shatter = "guis/textures/restoration/mission_briefing/shatter_pattern", akashic = "guis/textures/pd2/mission_briefing/hector/bd_pattern", jiufeng = "guis/dlcs/chas/textures/pd2/mission_briefing/bd_pattern", --Maybe someday they'll make this unique. - shayu = "guis/dlcs/chas/textures/pd2/mission_briefing/bd_pattern", - mcshay = "guis/textures/pd2/mission_briefing/bain/bd_pattern", + shayu = "guis/textures/pd2/mission_briefing/interupt/bd_pattern", --Need to make unique patterns + mcshay = "guis/textures/pd2/mission_briefing/interupt/bd_pattern", + blaine = "guis/textures/pd2/mission_briefing/interupt/bd_pattern", skirmish = "guis/textures/restoration/mission_briefing/shatter_pattern" } local pattern = "guis/textures/pd2/mission_briefing/".. contact .."/bd_pattern" From 96cd0f900078113b7e938b918c81ade28b1e24cc Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Tue, 19 Sep 2023 00:44:28 +0300 Subject: [PATCH 06/65] (Master)Plan --- lua/sc/loc/loc.lua | 2 ++ lua/sc/loc/locru.lua | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index d7777a782d..1e5f60e1bc 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -939,6 +939,8 @@ Hooks:Add("LocalizationManagerPostInit", "ResMod_english_Localization", function ["menu_state_loading"] = "Loading", ["menu_state_ingame"] = "Ingame", + ["menu_description"] = "The Plan", + -- ///Stuff ripped from the various locale files we had /// --Halloween Dozer Sword diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index 1cbf5b9198..a120d877b4 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -881,6 +881,8 @@ Hooks:Add("LocalizationManagerPostInit", "ResMod_english_Localization", function ["menu_state_loading"] = "Загружается", ["menu_state_ingame"] = "В игре", + + ["menu_description"] = "План", -- ///Stuff ripped from the various locale files we had /// --Halloween Dozer Sword @@ -1417,9 +1419,11 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization", function(loc) --["bm_w_derringer"] = "Деринжер", --Automag .44 --["bm_w_amt"] = "Автомаг .44", + --M2019 Blaster + ["thatgun_desc"] = "Вот это волына!\n\nИменно та самая!\n\n#{skill_color}#Наносит 50% урона через броню и может пробивать врагов.##", --Malorian 3516 --Киберсрань - ["whydoyoucome"] = "The only one of its kind, made specially for rockerboy Johnny Silverhand.\n\n#{skill_color}#Can pierce multiple enemies and their body armor.\nRounds ricochet off surfaces while firing from the hip and pierce walls while aiming.\nWeapon Butt attacks shoot out a short ranged wave of fire.##", + ["whydoyoucome"] = "Единственный в своем роде, сделанный специально для Джонни Сильверхенда.\n\n#{skill_color}#Можеть пробивать врагов и их броню.\nВо время стрельбы от бедра пули будут рикошетить от поверхностей. Пули пробивают стены, если стрелять в режиме прицеливания.\nУдар прикладом выпускает волну огня в коротком радиусе.##", --Colt Detective --["bm_w_coltds"] = "Кросскилл Детектив", ["bm_lemon_dmc_desc"] = "Мечтаете о скрытном и мощном револьвере? Мечты сбываются.\n\n#{skill_color}#Наносит двойной урон при атаке сзади.##", From 520a5aafe44f1f963c9010dedd4eb90228d862c6 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Tue, 19 Sep 2023 11:12:34 +0300 Subject: [PATCH 07/65] =?UTF-8?q?=D0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/sc/loc/locru.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index a120d877b4..7d9d6f166c 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -1423,7 +1423,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization", function(loc) ["thatgun_desc"] = "Вот это волына!\n\nИменно та самая!\n\n#{skill_color}#Наносит 50% урона через броню и может пробивать врагов.##", --Malorian 3516 --Киберсрань - ["whydoyoucome"] = "Единственный в своем роде, сделанный специально для Джонни Сильверхенда.\n\n#{skill_color}#Можеть пробивать врагов и их броню.\nВо время стрельбы от бедра пули будут рикошетить от поверхностей. Пули пробивают стены, если стрелять в режиме прицеливания.\nУдар прикладом выпускает волну огня в коротком радиусе.##", + ["whydoyoucome"] = "Единственный в своем роде, сделанный специально для Джонни Сильверхенда.\n\n#{skill_color}#Может пробивать врагов и их броню.\nВо время стрельбы от бедра пули будут рикошетить от поверхностей. Пули пробивают стены, если стрелять в режиме прицеливания.\nУдар прикладом выпускает волну огня в небольшом радиусе.##", --Colt Detective --["bm_w_coltds"] = "Кросскилл Детектив", ["bm_lemon_dmc_desc"] = "Мечтаете о скрытном и мощном револьвере? Мечты сбываются.\n\n#{skill_color}#Наносит двойной урон при атаке сзади.##", From 5c6dbb7150b8ac184de1b0da52c0815a6d2113a1 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Tue, 19 Sep 2023 13:13:49 +0300 Subject: [PATCH 08/65] Typo aaaaaaaaa --- lua/sc/loc/locru.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index 7d9d6f166c..f8572a1444 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -2634,7 +2634,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_w_x_scorpion"] = "Парные Cobra", ["bm_w_coal"] = "Tatonka", ["bm_w_vityaz"] = "AK Gen 21 Tactical", - ["bm_w_shepheard"] = "FIK PC9"", + ["bm_w_shepheard"] = "FIK PC9", ["bm_w_mp5"] = "Compact-5", ["bm_w_x_mp5"] = "Парные Compact-5", ["bm_w_m45"] = "Swedish K", @@ -2867,7 +2867,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_w_x_scorpion"] = "Парные Кобры", ["bm_w_coal"] = "Татонка", ["bm_w_vityaz"] = "АК 21 Тактический", - ["bm_w_shepheard"] = "ФИК ПС9"", + ["bm_w_shepheard"] = "ФИК ПС9", ["bm_w_mp5"] = "Компакт-5", ["bm_w_x_mp5"] = "Парные Компакт-5", ["bm_w_m45"] = "Карл M-45", From f0f2a533f43fe010a413cde27b9034e795acecca Mon Sep 17 00:00:00 2001 From: Noep Date: Tue, 19 Sep 2023 09:03:55 -0400 Subject: [PATCH 09/65] manually applied some of the per-pellet stats... ...as opposed to applying some blanket changes in that for loop that (now) starts at line 18171 --- lua/sc/tweak_data/tweakdata.lua | 10 +- lua/sc/tweak_data/weapontweakdata.lua | 191 +++++++++++++------------- 2 files changed, 99 insertions(+), 102 deletions(-) diff --git a/lua/sc/tweak_data/tweakdata.lua b/lua/sc/tweak_data/tweakdata.lua index 97387d10e6..7433828fd5 100644 --- a/lua/sc/tweak_data/tweakdata.lua +++ b/lua/sc/tweak_data/tweakdata.lua @@ -63,18 +63,20 @@ tweak_data.grenade_launcher = { tweak_data.shotgun = { ads_move_speed_mult = 0.5, - ads_moving_spread_mult = 1.5 + ads_moving_spread_mult = 1.25 } tweak_data.shotgun_light = { hipfire_spread_mult = 1.25, ads_multishot_spread_mult = 4, - moving_spread_mult = 1.8 + moving_spread_mult = 1.5 } tweak_data.shotgun_heavy = { - hipfire_spread_mult = 0.45 + hipfire_spread_mult = 0.45, + ads_multishot_spread_mult = 0.9 } tweak_data.shotgun_break = { - hipfire_spread_mult = 1.15 + hipfire_spread_mult = 1.15, + ads_multishot_spread_mult = 1 } tweak_data.shotgun_pistol = { ads_move_speed_mult = 1.6, diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index 95d3bc52d3..61998daf8d 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -3284,7 +3284,7 @@ function WeaponTweakData:_init_stats() --Recoil multiplier. Used for stability. self.stats.recoil = {} for i = 0, 100, 1 do - table.insert(self.stats.recoil, (math.lerp( 6, 0.65, i / 100 ) * 1)) + table.insert(self.stats.recoil, (math.lerp( 7.5, 0.75, i / 100 ) * 1)) end self.stats.value = {} @@ -10722,13 +10722,13 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.saiga.ads_speed = 0.380 self.saiga.damage_falloff = { start_dist = 300, - end_dist = 2600, + end_dist = 2500, min_mult = 0.5 } self.saiga.stats = { damage = 45, spread = 31, - recoil = 49, + recoil = 43, spread_moving = 7, zoom = 1, concealment = 25, @@ -10750,15 +10750,15 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.sko12.rays = 9 self.sko12.AMMO_MAX = 80 self.sko12.CLIP_AMMO_MAX = 25 - self.sko12.fire_mode_data.fire_rate = 0.1714285 + self.sko12.fire_mode_data.fire_rate = 0.1875 self.sko12.kick = self.stat_info.kick_tables.moderate_kick self.sko12.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.sko12.FIRE_MODE = "single" self.sko12.CAN_TOGGLE_FIREMODE = false self.sko12.supported = true - self.sko12.ads_speed = 0.500 + self.sko12.ads_speed = 0.460 self.sko12.damage_falloff = { - start_dist = 700, + start_dist = 600, end_dist = 3000, min_mult = 0.5 } @@ -10796,9 +10796,9 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.aa12.FIRE_MODE = "auto" self.aa12.CAN_TOGGLE_FIREMODE = false self.aa12.supported = true - self.aa12.ads_speed = 0.440 + self.aa12.ads_speed = 0.400 self.aa12.damage_falloff = { - start_dist = 800, + start_dist = 700, end_dist = 3200, min_mult = 0.5 } @@ -10834,10 +10834,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.ultima.CLIP_AMMO_MAX = 7 self.ultima.AMMO_MAX = 80 self.ultima.use_data.selection_index = 2 - self.ultima.fire_mode_data.fire_rate = 0.142857 + self.ultima.fire_mode_data.fire_rate = 0.16667 self.ultima.kick = self.stat_info.kick_tables.moderate_kick self.ultima.supported = true - self.ultima.ads_speed = 0.340 + self.ultima.ads_speed = 0.300 self.ultima.damage_falloff = { start_dist = 700, end_dist = 3000, @@ -10845,8 +10845,8 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.ultima.stats = { damage = 45, - spread = 26, - recoil = 43, + spread = 29, + recoil = 45, spread_moving = 7, zoom = 1, concealment = 24, @@ -10878,7 +10878,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.spas12.AMMO_MAX = 80 self.spas12.CLIP_AMMO_MAX = 6 self.spas12.CAN_TOGGLE_FIREMODE = false - self.spas12.fire_mode_data.fire_rate = 0.1666667 + self.spas12.fire_mode_data.fire_rate = 0.1935483 self.spas12.BURST_FIRE = 2 self.spas12.BURST_FIRE_RATE_MULTIPLIER = 5 self.spas12.BURST_FIRE_RECOIL_MULTIPLIER = 0.25 @@ -10887,7 +10887,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.spas12.BURST_DELAY = 0.250 self.spas12.kick = self.stat_info.kick_tables.left_kick self.spas12.supported = true - self.spas12.ads_speed = 0.400 + self.spas12.ads_speed = 0.340 self.spas12.damage_falloff = { start_dist = 800, end_dist = 3300, @@ -10895,8 +10895,8 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.spas12.stats = { damage = 45, - spread = 35, - recoil = 53, + spread = 38, + recoil = 55, spread_moving = 7, zoom = 1, concealment = 24, @@ -10924,11 +10924,11 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.benelli.CLIP_AMMO_MAX = 5 self.benelli.rays = 9 self.benelli.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" - self.benelli.fire_mode_data.fire_rate = 0.15 + self.benelli.fire_mode_data.fire_rate = 0.18181818 self.benelli.CAN_TOGGLE_FIREMODE = false self.benelli.kick = self.stat_info.kick_tables.moderate_kick self.benelli.supported = true - self.benelli.ads_speed = 0.380 + self.benelli.ads_speed = 0.320 self.benelli.damage_falloff = { start_dist = 900, end_dist = 3500, @@ -10936,8 +10936,8 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.benelli.stats = { damage = 45, - spread = 40, - recoil = 47, + spread = 43, + recoil = 49, spread_moving = 7, zoom = 1, concealment = 22, @@ -10972,7 +10972,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.basset.ads_speed = 0.360 self.basset.damage_falloff = { start_dist = 300, - end_dist = 2600, + end_dist = 2500, min_mult = 0.5 } self.basset.stats = { @@ -10982,7 +10982,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) alert_size = 2, spread = 31, spread_moving = 8, - recoil = 51, + recoil = 41, value = 1, extra_ammo = 101, reload = 20, @@ -10999,12 +10999,12 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.striker.rays = 9 self.striker.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.striker.AMMO_MAX = 40 - self.striker.fire_mode_data.fire_rate = 0.1764705 + self.striker.fire_mode_data.fire_rate = 0.1875 self.striker.CAN_TOGGLE_FIREMODE = false self.striker.CLIP_AMMO_MAX = 12 self.striker.kick = self.stat_info.kick_tables.right_kick self.striker.supported = true - self.striker.ads_speed = 0.420 + self.striker.ads_speed = 0.340 self.striker.damage_falloff = { start_dist = 600, end_dist = 3200, @@ -11034,10 +11034,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.rota.rays = 9 self.rota.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.rota.kick = self.stat_info.kick_tables.vertical_kick - self.rota.fire_mode_data.fire_rate = 0.15 + self.rota.fire_mode_data.fire_rate = 0.16667 self.rota.panic_suppression_chance = 0.05 self.rota.supported = true - self.rota.ads_speed = 0.360 + self.rota.ads_speed = 0.300 self.rota.damage_falloff = { start_dist = 800, end_dist = 3500, @@ -11080,7 +11080,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_judge.BURST_FIRE = 2 self.x_judge.AMMO_MAX = 60 self.x_judge.supported = true - self.x_judge.ads_speed = 0.280 + self.x_judge.ads_speed = 0.200 self.x_judge.damage_falloff = { start_dist = 400, end_dist = 2600, @@ -11126,10 +11126,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.m590.fire_rate_multiplier = 1.04166 self.m590.AMMO_MAX = 60 self.m590.supported = true - self.m590.ads_speed = 0.380 + self.m590.ads_speed = 0.320 self.m590.damage_falloff = { - start_dist = 600, - end_dist = 2500, + start_dist = 700, + end_dist = 2700, min_mult = 0.3333 } self.m590.stats = { @@ -11179,10 +11179,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) ignore_always_play_anims = true } self.supernova.supported = true - self.supernova.ads_speed = 0.360 + self.supernova.ads_speed = 0.300 self.supernova.damage_falloff = { - start_dist = 700, - end_dist = 2800, + start_dist = 800, + end_dist = 3000, min_mult = 0.3333 } self.supernova.stats = { @@ -11220,13 +11220,13 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.r870.kick = self.stat_info.kick_tables.vertical_kick self.r870.single.fire_rate = 0.5 self.r870.fire_mode_data.fire_rate = 0.5 - self.r870.fire_rate_multiplier = 0.91666 + self.r870.fire_rate_multiplier = 0.9583333 self.r870.AMMO_MAX = 60 self.r870.supported = true - self.r870.ads_speed = 0.400 + self.r870.ads_speed = 0.300 self.r870.damage_falloff = { - start_dist = 800, - end_dist = 3000, + start_dist = 900, + end_dist = 3300, min_mult = 0.3333 } self.r870.stats = { @@ -11260,13 +11260,13 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.ksg.AMMO_MAX = 60 self.ksg.CLIP_AMMO_MAX = 14 self.ksg.fire_mode_data.fire_rate = 0.5 - self.ksg.fire_rate_multiplier = 0.83333 + self.ksg.fire_rate_multiplier = 0.875 self.ksg.kick = self.stat_info.kick_tables.vertical_kick self.ksg.supported = true - self.ksg.ads_speed = 0.420 + self.ksg.ads_speed = 0.340 self.ksg.damage_falloff = { - start_dist = 600, - end_dist = 2800, + start_dist = 700, + end_dist = 3000, min_mult = 0.3333 } self.ksg.stats = { @@ -11313,10 +11313,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.m1897.BURST_FIRE_RANGE_MULTIPLIER = 0.66 self.m1897.AMMO_MAX = 60 self.m1897.supported = true - self.m1897.ads_speed = 0.380 + self.m1897.ads_speed = 0.280 self.m1897.damage_falloff = { - start_dist = 900, - end_dist = 3200, + start_dist = 1000, + end_dist = 3500, min_mult = 0.3333 } self.m1897.stats = { @@ -11350,10 +11350,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.serbu.fire_mode_data.fire_rate = 0.5 self.serbu.kick = self.stat_info.kick_tables.moderate_kick self.serbu.supported = true - self.serbu.ads_speed = 0.360 + self.serbu.ads_speed = 0.260 self.serbu.damage_falloff = { - start_dist = 500, - end_dist = 2200, + start_dist = 600, + end_dist = 2400, min_mult = 0.3333 } self.serbu.stats = { @@ -11400,7 +11400,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.m37.kick = self.stat_info.kick_tables.right_kick self.m37.panic_suppression_chance = 0.05 self.m37.supported = true - self.m37.ads_speed = 0.380 + self.m37.ads_speed = 0.280 self.m37.damage_falloff = { start_dist = 700, end_dist = 2800, @@ -11435,7 +11435,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.judge.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.judge.AMMO_MAX = 30 self.judge.supported = true - self.judge.ads_speed = 0.280 + self.judge.ads_speed = 0.200 self.judge.damage_falloff = { start_dist = 400, end_dist = 2600, @@ -11480,10 +11480,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.b682.sounds.fire_auto = "b682_fire" self.b682.kick = self.stat_info.kick_tables.vertical_kick self.b682.supported = true - self.b682.ads_speed = 0.480 + self.b682.ads_speed = 0.400 self.b682.damage_falloff = { - start_dist = 900, - end_dist = 3500, + start_dist = 1000, + end_dist = 4000, min_mult = 0.25 } self.b682.stats = { @@ -11569,10 +11569,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.huntsman.fire_mode_data.fire_rate = 0.171428 self.huntsman.kick = self.stat_info.kick_tables.vertical_kick self.huntsman.supported = true - self.huntsman.ads_speed = 0.440 + self.huntsman.ads_speed = 0.380 self.huntsman.damage_falloff = { - start_dist = 600, - end_dist = 2800, + start_dist = 700, + end_dist = 3200, min_mult = 0.25 } self.huntsman.stats = { @@ -11614,10 +11614,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.coach.fire_mode_data = {} self.coach.fire_mode_data.fire_rate = 0.171428 self.coach.supported = true - self.coach.ads_speed = 0.440 + self.coach.ads_speed = 0.380 self.coach.damage_falloff = { - start_dist = 600, - end_dist = 2700, + start_dist = 700, + end_dist = 3100, min_mult = 0.25 } self.coach.stats = { @@ -13100,7 +13100,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.amr12.AMMO_MAX = 80 self.amr12.tactical_reload = 1 self.amr12.CLIP_AMMO_MAX = 5 - self.amr12.fire_mode_data.fire_rate = 0.125 + self.amr12.fire_mode_data.fire_rate = 0.15 self.amr12.FIRE_MODE = "single" self.amr12.CAN_TOGGLE_FIREMODE = false self.amr12.BURST_FIRE = false @@ -13136,11 +13136,11 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.minibeck.damage_type = "shotgun" self.minibeck.damage_type_single_ray = "sniper" self.minibeck.tactical_reload = 1 - self.minibeck.fire_mode_data.fire_rate = 0.15789473 + self.minibeck.fire_mode_data.fire_rate = 0.18181818 self.minibeck.CLIP_AMMO_MAX = 5 self.minibeck.AMMO_MAX = 40 self.minibeck.supported = true - self.minibeck.ads_speed = 0.360 + self.minibeck.ads_speed = 0.280 self.minibeck.damage_falloff = { start_dist = 500, end_dist = 3000, @@ -13188,10 +13188,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.beck.fire_rate_multiplier = 0.9166666 self.beck.AMMO_MAX = 60 self.beck.supported = true - self.beck.ads_speed = 0.420 + self.beck.ads_speed = 0.320 self.beck.damage_falloff = { - start_dist = 700, - end_dist = 3000, + start_dist = 800, + end_dist = 3300, min_mult = 0.3333 } self.beck.stats = { @@ -13233,10 +13233,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.bs23.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.bs23.kick = self.stat_info.kick_tables.right_kick self.bs23.supported = true - self.bs23.ads_speed = 0.440 + self.bs23.ads_speed = 0.400 self.bs23.damage_falloff = { - start_dist = 700, - end_dist = 3100, + start_dist = 800, + end_dist = 3600, min_mult = 0.25 } self.bs23.stats = { @@ -13457,7 +13457,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.bdgr.timers.reload_exit_not_empty = 0.65 end - if self.sgs then --Gambyt's Guerilla 308. + if self.sgs then --Gambyt's Guerilla .308 self.sgs.nato = true self.sgs.categories = { "snp", @@ -13544,6 +13544,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) end if self.qsho then + self.qsho.categories = { "shotgun" } + self.qsho.recategorize = { "break_shot" } + self.qsho.damage_type = "shotgun_heavy" + self.qsho.damage_type_single_ray = "anti_materiel" self.qsho.should_reload_immediately = true self.qsho.has_description = true self.qsho.no_auto_anims = true @@ -13551,10 +13555,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.qsho.AMMO_MAX = 20 self.qsho.kick = self.stat_info.kick_tables.vertical_kick self.qsho.supported = true - self.qsho.ads_speed = 0.440 + self.qsho.ads_speed = 0.400 self.qsho.damage_falloff = { - start_dist = 800, - end_dist = 3000, + start_dist = 900, + end_dist = 3500, min_mult = 0.25 } self.qsho.stats = { @@ -14437,12 +14441,12 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.mp153.tactical_reload = 1 self.mp153.rays = 9 self.mp153.AMMO_MAX = 80 - self.mp153.fire_mode_data.fire_rate = 0.12 + self.mp153.fire_mode_data.fire_rate = 0.136363636 self.mp153.kick = self.stat_info.kick_tables.moderate_kick self.mp153.supported = true self.mp153.ads_speed = 0.400 self.mp153.damage_falloff = { - start_dist = 600, + start_dist = 500, end_dist = 3000, min_mult = 0.5 } @@ -14467,7 +14471,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) end if self.wmtx then --Pawcio's Widomaker TX - self.wmtx.recategorize = { "light_shot" } + self.wmtx.recategorize = { "heavy_shot" } self.wmtx.damage_type = "shotgun" self.wmtx.damage_type_single_ray = "sniper" self.wmtx.upgrade_blocks = nil @@ -14482,10 +14486,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.wmtx.fire_mode_data.fire_rate = 0.5 self.wmtx.panic_suppression_chance = 0.05 self.wmtx.supported = true - self.wmtx.ads_speed = 0.320 + self.wmtx.ads_speed = 0.300 self.wmtx.damage_falloff = { - start_dist = 600, - end_dist = 3100, + start_dist = 700, + end_dist = 3500, min_mult = 0.3333 } self.wmtx.stats = { @@ -14527,7 +14531,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.jackhammer.supported = true self.jackhammer.ads_speed = 0.400 self.jackhammer.damage_falloff = { - start_dist = 900, + start_dist = 800, end_dist = 3300, min_mult = 0.5 } @@ -14561,7 +14565,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.quadbarrel.rays = 9 self.quadbarrel.kick = self.stat_info.kick_tables.vertical_kick self.quadbarrel.AMMO_MAX = 40 - self.quadbarrel.sounds.stop_fire = "saiga_stop" + self.quadbarrel.sounds.stop_fire = "judge_x_fire" self.quadbarrel.BURST_FIRE = 2 self.quadbarrel.BURST_DELAY = 0.75 self.quadbarrel.CAN_TOGGLE_FIREMODE = false @@ -14616,10 +14620,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.ks23.CLIP_AMMO_MAX = 3 self.ks23.kick = self.stat_info.kick_tables.vertical_kick self.ks23.supported = true - self.ks23.ads_speed = 0.480 + self.ks23.ads_speed = 0.440 self.ks23.damage_falloff = { - start_dist = 700, - end_dist = 3100, + start_dist = 800, + end_dist = 3600, min_mult = 0.25 } self.ks23.stats = { @@ -14662,10 +14666,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.super.BURST_FIRE = false self.super.fire_mode_data.fire_rate = 0.5 self.super.supported = true - self.super.ads_speed = 0.400 + self.super.ads_speed = 0.360 self.super.damage_falloff = { - start_dist = 900, - end_dist = 2800, + start_dist = 1000, + end_dist = 3200, min_mult = 0.25 } self.super.stats = { @@ -17585,8 +17589,8 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.f500.supported = true self.f500.ads_speed = 0.400 self.f500.damage_falloff = { - start_dist = 800, - end_dist = 3000, + start_dist = 900, + end_dist = 3300, min_mult = 0.3333 } self.f500.stats = { @@ -17854,10 +17858,10 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.ashot.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.ashot.rays = 9 self.ashot.supported = true - self.ashot.ads_speed = 0.240 + self.ashot.ads_speed = 0.220 self.ashot.damage_falloff = { start_dist = 400, - end_dist = 2200, + end_dist = 2500, min_mult = 0.25 } self.ashot.stats = { @@ -18174,21 +18178,12 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) if weap.recategorize[1] == "light_shot" and not table.contains(weap.categories, "shotgun_light") then table.insert(weap.categories, "shotgun_light") weap.ene_hs_mult = 0.5 - weap.damage_falloff.start_dist = math.ceil( (weap.damage_falloff.start_dist / 100) * 0.85 ) * 100 - weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1 ) * 100 - weap.ads_speed = weap.ads_speed - 0.02 elseif weap.recategorize[1] == "heavy_shot" and not table.contains(weap.categories, "shotgun_heavy") then table.insert(weap.categories, "shotgun_heavy") - weap.damage_falloff.start_dist = math.ceil( (weap.damage_falloff.start_dist / 100) * 1.1 ) * 100 - weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1.1 ) * 100 weap.ene_hs_mult = 0.65 - weap.ads_speed = weap.ads_speed - 0.1 elseif weap.recategorize[1] == "break_shot" and not table.contains(weap.categories, "shotgun_break") then table.insert(weap.categories, "shotgun_break") - weap.damage_falloff.start_dist = math.ceil( (weap.damage_falloff.start_dist / 100) * 1.1 ) * 100 - weap.damage_falloff.end_dist = math.ceil( (weap.damage_falloff.end_dist / 100) * 1.15 ) * 100 weap.ene_hs_mult = 0.8 - weap.ads_speed = weap.ads_speed - 0.06 end end if weap.damage_type == "shotgun" or weap.damage_type == "shotgun_heavy" then From f9f59da6726d1cf353ff6399672f9e1ad28d5c8d Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Wed, 20 Sep 2023 00:30:49 +0300 Subject: [PATCH 10/65] Legendary FF invulnerable guard is gone --- req/mission_script/framing_frame_3.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/req/mission_script/framing_frame_3.lua b/req/mission_script/framing_frame_3.lua index e38ce495ef..1a1f068604 100644 --- a/req/mission_script/framing_frame_3.lua +++ b/req/mission_script/framing_frame_3.lua @@ -50,6 +50,12 @@ return { ponr_player_mul = ponr_timer_player_mul, ponr = ponr_value * 2 }, + --Disable unnecceary invulnerability for patrol guard + [105930] = { + values = { + invulnerable = false + } + }, -- Fix power cut SO delay and add some random delay [104685] = { values = { From 1da7fcaff628e2d27000a35bed8cdc4dd7514e9f Mon Sep 17 00:00:00 2001 From: Gullwing-door <58391080+Gullwing-door@users.noreply.github.com> Date: Wed, 20 Sep 2023 14:42:09 +0900 Subject: [PATCH 11/65] Update locko.lua --- lua/sc/loc/locko.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index b4b5aebb7f..3b5f6a41d9 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -941,6 +941,8 @@ Hooks:Add("LocalizationManagerPostInit", "ResMod_english_Localization", function ["menu_state_lobby"] = "Lobby", ["menu_state_loading"] = "Loading", ["menu_state_ingame"] = "Ingame", + + ["menu_description"] = "The Plan", -- ///Stuff ripped from the various locale files we had /// From f77a68121a89aa441ea0240aa980495dfe5b313e Mon Sep 17 00:00:00 2001 From: Noep Date: Wed, 20 Sep 2023 19:01:03 -0400 Subject: [PATCH 12/65] working rpk scope mount --- lua/sc/loc/loc.lua | 3 + lua/sc/tweak_data/tweakdata.lua | 4 +- lua/sc/tweak_data/upgradestweakdata.lua | 3 +- lua/sc/tweak_data/weaponfactorytweakdata.lua | 163 ++++++++++++++----- lua/sc/tweak_data/weapontweakdata.lua | 140 +++++++++++----- lua/sc/units/player/playerstandard.lua | 2 +- 6 files changed, 229 insertions(+), 86 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index 1e5f60e1bc..0c31e5d595 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -2498,6 +2498,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_wp_1911_m_big"] = "Casket Magazine", --Crosskill Chunky ["bm_w_m1911"] = "Crosskill A1", + ["bm_w_x_m1911"] = "Price & MacTavish", --Crosskill Guard ["bm_w_shrew"] = "Crosskill Guard", ["bm_w_x_shrew"] = "Barry & Paul", @@ -2882,9 +2883,11 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc LocalizationManager:add_localized_strings({ ["bm_w_pl14"] = "WS-14", + ["bm_w_x_pl14"] = "Akimbo WS-14s", ["bm_w_g22c"] = "Chimano 22C", ["bm_w_x_g22c"] = "Akimbo Chimano 22Cs", ["bm_w_x_1911"] = "Akimbo Operator IIs", + ["bm_w_x_m1911"] = "Akimbo Crosskill A1s", ["bm_w_x_sparrow"] = "Akimbo Sparrows", ["bm_w_scar"] = "VF-7S", ["bm_w_scarl"] = "VF-6M", diff --git a/lua/sc/tweak_data/tweakdata.lua b/lua/sc/tweak_data/tweakdata.lua index 7433828fd5..0a758d9340 100644 --- a/lua/sc/tweak_data/tweakdata.lua +++ b/lua/sc/tweak_data/tweakdata.lua @@ -80,7 +80,7 @@ tweak_data.shotgun = { } tweak_data.shotgun_pistol = { ads_move_speed_mult = 1.6, - swap_bonus = 1.75 + swap_bonus = 1.8 } tweak_data.flamethrower = { ads_move_speed_mult = 1, @@ -158,7 +158,7 @@ tweak_data.assault_rifle = { } tweak_data.akimbo = { - swap_bonus = 0.75, + swap_bonus = 0.8, ads_move_speed_mult = 0.75, ads_moving_spread_mult = 3, hipfire_spread_mult = 2, diff --git a/lua/sc/tweak_data/upgradestweakdata.lua b/lua/sc/tweak_data/upgradestweakdata.lua index 7ed7623013..5761c7804a 100644 --- a/lua/sc/tweak_data/upgradestweakdata.lua +++ b/lua/sc/tweak_data/upgradestweakdata.lua @@ -103,7 +103,8 @@ Hooks:PostHook(UpgradesTweakData, "init", "ResLevelTableInit", function(self, tw "sparrow", "x_sparrow", "gator", - "pl14" + "pl14", + "x_pl14" } }, l15 = { diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index c9ade6b8d9..bcdb430a7f 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -7934,7 +7934,57 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_rpk", "resmod_rpk", function(self) spread = 1, recoil = -2 } + + self.parts.wpn_fps_lmg_rpk_ak_unit = { + type = "shitass", + name_id = "none", + unit = "units/payday2/weapons/wpn_fps_ass_akm/wpn_fps_ass_akm" + , + stats = { + value = 1 + } + } + --RPK Part Additions + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_specter") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_aimpoint") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_docter") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_eotech") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_t1micro") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_cmore") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_aimpoint_2") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_cs") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_rx30") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_rx01") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_reflex") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_eotech_xps") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_uh") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_fc1") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_spot") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_bmg") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_tf90") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_poe") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_health") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_hamr") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_hamr_reddot") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_atibal") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_atibal_reddot") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_upg_ak_s_psl") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_lmg_rpk_m_ban") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_upg_ak_s_skfoldable") + + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_ak_scopemount") + + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_upg_ak_fg_combo3") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_fg_tapco") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_fg_midwest") + --table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_fg_krebs") -- Don't fit right, missing their respective unique attachment points + --table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_fg_trax") + + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_m_quick") + table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_m_quad") + + self.wpn_fps_lmg_rpk.adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, @@ -8103,43 +8153,6 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_rpk", "resmod_rpk", function(self) end end - --RPK Part Additions - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_specter") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_aimpoint") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_docter") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_eotech") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_t1micro") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_cmore") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_aimpoint_2") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_cs") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_rx30") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_rx01") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_reflex") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_eotech_xps") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_uh") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_fc1") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_spot") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_bmg") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_tf90") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_poe") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_health") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_hamr") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_atibal") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_upg_ak_s_psl") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_lmg_rpk_m_ban") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_upg_ak_s_skfoldable") - - --table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_o_ak_scopemount") -- doesn't work, missing "a_o_sm" - --table.insert(self.wpn_fps_lmg_rpk_npc.uses_parts, "wpn_fps_upg_o_ak_scopemount") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_upg_ak_fg_combo3") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_fg_tapco") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_fg_midwest") - --table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_fg_krebs") -- Don't fit right, missing their respective unique attachment points - --table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_fg_trax") - - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_m_quick") - table.insert(self.wpn_fps_lmg_rpk.uses_parts, "wpn_fps_upg_ak_m_quad") - self.wpn_fps_lmg_rpk_npc.uses_parts = deep_clone(self.wpn_fps_lmg_rpk.uses_parts) self.wpn_fps_lmg_rpk_npc.override = deep_clone(self.wpn_fps_lmg_rpk.override) @@ -10634,7 +10647,12 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_spas12", "resmod_spas12", function self.parts.wpn_fps_sho_s_spas12_folded.supported = true self.parts.wpn_fps_sho_s_spas12_folded.stats = deep_clone(stocks.fold_nocheeks_stats) self.parts.wpn_fps_sho_s_spas12_folded.custom_stats = deep_clone(stocks.fold_nocheeks_stats) - + self.parts.wpn_fps_sho_s_spas12_folded.stance_mod = { + wpn_fps_sho_spas12 = { + translation = Vector3(0,6,0) + } + } + --No Stock self.parts.wpn_fps_sho_s_spas12_nostock.pcs = { 10, @@ -11820,6 +11838,10 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_modpack_m4_ak", "resmod_modpack_m4 translation = Vector3(-0.005, 15.5, -4.34) } + self.parts.wpn_fps_upg_o_ak_scopemount.override.wpn_fps_upg_o_specter.stance_mod.wpn_fps_lmg_rpk = { + translation = Vector3(0.045, 17.5, -4.55) + } + self.parts.wpn_fps_upg_o_ak_scopemount.override.wpn_fps_upg_o_specter.stance_mod.wpn_fps_ass_akm_nomag = { translation = Vector3(-0.005, 15.5, -4.6) } @@ -14215,6 +14237,18 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_pl14", "resmod_pl14", function(sel end) +Hooks:PostHook(WeaponFactoryTweakData, "_init_x_pl14", "resmod_x_pl14", function(self) + + self.wpn_fps_pis_x_pl14.override.wpn_fps_pis_pl14_m_extended = { + stats = { + value = 1, + extra_ammo = 4, + concealment = -1 + } + } + +end) + --Akimbo MP5 Hooks:PostHook(WeaponFactoryTweakData, "_init_x_mp5", "resmod_x_mp5", function(self) @@ -18168,6 +18202,33 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_m1911", "resmod_m1911", function(s end) +Hooks:PostHook(WeaponFactoryTweakData, "_init_x_m1911", "resmod_x_m1911", function(self) + + self.wpn_fps_pis_x_m1911.override.wpn_fps_pis_m1911_m_extended = { + stats = { + value = 3, + concealment = -1, + extra_ammo = 6, + reload = -1 + } + } + + self.wpn_fps_pis_x_m1911.override.wpn_fps_pis_1911_co_1 = { + a_obj = "a_ns", + parent = "barrel" + } + self.wpn_fps_pis_x_m1911.override.wpn_fps_pis_1911_co_2 = { + a_obj = "a_ns", + parent = "barrel" + } + + table.insert(self.wpn_fps_pis_x_m1911.uses_parts, "wpn_fps_pis_1911_co_1") + table.insert(self.wpn_fps_pis_x_m1911.uses_parts, "wpn_fps_pis_1911_co_2") + + self.wpn_fps_pis_x_m1911_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_m1911.uses_parts) + +end) + --Mosconi 12G Tactical Shotgun Hooks:PostHook(WeaponFactoryTweakData, "_init_m590", "resmod_m590", function(self) @@ -22799,10 +22860,7 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se self.wpn_fps_shot_amr12.override.wpn_fps_m16_fg_standard = { adds = {} } - - table.insert(self.wpn_fps_shot_amr12.uses_parts, "wpn_fps_upg_i_singlefire") - table.insert(self.wpn_fps_shot_amr12.uses_parts, "wpn_fps_upg_i_autofire") - + self.wpn_fps_shot_amr12_npc.override = deep_clone(self.wpn_fps_shot_amr12.override) self.wpn_fps_shot_amr12_npc.uses_parts = deep_clone(self.wpn_fps_shot_amr12.uses_parts) @@ -32358,6 +32416,27 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se end end + self.wpn_fps_lmg_rpk.override.wpn_fps_upg_o_ak_scopemount = { + adds = { + "wpn_fps_lmg_rpk_ak_unit" + }, + override = deep_clone(self.parts.wpn_fps_upg_o_ak_scopemount.override) + } + + for part_id, i in pairs(self.wpn_fps_lmg_rpk.override.wpn_fps_upg_o_ak_scopemount.override) do + self.wpn_fps_lmg_rpk.override.wpn_fps_upg_o_ak_scopemount.override[part_id].parent = "shitass" + end + + for i, part_id in pairs(self.wpn_fps_lmg_rpk.uses_parts) do + if self.parts[part_id] and self.parts[part_id].type then + if self.parts[part_id].type == "vertical_grip" then + self.wpn_fps_lmg_rpk.override.wpn_fps_upg_o_ak_scopemount.override[part_id] = { + parent = "shitass" + } + end + end + end + --GEN 1 LEGENDARY STUFF-- --Vlad's Rodina-- self.parts.wpn_fps_upg_vlad_rodina_legend = { diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index 61998daf8d..b42fd7c9a2 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -4025,7 +4025,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self[wep_id].tactical_reload = 1 self[wep_id].has_description = false end - tact_rel = {'x_deagle','x_1911','x_b92fs','jowi','x_usp','x_g17','x_g22c','x_packrat','x_shrew','x_breech','x_g18c','x_hs2000','x_p226','x_pl14','x_ppk','x_sparrow','x_legacy','x_czech','x_stech','x_holt','x_maxim9','x_type54','x_sko12' } + tact_rel = {'x_deagle','x_1911','x_b92fs','jowi','x_usp','x_g17','x_g22c','x_packrat','x_shrew','x_breech','x_g18c','x_hs2000','x_p226','x_pl14','x_ppk','x_sparrow','x_legacy','x_czech','x_stech','x_holt','x_maxim9','x_type54','x_m1911' } for i, wep_id in ipairs(tact_rel) do self[wep_id].tactical_reload = 2 self[wep_id].BURST_FIRE = 2 @@ -4044,7 +4044,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self[wep_id].categories = {"akimbo", "assault_rifle"} end - local lock_em_up = {'colt_1911','usp','p226','g22c','glock_17','glock_18c','x_g18c','b92fs','ppk','mac10','x_mac10','deagle','x_deagle','x_1911','x_b92fs','jowi','g26','c96','x_c96','sterling','m1928','hs2000','rpg7','cobray','x_usp','x_g17','x_g22c','sparrow','x_sparrow','pl14','packrat','x_packrat','lemming','breech','erma','x_erma','shrew','x_shrew','stech','x_stech','czech','x_czech','maxim9','x_maxim9','holt','x_holt','m1911','beer','x_beer','type54','x_type54','legacy','x_legacy','coach','shepheard','x_shepheard','polymer','x_polymer','schakal','x_schakal','mp9','mp7','uzi','x_uzi','contender'} + local lock_em_up = {'colt_1911','usp','p226','g22c','glock_17','glock_18c','x_g18c','b92fs','ppk','mac10','x_mac10','deagle','x_deagle','x_1911','x_b92fs','jowi','g26','c96','x_c96','sterling','m1928','hs2000','rpg7','cobray','x_usp','x_g17','x_g22c','sparrow','x_sparrow','pl14','packrat','x_packrat','lemming','breech','erma','x_erma','shrew','x_shrew','stech','x_stech','czech','x_czech','maxim9','x_maxim9','holt','x_holt','m1911','x_m1911','beer','x_beer','type54','x_type54','legacy','x_legacy','coach','shepheard','x_shepheard','polymer','x_polymer','schakal','x_schakal','mp9','mp7','uzi','x_uzi','contender'} for i, wep_id in ipairs(lock_em_up) do self[ wep_id ].lock_slide = true self[ wep_id ].sounds.magazine_empty = "wp_pistol_slide_lock" @@ -4130,7 +4130,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self[ wep_id ].damage_type = "pistol" end - recat = { "usp", "x_usp", "type54", "x_type54", "shrew", "x_shrew", "colt_1911", "x_1911", "m1911", "c96" } + recat = { "usp", "x_usp", "type54", "x_type54", "shrew", "x_shrew", "colt_1911", "x_1911", "m1911", "x_m1911", "c96" } for i, wep_id in ipairs(recat) do self[ wep_id ].recategorize = { "heavy_pis" } self[ wep_id ].damage_type = "heavy_pistol" @@ -4730,6 +4730,39 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_b92fs.timers.reload_exit_empty = 0.55 self.x_b92fs.timers.reload_exit_not_empty = 0.65 + --Akimbo White Streak + self.x_pl14.has_description = true + self.x_pl14.desc_id = "bm_pl14_sc_desc" + self.x_pl14.fire_mode_data.fire_rate = 0.0882352 + self.x_pl14.CLIP_AMMO_MAX = 30 + self.x_pl14.AMMO_MAX = 150 + self.x_pl14.kick = self.stat_info.kick_tables.left_recoil + self.x_pl14.supported = true + self.x_pl14.ads_speed = 0.140 + self.x_pl14.damage_falloff = { + start_dist = 1700, + end_dist = 4000, + min_mult = 0.25 + } + self.x_pl14.stats = { + damage = 24, + spread = 44, + recoil = 79, + spread_moving = 5, + zoom = 1, + concealment = 30, + suppression = 11, + alert_size = 2, + extra_ammo = 101, + total_ammo_mod = 200, + value = 1, + reload = 20 + } + self.x_pl14.stats_modifiers = nil + self.x_pl14.panic_suppression_chance = 0.05 + self.x_pl14.timers.reload_exit_empty = 0.55 + self.x_pl14.timers.reload_exit_not_empty = 0.65 + --Akimbo Holt 9mm self.x_holt.has_description = true self.x_holt.desc_id = "bm_x_holt_sc_desc" @@ -4889,6 +4922,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_packrat.timers.reload_exit_empty = 0.55 self.x_packrat.timers.reload_exit_not_empty = 0.65 + --Akimbo Chimano Custom self.x_g22c.has_description = true self.x_g22c.desc_id = "bm_x_g22c_sc_desc" @@ -4924,7 +4958,6 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_g22c.timers.reload_exit_empty = 0.55 self.x_g22c.timers.reload_exit_not_empty = 0.65 - --Akimbo Signature .40 self.x_p226.kick = self.stat_info.kick_tables.even_recoil self.x_p226.CLIP_AMMO_MAX = 30 @@ -5655,6 +5688,41 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) --PRIMARIES + --Akimbo Crosskill Chunky + self.x_m1911.has_description = true + self.x_m1911.desc_id = "bm_m1911_sc_desc" + self.x_m1911.tactical_reload = 1 + self.x_m1911.fire_mode_data.fire_rate = 0.10714285 + self.x_m1911.CLIP_AMMO_MAX = 14 + self.x_m1911.AMMO_MAX = 80 + self.x_m1911.kick = self.stat_info.kick_tables.even_recoil + self.x_m1911.supported = true + self.x_m1911.ads_speed = 0.180 + self.x_m1911.damage_falloff = { + start_dist = 1200, + end_dist = 3500, + min_mult = 0.2 + } + self.x_m1911.stats = { + damage = 45, + spread = 51, + recoil = 75, + spread_moving = 5, + zoom = 1, + concealment = 28, + suppression = 9, + alert_size = 2, + extra_ammo = 101, + total_ammo_mod = 200, + value = 1, + reload = 20 + } + self.x_m1911.stats_modifiers = nil + self.x_m1911.panic_suppression_chance = 0.05 + self.x_m1911.reload_speed_multiplier = 1.075 + self.x_m1911.timers.reload_exit_empty = 0.55 + self.x_m1911.timers.reload_exit_not_empty = 0.65 + --Akimbo Crosskill Guard self.x_shrew.has_description = true self.x_shrew.desc_id = "bm_x_shrew_sc_desc" @@ -10714,7 +10782,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.saiga.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.saiga.CLIP_AMMO_MAX = 5 self.saiga.AMMO_MAX = 80 - self.saiga.fire_mode_data.fire_rate = 0.12 + self.saiga.fire_mode_data.fire_rate = 0.1333333 self.saiga.shake.fire_multiplier = 1 self.saiga.shake.fire_steelsight_multiplier = -1 self.saiga.kick = self.stat_info.kick_tables.right_kick @@ -10722,7 +10790,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.saiga.ads_speed = 0.380 self.saiga.damage_falloff = { start_dist = 300, - end_dist = 2500, + end_dist = 2300, min_mult = 0.5 } self.saiga.stats = { @@ -10750,7 +10818,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.sko12.rays = 9 self.sko12.AMMO_MAX = 80 self.sko12.CLIP_AMMO_MAX = 25 - self.sko12.fire_mode_data.fire_rate = 0.1875 + self.sko12.fire_mode_data.fire_rate = 0.19047619 self.sko12.kick = self.stat_info.kick_tables.moderate_kick self.sko12.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.sko12.FIRE_MODE = "single" @@ -10834,7 +10902,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.ultima.CLIP_AMMO_MAX = 7 self.ultima.AMMO_MAX = 80 self.ultima.use_data.selection_index = 2 - self.ultima.fire_mode_data.fire_rate = 0.16667 + self.ultima.fire_mode_data.fire_rate = 0.181818181 self.ultima.kick = self.stat_info.kick_tables.moderate_kick self.ultima.supported = true self.ultima.ads_speed = 0.300 @@ -10878,7 +10946,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.spas12.AMMO_MAX = 80 self.spas12.CLIP_AMMO_MAX = 6 self.spas12.CAN_TOGGLE_FIREMODE = false - self.spas12.fire_mode_data.fire_rate = 0.1935483 + self.spas12.fire_mode_data.fire_rate = 0.22222222 self.spas12.BURST_FIRE = 2 self.spas12.BURST_FIRE_RATE_MULTIPLIER = 5 self.spas12.BURST_FIRE_RECOIL_MULTIPLIER = 0.25 @@ -10924,7 +10992,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.benelli.CLIP_AMMO_MAX = 5 self.benelli.rays = 9 self.benelli.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" - self.benelli.fire_mode_data.fire_rate = 0.18181818 + self.benelli.fire_mode_data.fire_rate = 0.2 self.benelli.CAN_TOGGLE_FIREMODE = false self.benelli.kick = self.stat_info.kick_tables.moderate_kick self.benelli.supported = true @@ -10965,14 +11033,14 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.basset.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --"effects/particles/shotgun/shotgun_gen" self.basset.CLIP_AMMO_MAX = 5 self.basset.AMMO_MAX = 40 - self.basset.fire_mode_data.fire_rate = 0.12 + self.basset.fire_mode_data.fire_rate = 0.1333333 self.basset.kick = self.stat_info.kick_tables.moderate_left_kick self.basset.panic_suppression_chance = 0.05 self.basset.supported = true self.basset.ads_speed = 0.360 self.basset.damage_falloff = { start_dist = 300, - end_dist = 2500, + end_dist = 2100, min_mult = 0.5 } self.basset.stats = { @@ -12519,16 +12587,12 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) --[[ DISABLED SHIT NO ONE CARES ABOUT ]]-- - --Akimbo Crosskill Chunky - --DISABLED - self.x_m1911.use_data.selection_index = 5 - --Akimbo VD-12 - --DISABLED + --DISABLED - ALREADY A PRIMARY self.x_sko12.use_data.selection_index = 5 --Akimbo MP40 - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_erma.use_data.selection_index = 5 --Akimbo CR805 @@ -12536,11 +12600,11 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_hajk.use_data.selection_index = 5 --Akimbo Kross Vertex - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_polymer.use_data.selection_index = 5 --Akimbo Jackal - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_schakal.use_data.selection_index = 5 --Akimbo Chicago typewriter @@ -12552,7 +12616,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_cobray.use_data.selection_index = 5 --Akimbo Tatonka - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_coal.use_data.selection_index = 5 --Akimbo Spec Ops (Akimbo MP7) @@ -12584,17 +12648,13 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_breech.use_data.selection_index = 5 --akimbo Broomstick - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_c96.use_data.selection_index = 5 --Akimbo Leo --DISABLED-- self.x_hs2000.use_data.selection_index = 5 - --Akimbo White Streak - --DISABLED-- - self.x_pl14.use_data.selection_index = 5 - --Akimbo Gruber Kurz --DISABLED-- self.x_ppk.use_data.selection_index = 5 @@ -12604,7 +12664,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_m45.use_data.selection_index = 5 --Akimbo Signature SMG - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_shepheard.use_data.selection_index = 5 --Akimbo M13 @@ -12612,15 +12672,15 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.x_legacy.use_data.selection_index = 5 --Akimbo Beretta Auto - --DISABLED + --DISABLED - ALREADY A PRIMARY self.x_beer.use_data.selection_index = 5 --Akimbo AK Gen 21 Tactical - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_vityaz.use_data.selection_index = 5 --Akimbo Miyaka 10 - --DISABLED-- + --DISABLED - ALREADY A PRIMARY self.x_pm9.use_data.selection_index = 5 @@ -13100,7 +13160,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.amr12.AMMO_MAX = 80 self.amr12.tactical_reload = 1 self.amr12.CLIP_AMMO_MAX = 5 - self.amr12.fire_mode_data.fire_rate = 0.15 + self.amr12.fire_mode_data.fire_rate = 0.17142857 self.amr12.FIRE_MODE = "single" self.amr12.CAN_TOGGLE_FIREMODE = false self.amr12.BURST_FIRE = false @@ -13108,7 +13168,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.amr12.supported = true self.amr12.ads_speed = 0.400 self.amr12.damage_falloff = { - start_dist = 400, + start_dist = 500, end_dist = 2800, min_mult = 0.5 } @@ -13136,7 +13196,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.minibeck.damage_type = "shotgun" self.minibeck.damage_type_single_ray = "sniper" self.minibeck.tactical_reload = 1 - self.minibeck.fire_mode_data.fire_rate = 0.18181818 + self.minibeck.fire_mode_data.fire_rate = 0.2 self.minibeck.CLIP_AMMO_MAX = 5 self.minibeck.AMMO_MAX = 40 self.minibeck.supported = true @@ -14441,7 +14501,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.mp153.tactical_reload = 1 self.mp153.rays = 9 self.mp153.AMMO_MAX = 80 - self.mp153.fire_mode_data.fire_rate = 0.136363636 + self.mp153.fire_mode_data.fire_rate = 0.1875 self.mp153.kick = self.stat_info.kick_tables.moderate_kick self.mp153.supported = true self.mp153.ads_speed = 0.400 @@ -17454,16 +17514,16 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.omni.AMMO_MAX = 60 self.omni.tactical_reload = 1 self.omni.CLIP_AMMO_MAX = 10 - self.omni.fire_mode_data.fire_rate = 0.12 + self.omni.fire_mode_data.fire_rate = 0.15 self.omni.FIRE_MODE = "single" self.omni.CAN_TOGGLE_FIREMODE = false self.omni.BURST_FIRE = false self.omni.kick = self.stat_info.kick_tables.moderate_kick self.omni.supported = true - self.omni.ads_speed = 0.320 + self.omni.ads_speed = 0.240 self.omni.damage_falloff = { - start_dist = 900, - end_dist = 3200, + start_dist = 1000, + end_dist = 3000, min_mult = 0.66667 } self.omni.stats = { @@ -18192,11 +18252,11 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) if weap.stats.damage == 30 then --Omni weap.stats.damage = 90 --60 weap.damage_falloff.min_mult = 0.16667 --0.25 - weap.object_damage_mult = 0.5 + weap.object_damage_mult = 0.25 elseif weap.stats.damage == 45 then --Auto weap.stats.damage = 120 --90 weap.damage_falloff.min_mult = 0.15 --0.2 - weap.object_damage_mult = 0.5 + weap.object_damage_mult = 0.25 elseif weap.stats.damage == 60 then --Pump weap.stats.damage = 180 --120 weap.damage_falloff.min_mult = 0.13333 --0.2 diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index e15fafb760..a28b75a8d8 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -2472,7 +2472,7 @@ function PlayerStandard:_check_action_deploy_bipod(t, input, autodeploy) end local is_leaning = TacticalLean and ((TacticalLean:GetLeanDirection() or TacticalLean:IsExitingLean()) and true) or nil - action_forbidden = self._state_data.in_air or self._is_sliding or (autodeploy and self._move_dir) or is_leaning or self:_on_zipline() or self:_is_throwing_projectile() or self:_is_meleeing() or self:is_equipping() or self:_changing_weapon() + action_forbidden = self._state_data.in_air or self._is_sliding or (autodeploy and self._move_dir) or self:in_steelsight() or is_leaning or self:_on_zipline() or self:_is_throwing_projectile() or self:_is_meleeing() or self:is_equipping() or self:_changing_weapon() local weapon = self._equipped_unit:base() local bipod_part = managers.weapon_factory:get_parts_from_weapon_by_perk("bipod", weapon._parts) From 0a6c949dd97b7cafc7b7ee7c643291903143143a Mon Sep 17 00:00:00 2001 From: SC Date: Wed, 20 Sep 2023 18:56:53 -0700 Subject: [PATCH 13/65] Titanshield + Winters Rework P1 * Titanshields can now deploy flashbang attacks. Shooting out their lights while the attack is charging will stun the Titanshield. * You can now destroy Titanshields with sustained fire. They will revert to Titan SWAT behavior when their shield is destroyed. * Winters also employs Flashbang Attack behavior. *Winters will still overheal allies when his shield breaks, and can throw frag grenades. --- addSC.xml | 12 +++- .../ene_acc_shield_phalanx.sequence_manager | Bin 0 -> 7832 bytes .../ene_acc_shield_phalanx.unit | 29 ++++++++ .../ene_acc_shield_phalanx_dummy.unit | 23 ++++++ .../ene_acc_shield_vip.sequence_manager | Bin 0 -> 7832 bytes .../ene_acc_shield_vip.unit | 29 ++++++++ .../ene_acc_shield_vip_dummy.unit | 24 +++++++ .../ene_phalanx_1/ene_phalanx_1.unit | 4 ++ .../ene_phalanx_1/ene_phalanx_1_husk.unit | 6 +- .../ene_phalanx_1_assault.unit | 5 +- .../ene_phalanx_1_assault_husk.unit | 8 ++- .../characters/ene_vip_1/ene_vip_1.unit | 4 ++ .../characters/ene_vip_1/ene_vip_1_husk.unit | 8 ++- .../ene_phalanx_1_assault.unit | 4 ++ .../ene_phalanx_1_assault_husk.unit | 4 ++ ...e_acc_shield_akan_phalanx.sequence_manager | Bin 0 -> 7832 bytes .../ene_acc_shield_akan_phalanx.unit | 29 ++++++-- .../ene_acc_shield_akan_phalanx_dummy.unit | 23 ++++++ .../ene_phalanx_1_assault.unit | 4 ++ .../ene_phalanx_1_assault_husk.unit | 8 ++- lua/sc/tweak_data/charactertweakdata.lua | 28 ++++++++ lua/sc/tweak_data/groupaitweakdata.lua | 66 +++++++++++++++++- lua/sc/tweak_data/tweakdata.lua | 1 + lua/sc/units/enemies/copbrain.lua | 1 + lua/sc/units/enemies/copinventory.lua | 22 ++++++ lua/sc/units/enemies/copmovement.lua | 3 +- .../units/enemies/logics/coplogicattack.lua | 2 +- lua/sc/units/enemies/logics/coplogicbase.lua | 2 +- .../federales_diff/easy_wish_sc_federales.xml | 2 + .../overkill_145_sc_federales.xml | 4 +- .../overkill_290_sc_federales.xml | 2 + .../federales_diff/overkill_sc_federales.xml | 4 +- packages/federales_diff/skm_sc_federales.xml | 2 + .../federales_diff/sm_wish_sc_federales.xml | 2 + packages/russia_diff/easy_wish_sc_russia.xml | 2 + .../russia_diff/overkill_145_sc_russia.xml | 4 +- .../russia_diff/overkill_290_sc_russia.xml | 2 + packages/russia_diff/overkill_sc_russia.xml | 4 +- packages/russia_diff/skm_sc_russia.xml | 2 + packages/russia_diff/sm_wish_sc_russia.xml | 2 + 40 files changed, 358 insertions(+), 23 deletions(-) create mode 100644 assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager create mode 100644 assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.unit create mode 100644 assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx_dummy.unit create mode 100644 assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.sequence_manager create mode 100644 assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.unit create mode 100644 assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip_dummy.unit create mode 100644 assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.sequence_manager create mode 100644 assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx_dummy.unit diff --git a/addSC.xml b/addSC.xml index 647647c604..af4fa5a76a 100644 --- a/addSC.xml +++ b/addSC.xml @@ -945,8 +945,11 @@ - - + + + + + @@ -967,6 +970,11 @@ + + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager new file mode 100644 index 0000000000000000000000000000000000000000..239b254cbb0220aa8898c97bbf99cba0fb88474d GIT binary patch literal 7832 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 literal 0 HcmV?d00001 diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.unit b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.unit new file mode 100644 index 0000000000..44c2c7b99b --- /dev/null +++ b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.unit @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx_dummy.unit b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx_dummy.unit new file mode 100644 index 0000000000..5584b2a7d5 --- /dev/null +++ b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx_dummy.unit @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.sequence_manager b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.sequence_manager new file mode 100644 index 0000000000000000000000000000000000000000..239b254cbb0220aa8898c97bbf99cba0fb88474d GIT binary patch literal 7832 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 literal 0 HcmV?d00001 diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.unit b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.unit new file mode 100644 index 0000000000..94ca6f208b --- /dev/null +++ b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.unit @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip_dummy.unit b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip_dummy.unit new file mode 100644 index 0000000000..a13221c0db --- /dev/null +++ b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip_dummy.unit @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1.unit b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1.unit index 4e6627d0b0..7650f65d1c 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1.unit @@ -15,6 +15,10 @@ + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1_husk.unit b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1_husk.unit index c17fd64c07..77e4f6f488 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1_husk.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1/ene_phalanx_1_husk.unit @@ -14,9 +14,13 @@ + + + + - + diff --git a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit index c93854a630..0ddb32b14e 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit @@ -5,7 +5,6 @@ - @@ -16,6 +15,10 @@ + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit index f47567d760..87de3831a5 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit @@ -5,7 +5,7 @@ - + @@ -15,9 +15,13 @@ + + + + - + diff --git a/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1.unit b/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1.unit index c821b67b2b..15a352ddef 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1.unit @@ -15,6 +15,10 @@ + + + + diff --git a/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1_husk.unit b/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1_husk.unit index ef1d83bc11..7e76719461 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1_husk.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_vip_1/ene_vip_1_husk.unit @@ -5,7 +5,7 @@ - + @@ -15,9 +15,13 @@ + + + + - + diff --git a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit index a0ad1af181..5a5cd7c101 100644 --- a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit +++ b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit @@ -16,6 +16,10 @@ + + + + diff --git a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit index d91c783e2c..2b4dc9efaa 100644 --- a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit +++ b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit @@ -15,6 +15,10 @@ + + + + diff --git a/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.sequence_manager b/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.sequence_manager new file mode 100644 index 0000000000000000000000000000000000000000..239b254cbb0220aa8898c97bbf99cba0fb88474d GIT binary patch literal 7832 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 literal 0 HcmV?d00001 diff --git a/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.unit b/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.unit index 54715bfa1d..8b49c53a72 100644 --- a/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.unit +++ b/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.unit @@ -1,10 +1,29 @@ + - + + + - + + + + + + - - - + + + + + + + + + + + + + + diff --git a/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx_dummy.unit b/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx_dummy.unit new file mode 100644 index 0000000000..419f7b2dea --- /dev/null +++ b/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx_dummy.unit @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit index a411a81c05..313272d54a 100644 --- a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit +++ b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit @@ -17,6 +17,10 @@ + + + + diff --git a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit index f6e11087bc..3f6f11a70d 100644 --- a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit +++ b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit @@ -6,7 +6,7 @@ - + @@ -16,9 +16,13 @@ + + + + - + diff --git a/lua/sc/tweak_data/charactertweakdata.lua b/lua/sc/tweak_data/charactertweakdata.lua index 7262323190..a980413e17 100644 --- a/lua/sc/tweak_data/charactertweakdata.lua +++ b/lua/sc/tweak_data/charactertweakdata.lua @@ -2840,6 +2840,34 @@ function CharacterTweakData:_init_phalanx_vip(presets) self.phalanx_vip.captain_type = restoration.captain_types.winter self.phalanx_vip.no_mutator_weapon_override = true table.insert(self._enemy_list, "phalanx_vip") + + --Winters, shield broken + self.phalanx_vip_break = deep_clone(self.phalanx_vip) + self.phalanx_vip_break.tags = {"law", "special", "captain"} + self.phalanx_vip_break.rotation_speed = 3 + self.phalanx_vip_break.damage.hurt_severity = presets.hurt_severities.only_light_hurt_no_explode + self.phalanx_vip_break.dodge = presets.dodge.elite + self.phalanx_vip_break.move_speed = presets.move_speed.very_fast + self.phalanx_vip_break.can_throw_frag = true + self.phalanx_vip_break.HEALTH_INIT = 140 + self.phalanx_vip_break.headshot_dmg_mul = 2.5 + self.phalanx_vip_break.allowed_stances = nil + self.phalanx_vip_break.allowed_poses = nil + self.phalanx_vip_break.no_equip_anim = nil + self.phalanx_vip_break.no_run_start = nil + self.phalanx_vip_break.no_run_stop = nil + self.phalanx_vip_break.always_face_enemy = nil + self.phalanx_vip_break.wall_fwd_offset = nil + self.phalanx_vip_break.damage.explosion_damage_mul = 0.40 + self.phalanx_vip_break.damage.rocket_damage_mul = 0.40 + self.phalanx_vip_break.damage.fire_pool_damage_mul = 0.20 + self.phalanx_vip_break.damage.bullet_damage_mul = 0.45 + self.phalanx_vip_break.damage.fire_damage_mul = 0.30 + self.phalanx_vip_break.modify_health_on_tweak_change = true + self.phalanx_vip_break.announce_incomming = nil + self.phalanx_vip_break.marshal_logic = true + self.phalanx_vip_break.tmp_invulnerable_on_tweak_change = 15 + table.insert(self._enemy_list, "phalanx_vip_break") end function CharacterTweakData:_init_spring(presets) diff --git a/lua/sc/tweak_data/groupaitweakdata.lua b/lua/sc/tweak_data/groupaitweakdata.lua index 074ec7f6cc..544054ac09 100644 --- a/lua/sc/tweak_data/groupaitweakdata.lua +++ b/lua/sc/tweak_data/groupaitweakdata.lua @@ -18835,7 +18835,71 @@ function GroupAITweakData:_init_task_data(difficulty_index, difficulty) specular_mul = 1, color = Vector3(255, 0, 0) } - } + }, + phalanx_minion = { + flash_charge_stun_sound = "USM_Beep_Stop", + flash_charge_stun_effect = "effects/particles/explosions/explosion_flash_grenade", + flash_effect = "effects/payday2/particles/character/marshal_bright_light", + flash_charge_stun_sound_explosion = "no_sound", + flash_charge_timer = 3, + beep_effect = "effects/payday2/particles/character/marshal_red_light", + flash_charge_stun_range = 300, + beep_sound = "USM_Beep", + flash_range = 1200, + flash_charge_range = 1100, + flash_shape_radius = 120, + flash_charge_cooldown = 18, + flash_slotmask = "persons_no_players", + flash_shape = "cylinder", + flash_sound = "USM_Flash", + flash_range_min = 200, + flash_charge_stun_slotmask = "persons_no_players", + beep_speeds = { + 0.1, + 0.025 + }, + beep_light_data = { + type_str = "omni|specular", + range = 300, + beep_mul = 0.3, + falloff_exp = 0.5, + beep_fade_speed = 4, + specular_mul = 1, + color = Vector3(255, 0, 0) + } + }, + phalanx_vip = { + flash_charge_stun_sound = "USM_Beep_Stop", + flash_charge_stun_effect = "effects/particles/explosions/explosion_flash_grenade", + flash_effect = "effects/payday2/particles/character/marshal_bright_light", + flash_charge_stun_sound_explosion = "no_sound", + flash_charge_timer = 1.5, + beep_effect = "effects/payday2/particles/character/marshal_red_light", + flash_charge_stun_range = 300, + beep_sound = "USM_Beep", + flash_range = 1200, + flash_charge_range = 1100, + flash_shape_radius = 120, + flash_charge_cooldown = 9, + flash_slotmask = "persons_no_players", + flash_shape = "cylinder", + flash_sound = "USM_Flash", + flash_range_min = 200, + flash_charge_stun_slotmask = "persons_no_players", + beep_speeds = { + 0.1, + 0.025 + }, + beep_light_data = { + type_str = "omni|specular", + range = 300, + beep_mul = 0.3, + falloff_exp = 0.5, + beep_fade_speed = 4, + specular_mul = 1, + color = Vector3(255, 0, 0) + } + } } self.flash_shields.default = self.flash_shields.marshal_shield diff --git a/lua/sc/tweak_data/tweakdata.lua b/lua/sc/tweak_data/tweakdata.lua index 0a758d9340..5737e3ee28 100644 --- a/lua/sc/tweak_data/tweakdata.lua +++ b/lua/sc/tweak_data/tweakdata.lua @@ -903,6 +903,7 @@ end tweak_data.medic.disabled_units = { "phalanx_vip", + "phalanx_vip_break", "spring", "headless_hatman", "taser_summers", diff --git a/lua/sc/units/enemies/copbrain.lua b/lua/sc/units/enemies/copbrain.lua index 38af0dc796..2e6b6399ea 100644 --- a/lua/sc/units/enemies/copbrain.lua +++ b/lua/sc/units/enemies/copbrain.lua @@ -238,6 +238,7 @@ logic_variants.tank_black.attack = TankCopLogicAttack logic_variants.tank_skull = clone(security_variant) logic_variants.tank_skull.attack = TankCopLogicAttack logic_variants.biker_guard = security_variant +logic_variants.phalanx_vip_break = security_variant logic_variants.phalanx_minion_assault = clone(security_variant) logic_variants.phalanx_minion_assault.attack = ShieldLogicAttack logic_variants.phalanx_minion_assault.intimidated = nil diff --git a/lua/sc/units/enemies/copinventory.lua b/lua/sc/units/enemies/copinventory.lua index 39ab612097..9d56d83904 100644 --- a/lua/sc/units/enemies/copinventory.lua +++ b/lua/sc/units/enemies/copinventory.lua @@ -28,4 +28,26 @@ function CopInventory:add_unit_by_name(new_unit_name, equip) end self:add_unit(new_unit, equip) + + + if self._unit:base()._tweak_table == "phalanx_minion" or self._unit:base()._tweak_table == "phalanx_minion_assault" then + self._shield_break_data = { + anim_global_switch = "cop", + tweak_table_name_switch = "city_swat_titan_assault", + weapon_switch_selection = 2, + hurt_data = { + hurt_type = "stagger" + } + } + elseif self._unit:base()._tweak_table == "phalanx_vip" then + self._shield_break_data = { + anim_global_switch = "cop", + tweak_table_name_switch = "phalanx_vip_break", + weapon_switch_selection = 2, + hurt_data = { + hurt_type = "hurt" + } + } + end + end \ No newline at end of file diff --git a/lua/sc/units/enemies/copmovement.lua b/lua/sc/units/enemies/copmovement.lua index 329b5b2fe0..5406aa308f 100644 --- a/lua/sc/units/enemies/copmovement.lua +++ b/lua/sc/units/enemies/copmovement.lua @@ -58,6 +58,7 @@ action_variants.tank_black.walk = TankCopActionWalk action_variants.tank_skull = clone(security_variant) action_variants.tank_skull.walk = TankCopActionWalk action_variants.biker_guard = security_variant +action_variants.phalanx_vip_break = security_variant action_variants.phalanx_minion_assault = clone(security_variant) action_variants.phalanx_minion_assault.hurt = ShieldActionHurt action_variants.phalanx_minion_assault.walk = ShieldCopActionWalk @@ -325,7 +326,7 @@ function CopMovement:do_omnia(self) "summers" } heal_range = 1600 - elseif self._unit:base()._tweak_table == "phalanx_vip" then + elseif self._unit:base()._tweak_table == "phalanx_vip" or self._unit:base()._tweak_table == "phalanx_vip_break" then heal_range = 2000 heal_vo = "heal_chatter_winters" end diff --git a/lua/sc/units/enemies/logics/coplogicattack.lua b/lua/sc/units/enemies/logics/coplogicattack.lua index 2a979358b8..ec748899be 100644 --- a/lua/sc/units/enemies/logics/coplogicattack.lua +++ b/lua/sc/units/enemies/logics/coplogicattack.lua @@ -169,7 +169,7 @@ function CopLogicAttack.aim_allow_fire(shoot, aim, data, my_data) -- doesn't rea end my_data.shield_knock_cooldown = data.t + math_random(12, 24) - elseif data.unit:base()._tweak_table == "spring" or data.unit:base()._tweak_table == "phalanx_vip" then + elseif data.unit:base()._tweak_table == "spring" or data.unit:base()._tweak_table == "phalanx_vip" or data.unit:base()._tweak_table == "phalanx_vip_break" then data.unit:sound():say("a05", true) else managers.groupai:state():chk_say_enemy_chatter(data.unit, data.m_pos, "contact") diff --git a/lua/sc/units/enemies/logics/coplogicbase.lua b/lua/sc/units/enemies/logics/coplogicbase.lua index dfc607b400..75a636c34d 100644 --- a/lua/sc/units/enemies/logics/coplogicbase.lua +++ b/lua/sc/units/enemies/logics/coplogicbase.lua @@ -309,7 +309,7 @@ function CopLogicBase._set_attention_obj(data, new_att_obj, new_reaction) if AIAttentionObject.REACT_SHOOT <= new_reaction and new_att_obj.verified and contact_chatter_time_ok and (data.unit:anim_data().idle or data.unit:anim_data().move) and new_att_obj.is_person and data.char_tweak.chatter.contact then if data.unit:anim_data().idle or data.unit:anim_data().move then local tweak_table = data.unit:base()._tweak_table - if tweak_table == "phalanx_vip" then + if tweak_table == "phalanx_vip" or tweak_table == "phalanx_vip_break" then data.unit:sound():say("a01", true) elseif tweak_table == "spring" then data.unit:sound():say("a01", true) diff --git a/packages/federales_diff/easy_wish_sc_federales.xml b/packages/federales_diff/easy_wish_sc_federales.xml index 621c758e0e..3e5cd69804 100644 --- a/packages/federales_diff/easy_wish_sc_federales.xml +++ b/packages/federales_diff/easy_wish_sc_federales.xml @@ -518,8 +518,10 @@ + + diff --git a/packages/federales_diff/overkill_145_sc_federales.xml b/packages/federales_diff/overkill_145_sc_federales.xml index 4b8df305c8..3bff3183fa 100644 --- a/packages/federales_diff/overkill_145_sc_federales.xml +++ b/packages/federales_diff/overkill_145_sc_federales.xml @@ -439,14 +439,16 @@ - + + + diff --git a/packages/federales_diff/overkill_290_sc_federales.xml b/packages/federales_diff/overkill_290_sc_federales.xml index 0832a6ec9c..d005edabe1 100644 --- a/packages/federales_diff/overkill_290_sc_federales.xml +++ b/packages/federales_diff/overkill_290_sc_federales.xml @@ -461,8 +461,10 @@ + + diff --git a/packages/federales_diff/overkill_sc_federales.xml b/packages/federales_diff/overkill_sc_federales.xml index 6bfb12aa0b..3483197696 100644 --- a/packages/federales_diff/overkill_sc_federales.xml +++ b/packages/federales_diff/overkill_sc_federales.xml @@ -422,14 +422,16 @@ - + + + diff --git a/packages/federales_diff/skm_sc_federales.xml b/packages/federales_diff/skm_sc_federales.xml index 7eb53246ab..e536de4f9b 100644 --- a/packages/federales_diff/skm_sc_federales.xml +++ b/packages/federales_diff/skm_sc_federales.xml @@ -573,8 +573,10 @@ + + diff --git a/packages/federales_diff/sm_wish_sc_federales.xml b/packages/federales_diff/sm_wish_sc_federales.xml index 5f512feac3..aa070274c6 100644 --- a/packages/federales_diff/sm_wish_sc_federales.xml +++ b/packages/federales_diff/sm_wish_sc_federales.xml @@ -482,8 +482,10 @@ + + diff --git a/packages/russia_diff/easy_wish_sc_russia.xml b/packages/russia_diff/easy_wish_sc_russia.xml index eb054c72a5..17e81c60f8 100644 --- a/packages/russia_diff/easy_wish_sc_russia.xml +++ b/packages/russia_diff/easy_wish_sc_russia.xml @@ -565,8 +565,10 @@ + + diff --git a/packages/russia_diff/overkill_145_sc_russia.xml b/packages/russia_diff/overkill_145_sc_russia.xml index 3e978d6e85..56f54aacbb 100644 --- a/packages/russia_diff/overkill_145_sc_russia.xml +++ b/packages/russia_diff/overkill_145_sc_russia.xml @@ -465,14 +465,16 @@ - + + + diff --git a/packages/russia_diff/overkill_290_sc_russia.xml b/packages/russia_diff/overkill_290_sc_russia.xml index 0e23e597a1..e3b3c1453d 100644 --- a/packages/russia_diff/overkill_290_sc_russia.xml +++ b/packages/russia_diff/overkill_290_sc_russia.xml @@ -503,8 +503,10 @@ + + diff --git a/packages/russia_diff/overkill_sc_russia.xml b/packages/russia_diff/overkill_sc_russia.xml index b67553812a..14f303d946 100644 --- a/packages/russia_diff/overkill_sc_russia.xml +++ b/packages/russia_diff/overkill_sc_russia.xml @@ -450,14 +450,16 @@ - + + + diff --git a/packages/russia_diff/skm_sc_russia.xml b/packages/russia_diff/skm_sc_russia.xml index 3fe3f7d1cf..7c295cf97c 100644 --- a/packages/russia_diff/skm_sc_russia.xml +++ b/packages/russia_diff/skm_sc_russia.xml @@ -648,8 +648,10 @@ + + diff --git a/packages/russia_diff/sm_wish_sc_russia.xml b/packages/russia_diff/sm_wish_sc_russia.xml index b6d9c78ec3..5d157eb982 100644 --- a/packages/russia_diff/sm_wish_sc_russia.xml +++ b/packages/russia_diff/sm_wish_sc_russia.xml @@ -503,8 +503,10 @@ + + From 4bb928ff96368ef49dc589c8f46d163a95620e19 Mon Sep 17 00:00:00 2001 From: Noep Date: Wed, 20 Sep 2023 23:09:24 -0400 Subject: [PATCH 14/65] Raging Bull Gadgets --- lua/sc/tweak_data/weaponfactorytweakdata.lua | 81 +++++++++++++++++--- 1 file changed, 72 insertions(+), 9 deletions(-) diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index bcdb430a7f..fe9783a3df 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -6904,13 +6904,31 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_raging_bull", "resmod_raging_bull" self.parts.wpn_fps_pis_rage_g_ergo.supported = true self.parts.wpn_fps_pis_rage_g_ergo.stats = deep_clone(grips.recoil_1) - self.wpn_fps_pis_rage.override = self.wpn_fps_pis_rage.override or {} + self.parts.wpn_fps_pis_rage_fl_mount = { + type = "shitass", + name_id = "bm_wp_judge_b_standard", + unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota/wpn_fps_sho_rota", + stats = { + value = 1 + } + } --Bronco .44 Part Additions table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_pis_g18c_co_comp_2") + table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_m3x") + table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_crimson") + table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_x400v") + table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_laser") + table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_tlr1") + table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_perst") + + self.wpn_fps_pis_rage.override = self.wpn_fps_pis_rage.override or {} + self.wpn_fps_pis_rage.override.wpn_fps_pis_2006m_fl_adapter = { + parent = "shitass", + a_obj = "a_vg" + } - --table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_x400v") - + self.wpn_fps_pis_rage_npc.override = deep_clone(self.wpn_fps_pis_rage.override) self.wpn_fps_pis_rage_npc.uses_parts = deep_clone(self.wpn_fps_pis_rage.uses_parts) self.wpn_fps_pis_rage_primary = nil @@ -16444,6 +16462,9 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_rage", "resmod_x_rage", function reload = "reload", reload_not_empty = "reload" } + + self.wpn_fps_pis_x_rage.adds = {} + self.wpn_fps_pis_x_rage.override = { wpn_fps_pis_rage_body_standard = { animations = { @@ -16466,13 +16487,22 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_rage", "resmod_x_rage", function } } } + + self.wpn_fps_pis_x_rage.override.wpn_fps_pis_2006m_fl_adapter = { + parent = "shitass", + a_obj = "a_vg" + } + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - table.insert(self.wpn_fps_pis_x_rage_npc.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_pis_g18c_co_1") - table.insert(self.wpn_fps_pis_x_rage_npc.uses_parts, "wpn_fps_pis_g18c_co_1") - table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_ns_pis_meatgrinder") - table.insert(self.wpn_fps_pis_x_rage_npc.uses_parts, "wpn_fps_upg_ns_pis_meatgrinder") - + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_fl_pis_m3x") + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_fl_pis_crimson") + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_fl_pis_x400v") + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_fl_pis_laser") + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_fl_pis_tlr1") + table.insert(self.wpn_fps_pis_x_rage.uses_parts, "wpn_fps_upg_fl_pis_perst") + + self.wpn_fps_pis_x_rage_npc.adds = deep_clone(self.wpn_fps_pis_x_rage.adds) + self.wpn_fps_pis_x_rage_npc.override = deep_clone(self.wpn_fps_pis_x_rage.override) self.wpn_fps_pis_x_rage_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_rage.uses_parts) end) @@ -32436,6 +32466,39 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se end end end + self.wpn_fps_lmg_rpk_npc.override = deep_clone(self.wpn_fps_lmg_rpk.override) + + for i, part_id in pairs(self.wpn_fps_pis_rage.uses_parts) do + if self.parts[part_id] and self.parts[part_id].a_obj then + if self.parts[part_id].a_obj == "a_fl" then + self.wpn_fps_pis_rage.adds[part_id] = { + "wpn_fps_pis_rage_fl_mount","wpn_fps_pis_2006m_fl_adapter" + } + self.wpn_fps_pis_rage.override[part_id] = { + parent = "shitass", + a_obj = "a_vg" + } + end + end + end + self.wpn_fps_pis_rage_npc.adds = deep_clone(self.wpn_fps_pis_rage.adds) + self.wpn_fps_pis_rage_npc.override = deep_clone(self.wpn_fps_pis_rage.override) + + for i, part_id in pairs(self.wpn_fps_pis_x_rage.uses_parts) do + if self.parts[part_id] and self.parts[part_id].a_obj then + if self.parts[part_id].a_obj == "a_fl" then + self.wpn_fps_pis_x_rage.adds[part_id] = { + "wpn_fps_pis_rage_fl_mount","wpn_fps_pis_2006m_fl_adapter" + } + self.wpn_fps_pis_x_rage.override[part_id] = { + parent = "shitass", + a_obj = "a_vg" + } + end + end + end + self.wpn_fps_pis_x_rage_npc.adds = deep_clone(self.wpn_fps_pis_x_rage.adds) + self.wpn_fps_pis_x_rage_npc.override = deep_clone(self.wpn_fps_pis_x_rage.override) --GEN 1 LEGENDARY STUFF-- --Vlad's Rodina-- From e897b58db158c811390ded001a51f309d569aa1b Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 00:23:23 -0400 Subject: [PATCH 15/65] akimbo weapons now properly alternate anim-wise --- lua/sc/tweak_data/weapontweakdata.lua | 3 ++- lua/sc/units/player/playerstandard.lua | 12 ++++++++++-- lua/sc/units/weapons/akimboweaponbase.lua | 8 ++++---- lua/sc/units/weapons/newraycastweaponbase.lua | 2 +- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index b42fd7c9a2..e2fd45a6d0 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -4029,7 +4029,8 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) for i, wep_id in ipairs(tact_rel) do self[wep_id].tactical_reload = 2 self[wep_id].BURST_FIRE = 2 - self[wep_id].BURST_FIRE_RATE_MULTIPLIER = 2 + self[wep_id].BURST_DELAY = 0.015 + self[wep_id].BURST_FIRE_RATE_MULTIPLIER = 4 self[wep_id].categories = {"akimbo", "pistol"} end diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index a28b75a8d8..7a1e1e7da7 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -834,8 +834,16 @@ function PlayerStandard:_check_action_primary_attack(t, input) local fire_anim_offset2 = weap_base:weapon_tweak_data().fire_anim_offset2 local spin_up_semi = fire_mode == "single" and weap_base:weapon_tweak_data().spin_up_semi if not spin_up_semi then - if not self._state_data.in_steelsight or not weap_base:tweak_data_anim_play("fire_steelsight", weap_base:fire_rate_multiplier( ignore_rof_mult_anims ), fire_anim_offset, fire_anim_offset2) then - weap_base:tweak_data_anim_play("fire", weap_base:fire_rate_multiplier( ignore_rof_mult_anims ), fire_anim_offset, fire_anim_offset2) + local second_gun_base = weap_base._second_gun and weap_base._second_gun:base() + local second_gun_turn = weap_base._second_turn + if second_gun_turn ~= true then + if not self._state_data.in_steelsight or not weap_base:tweak_data_anim_play("fire_steelsight", weap_base:fire_rate_multiplier( ignore_rof_mult_anims ), fire_anim_offset, fire_anim_offset2) then + weap_base:tweak_data_anim_play("fire", weap_base:fire_rate_multiplier( ignore_rof_mult_anims ), fire_anim_offset, fire_anim_offset2) + end + if second_gun_base then + second_gun_base:tweak_data_anim_stop("fire") + second_gun_base:tweak_data_anim_stop("fire_steelsight") + end end end diff --git a/lua/sc/units/weapons/akimboweaponbase.lua b/lua/sc/units/weapons/akimboweaponbase.lua index 8bd894f7b5..0fbce3a831 100644 --- a/lua/sc/units/weapons/akimboweaponbase.lua +++ b/lua/sc/units/weapons/akimboweaponbase.lua @@ -15,11 +15,11 @@ else if fire_mode_data then fire_mode_data.original_fire_rate = fire_mode_data.original_fire_rate or fire_mode_data.fire_rate - if tweak_data.weapon[self._name_id].FIRE_MODE and tweak_data.weapon[self._name_id].FIRE_MODE == "auto" then + --if tweak_data.weapon[self._name_id].FIRE_MODE and tweak_data.weapon[self._name_id].FIRE_MODE == "auto" then fire_mode_data.fire_rate = fire_mode_data.original_fire_rate / 1.25 - else - fire_mode_data.fire_rate = fire_mode_data.original_fire_rate / 1.75 - end + --else + -- fire_mode_data.fire_rate = fire_mode_data.original_fire_rate / 1.5 + --end end end diff --git a/lua/sc/units/weapons/newraycastweaponbase.lua b/lua/sc/units/weapons/newraycastweaponbase.lua index ee74ed8931..0b4e5764ab 100644 --- a/lua/sc/units/weapons/newraycastweaponbase.lua +++ b/lua/sc/units/weapons/newraycastweaponbase.lua @@ -617,7 +617,7 @@ function NewRaycastWeaponBase:_update_stats_values(disallow_replenish, ammo_data self._burst_fire_ads_spread_multiplier = self:weapon_tweak_data().BURST_FIRE_ADS_SPREAD_MULTIPLIER self._burst_fire_range_multiplier = self:weapon_tweak_data().BURST_FIRE_RANGE_MULTIPLIER --self._delayed_burst_recoil = self:weapon_tweak_data().DELAYED_BURST_RECOIL - self._burst_delay = self:weapon_tweak_data().BURST_DELAY or (self.AKIMBO and 0.05) or 0.09 + self._burst_delay = self:weapon_tweak_data().BURST_DELAY or (self.AKIMBO and 0.03) or 0.09 self._lock_burst = self:weapon_tweak_data().LOCK_BURST if self._lock_burst then self:_set_burst_mode(true, true) From 8ed426b8a24b6b2a12005fd56dfbddefcb0f8965 Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 00:52:19 -0400 Subject: [PATCH 16/65] Update weapontweakdata.lua --- lua/sc/tweak_data/weapontweakdata.lua | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index e2fd45a6d0..2a6a52c7d7 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -4034,6 +4034,16 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self[wep_id].categories = {"akimbo", "pistol"} end + local akimbo_rev = {'x_rage','x_chinchilla','x_2006m','x_model3','x_judge',"x_korth"} + for i, wep_id in ipairs(akimbo_rev) do + self[wep_id].BURST_FIRE = 2 + self[wep_id].BURST_DELAY = 0.015 + self[wep_id].BURST_FIRE_RATE_MULTIPLIER = 4 + self[wep_id].sounds.magazine_empty = nil + self[wep_id].categories = {"akimbo", "pistol"} + end + self.x_judge.categories = {"akimbo", "shotgun"} + tact_rel = {'x_sr2','x_mp5', 'x_coal', 'x_mp7', 'x_mp9', 'x_p90', 'x_polymer', 'x_schakal', 'x_scorpion', 'x_tec9','x_shepheard'} for i, wep_id in ipairs(tact_rel) do self[wep_id].tactical_reload = 2 @@ -4074,13 +4084,6 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.ching.lock_slide_alt = true self.ching.sounds.magazine_empty = "ching_magazine_empty" - local akimbo_rev = {'x_rage','x_chinchilla','x_2006m','x_model3','x_judge',"x_korth"} - for i, wep_id in ipairs(akimbo_rev) do - self[wep_id].BURST_FIRE = 2 - self[wep_id].BURST_FIRE_RATE_MULTIPLIER = 2 - self[wep_id].sounds.magazine_empty = nil - end - local ap_50 = { 'asval','scar','contraband','fal','galil' } From e08a7726504835e29dce55947399646986999b46 Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 01:48:57 -0400 Subject: [PATCH 17/65] Glock 17 stock + fixed ergo grip positioning --- lua/sc/tweak_data/weaponfactorytweakdata.lua | 78 ++++++++++++++++++-- 1 file changed, 72 insertions(+), 6 deletions(-) diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index fe9783a3df..f112d6b239 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -6710,6 +6710,25 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_g17", "resmod_g17", function(self) self.parts.wpn_fps_pis_g17_ck.stats = { value = 1 } self.parts.wpn_fps_pis_g17_ck.custom_stats = nil self.parts.wpn_fps_pis_g17_ck.forbids = nil + + self.parts.wpn_fps_pis_g17_s_mount = { + type = "shitass", + name_id = "none", + unit = "units/payday2/weapons/wpn_fps_pis_g18c/wpn_fps_pis_g18c" + , + stats = { + value = 1 + } + } + self.parts.wpn_fps_pis_g17_g_mount = { + type = "shitass2", + name_id = "none", + unit = "units/payday2/weapons/wpn_fps_pis_g22c/wpn_fps_pis_g22c" + , + stats = { + value = 1 + } + } --Chimano 88 Part Additions table.insert(self.wpn_fps_pis_g17.uses_parts, "wpn_fps_pis_g18c_g_ergo") @@ -6718,6 +6737,17 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_g17", "resmod_g17", function(self) table.insert(self.wpn_fps_pis_g17.uses_parts, "wpn_fps_upg_vg_ass_smg_verticalgrip") table.insert(self.wpn_fps_pis_g17.uses_parts, "wpn_fps_upg_vg_ass_smg_stubby") + table.insert(self.wpn_fps_pis_g17.uses_parts, "wpn_fps_pis_g18c_s_stock") + + self.wpn_fps_pis_g17.override.wpn_fps_pis_g18c_s_stock = { + adds = {"wpn_fps_pis_g17_s_mount"}, + parent = "shitass" + } + self.wpn_fps_pis_g17.override.wpn_fps_pis_g18c_g_ergo = { + adds = {"wpn_fps_pis_g17_g_mount"}, + parent = "shitass2" + } + self.wpn_fps_pis_g17_npc.override = deep_clone(self.wpn_fps_pis_g17.override) self.wpn_fps_pis_g17_npc.uses_parts = deep_clone(self.wpn_fps_pis_g17.uses_parts) @@ -12591,16 +12621,21 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_g17", "resmod_x_g17", function(s reload = -3 } + self.wpn_fps_pis_x_g17.override.wpn_fps_pis_g18c_s_stock = { + adds = {"wpn_fps_pis_g17_s_mount"}, + parent = "shitass" + } + self.wpn_fps_pis_x_g17.override.wpn_fps_pis_g18c_g_ergo = { + adds = {"wpn_fps_pis_g17_g_mount"}, + parent = "shitass2" + } + --Chimano 88 Part Additions table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_g_ergo") - table.insert(self.wpn_fps_pis_x_g17_npc.uses_parts, "wpn_fps_pis_g18c_g_ergo") - table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - table.insert(self.wpn_fps_pis_x_g17_npc.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_co_1") - table.insert(self.wpn_fps_pis_x_g17_npc.uses_parts, "wpn_fps_pis_g18c_co_1") + self.wpn_fps_pis_x_g17_npc.override = deep_clone(self.wpn_fps_pis_x_g17.override) self.wpn_fps_pis_x_g17_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_g17.uses_parts) end) @@ -15753,6 +15788,20 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_chinchilla", "resmod_chinchilla", self.parts.wpn_fps_pis_chinchilla_g_death.supported = true self.parts.wpn_fps_pis_chinchilla_g_death.stats = deep_clone(grips.recoil_1) + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_m3x") + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_crimson") + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_x400v") + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_laser") + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_tlr1") + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_perst") + + self.wpn_fps_pis_chinchilla.adds = self.wpn_fps_pis_chinchilla.adds or {} + self.wpn_fps_pis_chinchilla.override = self.wpn_fps_pis_chinchilla.override or {} + self.wpn_fps_pis_chinchilla.override.wpn_fps_pis_2006m_fl_adapter = { + parent = "shitass", + a_obj = "a_vg" + } + end) --Akimbo Castigo .44 @@ -16462,7 +16511,7 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_rage", "resmod_x_rage", function reload = "reload", reload_not_empty = "reload" } - + self.wpn_fps_pis_x_rage.adds = {} self.wpn_fps_pis_x_rage.override = { @@ -18455,6 +18504,7 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_vityaz", "resmod_vityaz", function self.parts.wpn_fps_smg_vityaz_s_short.custom_stats = deep_clone(stocks.remove_folder_stats) self.wpn_fps_smg_vityaz.override = self.wpn_fps_smg_vityaz.override or {} + end) @@ -32468,6 +32518,22 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se end self.wpn_fps_lmg_rpk_npc.override = deep_clone(self.wpn_fps_lmg_rpk.override) + for i, part_id in pairs(self.wpn_fps_pis_chinchilla.uses_parts) do + if self.parts[part_id] and self.parts[part_id].a_obj then + if self.parts[part_id].a_obj == "a_fl" then + self.wpn_fps_pis_chinchilla.adds[part_id] = { + "wpn_fps_pis_rage_fl_mount","wpn_fps_pis_2006m_fl_adapter" + } + self.wpn_fps_pis_chinchilla.override[part_id] = { + parent = "shitass", + a_obj = "a_vg" + } + end + end + end + self.wpn_fps_pis_chinchilla_npc.adds = deep_clone(self.wpn_fps_pis_chinchilla.adds) + self.wpn_fps_pis_chinchilla_npc.override = deep_clone(self.wpn_fps_pis_chinchilla.override) + for i, part_id in pairs(self.wpn_fps_pis_rage.uses_parts) do if self.parts[part_id] and self.parts[part_id].a_obj then if self.parts[part_id].a_obj == "a_fl" then From 0fca7292118559e707503ff108ed16880e02b642 Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 02:08:59 -0400 Subject: [PATCH 18/65] Update weaponfactorytweakdata.lua --- lua/sc/tweak_data/weaponfactorytweakdata.lua | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index f112d6b239..b14eb15885 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -12629,11 +12629,12 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_g17", "resmod_x_g17", function(s adds = {"wpn_fps_pis_g17_g_mount"}, parent = "shitass2" } - + --Chimano 88 Part Additions table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_g_ergo") table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_co_comp_2") table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_co_1") + table.insert(self.wpn_fps_pis_x_g17.uses_parts, "wpn_fps_pis_g18c_s_stock") self.wpn_fps_pis_x_g17_npc.override = deep_clone(self.wpn_fps_pis_x_g17.override) self.wpn_fps_pis_x_g17_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_g17.uses_parts) @@ -16498,6 +16499,10 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_g18c", "resmod_x_g18c", function magazine_empty = "last_recoil" } + table.insert(self.wpn_fps_pis_x_g18c.uses_parts, "wpn_fps_pis_g18c_s_stock") + + self.wpn_fps_pis_x_g18c_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_g18c.uses_parts) + end) --Akimbo Raging Bulls @@ -17492,10 +17497,9 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_czech", "resmod_x_czech", functi } table.insert(self.wpn_fps_pis_x_czech.uses_parts, "wpn_fps_pis_g18c_co_1") - table.insert(self.wpn_fps_pis_x_czech_npc.uses_parts, "wpn_fps_pis_g18c_co_1") table.insert(self.wpn_fps_pis_x_czech.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - table.insert(self.wpn_fps_pis_x_czech_npc.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - + table.insert(self.wpn_fps_pis_x_czech.uses_parts, "wpn_fps_pis_czech_s_standard") + self.wpn_fps_pis_x_czech_npc.override = deep_clone(self.wpn_fps_pis_x_czech.override) self.wpn_fps_pis_x_czech_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_czech.uses_parts) @@ -17653,10 +17657,9 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_x_stech", "resmod_x_stech", functi end end - table.insert(self.wpn_fps_pis_x_stech.uses_parts, "wpn_fps_pis_g18c_co_1") - table.insert(self.wpn_fps_pis_x_stech_npc.uses_parts, "wpn_fps_pis_g18c_co_1") + table.insert(self.wpn_fps_pis_x_stech.uses_parts, "wpn_fps_pis_g18c_co_1") table.insert(self.wpn_fps_pis_x_stech.uses_parts, "wpn_fps_pis_g18c_co_comp_2") - table.insert(self.wpn_fps_pis_x_stech_npc.uses_parts, "wpn_fps_pis_g18c_co_comp_2") + table.insert(self.wpn_fps_pis_x_stech.uses_parts, "wpn_fps_pis_stech_s_standard") self.wpn_fps_pis_x_stech_npc.override = deep_clone(self.wpn_fps_pis_x_stech.override) self.wpn_fps_pis_x_stech_npc.uses_parts = deep_clone(self.wpn_fps_pis_x_stech.uses_parts) From 8f9272da9ff609accf31ce6525879ffad962a1fc Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 10:03:49 -0400 Subject: [PATCH 19/65] "fixed" gadget position on Model 29 still looks jank and is hanging by a thread but at least it's making contact now? --- lua/sc/loc/loc.lua | 1 + lua/sc/tweak_data/weaponfactorytweakdata.lua | 18 +++++++++++++++--- lua/sc/tweak_data/weapontweakdata.lua | 4 ++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index 0c31e5d595..3d45407e3f 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -1920,6 +1920,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc --10-0 ["bm_wp_upg_i_tekna"] = "Tekna Burst Kit", ["bm_wp_upg_i_tekna_desc"] = "Locks this weapon to fire in #{risk}#3-round bursts##; pair it with a #{skill_color}#glaive## maybe?", + ["bm_wally_desc"] = "#{important_2}#Hey kiddo...##", --AMR16-- ["bm_wp_upg_i_m16a2"] = "AMR-16 B3 Kit", ["bm_wp_upg_i_m16a2_desc"] = "Trade full-auto for a #{skill_color}#3-round burst## setting. #{risk}#Burst#{skill_color}# fire rate is #{skill_color}#increased to 950 RPM.##", diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index b14eb15885..0d06e09f6e 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -15789,6 +15789,16 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_chinchilla", "resmod_chinchilla", self.parts.wpn_fps_pis_chinchilla_g_death.supported = true self.parts.wpn_fps_pis_chinchilla_g_death.stats = deep_clone(grips.recoil_1) + self.parts.wpn_fps_pis_chinchilla_fl_mount = { + type = "shitass", + name_id = "none", + unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_cobray/wpn_fps_smg_x_cobray" + , + stats = { + value = 1 + } + } + table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_m3x") table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_crimson") table.insert(self.wpn_fps_pis_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_x400v") @@ -15798,7 +15808,8 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_chinchilla", "resmod_chinchilla", self.wpn_fps_pis_chinchilla.adds = self.wpn_fps_pis_chinchilla.adds or {} self.wpn_fps_pis_chinchilla.override = self.wpn_fps_pis_chinchilla.override or {} - self.wpn_fps_pis_chinchilla.override.wpn_fps_pis_2006m_fl_adapter = { + + self.wpn_fps_pis_chinchilla.override.wpn_fps_pis_usp_fl_adapter = { parent = "shitass", a_obj = "a_vg" } @@ -21864,7 +21875,8 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se custom_stats = { lock_burst = true, tekna_burst = true, - rof_mult = 2.1153846 + rof_mult = 2.1153846, + alt_desc = "bm_wally_desc", }, alt_icon = "guis/textures/pd2/blackmarket/icons/mods/wpn_fps_upg_i_autofire", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", @@ -32525,7 +32537,7 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se if self.parts[part_id] and self.parts[part_id].a_obj then if self.parts[part_id].a_obj == "a_fl" then self.wpn_fps_pis_chinchilla.adds[part_id] = { - "wpn_fps_pis_rage_fl_mount","wpn_fps_pis_2006m_fl_adapter" + "wpn_fps_pis_chinchilla_fl_mount","wpn_fps_pis_usp_fl_adapter" } self.wpn_fps_pis_chinchilla.override[part_id] = { parent = "shitass", diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index 2a6a52c7d7..8e67035e1f 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -6676,8 +6676,8 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.chinchilla.can_shoot_through_enemy = true self.chinchilla.can_shoot_through_enemy_unlim = true self.chinchilla.reload_speed_multiplier = 1.12 - self.chinchilla.timers.reload_exit_empty = 0.5 - self.chinchilla.timers.reload_exit_not_empty = 0.5 + self.chinchilla.timers.reload_exit_empty = 0.3 + self.chinchilla.timers.reload_exit_not_empty = 0.3 --Deagle --Back to secondary From 3caea1cbfd76dd1b6cde62867b4fe5d6cfa9d950 Mon Sep 17 00:00:00 2001 From: Gullwing-door <58391080+Gullwing-door@users.noreply.github.com> Date: Thu, 21 Sep 2023 23:49:48 +0900 Subject: [PATCH 20/65] Update locko.lua --- lua/sc/loc/locko.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index 3b5f6a41d9..03acc1b83e 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -2615,6 +2615,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_wp_1911_m_big"] = "캐스킷 탄창", --Crosskill Chunky ["bm_w_m1911"] = "Crosskill A1", + ["bm_w_x_m1911"] = "프라이스 & 맥태비시", --Crosskill Guard ["bm_w_shrew"] = "Crosskill Guard", ["bm_w_x_shrew"] = "베리 & 폴", @@ -2993,9 +2994,11 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc LocalizationManager:add_localized_strings({ ["bm_w_pl14"] = "WS-14", + ["bm_w_x_pl14"] = "아킴보 WS-14", ["bm_w_g22c"] = "Chimano 22C", ["bm_w_x_g22c"] = "아킴보 Chimano 22C", ["bm_w_x_1911"] = "아킴보 Operator II", + ["bm_w_x_m1911"] = "아킴보 Crosskill A1", ["bm_w_x_sparrow"] = "아킴보 Sparrow", ["bm_w_scar"] = "VF-7S", ["bm_w_scarl"] = "VF-6M", From 43df7b5c927d436e64acc112bf5c8bf99ad84973 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Thu, 21 Sep 2023 18:54:46 +0300 Subject: [PATCH 21/65] Update MM keys --- lua/sc/network/matchmaking/networkmatchmakingepic.lua | 2 +- lua/sc/network/matchmaking/networkmatchmakingsteam.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/sc/network/matchmaking/networkmatchmakingepic.lua b/lua/sc/network/matchmaking/networkmatchmakingepic.lua index 7d6c0cae3a..cd4d632fa9 100644 --- a/lua/sc/network/matchmaking/networkmatchmakingepic.lua +++ b/lua/sc/network/matchmaking/networkmatchmakingepic.lua @@ -1,4 +1,4 @@ -NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.1" +NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.2" --Compatibility for BeardLib Editor just in case. Maybe need shift MM key stuff in networkmanager if BLE and BLE:RunningFix() then NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY .. "_editor" diff --git a/lua/sc/network/matchmaking/networkmatchmakingsteam.lua b/lua/sc/network/matchmaking/networkmatchmakingsteam.lua index c60890bb9a..1285d76d61 100644 --- a/lua/sc/network/matchmaking/networkmatchmakingsteam.lua +++ b/lua/sc/network/matchmaking/networkmatchmakingsteam.lua @@ -1,4 +1,4 @@ -NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.1" +NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.2" --Compatibility for BeardLib Editor just in case if BLE and BLE:RunningFix() then NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY .. "_editor" From fbd93044f6aea0e4df8b77f8ef9bd6c3c76fd431 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Thu, 21 Sep 2023 19:12:07 +0300 Subject: [PATCH 22/65] =?UTF-8?q?=D0=A7=D1=82=D0=BE=20=D1=83=20=D1=82?= =?UTF-8?q?=D0=B5=D0=B1=D1=8F=20=D0=B7=D0=B0=20=D0=B8=D0=BC=D1=8F=20=D1=82?= =?UTF-8?q?=D0=B0=D0=BA=D0=BE=D0=B5=20=D0=B4=D1=83=D1=80=D0=B0=D1=86=D0=BA?= =?UTF-8?q?=D0=BE=D0=B5,=20=D0=A1=D0=BE=D1=83=D0=BF=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/sc/loc/locru.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index f8572a1444..607e968f28 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -1126,6 +1126,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization", function(loc) --10-0 ["bm_wp_upg_i_tekna"] = "Набор 'Текна'", ["bm_wp_upg_i_tekna_desc"] = "Оружие стреляет только #{risk}#очередями##.", + ["bm_wally_desc"] = "#{important_2}#Эй, малой...##", --AMR16-- ["bm_wp_upg_i_m16a2"] = "Набор АМР-16 B3", @@ -2587,6 +2588,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_w_colt_1911"] = "Crosskill Operator II", ["bm_w_x_1911"] = "Mustang & Sally", ["bm_w_m1911"] = "Crosskill A1", + ["bm_w_x_m1911"] = "Price & MacTavish", ["bm_w_shrew"] = "Crosskill Guard", ["bm_w_x_shrew"] = "Barry & Paul", ["bm_w_usp"] = "Interceptor-45", @@ -2815,6 +2817,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_w_colt_1911"] = "Кросскилл Оператор II", ["bm_w_x_1911"] = "Мустанг и Сэлли", ["bm_w_m1911"] = "Кроскилл А1", + ["bm_w_x_m1911"] = "Прайс и МакТавиш", ["bm_w_shrew"] = "Кроскилл Гард", ["bm_w_x_shrew"] = "Барри и Пол", ["bm_w_usp"] = "Интерсептор-45", From 42727e00f2159794ca32456ad09c201da3a3ebbf Mon Sep 17 00:00:00 2001 From: SonicSoapyBoi Date: Thu, 21 Sep 2023 21:43:04 +0200 Subject: [PATCH 23/65] Back from the Retirement, eh? * Added the Double Firepower mutator that allows dozers to always spawn in pairs (including new Crime Spree modifier as well) * Tweaked PONR Timers in some heists * Fixed Cloakers not properly replacing scripted Heavy SWATS on Cook Off * Added SH Stuff for San Martin Bank * Replaced Rappeling Zeal Benellidozer with Blackdozer in Green Bridge * Fixed Titan Non-Shields having non-concussion weapons (Winters' Minions are still using Titan's LMGs to make them unique) * Captain Winters will now alert when throwing grenades --- .../ene_phalanx_1_assault.unit | 2 +- .../ene_phalanx_1_assault_husk.unit | 2 +- .../ene_phalanx_1_assault.unit | 2 +- .../ene_phalanx_1_assault_husk.unit | 2 +- .../ene_phalanx_1_assault.unit | 2 +- .../ene_phalanx_1_assault_husk.unit | 2 +- lua/sc/loc/loc.lua | 5 + lua/sc/loc/locko.lua | 11 +- lua/sc/loc/locru.lua | 5 + lua/sc/loc/loczh.lua | 5 + lua/sc/managers/mutatorsmanager.lua | 1 + lua/sc/managers/statisticsmanager.lua | 9 +- lua/sc/modifiers/new/modifierdozerpairs.lua | 139 ++++++ lua/sc/mutators/new/mutatorgoldfarbdozers.lua | 454 ++++++++++++++++++ lua/sc/tweak_data/crimespreetweakdata.lua | 7 + .../actions/upper_body/copactionshoot.lua | 3 + main.xml | 2 + req/mission_script/arena.lua | 10 +- req/mission_script/arm_cro.lua | 8 +- req/mission_script/arm_fac.lua | 10 +- req/mission_script/arm_for.lua | 8 +- req/mission_script/arm_hcm.lua | 10 +- req/mission_script/arm_par.lua | 10 +- req/mission_script/arm_und.lua | 12 +- req/mission_script/bex.lua | 74 ++- req/mission_script/big.lua | 16 +- req/mission_script/glace.lua | 12 +- req/mission_script/rat.lua | 4 +- 28 files changed, 733 insertions(+), 94 deletions(-) create mode 100644 lua/sc/modifiers/new/modifierdozerpairs.lua create mode 100644 lua/sc/mutators/new/mutatorgoldfarbdozers.lua diff --git a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit index 0ddb32b14e..f2f59c5d67 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit @@ -16,7 +16,7 @@ - + diff --git a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit index 87de3831a5..d38cace2b3 100644 --- a/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit +++ b/assets/units/pd2_dlc_vip/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit @@ -16,7 +16,7 @@ - + diff --git a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit index 5a5cd7c101..afa1185d97 100644 --- a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit +++ b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit @@ -17,7 +17,7 @@ - + diff --git a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit index 2b4dc9efaa..bbc147fb31 100644 --- a/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit +++ b/assets/units/pd2_mod_halloween/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit @@ -16,7 +16,7 @@ - + diff --git a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit index 313272d54a..6a0001d229 100644 --- a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit +++ b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault.unit @@ -18,7 +18,7 @@ - + diff --git a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit index 3f6f11a70d..29357bd383 100644 --- a/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit +++ b/assets/units/pd2_mod_reapers/characters/ene_phalanx_1_assault/ene_phalanx_1_assault_husk.unit @@ -17,7 +17,7 @@ - + diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index 3d45407e3f..5485714912 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -4401,6 +4401,10 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360"] = "Eagle Eye", ["mutator_quickscope360_desc"] = "Snipers now aim their rifles 100% faster.", ["mutator_quickscope360_longdesc"] = "Snipers now aim their rifles 100% faster.", + + ["mutator_goldfarbdozers"] = "Double Firepower", + ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", + ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", --Crime spree modifier changes ["cn_crime_spree_brief"] = "A Crime Spree is an endless series of randomly selected heists, executed in succession. With each heist you complete, your Rank and Reward will increase! Each 20th or 26th rank you will need to choose a modifier and each 100th rank there is an increase to the risk level, that will make the next heists harder to complete. After risk level 600, the amount of i-frames that player have starts to decrease and bravo units begin to spawn normally.\n\n##If you invite your crew, make sure they started their own Crime Spree before joining in order to gain ranks and Rewards as well.##", ["menu_cs_next_modifier_forced"] = "", @@ -4429,6 +4433,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["menu_cs_modifier_cloaker_tear_gas"] = "All HRT units have an additional 15% chance to become a ASU unit.", ["menu_cs_modifier_dozer_lmg"] = "Whenever a Green or Black Bulldozer spawns, there is a chance that it will be replaced by a Skulldozer.", ["menu_cs_modifier_10secondsresponsetime"] = "All police assaults now start at maximum intensity.", + ["menu_cs_modifier_dozerpairs"] = "Bulldozers will now always spawn in pairs.", ["bm_menu_skill"] = "Crew Boosts", diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index 03acc1b83e..7314659fe3 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -2615,7 +2615,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_wp_1911_m_big"] = "캐스킷 탄창", --Crosskill Chunky ["bm_w_m1911"] = "Crosskill A1", - ["bm_w_x_m1911"] = "프라이스 & 맥태비시", + ["bm_w_x_m1911"] = "프라이스 & 맥태비시", --Crosskill Guard ["bm_w_shrew"] = "Crosskill Guard", ["bm_w_x_shrew"] = "베리 & 폴", @@ -2994,11 +2994,11 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc LocalizationManager:add_localized_strings({ ["bm_w_pl14"] = "WS-14", - ["bm_w_x_pl14"] = "아킴보 WS-14", + ["bm_w_x_pl14"] = "아킴보 WS-14", ["bm_w_g22c"] = "Chimano 22C", ["bm_w_x_g22c"] = "아킴보 Chimano 22C", ["bm_w_x_1911"] = "아킴보 Operator II", - ["bm_w_x_m1911"] = "아킴보 Crosskill A1", + ["bm_w_x_m1911"] = "아킴보 Crosskill A1", ["bm_w_x_sparrow"] = "아킴보 Sparrow", ["bm_w_scar"] = "VF-7S", ["bm_w_scarl"] = "VF-6M", @@ -4513,6 +4513,10 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360"] = "독수리의 눈", ["mutator_quickscope360_desc"] = "저격수는 이제 소총을 100% 더 빠르게 조준합니다.", ["mutator_quickscope360_longdesc"] = "저격수는 이제 소총을 100% 더 빠르게 조준합니다.", + + ["mutator_goldfarbdozers"] = "Double Firepower", + ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", + ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", --Crime spree modifier changes ["cn_crime_spree_brief"] = "크라임 스프리는 연속적으로 실행되는 무작위로 선택되는 하이스트의 끝없는 시리즈입니다. 하이스트를 완료할 때마다 등급과 보상이 증가합니다! 20 또는 26 등급마다 개조를 선택해야 하고 100 등급마다 리스크 레벨이 증가하므로 다음 습격을 완료하기가 더 어려워집니다. 리스크 레벨 600 이후에는 플레이어가 가지고 있는 무적 프레임의 양이 감소하기 시작하고 브라보 유닛이 정상적으로 스폰되기 시작합니다.\n\n##팀원을 초대하는 경우 랭크와 보상을 얻기 위해 합류하기 전에 자신만의 크라임 스프리를 시작했는지 확인하십시오.##", ["menu_cs_next_modifier_forced"] = "", @@ -4541,6 +4545,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["menu_cs_modifier_cloaker_tear_gas"] = "모든 HRT 유닛은 15%의 추가 확률로 ASU 유닛이 됩니다.", ["menu_cs_modifier_dozer_lmg"] = "그린 또는 블랙 불도저가 생성될 때마다 스컬도저로 교체될 확률이 생깁니다.", ["menu_cs_modifier_10secondsresponsetime"] = "모든 경찰 습격은 이제 최대 강도로 시작됩니다.", + ["menu_cs_modifier_dozerpairs"] = "Bulldozers will now always spawn in pairs.", ["bm_menu_skill"] = "팀원 부스트", diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index 607e968f28..49b3fee950 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -4540,6 +4540,10 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360"] = "Орлиный глаз", ["mutator_quickscope360_desc"] = "Снайперы теперь прицеливаются на 100% быстрее.", ["mutator_quickscope360_longdesc"] = "Снайперы теперь прицеливаются на 100% быстрее.", + + ["mutator_goldfarbdozers"] = "Double Firepower", + ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", + ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", --Crime spree modifier changes ["cn_crime_spree_brief"] = "Серия преступлений - режим, в котором вас предстоит сыграть бесконечную серию ограблений, идущих подряд. С каждым пройденным ограблением, ваши Ранг и Награда буду повышаться! Каждый 20-й и 26-й ранг вам предстоит выбрать модификатор, а каждые 100 рангов повысится уровень риска, что сделает последующие ограбления сложнее. После 600 ранга, задержка на получение урона будет уменьшаться, и среди обычных врагов начнут появляться отряды Браво.\n\n##При игре с друзьями, не забудьте убедиться, что они начали свою Серию преступлений, или они не смогут получать Ранги и Награды.##", ["menu_cs_next_modifier_forced"] = "", @@ -4568,6 +4572,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["menu_cs_modifier_cloaker_tear_gas"] = "Все агенты по спасению заложников получают дополнительный 15% шанс стать Титановыми агентами.", ["menu_cs_modifier_dozer_lmg"] = "Когда появляется Зеленый или Черный Бульдозер, есть шанс, что его заменит Скаллдозер.", ["menu_cs_modifier_10secondsresponsetime"] = "Полицейские штурмы сразу имеют максимальную интенсивность.", + ["menu_cs_modifier_dozerpairs"] = "Bulldozers will now always spawn in pairs.", ["bm_menu_skill"] = "Бонусы для команды", diff --git a/lua/sc/loc/loczh.lua b/lua/sc/loc/loczh.lua index 4518fc33c5..a046a6e127 100644 --- a/lua/sc/loc/loczh.lua +++ b/lua/sc/loc/loczh.lua @@ -4620,6 +4620,10 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360"] = "Eagle Eye", ["mutator_quickscope360_desc"] = "Snipers now aim their rifles 100% faster.", ["mutator_quickscope360_longdesc"] = "Snipers now aim their rifles 100% faster.", + + ["mutator_goldfarbdozers"] = "Double Firepower", + ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", + ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", -- Crime spree modifier changes ["cn_crime_spree_brief"] = "\"罪无止境\"是一系列随机选取并需要连续完成的劫案组合。你完成的每次一次劫案都会为你增加罪无止境等级与奖励。每过20级或26级,你都需要选择一次附加难度因子;每过100级都会增加劫案的基础难度(如枪林弹雨到祸乱横行),这会使劫案更难完成。等级600之后,玩家的无敌帧将会逐渐减少,Bravo临界反应部队将会开始生成。\n\n##如果你想邀请你的好友一起玩,请先确保他们开始了罪无止境以一起获得等级和奖励##", @@ -4648,6 +4652,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["menu_cs_modifier_cloaker_smoke"] = "幻影特工现在有50%的概率在他们闪避时扔出一颗闪光弹。", ["menu_cs_modifier_cloaker_tear_gas"] = "所有人质救援队的单位都有额外15%的概率被替换为支援兵。", ["menu_cs_modifier_dozer_lmg"] = "每当有一只绿熊或黑熊被生成时,它都有概率被替换为一只骷髅熊。", + ["menu_cs_modifier_dozerpairs"] = "Bulldozers will now always spawn in pairs.", ["bm_menu_skill"] = "小队加成", diff --git a/lua/sc/managers/mutatorsmanager.lua b/lua/sc/managers/mutatorsmanager.lua index c236d2b9cf..d951dca421 100644 --- a/lua/sc/managers/mutatorsmanager.lua +++ b/lua/sc/managers/mutatorsmanager.lua @@ -44,6 +44,7 @@ function MutatorsManager:init() MutatorQuickScope360:new(self), MutatorCrazyTaser:new(self), MutatorMasterDodger:new(self), + MutatorGoldfarbDozers:new(self), MutatorBirthday:new(self) } self._active_mutators = {} diff --git a/lua/sc/managers/statisticsmanager.lua b/lua/sc/managers/statisticsmanager.lua index a76307ed4b..342835d639 100644 --- a/lua/sc/managers/statisticsmanager.lua +++ b/lua/sc/managers/statisticsmanager.lua @@ -262,7 +262,14 @@ function StatisticsManager:init() melee = 0, explosion = 0, tied = 0 - } + } + self._defaults.killed.phalanx_vip_break = { + count = 0, + head_shots = 0, + melee = 0, + explosion = 0, + tied = 0 + } self._defaults.killed.city_swat_guard = { count = 0, head_shots = 0, diff --git a/lua/sc/modifiers/new/modifierdozerpairs.lua b/lua/sc/modifiers/new/modifierdozerpairs.lua new file mode 100644 index 0000000000..213d243f39 --- /dev/null +++ b/lua/sc/modifiers/new/modifierdozerpairs.lua @@ -0,0 +1,139 @@ +--Just be careful of not meeting two Russian Titandozers +ModifierDozerPairs = ModifierDozerPairs or class(BaseModifier) +ModifierDozerPairs._type = "ModifierDozerPairs" +ModifierDozerPairs.name_id = "none" +ModifierDozerPairs.desc_id = "menu_cs_modifier_dozerpairs" + + +function ModifierDozerPairs:init(data) + tweak_data.group_ai.enemy_spawn_groups.GREEN_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "FBI_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, + rank = 3 + }, + { + unit = "boom_M4203", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.ELITE_boom, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.ELITE_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + + tweak_data.group_ai.enemy_spawn_groups.BLACK_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "BLACK_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.BLACK_tank_DW, + rank = 3 + }, + { + unit = "CS_tazer", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.DW_tazer, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.ELITE_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + + tweak_data.group_ai.enemy_spawn_groups.SKULL_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "SKULL_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.SKULL_tank, + rank = 3 + }, + { + unit = "CS_tazer", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.DW_tazer, + rank = 2 + }, + { + unit = "GS_swat_R870", + freq = 1, + amount_max = 3, + tactics = tweak_data.group_ai._tactics.ELITE_swat_shotgun, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + + tweak_data.group_ai.enemy_spawn_groups.TIT_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "TIT_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.TIT_tank, + rank = 3 + }, + { + unit = "GS_heavy_R870", + freq = 1, + amount_min = 1, + tactics = tweak_data.group_ai._tactics.ELITE_heavy_shotgun, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } +end \ No newline at end of file diff --git a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua new file mode 100644 index 0000000000..27ccd34ce6 --- /dev/null +++ b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua @@ -0,0 +1,454 @@ +--Just be careful of not meeting two Russian Titandozers +MutatorGoldfarbDozers = MutatorGoldfarbDozers or class(BaseMutator) +MutatorGoldfarbDozers._type = "MutatorGoldfarbDozers" +MutatorGoldfarbDozers.name_id = "mutator_goldfarbdozers" +MutatorGoldfarbDozers.desc_id = "mutator_goldfarbdozers_desc" +MutatorGoldfarbDozers.reductions = { + money = 0, + exp = 0 +} +MutatorGoldfarbDozers.disables_achievements = false +MutatorGoldfarbDozers.categories = {"crime_spree"} +MutatorGoldfarbDozers.icon_coords = { + 6, + 4 +} + +function MutatorGoldfarbDozers:setup() + local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" + local difficulty_index = tweak_data:difficulty_to_index(difficulty) + + --Dozer Pairs, not a pretty way to do it but it works + if difficulty_index <= 5 then + tweak_data.group_ai.enemy_spawn_groups.GREEN_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "FBI_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.GREEN_tank, + rank = 2 + }, + { + unit = "FBI_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.FBI_swat_rifle, + rank = 1 + } + } + } + elseif difficulty_index == 6 then + tweak_data.group_ai.enemy_spawn_groups.GREEN_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "FBI_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.GREEN_tank, + rank = 2 + }, + { + unit = "FBI_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.FBI_swat_rifle, + rank = 1 + } + } + } + elseif difficulty_index == 7 then + tweak_data.group_ai.enemy_spawn_groups.GREEN_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "FBI_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, + rank = 3 + }, + { + unit = "boom_M4203", + freq = 0.5, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.ELITE_boom, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.DW_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + else + tweak_data.group_ai.enemy_spawn_groups.GREEN_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "FBI_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, + rank = 3 + }, + { + unit = "boom_M4203", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.ELITE_boom, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.ELITE_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + end + + if difficulty_index <= 5 then + tweak_data.group_ai.enemy_spawn_groups.BLACK_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "BLACK_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.BLACK_tank, + rank = 2 + }, + { + unit = "FBI_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.FBI_swat_rifle, + rank = 1 + } + } + } + elseif difficulty_index == 6 then + tweak_data.group_ai.enemy_spawn_groups.BLACK_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "BLACK_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.BLACK_tank, + rank = 2 + }, + { + unit = "FBI_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.FBI_swat_rifle, + rank = 1 + } + } + } + elseif difficulty_index == 7 then + tweak_data.group_ai.enemy_spawn_groups.BLACK_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "BLACK_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.BLACK_tank_DW, + rank = 3 + }, + { + unit = "CS_tazer", + freq = 0.5, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.DW_tazer, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.DW_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + else + tweak_data.group_ai.enemy_spawn_groups.BLACK_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "BLACK_tank", + freq = 1, + amount_min = 1, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.BLACK_tank_DW, + rank = 3 + }, + { + unit = "CS_tazer", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.DW_tazer, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.ELITE_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + end + + if difficulty_index <= 5 then + tweak_data.group_ai.enemy_spawn_groups.SKULL_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "SKULL_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.SKULL_tank, + rank = 2 + }, + { + unit = "FBI_swat_M4", + freq = 1, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.FBI_swat_rifle, + rank = 1 + } + } + } + elseif difficulty_index == 6 then + tweak_data.group_ai.enemy_spawn_groups.SKULL_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "SKULL_tank", + freq = 1, + amount_min = 1, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.SKULL_tank, + rank = 2 + }, + { + unit = "FBI_swat_M4", + freq = 1, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.FBI_swat_rifle, + rank = 1 + } + } + } + elseif difficulty_index == 7 then + tweak_data.group_ai.enemy_spawn_groups.SKULL_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "SKULL_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.SKULL_tank, + rank = 3 + }, + { + unit = "CS_tazer", + freq = 0.5, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.DW_tazer, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.DW_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + else + tweak_data.group_ai.enemy_spawn_groups.SKULL_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "FBI_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, + rank = 3 + }, + { + unit = "boom_M4203", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.ELITE_boom, + rank = 2 + }, + { + unit = "GS_swat_M4", + freq = 1, + tactics = tweak_data.group_ai._tactics.ELITE_swat_rifle, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 1, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + end + + if difficulty_index <= 5 then + tweak_data.group_ai.enemy_spawn_groups.TIT_tanks = { + amount = {3, 4}, + spawn = { + { + unit = "TIT_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.TIT_tank, + rank = 2 + }, + { + unit = "FBI_heavy_G36_w", + freq = 1, + amount_min = 1, + tactics = tweak_data.group_ai._tactics.FBI_heavy, + rank = 1 + } + } + } + elseif difficulty_index == 6 then + tweak_data.group_ai.enemy_spawn_groups.TIT_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "TIT_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.TIT_tank, + rank = 2 + }, + { + unit = "FBI_heavy_G36_w", + freq = 1, + amount_min = 1, + tactics = tweak_data.group_ai._tactics.FBI_heavy, + rank = 1 + } + } + } + elseif difficulty_index == 7 then + tweak_data.group_ai.enemy_spawn_groups.TIT_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "TIT_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.TIT_tank, + rank = 3 + }, + { + unit = "GS_heavy_G36_w", + freq = 1, + amount_min = 1, + tactics = tweak_data.group_ai._tactics.MH_heavy, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + else + tweak_data.group_ai.enemy_spawn_groups.TIT_tanks = { + amount = {4, 5}, + spawn = { + { + unit = "TIT_tank", + freq = 1, + amount_min = 2, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.TIT_tank, + rank = 3 + }, + { + unit = "GS_heavy_R870", + freq = 1, + amount_min = 1, + tactics = tweak_data.group_ai._tactics.ELITE_heavy_shotgun, + rank = 1 + }, + { + unit = "medic_M4", + freq = 0.75, + amount_max = 2, + tactics = tweak_data.group_ai._tactics.FBI_medic_flank, + rank = 2 + } + } + } + end +end \ No newline at end of file diff --git a/lua/sc/tweak_data/crimespreetweakdata.lua b/lua/sc/tweak_data/crimespreetweakdata.lua index c92a132072..983a67a23b 100644 --- a/lua/sc/tweak_data/crimespreetweakdata.lua +++ b/lua/sc/tweak_data/crimespreetweakdata.lua @@ -834,6 +834,13 @@ function CrimeSpreeTweakData:init_modifiers(tweak_data) explosive_resist = {50, "add"} } }, + --Dozers can now always spawn in pairs + { + id = "dozer_pairs", + class = "ModifierDozerPairs", + icon = "crime_spree_more_dozers", + data = {} + }, --MedicDozers have a 50% chance to replace other dozer types { id = "dozer_medic", diff --git a/lua/sc/units/enemies/actions/upper_body/copactionshoot.lua b/lua/sc/units/enemies/actions/upper_body/copactionshoot.lua index 3866227fd7..715387629c 100644 --- a/lua/sc/units/enemies/actions/upper_body/copactionshoot.lua +++ b/lua/sc/units/enemies/actions/upper_body/copactionshoot.lua @@ -679,6 +679,7 @@ function CopActionShoot:update(t) if self._throw_frag and self._ext_brain._throw_frag_t < t and 2000 >= target_dis and 500 <= target_dis then local is_spring = self._ext_base._tweak_table == "spring" + local is_senator_armstrong = self._ext_base._tweak_table == "phalanx_vip_break" local is_tank_mini = self._ext_base._tweak_table == "tank_mini" local frag_cooldown = 6 --This stuff should really be defined via tweakdata in the future. if is_spring then @@ -704,6 +705,8 @@ function CopActionShoot:update(t) if is_tank_mini then self._unit:sound():say("g90", true, nil, true) + elseif is_senator_armstrong then + self._unit:sound():say("a01", true, nil, true) else self._unit:sound():say("use_gas", true, nil, true) end diff --git a/main.xml b/main.xml index 536919020d..70de57d298 100644 --- a/main.xml +++ b/main.xml @@ -343,6 +343,7 @@ + @@ -379,6 +380,7 @@ + diff --git a/req/mission_script/arena.lua b/req/mission_script/arena.lua index 43b606e490..facf0726fa 100644 --- a/req/mission_script/arena.lua +++ b/req/mission_script/arena.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1350 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1320 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 1290 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 1260 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 1230 diff --git a/req/mission_script/arm_cro.lua b/req/mission_script/arm_cro.lua index 7b57d05a14..69a7df0bbd 100644 --- a/req/mission_script/arm_cro.lua +++ b/req/mission_script/arm_cro.lua @@ -17,13 +17,7 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) gensec_dozer = "units/payday2/characters/ene_bulldozer_3_sc/ene_bulldozer_3_sc" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 780 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 740 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 630 diff --git a/req/mission_script/arm_fac.lua b/req/mission_script/arm_fac.lua index f3ca70b582..4c5baf73da 100644 --- a/req/mission_script/arm_fac.lua +++ b/req/mission_script/arm_fac.lua @@ -17,16 +17,10 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) gensec_dozer = "units/payday2/characters/ene_bulldozer_3_sc/ene_bulldozer_3_sc" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 780 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 740 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 630 + ponr_value = 630 elseif tweak_data:difficulty_to_index(difficulty) == 8 then ponr_value = 600 end diff --git a/req/mission_script/arm_for.lua b/req/mission_script/arm_for.lua index 9d0774aeb7..f856e9a3fa 100644 --- a/req/mission_script/arm_for.lua +++ b/req/mission_script/arm_for.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1050 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1020 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 990 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 960 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 930 diff --git a/req/mission_script/arm_hcm.lua b/req/mission_script/arm_hcm.lua index f1b34fa11e..85a1c3ca94 100644 --- a/req/mission_script/arm_hcm.lua +++ b/req/mission_script/arm_hcm.lua @@ -17,16 +17,10 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) gensec_dozer = "units/payday2/characters/ene_bulldozer_3_sc/ene_bulldozer_3_sc" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 780 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 740 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 630 + ponr_value = 630 elseif tweak_data:difficulty_to_index(difficulty) == 8 then ponr_value = 600 end diff --git a/req/mission_script/arm_par.lua b/req/mission_script/arm_par.lua index 5728057d35..04fd5988b0 100644 --- a/req/mission_script/arm_par.lua +++ b/req/mission_script/arm_par.lua @@ -17,18 +17,12 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) gensec_dozer = "units/payday2/characters/ene_bulldozer_3_sc/ene_bulldozer_3_sc" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 780 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 740 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 630 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 600 + ponr_value = 600 end return { diff --git a/req/mission_script/arm_und.lua b/req/mission_script/arm_und.lua index 608bc6c791..886d2fa35d 100644 --- a/req/mission_script/arm_und.lua +++ b/req/mission_script/arm_und.lua @@ -17,16 +17,10 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) gensec_dozer = "units/payday2/characters/ene_bulldozer_3_sc/ene_bulldozer_3_sc" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 780 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 740 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 660 + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 630 + ponr_value = 630 elseif tweak_data:difficulty_to_index(difficulty) == 8 then ponr_value = 600 end diff --git a/req/mission_script/bex.lua b/req/mission_script/bex.lua index ad94b9add0..00f34552d7 100644 --- a/req/mission_script/bex.lua +++ b/req/mission_script/bex.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 600 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 570 @@ -98,5 +92,71 @@ return { values = { dialogue = "Play_loc_bex_109" } + }, + -- Disable server room reinforce + [101835] = { + values = { + enabled = false + } + }, + -- Reinforce second floor above tellers + [100027] = { + reinforce = { + { + name = "teller_balcony1", + force = 2, + position = Vector3(1200, -2200, 400) + }, + { + name = "teller_balcony2", + force = 2, + position = Vector3(-1200, -2200, 400) + } + } + }, + -- Reinforce drill parts car on first break + [103346] = { + reinforce = { + { + name = "parts_car", + force = 2, + position = Vector3(3100, -1400, 0) + } + } + }, + [103347] = { + reinforce = { + { + name = "parts_car", + force = 2, + position = Vector3(1600, 2100, 0) + } + } + }, + [103352] = { + reinforce = { + { + name = "parts_car", + force = 2, + position = Vector3(1800, -2000, 0) + } + } + }, + [103354] = { + reinforce = { + { + name = "parts_car", + force = 2, + position = Vector3(-1700, 3300, 0) + } + } + }, + -- Disable parts reinforce when drill is done + [101829] = { + reinforce = { + { + name = "parts_car" + } + } } } \ No newline at end of file diff --git a/req/mission_script/big.lua b/req/mission_script/big.lua index 4bc96021f2..086f499888 100644 --- a/req/mission_script/big.lua +++ b/req/mission_script/big.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1200 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1170 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 1140 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 1080 + + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 1080 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 1080 - elseif tweak_data:difficulty_to_index(difficulty) == 8 then ponr_value = 1050 + elseif tweak_data:difficulty_to_index(difficulty) == 8 then + ponr_value = 1020 end if Global.game_settings and Global.game_settings.one_down then diff --git a/req/mission_script/glace.lua b/req/mission_script/glace.lua index 4151b44b89..fed11b52f9 100644 --- a/req/mission_script/glace.lua +++ b/req/mission_script/glace.lua @@ -4,16 +4,10 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) if tweak_data:difficulty_to_index(difficulty) <= 7 then bulldozer = "units/pd2_mod_nypd/characters/ene_bulldozer_1/ene_bulldozer_1" elseif tweak_data:difficulty_to_index(difficulty) == 8 then - bulldozer = "units/pd2_dlc_gitgud/characters/ene_bulldozer_minigun/ene_bulldozer_minigun" + bulldozer = "units/pd2_dlc_gitgud/characters/ene_zeal_bulldozer_3_sc/ene_zeal_bulldozer_3_sc" end - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 540 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 510 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 480 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 420 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 390 diff --git a/req/mission_script/rat.lua b/req/mission_script/rat.lua index a8a22a5a83..e50657cd09 100644 --- a/req/mission_script/rat.lua +++ b/req/mission_script/rat.lua @@ -9,12 +9,12 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) return { --Replace Heavy SWATs that spawn from the chopper with cloakers - [101650] = { + [101571] = { values = { enemy = clonker } }, - [101651] = { + [101572] = { values = { enemy = clonker } From 2236dd4a2b90d19a6f4a377e7bb5d2408a97b87a Mon Sep 17 00:00:00 2001 From: SonicSoapyBoi Date: Thu, 21 Sep 2023 21:52:39 +0200 Subject: [PATCH 24/65] fixed the oopsie --- lua/sc/mutators/new/mutatorgoldfarbdozers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua index 27ccd34ce6..40bbd580ba 100644 --- a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua +++ b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua @@ -325,7 +325,7 @@ function MutatorGoldfarbDozers:setup() freq = 1, amount_min = 2, amount_max = 2, - tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, + tactics = tweak_data.group_ai._tactics.SKULL_tank, rank = 3 }, { From b12cc70bf07eab089d5285f4726b82d4eb3177ff Mon Sep 17 00:00:00 2001 From: SonicSoapyBoi Date: Thu, 21 Sep 2023 21:54:09 +0200 Subject: [PATCH 25/65] Revert "fixed the oopsie" This reverts commit 2236dd4a2b90d19a6f4a377e7bb5d2408a97b87a. --- lua/sc/mutators/new/mutatorgoldfarbdozers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua index 40bbd580ba..27ccd34ce6 100644 --- a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua +++ b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua @@ -325,7 +325,7 @@ function MutatorGoldfarbDozers:setup() freq = 1, amount_min = 2, amount_max = 2, - tactics = tweak_data.group_ai._tactics.SKULL_tank, + tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, rank = 3 }, { From fa6a8bb92740b3d7663463c20cd0c6823d0376d0 Mon Sep 17 00:00:00 2001 From: SonicSoapyBoi Date: Thu, 21 Sep 2023 21:55:23 +0200 Subject: [PATCH 26/65] Fixed the oopsie --- lua/sc/mutators/new/mutatorgoldfarbdozers.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua index 27ccd34ce6..a125c346b3 100644 --- a/lua/sc/mutators/new/mutatorgoldfarbdozers.lua +++ b/lua/sc/mutators/new/mutatorgoldfarbdozers.lua @@ -321,24 +321,25 @@ function MutatorGoldfarbDozers:setup() amount = {4, 5}, spawn = { { - unit = "FBI_tank", + unit = "SKULL_tank", freq = 1, amount_min = 2, amount_max = 2, - tactics = tweak_data.group_ai._tactics.GREEN_tank_DW, + tactics = tweak_data.group_ai._tactics.SKULL_tank, rank = 3 }, { - unit = "boom_M4203", + unit = "CS_tazer", freq = 0.75, amount_max = 1, - tactics = tweak_data.group_ai._tactics.ELITE_boom, + tactics = tweak_data.group_ai._tactics.DW_tazer, rank = 2 }, { - unit = "GS_swat_M4", + unit = "GS_swat_R870", freq = 1, - tactics = tweak_data.group_ai._tactics.ELITE_swat_rifle, + amount_max = 3, + tactics = tweak_data.group_ai._tactics.ELITE_swat_shotgun, rank = 1 }, { @@ -347,7 +348,7 @@ function MutatorGoldfarbDozers:setup() amount_max = 1, tactics = tweak_data.group_ai._tactics.FBI_medic_flank, rank = 2 - } + } } } end From 69bb51fcd45353982a73a09a9a606995ba6caa80 Mon Sep 17 00:00:00 2001 From: SC Date: Thu, 21 Sep 2023 15:40:14 -0700 Subject: [PATCH 27/65] Titanshield Tweaks * Lowered Titanshield health to 1.5k bullet damage (from 4k~) * Removed redundant files. --- .../ene_acc_shield_phalanx.sequence_manager | Bin 7832 -> 7828 bytes ...e_acc_shield_akan_phalanx.sequence_manager | Bin 7832 -> 0 bytes lua/sc/tweak_data/charactertweakdata.lua | 7 ++++--- .../federales_diff/easy_wish_sc_federales.xml | 1 - .../overkill_145_sc_federales.xml | 1 - .../overkill_290_sc_federales.xml | 1 - .../federales_diff/overkill_sc_federales.xml | 1 - packages/federales_diff/skm_sc_federales.xml | 3 +-- .../federales_diff/sm_wish_sc_federales.xml | 1 - packages/russia_diff/easy_wish_sc_russia.xml | 3 +-- .../russia_diff/overkill_145_sc_russia.xml | 1 - .../russia_diff/overkill_290_sc_russia.xml | 1 - packages/russia_diff/overkill_sc_russia.xml | 1 - packages/russia_diff/skm_sc_russia.xml | 1 - packages/russia_diff/sm_wish_sc_russia.xml | 1 - 15 files changed, 6 insertions(+), 17 deletions(-) delete mode 100644 assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.sequence_manager diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager index 239b254cbb0220aa8898c97bbf99cba0fb88474d..56a5d2d57b3b15d055c1a1d87d3145d973ea5f5a 100644 GIT binary patch delta 2220 zcmZvdO=uHA6vt;xY?FT2G}E+cwbIgqjiN+)iQ*orf;lO@rBI3D2Yb?b%Ry+Xmq-sb zj>uM!rU+UO6-zI{4`>lZ@L)VB>&<#v5uruUf*<(a?tf&39eD4z`M=r!o0;q;wt3U+ z6*PJf7Jr~|22ro{4^^_!xc+>$a`N0n=Mf>+4+}9fEQC!Vgd5>3#8>b;_!Epo{dx@S z00+PUWG7&r=E04IsuUtEW9 z8@vy$f_3l{_ydeL_>DWj0dO~10E^&x@G^L{!S63-AR67Meky zdD$Eev@LY4BdwO2q&X-_qQNJqE4dIY4~<=05CwL~)KEzT99}`=w)|RfIBKL>8k?L` zqJsn)LARLNpo)b`(5Ga$W6jm8Oe3g8Phh z`7S{%0gYF{PX$L>O_76z3a?9_eknw=L$sQD+bUB|h_}n$Mo#r_lSbal7UxVkO>JoG zqR=~EfW~WUMby-#ZPM)HEzscEdTqH7tpJVBpMT#tN@|t*RZ$6gFF@Nzv-p33Bca;c zq%p|Z%=4cRji8$ajh}q>;+TQP*ZNFtb($PpRDvDWLtJCq=~f!-z|I_5wL~kiyjLnm64E{Ix4(Uy%Q&7_Bzj|-HjxqncYE?X>d>e$>qpH&{_g1AYL^*1WOg+$Td$tpw03E@Uf$%K ziR~ma8o@qkXxvBNnN@3a=P56bdwEjzCgOnA<>Pbk^5``kURC5eOq1A%{ z4X;R%R4E1ot%q1W8N@)vB7%syDC zENJY5&G8M59IRCtJybc^?sxC!Dl->Lo5zIMJT6542_bGz39(Ejgymx|#1{Am{0DZn zJMkbG0~25h%z$UWJh%X^lyLD7d=9<>-+(Rf3-}w<_Bf4nfnjh2G{95f40stVE#N|e z_rS;CYp@0W0RMua4yS<_m;fihESLi?fma=t#0>~5-~;dxSO;H%8{kLq6KH|Iz^+cG zvD07{%z;;ImV~$iVFi2&z6IZdCioL<>v9SVfCs>%;0#y*uY}+FX%fO=@CbMk%!0Y~@4lNI+L)XV=tip7$)*vw zVKx(58(q5=*Xc&NXMJ2Y1G<)GpUfc6d4jO4$C`$WbnC`DM7R)t0&FI@5EbHC6w#GjB3~{c;>)09|xzkb$>RLullh4||VEZzA zqZXxQG}I~$XzG4U5AB;=4eCh?kzM=gce3u0Gd1~vs;(iTX6qZGX*9SK_pKZE z&@yr~tQ&bm)Z9zZxE6m+Y*lFL`C4*5tZUnxCmQ5GG8(*wbFrmllj3>X7uhGv9@ z)XXgz>Cp|-WA?Vk?D04iqrqq9o@q+XQicp7+>QHGiym4Tn%aF;)_e41OUdn?rs*+z zhi7XksYUonPDkiT+W+rDWU03MBn!~g)2{ODXib^Te+q03xk}kA+wZVX21iJy!FzFc y8i&Sp+?6T0MJq4ZzF_+WIoNyOPiO2qOFw@@>&@O50YAOjzH{`J#MT#w!`gqNaK}6V diff --git a/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.sequence_manager b/assets/units/pd2_mod_reapers/characters/ene_acc_shield_akan_phalanx/ene_acc_shield_akan_phalanx.sequence_manager deleted file mode 100644 index 239b254cbb0220aa8898c97bbf99cba0fb88474d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7832 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 diff --git a/lua/sc/tweak_data/charactertweakdata.lua b/lua/sc/tweak_data/charactertweakdata.lua index a980413e17..865feec261 100644 --- a/lua/sc/tweak_data/charactertweakdata.lua +++ b/lua/sc/tweak_data/charactertweakdata.lua @@ -2783,7 +2783,7 @@ end function CharacterTweakData:_init_phalanx_vip(presets) self.phalanx_vip = deep_clone(self.phalanx_minion) - self.phalanx_vip.tags = {"law", "shield", "special", "shield_titan", "captain"} + self.phalanx_vip.tags = {"law", "shield", "special", "shield_titan", "captain", "phalanx_vip"} self.phalanx_vip.damage.shield_knocked = false self.phalanx_vip.damage.immune_to_knockback = true self.phalanx_vip.immune_to_knock_down = true @@ -2872,7 +2872,7 @@ end function CharacterTweakData:_init_spring(presets) self.spring = deep_clone(self.tank) - self.spring.tags = {"law", "custom", "special", "captain"} + self.spring.tags = {"law", "custom", "special", "captain", "spring"} self.spring.move_speed = presets.move_speed.very_slow self.spring.rage_move_speed = presets.move_speed.fast self.spring.can_throw_frag = true @@ -2933,6 +2933,7 @@ function CharacterTweakData:_init_spring(presets) --Headless Titandozer Boss self.headless_hatman = deep_clone(self.spring) + self.headless_hatman.tags = {"law", "custom", "special", "captain", "headless_hatman"} self.headless_hatman.speech_prefix_p1 = "cpa" self.headless_hatman.speech_prefix_p2 = nil self.headless_hatman.speech_prefix_count = nil @@ -3017,7 +3018,7 @@ end function CharacterTweakData:_init_autumn(presets) self.autumn = deep_clone(presets.base) - self.autumn.tags = {"law", "custom", "special", "customvo"} + self.autumn.tags = {"law", "custom", "special", "customvo", "autumn"} self.autumn.experience = {} self.autumn.damage.hurt_severity = presets.hurt_severities.no_hurts self.autumn.weapon = deep_clone(presets.weapon.normal) diff --git a/packages/federales_diff/easy_wish_sc_federales.xml b/packages/federales_diff/easy_wish_sc_federales.xml index 3e5cd69804..15512a3f91 100644 --- a/packages/federales_diff/easy_wish_sc_federales.xml +++ b/packages/federales_diff/easy_wish_sc_federales.xml @@ -521,7 +521,6 @@ - diff --git a/packages/federales_diff/overkill_145_sc_federales.xml b/packages/federales_diff/overkill_145_sc_federales.xml index 3bff3183fa..d09ef2aab8 100644 --- a/packages/federales_diff/overkill_145_sc_federales.xml +++ b/packages/federales_diff/overkill_145_sc_federales.xml @@ -448,7 +448,6 @@ - diff --git a/packages/federales_diff/overkill_290_sc_federales.xml b/packages/federales_diff/overkill_290_sc_federales.xml index d005edabe1..db37910c89 100644 --- a/packages/federales_diff/overkill_290_sc_federales.xml +++ b/packages/federales_diff/overkill_290_sc_federales.xml @@ -464,7 +464,6 @@ - diff --git a/packages/federales_diff/overkill_sc_federales.xml b/packages/federales_diff/overkill_sc_federales.xml index 3483197696..da87ecad10 100644 --- a/packages/federales_diff/overkill_sc_federales.xml +++ b/packages/federales_diff/overkill_sc_federales.xml @@ -431,7 +431,6 @@ - diff --git a/packages/federales_diff/skm_sc_federales.xml b/packages/federales_diff/skm_sc_federales.xml index e536de4f9b..8eb1e61449 100644 --- a/packages/federales_diff/skm_sc_federales.xml +++ b/packages/federales_diff/skm_sc_federales.xml @@ -575,8 +575,7 @@ - - + diff --git a/packages/federales_diff/sm_wish_sc_federales.xml b/packages/federales_diff/sm_wish_sc_federales.xml index aa070274c6..442fec525c 100644 --- a/packages/federales_diff/sm_wish_sc_federales.xml +++ b/packages/federales_diff/sm_wish_sc_federales.xml @@ -485,7 +485,6 @@ - diff --git a/packages/russia_diff/easy_wish_sc_russia.xml b/packages/russia_diff/easy_wish_sc_russia.xml index 17e81c60f8..4175459480 100644 --- a/packages/russia_diff/easy_wish_sc_russia.xml +++ b/packages/russia_diff/easy_wish_sc_russia.xml @@ -567,8 +567,7 @@ - - + diff --git a/packages/russia_diff/overkill_145_sc_russia.xml b/packages/russia_diff/overkill_145_sc_russia.xml index 56f54aacbb..68dfc2176e 100644 --- a/packages/russia_diff/overkill_145_sc_russia.xml +++ b/packages/russia_diff/overkill_145_sc_russia.xml @@ -474,7 +474,6 @@ - diff --git a/packages/russia_diff/overkill_290_sc_russia.xml b/packages/russia_diff/overkill_290_sc_russia.xml index e3b3c1453d..791542737f 100644 --- a/packages/russia_diff/overkill_290_sc_russia.xml +++ b/packages/russia_diff/overkill_290_sc_russia.xml @@ -506,7 +506,6 @@ - diff --git a/packages/russia_diff/overkill_sc_russia.xml b/packages/russia_diff/overkill_sc_russia.xml index 14f303d946..0c8ee0ff81 100644 --- a/packages/russia_diff/overkill_sc_russia.xml +++ b/packages/russia_diff/overkill_sc_russia.xml @@ -459,7 +459,6 @@ - diff --git a/packages/russia_diff/skm_sc_russia.xml b/packages/russia_diff/skm_sc_russia.xml index 7c295cf97c..ec40e3d291 100644 --- a/packages/russia_diff/skm_sc_russia.xml +++ b/packages/russia_diff/skm_sc_russia.xml @@ -651,7 +651,6 @@ - diff --git a/packages/russia_diff/sm_wish_sc_russia.xml b/packages/russia_diff/sm_wish_sc_russia.xml index 5d157eb982..6a9197ee54 100644 --- a/packages/russia_diff/sm_wish_sc_russia.xml +++ b/packages/russia_diff/sm_wish_sc_russia.xml @@ -506,7 +506,6 @@ - From 2ea26899b01605c26fb418161e61769d84da530a Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 18:43:36 -0400 Subject: [PATCH 28/65] lets try again --- lua/sc/units/enemies/copdamage.lua | 4 ++++ lua/sc/units/player/playerstandard.lua | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lua/sc/units/enemies/copdamage.lua b/lua/sc/units/enemies/copdamage.lua index e92752ce90..472dd6112a 100644 --- a/lua/sc/units/enemies/copdamage.lua +++ b/lua/sc/units/enemies/copdamage.lua @@ -1703,6 +1703,10 @@ function CopDamage:damage_melee(attack_data) else variant = 0 end + + if attack_data.charge_lerp_value then + result.charge_lerp_value = attack_data.charge_lerp_value + end local body_index = self._unit:get_body_index(attack_data.col_ray.body:name()) diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index 7a1e1e7da7..8c01664613 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -3051,9 +3051,6 @@ function PlayerStandard:_do_melee_damage(t, bayonet_melee, melee_hit_ray, melee_ end end local defense_data = character_unit:character_damage():damage_melee(action_data) - if defense_data then - defense_data.charge_lerp_value = action_data.charge_lerp_value - end self:_check_melee_special_damage(col_ray, character_unit, defense_data, melee_entry) self:_perform_sync_melee_damage(hit_unit, col_ray, action_data.damage, action_data.damage_effect) @@ -3079,7 +3076,9 @@ function PlayerStandard:_check_melee_special_damage(col_ray, character_unit, def end local melee_tweak = tweak_data.blackmarket.melee_weapons[melee_entry] local char_damage = character_unit:character_damage() + local fire_on_charge = melee_tweak and melee_tweak.stats.charge_bonus_fire local charge_lerp_value = defense_data.charge_lerp_value + local charge_fire_check = (fire_on_charge and charge_lerp_value and charge_lerp_value > tweak_data.blackmarket.melee_weapons[melee_entry].stats.charge_bonus_start) or (not fire_on_charge and true) if melee_tweak.random_special_effects then local selector = WeightedSelector:new() @@ -3109,7 +3108,6 @@ function PlayerStandard:_check_melee_special_damage(col_ray, character_unit, def char_damage:damage_tase(action_data) end - local charge_fire_check = (tweak_data.blackmarket.melee_weapons[melee_entry].stats.charge_bonus_fire and charge_lerp_value and charge_lerp_value > tweak_data.blackmarket.melee_weapons[melee_entry].stats.charge_bonus_start) or (not tweak_data.blackmarket.melee_weapons[melee_entry].stats.charge_bonus_fire and true) if melee_tweak.fire_dot_data and charge_fire_check and char_damage.damage_fire then local action_data = { variant = "fire", From 7653e79009c71bf3fffea4a98ff0d3fb09f8dd8b Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 19:11:00 -0400 Subject: [PATCH 29/65] Update npcraycastweaponbase.lua --- lua/sc/units/weapons/npcraycastweaponbase.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lua/sc/units/weapons/npcraycastweaponbase.lua b/lua/sc/units/weapons/npcraycastweaponbase.lua index 3f02663657..8be6269876 100644 --- a/lua/sc/units/weapons/npcraycastweaponbase.lua +++ b/lua/sc/units/weapons/npcraycastweaponbase.lua @@ -157,6 +157,20 @@ function NPCRaycastWeaponBase:_fire_raycast(user_unit, from_pos, direction, dmg_ return result end +function NPCRaycastWeaponBase:trigger_held(...) + local fired = nil + + if self._next_fire_allowed <= Application:time() then + fired = self:fire(...) + + if fired then + self._next_fire_allowed = self._next_fire_allowed + ((tweak_data.weapon[self._name_id].auto and tweak_data.weapon[self._name_id].auto.fire_rate) or 1) + end + end + + return fired +end + function NPCRaycastWeaponBase:_sound_autofire_end() local tweak_sound = tweak_data.weapon[self._name_id].sounds local sound_name = tweak_sound.prefix .. self._setup.user_sound_variant .. self._voice .. "_end" From e6721e7f17ee10efd5a6e45f822994d3681d7e93 Mon Sep 17 00:00:00 2001 From: Noep Date: Thu, 21 Sep 2023 22:56:21 -0400 Subject: [PATCH 30/65] Update newraycastweaponbase.lua --- lua/sc/units/weapons/newraycastweaponbase.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/sc/units/weapons/newraycastweaponbase.lua b/lua/sc/units/weapons/newraycastweaponbase.lua index 0b4e5764ab..509a4c8af7 100644 --- a/lua/sc/units/weapons/newraycastweaponbase.lua +++ b/lua/sc/units/weapons/newraycastweaponbase.lua @@ -1327,7 +1327,7 @@ end local toggle_firemode_original = NewRaycastWeaponBase.toggle_firemode function NewRaycastWeaponBase:toggle_firemode(...) - return not self._macno and self._has_burst_fire and not self._locked_fire_mode and not self:gadget_overrides_weapon_functions() and self:_check_toggle_burst() or toggle_firemode_original(self, ...) + return self._burst_rounds_remaining <= 0 and not self._macno and self._has_burst_fire and not self._locked_fire_mode and not self:gadget_overrides_weapon_functions() and self:_check_toggle_burst() or toggle_firemode_original(self, ...) end function NewRaycastWeaponBase:can_reload() From c2035d36667dd66ae1b51ee07e3db98ddbc95330 Mon Sep 17 00:00:00 2001 From: Doshyy Date: Fri, 22 Sep 2023 21:09:04 +0800 Subject: [PATCH 31/65] another mission script thing added PONR for Southern Trustee and added a scripted vet cop --- req/mission_script/tj_htsb.lua | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 req/mission_script/tj_htsb.lua diff --git a/req/mission_script/tj_htsb.lua b/req/mission_script/tj_htsb.lua new file mode 100644 index 0000000000..b5e5bb7689 --- /dev/null +++ b/req/mission_script/tj_htsb.lua @@ -0,0 +1,34 @@ +local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" +local difficulty_index = tweak_data:difficulty_to_index(difficulty) + +if tweak_data:difficulty_to_index(difficulty) <= 2 then + ponr_value = 900 +elseif tweak_data:difficulty_to_index(difficulty) == 3 then + ponr_value = 840 +elseif tweak_data:difficulty_to_index(difficulty) == 4 then + ponr_value = 780 +elseif tweak_data:difficulty_to_index(difficulty) == 5 then + ponr_value = 720 +elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then + ponr_value = 660 +elseif tweak_data:difficulty_to_index(difficulty) == 8 then + ponr_value = 900 +end + + if Global.game_settings and Global.game_settings.one_down then + if tweak_data:difficulty_to_index(difficulty) == 5 or tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 or tweak_data:difficulty_to_index(difficulty) == 8 then + vet_on_break = "units/payday2/characters/ene_veteran_cop_1/ene_veteran_cop_1" + end + end +return { + --Pro Job PONR + [103669] = { + ponr = ponr_value + }, + -- non bloddy vet cop probably smoking at the police station + [101606] = { + values = { + enemy = vet_on_break + } + } +} \ No newline at end of file From 79df09c3850bcc240b206d6ad61b4e8a70e1ec66 Mon Sep 17 00:00:00 2001 From: Doshyy Date: Fri, 22 Sep 2023 21:25:59 +0800 Subject: [PATCH 32/65] adjusted Southern PONR a little DS ponr adjusted from (a fucking whopping 900) to 600, thanks Sonic for the heads up --- req/mission_script/tj_htsb.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/req/mission_script/tj_htsb.lua b/req/mission_script/tj_htsb.lua index b5e5bb7689..c2c0b4466f 100644 --- a/req/mission_script/tj_htsb.lua +++ b/req/mission_script/tj_htsb.lua @@ -12,7 +12,7 @@ elseif tweak_data:difficulty_to_index(difficulty) == 5 then elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 900 + ponr_value = 600 end if Global.game_settings and Global.game_settings.one_down then From c1da539e140911921eea5b133bb5e2b2e855ce47 Mon Sep 17 00:00:00 2001 From: Gullwing-door <58391080+Gullwing-door@users.noreply.github.com> Date: Fri, 22 Sep 2023 22:46:34 +0900 Subject: [PATCH 33/65] Update locko.lua --- lua/sc/loc/locko.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index 7314659fe3..f8ed3416b7 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -4514,9 +4514,9 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360_desc"] = "저격수는 이제 소총을 100% 더 빠르게 조준합니다.", ["mutator_quickscope360_longdesc"] = "저격수는 이제 소총을 100% 더 빠르게 조준합니다.", - ["mutator_goldfarbdozers"] = "Double Firepower", - ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", - ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", + ["mutator_goldfarbdozers"] = "화력 두배", + ["mutator_goldfarbdozers_desc"] = "생성되는 모든 불도저는 항상 쌍으로 배치됩니다.", + ["mutator_goldfarbdozers_longdesc"] = "생성되는 모든 불도저는 항상 쌍으로 배치됩니다.", --Crime spree modifier changes ["cn_crime_spree_brief"] = "크라임 스프리는 연속적으로 실행되는 무작위로 선택되는 하이스트의 끝없는 시리즈입니다. 하이스트를 완료할 때마다 등급과 보상이 증가합니다! 20 또는 26 등급마다 개조를 선택해야 하고 100 등급마다 리스크 레벨이 증가하므로 다음 습격을 완료하기가 더 어려워집니다. 리스크 레벨 600 이후에는 플레이어가 가지고 있는 무적 프레임의 양이 감소하기 시작하고 브라보 유닛이 정상적으로 스폰되기 시작합니다.\n\n##팀원을 초대하는 경우 랭크와 보상을 얻기 위해 합류하기 전에 자신만의 크라임 스프리를 시작했는지 확인하십시오.##", ["menu_cs_next_modifier_forced"] = "", @@ -4545,7 +4545,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["menu_cs_modifier_cloaker_tear_gas"] = "모든 HRT 유닛은 15%의 추가 확률로 ASU 유닛이 됩니다.", ["menu_cs_modifier_dozer_lmg"] = "그린 또는 블랙 불도저가 생성될 때마다 스컬도저로 교체될 확률이 생깁니다.", ["menu_cs_modifier_10secondsresponsetime"] = "모든 경찰 습격은 이제 최대 강도로 시작됩니다.", - ["menu_cs_modifier_dozerpairs"] = "Bulldozers will now always spawn in pairs.", + ["menu_cs_modifier_dozerpairs"] = "불도저는 이제 항상 쌍으로 스폰됩니다.", ["bm_menu_skill"] = "팀원 부스트", From 37d5a52acf86abf4c6be0be1c51a9ec45e6e143a Mon Sep 17 00:00:00 2001 From: Noep Date: Fri, 22 Sep 2023 10:06:31 -0400 Subject: [PATCH 34/65] shotgun spread stuff --- lua/sc/tweak_data/tweakdata.lua | 6 +- lua/sc/tweak_data/weaponfactorytweakdata.lua | 16 +-- lua/sc/tweak_data/weapontweakdata.lua | 115 +++++++++++++------ 3 files changed, 89 insertions(+), 48 deletions(-) diff --git a/lua/sc/tweak_data/tweakdata.lua b/lua/sc/tweak_data/tweakdata.lua index 5737e3ee28..f2b967729b 100644 --- a/lua/sc/tweak_data/tweakdata.lua +++ b/lua/sc/tweak_data/tweakdata.lua @@ -67,16 +67,16 @@ tweak_data.shotgun = { } tweak_data.shotgun_light = { hipfire_spread_mult = 1.25, - ads_multishot_spread_mult = 4, + --ads_multishot_spread_mult = 4, moving_spread_mult = 1.5 } tweak_data.shotgun_heavy = { hipfire_spread_mult = 0.45, - ads_multishot_spread_mult = 0.9 + --ads_multishot_spread_mult = 0.9 } tweak_data.shotgun_break = { hipfire_spread_mult = 1.15, - ads_multishot_spread_mult = 1 + --ads_multishot_spread_mult = 1 } tweak_data.shotgun_pistol = { ads_move_speed_mult = 1.6, diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index 0d06e09f6e..fa2d81ad65 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -1472,7 +1472,7 @@ local grips = { total_ammo_mod = per_pellet and -102 or -68, damage = per_pellet and 0 or 15, recoil = -20, - spread = 12, + spread = 5, spread_multi = {1, 1}, suppression = -1, moving_spread = 0 @@ -1488,7 +1488,7 @@ local grips = { can_shoot_through_wall = true, ap_desc = "bm_ap_armor_80_weapon_sc_desc", falloff_start_mult = 1.2, - falloff_end_mult = 1.8, + falloff_end_mult = 1.5, ads_speed_mult = 1.075 } }, @@ -1502,7 +1502,7 @@ local grips = { concealment = -3, total_ammo_mod = per_pellet and -102 or -52, damage = per_pellet and 0 or 15, - spread = 12, + spread = 5, spread_multi = {1, 1}, recoil = -20, moving_spread = 0, @@ -1519,7 +1519,7 @@ local grips = { can_shoot_through_wall = true, ap_desc = "bm_ap_armor_80_weapon_sc_desc", falloff_start_mult = 1.2, - falloff_end_mult = 1.8, + falloff_end_mult = 1.5, ads_speed_mult = 1.075 } }, @@ -1534,7 +1534,7 @@ local grips = { total_ammo_mod = per_pellet and -102 or -68, damage = per_pellet and 0 or 30, recoil = -20, - spread = 12, + spread = 5, spread_multi = {1, 1}, moving_spread = 0, suppression = -1 @@ -1553,7 +1553,7 @@ local grips = { can_shoot_through_wall = true, ap_desc = "bm_ap_weapon_sc_desc", falloff_start_mult = 1.2, - falloff_end_mult = 1.8, + falloff_end_mult = 1.5, ads_speed_mult = 1.075 } }, @@ -1565,7 +1565,7 @@ local grips = { total_ammo_mod = per_pellet and -102 or -52, damage = per_pellet and 0 or 30, recoil = -20, - spread = 12, + spread = 5, spread_multi = {1, 1}, suppression = -1, moving_spread = 0 @@ -1585,7 +1585,7 @@ local grips = { can_shoot_through_titan_shield = true, ap_desc = "bm_heavy_ap_no_mult_weapon_sc_desc", falloff_start_mult = 1.2, - falloff_end_mult = 1.8, + falloff_end_mult = 1.5, ads_speed_mult = 1.075 } }, diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index 8e67035e1f..ca54d329ca 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -3235,8 +3235,8 @@ function WeaponTweakData:_init_stats() } --Multiplier for spread on multi-raycast weapons. This compensates for linear spread scaling which would otherwise cripple their multikill potential. - self.stat_info.shotgun_spread_increase = per_pellet and 1.75 or 3.5 - self.stat_info.shotgun_spread_increase_ads = per_pellet and 2 or 1 + self.stat_info.shotgun_spread_increase = 1.75 + self.stat_info.shotgun_spread_increase_ads = 6 --Multiplier for spread on weapons that are still hipfired even while aiming (goes against the steelsight spread mult) self.stat_info.hipfire_only_spread_increase = 0.25 / self.stat_info.stance_spread_mults.steelsight @@ -10799,7 +10799,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.saiga.stats = { damage = 45, - spread = 31, + spread = 19, recoil = 43, spread_moving = 7, zoom = 1, @@ -10836,7 +10836,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.sko12.stats = { damage = 45, - spread = 41, + spread = 31, recoil = 55, spread_moving = 7, zoom = 1, @@ -10876,7 +10876,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.aa12.stats = { damage = 45, - spread = 39, + spread = 31, recoil = 67, spread_moving = 7, zoom = 1, @@ -10917,7 +10917,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.ultima.stats = { damage = 45, - spread = 29, + spread = 21, recoil = 45, spread_moving = 7, zoom = 1, @@ -10967,7 +10967,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.spas12.stats = { damage = 45, - spread = 38, + spread = 30, recoil = 55, spread_moving = 7, zoom = 1, @@ -11008,7 +11008,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.benelli.stats = { damage = 45, - spread = 43, + spread = 35, recoil = 49, spread_moving = 7, zoom = 1, @@ -11052,7 +11052,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) total_ammo_mod = 200, damage = 45, alert_size = 2, - spread = 31, + spread = 19, spread_moving = 8, recoil = 41, value = 1, @@ -11084,7 +11084,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.striker.stats = { damage = 45, - spread = 31, + spread = 22, recoil = 43, spread_moving = 7, zoom = 1, @@ -11117,7 +11117,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.rota.stats = { damage = 45, - spread = 36, + spread = 26, recoil = 41, spread_moving = 7, zoom = 1, @@ -11160,7 +11160,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.x_judge.stats = { damage = 60, - spread = 23, + spread = 43, recoil = 53, spread_moving = 5, zoom = 1, @@ -11206,7 +11206,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.m590.stats = { damage = 60, - spread = 40, + spread = 60, recoil = 45, spread_moving = 6, zoom = 1, @@ -11259,7 +11259,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.supernova.stats = { damage = 60, - spread = 48, + spread = 68, recoil = 47, spread_moving = 6, zoom = 1, @@ -11303,7 +11303,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.r870.stats = { damage = 60, - spread = 42, + spread = 62, recoil = 51, spread_moving = 6, zoom = 1, @@ -11343,7 +11343,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.ksg.stats = { damage = 60, - spread = 45, + spread = 65, recoil = 41, spread_moving = 7, zoom = 1, @@ -11393,7 +11393,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.m1897.stats = { damage = 60, - spread = 51, + spread = 71, recoil = 41, spread_moving = 6, zoom = 1, @@ -11430,7 +11430,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.serbu.stats = { damage = 60, - spread = 36, + spread = 56, recoil = 41, spread_moving = 6, zoom = 1, @@ -11480,7 +11480,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.m37.stats = { damage = 60, - spread = 43, + spread = 63, recoil = 51, spread_moving = 6, zoom = 1, @@ -11515,7 +11515,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.judge.stats = { damage = 60, - spread = 33, + spread = 53, recoil = 63, spread_moving = 5, zoom = 1, @@ -11560,7 +11560,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.b682.stats = { damage = 90, - spread = 61, + spread = 71, recoil = 41, spread_moving = 6, zoom = 1, @@ -11649,7 +11649,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.huntsman.stats = { damage = 90, - spread = 58, + spread = 66, recoil = 43, spread_moving = 6, zoom = 1, @@ -11694,7 +11694,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.coach.stats = { damage = 90, - spread = 58, + spread = 66, recoil = 43, spread_moving = 6, zoom = 1, @@ -13178,7 +13178,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.amr12.stats = { damage = 45, - spread = 31, + spread = 21, recoil = 49, zoom = 1, concealment = 21, @@ -13212,7 +13212,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.minibeck.stats = { damage = 45, - spread = 26, + spread = 22, recoil = 69, zoom = 1, concealment = 25, @@ -13260,7 +13260,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.beck.stats = { damage = 60, - spread = 45, + spread = 65, recoil = 55, spread_moving = 6, zoom = 1, @@ -13305,7 +13305,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.bs23.stats = { damage = 90, - spread = 51, + spread = 61, recoil = 41, spread_moving = 5, zoom = 1, @@ -13627,7 +13627,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.qsho.stats = { damage = 90, - spread = 16, + spread = 26, recoil = 41, zoom = 1, concealment = 25, @@ -14516,7 +14516,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.mp153.stats = { damage = 45, - spread = 31, + spread = 21, recoil = 51, zoom = 1, concealment = 21, @@ -14558,7 +14558,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.wmtx.stats = { damage = 60, - spread = 34, + spread = 44, recoil = 59, spread_moving = 7, zoom = 1, @@ -14578,7 +14578,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) end if self.jackhammer then --Pawcio's Jackhammer - self.jackhammer.recategorize = { "light_shot" } + self.jackhammer.recategorize = { "heavy_shot" } --it's effectively semi auto self.jackhammer.damage_type = "shotgun" self.jackhammer.damage_type_single_ray = "sniper" self.jackhammer.upgrade_blocks = nil @@ -14595,13 +14595,13 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.jackhammer.supported = true self.jackhammer.ads_speed = 0.400 self.jackhammer.damage_falloff = { - start_dist = 800, + start_dist = 600, end_dist = 3300, min_mult = 0.5 } self.jackhammer.stats = { - damage = 45, - spread = 31, + damage = 60, + spread = 41, recoil = 53, spread_moving = 7, zoom = 1, @@ -14639,7 +14639,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.quadbarrel.fire_mode_data = {} self.quadbarrel.fire_mode_data.fire_rate = 0.171428 self.quadbarrel.supported = true - self.quadbarrel.ads_speed = 0.500 + self.quadbarrel.ads_speed = 0.420 self.quadbarrel.damage_falloff = { start_dist = 500, end_dist = 3000, @@ -16639,6 +16639,47 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.m4_usasoc.timers.reload_not_empty = 2.4 end + if self.pd3_qbz191 then --RJC9000 and PlayBONK's PAYDAY "THE SERVERS ARE DOWN! CAN'T PLAY, IDIOT" 3 QBZ-191 + self.pd3_qbz191.categories = { + "assault_rifle", + "dmr" + } + self.pd3_qbz191.warsaw = true + self.pd3_qbz191.recategorize = { "light_ar" } + self.pd3_qbz191.desc_id = "true" + self.pd3_qbz191.has_description = true + self.pd3_qbz191.tactical_reload = 1 + self.pd3_qbz191.AMMO_MAX = 150 + self.pd3_qbz191.fire_mode_data.fire_rate = 0.08 + self.pd3_qbz191.kick = self.stat_info.kick_tables.right_recoil + self.pd3_qbz191.supported = true + self.pd3_qbz191.ads_speed = 0.280 + self.pd3_qbz191.damage_falloff = { + start_dist = 1400, + end_dist = 4500, + min_mult = 0.75 + } + self.pd3_qbz191.stats = { + damage = 24, + spread = 78, + recoil = 75, + zoom = 1, + concealment = 22, + suppression = 8, + alert_size = 2, + extra_ammo = 101, + total_ammo_mod = 200, + value = 1, + reload = 20 + } + self.pd3_qbz191.stats_modifiers = nil + self.pd3_qbz191.armor_piercing_chance = 0.25 + self.pd3_qbz191.timers.reload_empty = 3.55 + self.pd3_qbz191.timers.reload_exit_empty = 0.95 + self.pd3_qbz191.timers.reload_exit_not_empty = 1.4 + self.pd3_qbz191.panic_suppression_chance = 0.05 + end + if self.malorian_3516 then --RJC9000 and PlayBONK's 2077 Silverhand self.malorian_3516.recategorize = { "heavy_pis", "handcannon" } self.malorian_3516.desc_id = "whydoyoucome" @@ -17651,7 +17692,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) self.f500.CLIP_AMMO_MAX = 6 self.f500.AMMO_MAX = 30 self.f500.supported = true - self.f500.ads_speed = 0.400 + self.f500.ads_speed = 0.300 self.f500.damage_falloff = { start_dist = 900, end_dist = 3300, @@ -17659,7 +17700,7 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) } self.f500.stats = { damage = 60, - spread = 41, + spread = 51, recoil = 35, spread_moving = 6, zoom = 1, From dcccb6f77208da71a5758a7af657a0c573aa2aa0 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Fri, 22 Sep 2023 22:39:03 +0300 Subject: [PATCH 35/65] Misc stuff - Biker dozer now slow as Skulldozer (default dozer speed is too much for dozer with practically undestructable face mask and wall-piercing flamethrower) - Sosa boss fight changes for DS and DS PJ - Attempt to make Faction Switch mutator (disabled for now because this cause crashes) --- lua/sc/loc/loc.lua | 2 +- lua/sc/loc/locru.lua | 10 +- lua/sc/managers/mutatorsmanager.lua | 1 + .../mutators/new/mutatorfactionsreplacer.lua | 95 +++++++++++++++++++ lua/sc/tweak_data/charactertweakdata.lua | 1 + lua/sc/tweak_data/levelstweakdata.lua | 1 + main.xml | 1 + req/mission_script/friend.lua | 28 ++++++ 8 files changed, 133 insertions(+), 6 deletions(-) create mode 100644 lua/sc/mutators/new/mutatorfactionsreplacer.lua diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index 5485714912..d9d4685963 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -4111,7 +4111,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_title"] = "Restoration Unit Tips", ["loading_new_units_res_1"] = "OMNIA ASUs will provide damage bonuses to nearby allies marked by giving them Yellow laser attachments.", ["loading_new_units_res_2"] = "LPFs are weak to melee.", - ["loading_new_units_res_3"] = "Lighter units will be Overhealed by the LPF. Overhealed enemies are outlined in purple.", + ["loading_new_units_res_3"] = "Lighter units will be overhealed by the LPF. Enemies are outlined in purple during overhealing process.", ["loading_new_units_res_4"] = "Titan Cloakers have advanced cloaking gear that renders them nearly invisible, but it still has the ambient hum of older models of standard Cloaker gear.", ["loading_new_units_res_5"] = "Titan Dozers prefer putting distance between them and their target to unleash the full potential of their railguns undisturbed.", ["loading_new_units_res_6"] = "Titan Snipers trade damage-per-shot and armor-piercing from their standard counterparts for a higher rate of fire and being able to shoot while moving.", diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index 49b3fee950..fe6bd9a117 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -4258,7 +4258,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) --New Units Hints ["loading_new_units_res_title"] = "Restoration - советы о новых противниках", ["loading_new_units_res_1"] = "OMNIA ASU (агенты поддержки) усиливают урон товарищей при помощи желтых лазеров.", - ["loading_new_units_res_2"] = "LPF получает больше урона от оружия ближнего боя.", + ["loading_new_units_res_2"] = "LPF получает больше урона от оружия ближнего боя. Враги помечены фиолетовым цветом, когда их лечит LPF.", ["loading_new_units_res_3"] = "Слабые противники получают дополнительное здоровье от LPF. В этом случае они помечаются фиолетовым цветом.", ["loading_new_units_res_4"] = "Титановые Клокеры обладают продвинутой экипировкой, которая делает их практически невидимыми, но издает такие же звуки, как экипировка стандартных Клокеров.", ["loading_new_units_res_5"] = "Титановые Дозеры предпочитают держать грабителей на расстоянии, чтобы выцелить их из своего Рельсотрона.", @@ -4541,9 +4541,9 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360_desc"] = "Снайперы теперь прицеливаются на 100% быстрее.", ["mutator_quickscope360_longdesc"] = "Снайперы теперь прицеливаются на 100% быстрее.", - ["mutator_goldfarbdozers"] = "Double Firepower", - ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", - ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", + ["mutator_goldfarbdozers"] = "Двойные неприятности", + ["mutator_goldfarbdozers_desc"] = "Все бульдозеры теперь появляются парами.", + ["mutator_goldfarbdozers_longdesc"] = "Все бульдозеры теперь появляются парами. Не влияет на заскриптованных бульдозеров.", --Crime spree modifier changes ["cn_crime_spree_brief"] = "Серия преступлений - режим, в котором вас предстоит сыграть бесконечную серию ограблений, идущих подряд. С каждым пройденным ограблением, ваши Ранг и Награда буду повышаться! Каждый 20-й и 26-й ранг вам предстоит выбрать модификатор, а каждые 100 рангов повысится уровень риска, что сделает последующие ограбления сложнее. После 600 ранга, задержка на получение урона будет уменьшаться, и среди обычных врагов начнут появляться отряды Браво.\n\n##При игре с друзьями, не забудьте убедиться, что они начали свою Серию преступлений, или они не смогут получать Ранги и Награды.##", ["menu_cs_next_modifier_forced"] = "", @@ -4572,7 +4572,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["menu_cs_modifier_cloaker_tear_gas"] = "Все агенты по спасению заложников получают дополнительный 15% шанс стать Титановыми агентами.", ["menu_cs_modifier_dozer_lmg"] = "Когда появляется Зеленый или Черный Бульдозер, есть шанс, что его заменит Скаллдозер.", ["menu_cs_modifier_10secondsresponsetime"] = "Полицейские штурмы сразу имеют максимальную интенсивность.", - ["menu_cs_modifier_dozerpairs"] = "Bulldozers will now always spawn in pairs.", + ["menu_cs_modifier_dozerpairs"] = "Все бульдозеры теперь появляются парами.", ["bm_menu_skill"] = "Бонусы для команды", diff --git a/lua/sc/managers/mutatorsmanager.lua b/lua/sc/managers/mutatorsmanager.lua index d951dca421..110283e850 100644 --- a/lua/sc/managers/mutatorsmanager.lua +++ b/lua/sc/managers/mutatorsmanager.lua @@ -45,6 +45,7 @@ function MutatorsManager:init() MutatorCrazyTaser:new(self), MutatorMasterDodger:new(self), MutatorGoldfarbDozers:new(self), + --MutatorFactionsReplacer:new(self), MutatorBirthday:new(self) } self._active_mutators = {} diff --git a/lua/sc/mutators/new/mutatorfactionsreplacer.lua b/lua/sc/mutators/new/mutatorfactionsreplacer.lua new file mode 100644 index 0000000000..f1265f5ce6 --- /dev/null +++ b/lua/sc/mutators/new/mutatorfactionsreplacer.lua @@ -0,0 +1,95 @@ +MutatorFactionsReplacer = MutatorFactionsReplacer or class(BaseMutator) +MutatorFactionsReplacer._type = "MutatorFactionsReplacer" +MutatorFactionsReplacer.name_id = "mutator_faction_replace" +MutatorFactionsReplacer.desc_id = "mutator_faction_replace_desc" +MutatorFactionsReplacer.has_options = true +MutatorFactionsReplacer.reductions = { + money = 0, + exp = 0 +} +MutatorFactionsReplacer.disables_achievements = false +MutatorFactionsReplacer.categories = { + "enemies" +} +MutatorFactionsReplacer.icon_coords = { + 2, + 2 +} + +function MutatorFactionsReplacer:register_values(mutator_manager) + self:register_value("faction_replace", "america", "fr") +end + +function MutatorFactionsReplacer:name(lobby_data) + local name = MutatorFactionsReplacer.super.name(self) + + if self:_mutate_name("faction_replace") then + return string.format("%s - %s", name, managers.localization:text("menu_mutator_faction_replace_" .. tostring(self:value("faction_replace")))) + else + return name + end +end + +function MutatorFactionsReplacer:get_faction_override() + return self:value("faction_replace") +end + +function MutatorFactionsReplacer:setup_options_gui(node) + local params = { + callback = "_update_mutator_value", + name = "faction_selector_choice", + text_id = "menu_mutator_faction_replace", + filter = true, + update_callback = callback(self, self, "_update_faction") + } + local data_node = { + { + value = "america", + text_id = "menu_mutator_faction_replace_america", + _meta = "option" + }, + { + value = "murkywater", + text_id = "menu_mutator_faction_replace_murkywater", + _meta = "option" + }, + { + value = "russia", + text_id = "menu_mutator_faction_replace_russia", + _meta = "option" + }, + { + value = "federales", + text_id = "menu_mutator_faction_replace_federales", + _meta = "option" + }, + { + value = "zombie", + text_id = "menu_mutator_faction_replace_zombie", + _meta = "option" + }, + { + value = "nypd", + text_id = "menu_mutator_faction_replace_nypd", + _meta = "option" + }, + { + value = "lapd", + text_id = "menu_mutator_faction_replace_lapd", + _meta = "option" + }, + type = "MenuItemMultiChoice" + } + local new_item = node:create_item(data_node, params) + + new_item:set_value(self:get_faction_override()) + node:add_item(new_item) + + self._node = node + + return new_item +end + +function MutatorFactionsReplacer:_update_faction(item) + self:set_value("faction_replace", item:value()) +end \ No newline at end of file diff --git a/lua/sc/tweak_data/charactertweakdata.lua b/lua/sc/tweak_data/charactertweakdata.lua index 865feec261..f192a14057 100644 --- a/lua/sc/tweak_data/charactertweakdata.lua +++ b/lua/sc/tweak_data/charactertweakdata.lua @@ -2424,6 +2424,7 @@ function CharacterTweakData:_init_tank_biker(presets) self.tank_biker.use_radio = nil self.tank_biker.no_omnia_heal = true self.tank_biker.no_asu = true + self.tank_biker.move_speed = presets.move_speed.very_slow table.insert(self._enemy_list, "tank_biker") end diff --git a/lua/sc/tweak_data/levelstweakdata.lua b/lua/sc/tweak_data/levelstweakdata.lua index ea9779a22e..d9d82ca3eb 100644 --- a/lua/sc/tweak_data/levelstweakdata.lua +++ b/lua/sc/tweak_data/levelstweakdata.lua @@ -249,6 +249,7 @@ Hooks:PostHook( LevelsTweakData, "init", "SC_levels", function(self) self.pal.ai_group_type = lapd self.friend.ai_group_type = lapd + self.friend.package = {"packages/lvl_friend", "packages/miscassets"} self.friend.player_style = "suit_sunny" self.kenaz.ai_group_type = lapd diff --git a/main.xml b/main.xml index 70de57d298..25937ca74c 100644 --- a/main.xml +++ b/main.xml @@ -381,6 +381,7 @@ + diff --git a/req/mission_script/friend.lua b/req/mission_script/friend.lua index 7941a00e28..c4df74f44e 100644 --- a/req/mission_script/friend.lua +++ b/req/mission_script/friend.lua @@ -1,5 +1,6 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) +local amount_guards = 8 if tweak_data:difficulty_to_index(difficulty) <= 2 then ponr_value = 750 @@ -15,6 +16,16 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) ponr_value = 600 end + if tweak_data:difficulty_to_index(difficulty) == 8 then + amount_guards = 12 + end + + if Global.game_settings and Global.game_settings.one_down then + if tweak_data:difficulty_to_index(difficulty) == 8 then + enforcer_guard = "units/pd2_dlc_flat/characters/ene_gang_colombian_enforcer/ene_gang_colombian_enforcer" + end + end + return { --Pro Job PONR [100216] = { @@ -60,6 +71,23 @@ return { enabled = false --don't even try..... } }, + --Force spawn all possible guards during Sosa fight (DS only) + [101725] = { + values = { + amount = amount_guards + } + }, + --Spawn enforcers during Sosa fight on DS PJ + [101845] = { + values = { + enemy = enforcer_guard + } + }, + [101868] = { + values = { + enemy = enforcer_guard + } + }, --You're Sosa's men, not undercover cops [100852] = { values = { From 6d8e7406e5c089336479746fe6689adb9d2f6c41 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Sat, 23 Sep 2023 02:45:28 +0300 Subject: [PATCH 36/65] Update corp.lua --- req/mission_script/corp.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/req/mission_script/corp.lua b/req/mission_script/corp.lua index f553522245..7490a69e31 100644 --- a/req/mission_script/corp.lua +++ b/req/mission_script/corp.lua @@ -30,7 +30,7 @@ return { { name = "meetingroom2", force = 2, - position = Vector3(5300, 200, 900) + position = Vector3(5300, 2000, 900) }, { name = "admin", From c006aa01fb16d51e08e257c722badc0cc2ae2163 Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 00:23:11 -0400 Subject: [PATCH 37/65] akimbo Model 29 gadgets, input buffer for burst --- lua/sc/tweak_data/weaponfactorytweakdata.lua | 43 +++++++++++++++++--- lua/sc/units/player/playerstandard.lua | 41 ++++++++++++++----- 2 files changed, 68 insertions(+), 16 deletions(-) diff --git a/lua/sc/tweak_data/weaponfactorytweakdata.lua b/lua/sc/tweak_data/weaponfactorytweakdata.lua index fa2d81ad65..325320e90c 100644 --- a/lua/sc/tweak_data/weaponfactorytweakdata.lua +++ b/lua/sc/tweak_data/weaponfactorytweakdata.lua @@ -6937,7 +6937,8 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_raging_bull", "resmod_raging_bull" self.parts.wpn_fps_pis_rage_fl_mount = { type = "shitass", name_id = "bm_wp_judge_b_standard", - unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota/wpn_fps_sho_rota", + unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_cobray/wpn_fps_smg_x_cobray", + --unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota/wpn_fps_sho_rota", stats = { value = 1 } @@ -6953,6 +6954,10 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_raging_bull", "resmod_raging_bull" table.insert(self.wpn_fps_pis_rage.uses_parts, "wpn_fps_upg_fl_pis_perst") self.wpn_fps_pis_rage.override = self.wpn_fps_pis_rage.override or {} + self.wpn_fps_pis_rage.override.wpn_fps_pis_usp_fl_adapter = { + parent = "shitass", + a_obj = "a_vg" + } self.wpn_fps_pis_rage.override.wpn_fps_pis_2006m_fl_adapter = { parent = "shitass", a_obj = "a_vg" @@ -15792,8 +15797,7 @@ Hooks:PostHook(WeaponFactoryTweakData, "_init_chinchilla", "resmod_chinchilla", self.parts.wpn_fps_pis_chinchilla_fl_mount = { type = "shitass", name_id = "none", - unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_cobray/wpn_fps_smg_x_cobray" - , + unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_cobray/wpn_fps_smg_x_cobray", stats = { value = 1 } @@ -15819,7 +15823,20 @@ end) --Akimbo Castigo .44 Hooks:PostHook(WeaponFactoryTweakData, "_init_x_chinchilla", "resmod_x_chinchilla", function(self) - --Nothing yet + table.insert(self.wpn_fps_pis_x_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_m3x") + table.insert(self.wpn_fps_pis_x_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_crimson") + table.insert(self.wpn_fps_pis_x_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_x400v") + table.insert(self.wpn_fps_pis_x_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_laser") + table.insert(self.wpn_fps_pis_x_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_tlr1") + table.insert(self.wpn_fps_pis_x_chinchilla.uses_parts, "wpn_fps_upg_fl_pis_perst") + + self.wpn_fps_pis_x_chinchilla.adds = self.wpn_fps_pis_x_chinchilla.adds or {} + self.wpn_fps_pis_x_chinchilla.override = self.wpn_fps_pis_x_chinchilla.override or {} + + self.wpn_fps_pis_x_chinchilla.override.wpn_fps_pis_usp_fl_adapter = { + parent = "shitass", + a_obj = "a_vg" + } end) @@ -32533,6 +32550,22 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se end self.wpn_fps_lmg_rpk_npc.override = deep_clone(self.wpn_fps_lmg_rpk.override) + for i, part_id in pairs(self.wpn_fps_pis_x_chinchilla.uses_parts) do + if self.parts[part_id] and self.parts[part_id].a_obj then + if self.parts[part_id].a_obj == "a_fl" then + self.wpn_fps_pis_x_chinchilla.adds[part_id] = { + "wpn_fps_pis_chinchilla_fl_mount","wpn_fps_pis_usp_fl_adapter" + } + self.wpn_fps_pis_x_chinchilla.override[part_id] = { + parent = "shitass", + a_obj = "a_vg" + } + end + end + end + self.wpn_fps_pis_x_chinchilla_npc.adds = deep_clone(self.wpn_fps_pis_x_chinchilla.adds) + self.wpn_fps_pis_x_chinchilla_npc.override = deep_clone(self.wpn_fps_pis_x_chinchilla.override) + for i, part_id in pairs(self.wpn_fps_pis_chinchilla.uses_parts) do if self.parts[part_id] and self.parts[part_id].a_obj then if self.parts[part_id].a_obj == "a_fl" then @@ -32553,7 +32586,7 @@ Hooks:PostHook( WeaponFactoryTweakData, "create_bonuses", "SC_mods", function(se if self.parts[part_id] and self.parts[part_id].a_obj then if self.parts[part_id].a_obj == "a_fl" then self.wpn_fps_pis_rage.adds[part_id] = { - "wpn_fps_pis_rage_fl_mount","wpn_fps_pis_2006m_fl_adapter" + "wpn_fps_pis_rage_fl_mount","wpn_fps_pis_usp_fl_adapter" } self.wpn_fps_pis_rage.override[part_id] = { parent = "shitass", diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index 8c01664613..a11e4e6a32 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -697,19 +697,28 @@ function PlayerStandard:_check_action_primary_attack(t, input) end else if restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShooting") then - if input.btn_primary_attack_press and fire_mode == "single" and not weap_base:in_burst_mode() and not weap_base:start_shooting_allowed() then - local next_fire = weap_base:weapon_fire_rate() / weap_base:fire_rate_multiplier() - local next_fire_last = weap_base._next_fire_allowed - next_fire - local next_fire_delay = weap_base._next_fire_allowed - next_fire_last - local next_fire_current_t = weap_base._next_fire_allowed - t - local queue_window = restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShootingWindow") or 0.5 - local queue_exlude = (restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShootingExclude") and 60 / restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShootingExclude")) or 0.6 - if queue_exlude >= next_fire and next_fire_current_t < next_fire_delay * queue_window then - self._queue_fire = true + if input.btn_primary_attack_press and fire_mode == "single" then + if not weap_base:in_burst_mode() and not weap_base:start_shooting_allowed() then + local next_fire = weap_base:weapon_fire_rate() / weap_base:fire_rate_multiplier() + local next_fire_last = weap_base._next_fire_allowed - next_fire + local next_fire_delay = weap_base._next_fire_allowed - next_fire_last + local next_fire_current_t = weap_base._next_fire_allowed - t + local queue_window = restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShootingWindow") or 0.5 + local queue_exlude = restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShootingExclude") or 0.6 + local next_fire_queue = 60 / queue_exlude + + if next_fire_queue >= next_fire and next_fire_current_t < next_fire_delay * queue_window then + self._queue_fire = true + end + else + if not input.fake_attack then + self._queue_burst = true + end end end else self._queue_fire = nil + self._queue_burst = nil end self:_check_stop_shooting() @@ -808,6 +817,10 @@ function PlayerStandard:_check_action_primary_attack(t, input) self._queue_fire = nil self._already_fired = true + if input.clear_queue then + self._queue_burst = nil + end + if weap_base._descope_on_fire then self._d_scope_t = (weap_base._next_fire_allowed - t) * 0.7 end @@ -946,6 +959,7 @@ function PlayerStandard:_check_action_primary_attack(t, input) self._queue_reload_interupt = true end self._queue_fire = nil + self._queue_burst = nil if not self._equipped_unit:base():weapon_tweak_data().spin_up_shoot then self._spin_up_shoot = nil end @@ -1430,6 +1444,7 @@ function PlayerStandard:_start_action_running(t) end self._queue_fire = nil + self._queue_burst = nil self._running_wanted = false if (not self._state_data.shake_player_start_running or not self._ext_camera:shaker():is_playing(self._state_data.shake_player_start_running)) and managers.user:get_setting("use_headbob") then @@ -2458,12 +2473,16 @@ function PlayerStandard:_update_burst_fire(t) if burst_hipfire then self:_interupt_action_steelsight(t) end - if self._equipped_unit:base():burst_rounds_remaining() or (self._equipped_unit:base():in_burst_mode() and self._equipped_unit:base()._auto_burst and not self._equipped_unit:base():clip_empty() and self._controller and self._controller:get_input_bool("primary_attack")) then - self:_check_action_primary_attack(t, { btn_primary_attack_state = true, btn_primary_attack_press = true }) + local auto_burst = self._equipped_unit:base()._auto_burst + local queue_burst = not auto_burst and (self._queue_burst and not self:_in_burst()) + local burst_complete = self._equipped_unit:base()._burst_rounds_remaining <= 0 + if self._equipped_unit:base():burst_rounds_remaining() or queue_burst or (self._equipped_unit:base():in_burst_mode() and auto_burst and not self._equipped_unit:base():clip_empty() and self._controller and self._controller:get_input_bool("primary_attack")) then + self:_check_action_primary_attack(t, { btn_primary_attack_state = true, btn_primary_attack_press = true, fake_attack = true, clear_queue = not auto_burst and burst_complete }) end end end + --Recoil used at the end of burst fire. function PlayerStandard:force_recoil_kick(weap_base, shots_fired) local recoil_multiplier = (weap_base:recoil() + weap_base:recoil_addend()) * weap_base:recoil_multiplier() * (shots_fired or 1) From 084c9ec9c2a8aad986c7083546fa212239c37f20 Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 00:40:40 -0400 Subject: [PATCH 38/65] fixes towards fire input buffers --- lua/sc/units/player/playerstandard.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index a11e4e6a32..ed052ddc03 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -291,6 +291,8 @@ function PlayerStandard:_check_action_throw_projectile(t, input) end self:_start_action_throw_projectile(t, input) + self._queue_fire = nil + self._queue_burst = nil return true end @@ -314,6 +316,8 @@ function PlayerStandard:_check_action_throw_grenade(t, input) end self:_start_action_throw_grenade(t, input) + self._queue_fire = nil + self._queue_burst = nil return action_wanted end @@ -369,6 +373,8 @@ function PlayerStandard:_check_action_melee(t, input) local instant = tweak_data.blackmarket.melee_weapons[melee_entry].instant self:_start_action_melee(t, input, instant) + self._queue_fire = nil + self._queue_burst = nil --Stop chainsaw when no longer meleeing. if input.btn_melee_release then @@ -959,7 +965,6 @@ function PlayerStandard:_check_action_primary_attack(t, input) self._queue_reload_interupt = true end self._queue_fire = nil - self._queue_burst = nil if not self._equipped_unit:base():weapon_tweak_data().spin_up_shoot then self._spin_up_shoot = nil end @@ -3370,6 +3375,9 @@ function PlayerStandard:_start_action_reload(t) end end + self._queue_fire = nil + self._queue_burst = nil + --Drop My Mag compatibilty --I might take the time to better integrate this into the reload timers so you're not instantly dropping a mag right when you reload for _, weapon_base in ipairs({ weapon, weapon._second_gun and weapon._second_gun:base() }) do From 6985b63448e4097ef820e846d60550a9edb12bb4 Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 00:43:51 -0400 Subject: [PATCH 39/65] also fix funny burst interactions with throwables and by fix I mean you can't throw shit mid burst anymore --- lua/sc/units/player/playerstandard.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index ed052ddc03..fb36cd19c9 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -284,7 +284,7 @@ function PlayerStandard:_check_action_throw_projectile(t, input) end --Here! - local action_forbidden = not PlayerBase.USE_GRENADES or not self:_projectile_repeat_allowed() or self:chk_action_forbidden("interact") or self:_interacting() and not managers.player:has_category_upgrade("player", "no_interrupt_interaction") or self:is_deploying() or self:_changing_weapon() or self:_is_meleeing() or self:_is_using_bipod() + local action_forbidden = not PlayerBase.USE_GRENADES or not self:_projectile_repeat_allowed() or self:chk_action_forbidden("interact") or self:_interacting() and not managers.player:has_category_upgrade("player", "no_interrupt_interaction") or self:is_deploying() or self:_changing_weapon() or self:_is_meleeing() or self:_is_using_bipod() or self:_in_burst() if action_forbidden then return @@ -309,7 +309,7 @@ function PlayerStandard:_check_action_throw_grenade(t, input) end --Here! - local action_forbidden = not PlayerBase.USE_GRENADES or self:chk_action_forbidden("interact") or self._unit:base():stats_screen_visible() or self:_is_throwing_grenade() or self:_interacting() and not managers.player:has_category_upgrade("player", "no_interrupt_interaction") or self:is_deploying() or self:_changing_weapon() or self:_is_meleeing() or self:_is_using_bipod() + local action_forbidden = not PlayerBase.USE_GRENADES or self:chk_action_forbidden("interact") or self._unit:base():stats_screen_visible() or self:_is_throwing_grenade() or self:_interacting() and not managers.player:has_category_upgrade("player", "no_interrupt_interaction") or self:is_deploying() or self:_changing_weapon() or self:_is_meleeing() or self:_is_using_bipod() or self:_in_burst() if action_forbidden then return @@ -3377,7 +3377,7 @@ function PlayerStandard:_start_action_reload(t) self._queue_fire = nil self._queue_burst = nil - + --Drop My Mag compatibilty --I might take the time to better integrate this into the reload timers so you're not instantly dropping a mag right when you reload for _, weapon_base in ipairs({ weapon, weapon._second_gun and weapon._second_gun:base() }) do From de66644d7547fb19deb835fa50868ec734e84425 Mon Sep 17 00:00:00 2001 From: Gullwing-door <58391080+Gullwing-door@users.noreply.github.com> Date: Sat, 23 Sep 2023 15:35:25 +0900 Subject: [PATCH 40/65] Update locko.lua --- lua/sc/loc/locko.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index f8ed3416b7..ff04aca181 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -4222,7 +4222,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_title"] = "레스토레이션 유닛 팁", ["loading_new_units_res_1"] = "옴니아 ASU는 주변 아군에게 노란색 레이저 부착물을 제공하여 피해량 보너스를 제공합니다.", ["loading_new_units_res_2"] = "LPF는 근접 공격에 약합니다.", - ["loading_new_units_res_3"] = "경무장 유닛은 LPF에 의해 과치료됩니다. 과치료된 적은 보라색 테두리으로 표시됩니다.", + ["loading_new_units_res_3"] = "경무장 유닛은 LPF에게 과치료를 받을 수 있습니다. 과치료 받는 중인 적은 보라색 윤곽선으로 표시됩니다.", ["loading_new_units_res_4"] = "타이탄 클로커는 거의 보이지 않게 만드는 고급 은폐 장비를 가지고 있지만 여전히 표준 클로커 장비의 이전 모델의 주변 소음을 가지고 있습니다.", ["loading_new_units_res_5"] = "타이탄 도저는 방해받지 않고 레일건의 잠재력을 최대한 발휘하기 위해 목표물과 거리를 두는 것을 선호합니다.", ["loading_new_units_res_6"] = "타이탄 명사수는 더 높은 연사력과 이동 중에 사격할 수 있는 대신 표준품의 탄당 피해량과 방탄복 관통력을 교환했습니다.", From f75a3abbb2050c473c4c01efdc0f1906a649d08a Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 13:48:33 -0400 Subject: [PATCH 41/65] fix Titan/Winters shield flash charges - Titan Shields now have the flash panel behavior of Marshal shields; shoot the flash panels as they're charging to destroy them -- In addition to this, Titan Shields can no longer be staggered by Iron Man - Winters' shield's flash panels are invincible; you can still shoot them as they charge to interrupt the flash but unlike titan shields, doing so will not destroy the flash panel and Winters can continue to use them afterwards --- .../ene_acc_shield_phalanx.sequence_manager | Bin 7828 -> 10024 bytes .../ene_acc_shield_vip.sequence_manager | Bin 7832 -> 9868 bytes lua/sc/tweak_data/charactertweakdata.lua | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_phalanx/ene_acc_shield_phalanx.sequence_manager index 56a5d2d57b3b15d055c1a1d87d3145d973ea5f5a..5c8e78a9825120e56e51d57f8f63043b204737cd 100644 GIT binary patch literal 10024 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 literal 7828 zcmb7IU2Ggz8J%RNu%(5DG_+}fl9Ix>O%po~KTc^=Hz~xlO&eNT90;B4&)BWN@Aq@Qd+&^$AP9ncWpyAwRoOKgz4af?zxIxSZz%|tAIE4K|6t27e%7b2Ub*tv z)ho{&ySTP?EC?=7UtGHf>t3J6W)uyTb1aUlaaRcv<*c;qQc7!oLWkx94>|E1VT3!nW{R!ZqQKgufF0Mz|^blknfd zJ8>%cIUsygct+R}eogod;dg{T6kZnoUieSp?pyQtQ^K>tuL{2{d`R-+em(=YeaRy7SO?b=e1w#t=eS_@j`^Jx&*(`GFp9|v(Q zYj--S8)p4hGVqLRjV|4iW@EnIOAaTMW}~$b2Xl>PFU^8D$HA;}Fy@for1Kkgm`nx^ zy{s`m&rCs_bFR2N@xH7k_+Xm!4kUx zz6~^Yd*xngjLV5O<>W{gP;Xjm^sJv+Aa#@I*gzHsLw%h@Nls1P1gm-yRo^URQaQ=E z<%uIl3PA?s&w5F(fwNFco8={JzxFhpo3l3O*d0f^dW|YnkJr*}Z@imU`&py6lvHt! zvT{PwdYZPdH`dG`M*FOl?$p#9Si?zb8=jm@Y_i+#w`xIIo7q7{SXuRUI=x^CUVPzH za=hQHB*&kBIu6Q6(9%vOS-Usb%}%@9uyc|3E5Ud$7jIWq={K9$U{o?bkNxf@l`JhU zaHGa=P9-B#aZoFt@8mtSGj$~BX4QmO&wh;kk3*FUH_u5=L$Y+U(&1L&_OUG71YYW! z-9b|&)3ty{V??<}VU?1Q+_oP|!h_VUH~5^;Va+Qs(9odi^Xz z8?k%6G-=PxfrdQnTjK617&NUsk82pW@tn!yDEd(~vKZ#BFANOM+&*x)A&apPhIW()R7n---PB9@&Jr9T@Y~N!t|X{D^z+ z#1DLYZcH3s>5iW&;AX@z$L+G&f_NL^c6srBEsiDeS2o(FxO?!OF=;mnxL^+^@bUAO z#JPHjb#Z>)MR9)K6>)yvO9kAI#W62q(l*5Td8fDu`1pBeJdVFI(`E~}P64-4z^#k( zb!>?9b!--JuZ#0_Y>D%A)bFB-VI7Me=X9(TaO(x!MgezCoUda`oUfyFcV3In?Gi^F z{I!g>SDfGby2rV*wphTe7H}KlV#Id6*%asJ-ST|hx~aWz!iTlEyfXz{y?|R0=jXj7 zj(OiH+YomMW49ms*d%=D>+((&aI@mrd;a-CTNKB;&pfnsaem%Q;{3e3_(v~3e%`SH zZbqD+w=T}l`>HtRb^E(2j_F-}TjKm$u8Z??l-|qgazEywO^D-nw{P_VZn1z{DTuc! z&ady9IM(9!XtTigdV%lQ`{0C+?>ixm`uXP_ZAP50W3hl+@qAqmR>cj~ERK2I8QLuH zy;0yh@qRerO^f;C;DUSIghyrweY_j_}?(Bk4I=H z=7>8u4?fa(C&%!QpfAEbk2pp$8$+Xwp_#rRc*~EqmLKaaKjy7ZSZ{T39ePHe9nj6V zRu_(IguXB~bw>0nst-MM^;x~>VT67~=#|xl9!89do<(?FMR@#2c;v9w5ZBm{^`Z|} zFXCCf$Zho^p4E#ORxj82^>Q8i@BobU(x3Ixuc%%et)Y59fU#fiK8*c(@5lIqFxI*p^+KoB3vE^}^jW>oYv&NP*g1q|JBQG0=MeohJ&fb);X3N!zETh4Q;+;GHGDpb z`tP3??#G8Bw{>v2A){Vne=`fmL~zpY>Bv-J!8wSJ+; z)-Uwf`t<;i_ZBr;zdj7)J!2fdUt9-KJfGGt#%I6eN4-P$sc8TGe(^jM^~>?2{c`+h zzZ^f>FX;Zi&es@p@HzJ&5W2&MfT%M(0K5hGFwpfOMof;`2h3X^=&$p?V|3rqOM8C! zy4}9>oQ%v5?LYO8%x^n4tONNY)E=R3?m>76^-#|^ka{M7)N>d}J(ECR566si5XO5z z{~|r?GwZ=warfHlas79Cym`~(=A9mIe#oEu>gz$DP0vSA5A}Q$NIf3|QqRYM)H4P2 z^>7`ZE1YM%$6?cXtevPK;(BO|7}x1UuOjp*LN6k`zpM}F7uQ6H7afH$C*#3CLJf>R zG|yT_=iU8fJ&(fpT&CY+uw$@CV4r}|5BdQ?2+s6^H@)yPz3?%;@Eg+0b&St>#`z@7 z*UR<{*H2H$zEPr_K=Q!vK;G>rT442<4%XKaf z-cjc3_xnX~)N{AypvU4u-%wnRSs&|RT&{C*_sh2^?){oWJr)-_2XPti^Dy><^DZ9s ze-6g^mtY*9(Rda}{pgRyLq7)bsGno!$2z&r#if4C4c?Dj{{`6S{bGFVlf_4WhT?O~ z_^gBRxz5FBAKoawf1Vj1`buZ9p2&E(7l0r{+|tYVj+(**hi??LPL0ifT1J_r5za~Lx(YO}mV=Dklm<}ELB gSzhES%*%C*dpnH&2Voq$edhDXpJ(3A)&BYa0(r1TF#rGn diff --git a/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.sequence_manager b/assets/units/pd2_dlc_vip/characters/ene_acc_shield_vip/ene_acc_shield_vip.sequence_manager index 239b254cbb0220aa8898c97bbf99cba0fb88474d..18f51a20eb1f4ed3de8cebd9ee1cbf5f5d3bb8e7 100644 GIT binary patch literal 9868 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 O?>|@0xV2YX$Nmdj#VM-V|(k#?lL=@ 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 diff --git a/lua/sc/tweak_data/charactertweakdata.lua b/lua/sc/tweak_data/charactertweakdata.lua index f192a14057..794cca48cc 100644 --- a/lua/sc/tweak_data/charactertweakdata.lua +++ b/lua/sc/tweak_data/charactertweakdata.lua @@ -2734,7 +2734,7 @@ function CharacterTweakData:_init_phalanx_minion(presets) self.phalanx_minion.damage.fire_pool_damage_mul = 0.25 self.phalanx_minion.damage.hurt_severity = presets.hurt_severities.no_hurts_no_tase self.phalanx_minion.flammable = false - self.phalanx_minion.damage.shield_knocked = true + self.phalanx_minion.damage.shield_knocked = false self.phalanx_minion.priority_shout = "f31" self.phalanx_minion.bot_priority_shout = "f31x_any" self.phalanx_minion.move_speed = presets.move_speed.normal From 8191b5ce0a6b3b5417ad2a85a26b2ad1beb74ec5 Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 14:02:38 -0400 Subject: [PATCH 42/65] forgot the checkbox --- lua/sc/loc/loc.lua | 96 ++++++++++++++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 33 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index d9d4685963..5bf0acd86d 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -1889,6 +1889,68 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_grenade_smoke_screen_grenade_desc"] = "Radius: #{skill_color}#4m## \nDuration: #{skill_color}#12s## \nFuse: #{skill_color}#1 second after remaining stationary## \n\nDrop one of these and you'll vanish in a cloud of smoke, leaving your enemies struggling to take aim at you.", --WEAPON & ATTACHMENT DESCRIPTIONS + --[[ MANUFACTURERS ]] + --In-Universe Manufacturer deets + --Crosskill/Corvus (Payday/OTWD) = Colt + --DSC [Defense System Crosskill] (PD2) = Saco Defense + --Simmons Armory (PD2) = Springfield Armory + --same acronym lol + --Bernetti = Beretta + --Chimano/Stryk = Glock + --SG = HK (Heckler Und Koch) + --Signature/FIK (PD2/OTWD + PD3) = Sig Sauer + --Signature = European Branches, FIK = American Branch? + --VF (OTWD + PD3) = FNH + --Lakner (PD2) = Walther + --Kang Arms (PD2) = Norinco + --Northwest (PD3) = China South Industries Group + --Touro = Taurus (lmao) + --LWI [Lion Weapon Inc.] (PD2) = Kel-Tec + --LWI was Taken from the incredibly hard to read text on the right side of the SUB2000 + --ITI (OTWD) = IMI/IWI + --CR/TKA (PD2/OTWD) = CZ + --TTO [Tecci Tactical Operations] (PD2) = Taran Tactical + --Ferino (OTWD) = Franchi + --Moretti (PD2) = Benelli(?) + --Stefan (PD2) = Steyr + --Wasp = Magpul + --idunno + --Repeater/Eaton (PD2/OTWD) = Winchester + --Rangehitter (PD2) = Marlin + --"Rangehitter" was bummed off it's original "Bernetti Rangehitter" name as "Bernetti"/Beretta doesn't make the SBL + + ["manufacturer_colt"] = "Crosskill", + ["manufacturer_saco"] = "DSC", + ["manufacturer_springfield"] = "Simmons", + ["manufacturer_sigusa"] = "FIK", + ["manufacturer_keltec"] = "LWI", + ["manufacturer_winchester"] = "Eaton", + ["manufacturer_marlin"] = "Rangehitter", + ["manufacturer_swesson"] = "J&M", + + ["manufacturer_fnh"] = "VF", + ["manufacturer_sig"] = "Signature", + ["manufacturer_hk"] = "S&G", + ["manufacturer_walther"] = "Lakner", + ["manufacturer_steyr"] = "Stefan", + ["manufacturer_glock"] = "Chimano", + + ["manufacturer_benelli"] = "Moretti", + ["manufacturer_franchi"] = "Ferino", + ["manufacturer_beretta"] = "Bernetti", + + ["manufacturer_kalashnikov"] = "IZMHA", + ["manufacturer_tula"] = "IZMHA", + ["manufacturer_cz"] = "TKA", + + ["manufacturer_imi"] = "ITI", + + ["manufacturer_taurus"] = "Touro", + + ["manufacturer_chinaindustries"] = "Northwest", + ["manufacturer_norinco"] = "Kang Arms", + + --Contains anything that should always be set regardless of the weapon names option chosen like descriptions or Resmod added weapons and attachments --[[ RESMOD WEAPONS + ATTACHMENTS ]] --socom deez nuts-- @@ -2405,38 +2467,6 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc if weapon_names <= 2 then --Resmod names LocalizationManager:add_localized_strings({ - --In-Universe Manufacturer deets - - --Crosskill/Corvus (Payday/OTWD) = Colt - --DSC [Defense System Crosskill] (PD2) = Saco Defense - --Simmons Armory (PD2) = Springfield Armory - --same acronym lol - --Bernetti = Beretta - --Chimano/Stryk = Glock - --SG = HK (Heckler Und Koch) - --Signature/FIK (PD2/OTWD + PD3) = Sig Sauer - --Signature = European Branches, FIK = American Branch? - --VF (OTWD + PD3) = FNH - --Lakner (PD2) = Walther - --Kang Arms (PD2) = Norinco - --Northwest (PD3) = China South Industries Group - --Public Defender (PD2) = Taurus (lmao) - --LWI [Lion Weapon Inc.] (PD2) = Kel-Tec - --LWI was Taken from the incredibly hard to read text on the right side of the SUB2000 - --ITI (OTWD) = IMI/IWI - --CR/TKA (PD2/OTWD) = CZ - --TTO [Tecci Tactical Operations] (PD2) = Taran Tactical - --Ferino (OTWD) = Franchi - --Moretti (PD2) = Benelli(?) - --Stefan (PD2) = Steyr - --Wasp = Magpul - --idunno - --Repeater/Eaton (PD2/OTWD) = Winchester - --Combine the names into "Repeaton" maybe? - --Rangehitter (PD2) = Marlin - --"Rangehitter" was bummed off it's original "Bernetti Rangehitter" name as "Bernetti"/Beretta doesn't make the SBL - - --[[ PISTOLS ]] --Gecko Pistol ["bm_w_maxim9"] = "Magnus 9", @@ -4605,7 +4635,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) --Iron Man ["menu_juggernaut_beta_sc"] = "Iron Man", - ["menu_juggernaut_beta_desc_sc"] = "BASIC: #{owned}#$basic##\nYou can wear the #{skill_color}#Improved Combined Tactical Vest.##\n\nWhen you melee Shield enemies, they get staggered from the sheer force.\n\n#{risk}#NOTE:## #{important_1}#Captain Winters## #{risk}#cannot be staggered.##\n\nACE: #{owned}#$pro##\nYour armor recovers #{skill_color}#10%## faster.\n\nYour ranged weapons to have a chance to stagger Shield enemies when shooting their shield; chances are increased the higher the total damage of the weapon is.", + ["menu_juggernaut_beta_desc_sc"] = "BASIC: #{owned}#$basic##\nYou can wear the #{skill_color}#Improved Combined Tactical Vest.##\n\nWhen you melee Shield enemies, they get staggered from the sheer force.\n\n#{risk}#NOTE:## #{important_1}#Titan Shields## and #{important_1}#Captain Winters## #{risk}#cannot be staggered.##\n\nACE: #{owned}#$pro##\nYour armor recovers #{skill_color}#10%## faster.\n\nYour ability to stagger shields is extended to your ranged weapons; chances are increased the higher the total damage of the weapon is.", --[[ SUPPORT SUBTREE ]]-- --Scavenger From f7c59bf57cbac36339aed3b1526c35e53b105e84 Mon Sep 17 00:00:00 2001 From: SonicSoapyBoi Date: Sat, 23 Sep 2023 20:20:03 +0200 Subject: [PATCH 43/65] The Tips Update *Updated some of the enemy tips that tells about their new abilities *Changed Dozer Pairs Mutator name to "Double Trouble" *Made Skulldozers have close range pushbacks on Mayhem and below *Removed some leftovers --- lua/sc/loc/loc.lua | 19 ++++++++++--------- lua/sc/loc/locko.lua | 3 ++- lua/sc/loc/locru.lua | 1 + lua/sc/loc/loczh.lua | 1 + lua/sc/managers/modifiersmanager.lua | 3 --- lua/sc/tweak_data/charactertweakdata.lua | 9 +++------ lua/sc/tweak_data/tipstweakdata.lua | 6 ++++++ lua/sc/units/vehicles/animatedvehiclebase.lua | 2 +- 8 files changed, 24 insertions(+), 20 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index 5bf0acd86d..c0dee6eb9f 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -1888,8 +1888,8 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Weapons", function(loc ["bm_grenade_damage_control"] = "Hip Flask", ["bm_grenade_smoke_screen_grenade_desc"] = "Radius: #{skill_color}#4m## \nDuration: #{skill_color}#12s## \nFuse: #{skill_color}#1 second after remaining stationary## \n\nDrop one of these and you'll vanish in a cloud of smoke, leaving your enemies struggling to take aim at you.", - --WEAPON & ATTACHMENT DESCRIPTIONS - --[[ MANUFACTURERS ]] + --WEAPON & ATTACHMENT DESCRIPTIONS + --[[ MANUFACTURERS ]] --In-Universe Manufacturer deets --Crosskill/Corvus (Payday/OTWD) = Colt --DSC [Defense System Crosskill] (PD2) = Saco Defense @@ -4116,8 +4116,8 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_gameplay_res_5"] = "Cloakers can easily counter lone or cut off heisters.", ["loading_gameplay_res_6"] = "Cloakers deal direct health damage when they kick you. This can be reduced with Deflection or the Counter Strike skill.", ["loading_gameplay_res_7"] = "Green Bulldozers deal high amounts of damage and can often break even the heaviest of armors with a single shot.", - ["loading_gameplay_res_8"] = "Saiga/Black Bulldozers trade damage for high rate of fire and boast an impressive drum magazine.", - ["loading_gameplay_res_9"] = "LMG Dozers/Skulldozers lay down heavy suppressive fire and will fire until their belts are empty.", + ["loading_gameplay_res_8"] = "Saiga/Black Bulldozers trade damage for high rate of fire and boast an impressive drum magazine. They also run faster than other dozers but have much less health.", + ["loading_gameplay_res_9"] = "LMG Dozers/Skulldozers lay down heavy suppressive fire that knockbacks on close range and will fire until their belts are empty. Their top armor can take up more damage than regular dozer but move as slow as Titandozers.", ["loading_gameplay_res_10"] = "Benelli Shotgunner Dozers replace Minigun Dozers, high rate of fire and good damage. An unholy union of Green and Black dozers.", ["loading_gameplay_res_11"] = "Target priority is important. A Bulldozer of any type is worth more attention than a Light SWAT.", ["loading_gameplay_res_12"] = "On Death Sentence, Bulldozers enter a berserker rage when their glass visors are broken, increasing their damage by 10%.", @@ -4146,31 +4146,32 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_5"] = "Titan Dozers prefer putting distance between them and their target to unleash the full potential of their railguns undisturbed.", ["loading_new_units_res_6"] = "Titan Snipers trade damage-per-shot and armor-piercing from their standard counterparts for a higher rate of fire and being able to shoot while moving.", ["loading_new_units_res_7"] = "Instead of using a laser sight, Titan Sniper shots leave behind purple tracers.", - ["loading_new_units_res_8"] = "Titan Shields can only be pierced with the Thanatos, OVE9000 Saw when using Rip and Tear basic, and special AP rounds in Sentry Guns.", + ["loading_new_units_res_8"] = "Titan Shields can be pierced with the Thanatos, OVE9000 Saw when using Rip and Tear basic or with special AP rounds in Sentry Guns. Even shooting their shield long enough can make them drop it but beware of their sudden tactic change.", ["loading_new_units_res_9"] = "Captain Spring and Titan Dozers take bonus headshot damage at all times.", ["loading_new_units_res_10"] = "Titan Tasers fire electric rounds that severely restrict your movement temporarily, indicated by a blue UI overlay.", ["loading_new_units_res_11"] = "Veteran Cops will drop Tear Gas grenades on death when killed by anything but a headshot.", ["loading_new_units_res_12"] = "Veteran Cops move quickly making shots harder to land.", ["loading_new_units_res_13"] = "The Riot Gear clad Titan SWAT are somewhat resistant to melee.", ["loading_new_units_res_14"] = "Titan SWAT cannot be taken hostage or converted to fight on your side.", - ["loading_new_units_res_15"] = "Titan SWAT boast LMGs and automatic shotguns.", + ["loading_new_units_res_15"] = "Titan SWAT boast LMGs and automatic shotguns that either push back or concusses the enemy.", ["loading_new_units_res_16"] = "The dreaded Bravo units spawn on Pro Jobs only, when a PONR is triggered. They are powerful no-nonsense enemies with enhanced body armor, and more powerful weapons.", ["loading_new_units_res_17"] = "Bravo units can throw frag grenades. Mind your surroundings when you see them flashing and emitting a beeping countdown.", ["loading_new_units_res_18"] = "AKAN fields their own Titan units called D-Series, developed by their R&D firm DRAK.", ["loading_new_units_res_19"] = "The Grenadier launches tear gas grenades at range with his underbarrel attachment, damaging players that stand in the cloud. On Death Sentence he instead comes armed with deadlier, stamina-draining nerve gas grenades.", + ["loading_new_units_res_20"] = "Titan Shields utilizes flashes that will use against you. Watch for red lights and beeping sounds. You can shoot shield's flash panels to stun them as they charge.", --Captain Hints ["loading_captains_res_title"] = "Restoration Captain Tips", ["loading_captains_res_1"] = "To take Captain Summers down, target his crew first starting with Doc. He's unkillable until his entire crew is dead, and the other two are nearly invulnerable until Doc is dead.", ["loading_captains_res_2"] = "Don't hug Captain Summers. He WILL melt you with his flamethrower.", ["loading_captains_res_3"] = "Captain Spring can take a ton of damage but will eventually go down. Watch for his grenades and take advantage of his immobility.", ["loading_captains_res_4"] = "Captain Spring throws Cluster HE grenades periodically.", - ["loading_captains_res_5"] = "Captain Spring may be dangerous, but he is incredibly slow and has poor range.", + ["loading_captains_res_5"] = "Captain Spring may be dangerous due to his pushback firepower, but he is incredibly slow and has poor range.", ["loading_captains_res_6"] = "Captain Autumn will loudly taunt when he attacks.", ["loading_captains_res_7"] = "Unlike other Captains, the police will not announce Autumn's arrival, as to not ruin the element of surprise.", ["loading_captains_res_8"] = "Captain Autumn will progressively disable your deployables if he's allowed to stay undetected in the map for a while. Disabled deployables are outlined in purple and can only be restored if Autumn is found and defeated.", ["loading_captains_res_9"] = "You will probably not beat Captain Autumn in a fist fight. Don't even try.", ["loading_captains_res_10"] = "Captain Winters is nearly immune to explosives and fire, and has strong bullet resistance, but is somewhat vulnerable to melee.", - ["loading_captains_res_11"] = "Captain Winters' shield is completely unpierceable.", + ["loading_captains_res_11"] = "Captain Winters' shield is completely unpierceable but his shield can be shot off after shooting at it long enough. Beware of his Phase 2 though.", ["loading_captains_res_12"] = "Captain Winters will wander the map, healing and overhealing nearby enemies.", --Stealth Hints ["loading_stealth_res_title"] = "Restoration Stealth Tips", @@ -4432,7 +4433,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["mutator_quickscope360_desc"] = "Snipers now aim their rifles 100% faster.", ["mutator_quickscope360_longdesc"] = "Snipers now aim their rifles 100% faster.", - ["mutator_goldfarbdozers"] = "Double Firepower", + ["mutator_goldfarbdozers"] = "Double Trouble", ["mutator_goldfarbdozers_desc"] = "All Bulldozers that spawn will always deploy in pairs.", ["mutator_goldfarbdozers_longdesc"] = "All Bulldozers that spawn will always deploy in pairs.", --Crime spree modifier changes diff --git a/lua/sc/loc/locko.lua b/lua/sc/loc/locko.lua index ff04aca181..78d2c426ff 100644 --- a/lua/sc/loc/locko.lua +++ b/lua/sc/loc/locko.lua @@ -4239,7 +4239,8 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_17"] = "브라보 유닛은 파편 수류탄을 던질 수 있습니다. 주변이 깜박이고 경고음을 듣고 카운트다운되는 것을 주의하십시오.", ["loading_new_units_res_18"] = "아칸은 그의 연구개발 회사인 DRAK에서 개발한 D-시리즈라고 불리는 자체 타이탄 유닛을 배치합니다.", ["loading_new_units_res_19"] = "척탄병은 장착된 언더베럴을 사용하여 원거리에서 최루 가스 유탄을 발사하여 구름 속에 있는 플레이어에게 피해를 줍니다. 데스 센텐스에선 대신 더 치명적이고 스태미나를 소모하는 신경가스 유탄으로 무장합니다.", - + ["loading_new_units_res_20"] = "Titan Shields utilizes flashes that will use against you. Watch for red lights and beeping sounds. You can shoot shield's flash panels to stun them as they charge.", + -- Captain Hints ["loading_captains_res_title"] = "레스토레이션 캡틴 팁", ["loading_captains_res_1"] = "캡틴 서머스를 쓰러뜨리려면 먼저 닥과 그의 팀원들부터 목표로 삼으십시오. 그는 그의 모든 팀원들이 죽을 때까지 죽일 수 없으며 다른 두 사람은 닥이 죽을 때까지는 거의 무적입니다.", ["loading_captains_res_2"] = "캡틴 서머스를 안아주지 마십시오. 그는 화염 방사기로 당신을 녹일 것입니다.", diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index fe6bd9a117..7ff19e9ba6 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -4276,6 +4276,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_17"] = "Отряды Браво используют осколочные гранаты. Обращайте внимание на их уникальные звук и эффект.", ["loading_new_units_res_18"] = "АКАН использует собственных Титановых юнитов - так называемая D-СЕРИЯ, разработанная корпорацией DRAK.", ["loading_new_units_res_19"] = "Гренадер использует гранаты со слезоточивым газом, которые наносят продолжительный урон игрокам, стоящим в облаке. На 'Смертном приговоре' он вооружен более смертоносным паралитическим газом, который также уменьшает выносливость.", + ["loading_new_units_res_20"] = "Titan Shields utilizes flashes that will use against you. Watch for red lights and beeping sounds. You can shoot shield's flash panels to stun them as they charge.", --Captain Hints ["loading_captains_res_title"] = "Restoration - советы о капитанах", ["loading_captains_res_1"] = "Чтобы победить капитана Саммерса, нужно сначала обезвредить его команду, начиная с Дока. Саммерс будет неубиваем, пока вся его команда жива; остальные двое будут практически неуязвимы, пока жив Док.", diff --git a/lua/sc/loc/loczh.lua b/lua/sc/loc/loczh.lua index a046a6e127..2ae51c93c7 100644 --- a/lua/sc/loc/loczh.lua +++ b/lua/sc/loc/loczh.lua @@ -4345,6 +4345,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_17"] = "Bravo临界反应部队的血量和伤害都比一般单位要强上许多,他们进攻时会频繁地投掷破片手雷,你最好不要只在一个小坑位上蹲太久。", ["loading_new_units_res_18"] = "阿肯拥有他自己的D项目系列泰坦部队。他们看起来不同但实际属性是相同的。他们的整体视觉效果和穿着特征也是基本一致的,因此你可以轻易地认出不同的兵种。", ["loading_new_units_res_19"] = "掷弹兵的武器有能发射催泪瓦斯的下挂件,站在瓦斯中的玩家会持续受到伤害。在\"死刑宣判\"难度下,他装备了更致命的、伤血更快且会迅速清空你耐力的毒气弹。", + ["loading_new_units_res_20"] = "Titan Shields utilizes flashes that will use against you. Watch for red lights and beeping sounds. You can shoot shield's flash panels to stun them as they charge.", -- Captain Hints ["loading_captains_res_title"] = "恢复MOD劫匪小贴士(四季队长)", ["loading_captains_res_1"] = "要击败夏日队长,得先从他的医疗单位入手。夏日队长的队员死亡前,队长几乎是无敌的。而他的左右护法在医疗兵还活着时几乎是无懈可击的。", diff --git a/lua/sc/managers/modifiersmanager.lua b/lua/sc/managers/modifiersmanager.lua index fef8121937..266b315987 100644 --- a/lua/sc/managers/modifiersmanager.lua +++ b/lua/sc/managers/modifiersmanager.lua @@ -331,14 +331,12 @@ else ["units/payday2/characters/ene_fbi_swat_1_sc/ene_fbi_swat_1_sc"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/payday2/characters/ene_city_swat_1_sc/ene_city_swat_1_sc"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/pd2_mod_lapd/characters/ene_city_swat_1/ene_city_swat_1"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", - ["units/pd2_mod_fbi/characters/ene_city_swat_1/ene_city_swat_1"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/pd2_dlc_gitgud/characters/ene_zeal_city_1/ene_zeal_city_1"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/payday2/characters/ene_fbi_swat_3/ene_fbi_swat_3"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/pd2_mod_lapd/characters/ene_fbi_swat_3/ene_fbi_swat_3"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/payday2/characters/ene_city_swat_3_sc/ene_city_swat_3_sc"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/pd2_mod_lapd/characters/ene_city_swat_3/ene_city_swat_3"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", - ["units/pd2_mod_fbi/characters/ene_city_swat_3/ene_city_swat_3"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", ["units/pd2_dlc_gitgud/characters/ene_zeal_city_3/ene_zeal_city_3"] = "units/pd2_mod_bravo/characters/ene_bravo_rifle/ene_bravo_rifle", --Bravo Shotgun @@ -346,7 +344,6 @@ else ["units/payday2/characters/ene_fbi_swat_2_sc/ene_fbi_swat_2_sc"] = "units/pd2_mod_bravo/characters/ene_bravo_shotgun/ene_bravo_shotgun", ["units/payday2/characters/ene_city_swat_2_sc/ene_city_swat_2_sc"] = "units/pd2_mod_bravo/characters/ene_bravo_shotgun/ene_bravo_shotgun", ["units/pd2_mod_lapd/characters/ene_city_swat_2/ene_city_swat_2"] = "units/pd2_mod_bravo/characters/ene_bravo_shotgun/ene_bravo_shotgun", - ["units/pd2_mod_fbi/characters/ene_city_swat_2/ene_city_swat_2"] = "units/pd2_mod_bravo/characters/ene_bravo_shotgun/ene_bravo_shotgun", ["units/pd2_dlc_gitgud/characters/ene_zeal_city_2/ene_zeal_city_2"] = "units/pd2_mod_bravo/characters/ene_bravo_shotgun/ene_bravo_shotgun", --Bravo LMG diff --git a/lua/sc/tweak_data/charactertweakdata.lua b/lua/sc/tweak_data/charactertweakdata.lua index 794cca48cc..2721c3267d 100644 --- a/lua/sc/tweak_data/charactertweakdata.lua +++ b/lua/sc/tweak_data/charactertweakdata.lua @@ -2319,7 +2319,9 @@ function CharacterTweakData:_init_tank(presets) --Skulldozers, More tanky but moves as slow as Titandozers self.tank_skull = deep_clone(self.tank) - self.tank_skull.dt_suppress = nil + self.tank_skull.dt_suppress = { + range = 300 + } self.tank_skull.HEALTH_INIT = 625 self.tank_skull.marshal_logic = true self.tank_skull.move_speed = presets.move_speed.very_slow @@ -17862,11 +17864,6 @@ function CharacterTweakData:_set_overkill_290() self.spring.dt_suppress = { range = 2500 } - - --Skulldozers can now push back players - self.tank_skull.dt_suppress = { - range = 300 - } self.autumn.damage.bullet_damage_mul = 0.45 self.presets.gang_member_damage.HEALTH_INIT = 175 diff --git a/lua/sc/tweak_data/tipstweakdata.lua b/lua/sc/tweak_data/tipstweakdata.lua index 10c06da868..b6032571c4 100644 --- a/lua/sc/tweak_data/tipstweakdata.lua +++ b/lua/sc/tweak_data/tipstweakdata.lua @@ -283,6 +283,12 @@ function TipsTweakData:init() consoles = true, category = "new_units_res" }, + { + cat_index = 20, + image = "enemy_tshield", + consoles = true, + category = "new_units_res" + }, { cat_index = 1, image = "enemy_summers", diff --git a/lua/sc/units/vehicles/animatedvehiclebase.lua b/lua/sc/units/vehicles/animatedvehiclebase.lua index 4d3d786cfd..750a649ffb 100644 --- a/lua/sc/units/vehicles/animatedvehiclebase.lua +++ b/lua/sc/units/vehicles/animatedvehiclebase.lua @@ -18,7 +18,7 @@ Hooks:PostHook(AnimatedVehicleBase, "set_enabled", "woohoo_wow", function(self, elseif self._unit:damage():has_sequence("mat_zeals") and difficulty == 8 then self._unit:damage():run_sequence_simple("mat_zeals") end - elseif faction == "lapd" or faction == "fbi" or faction == "sfpd" then + elseif faction == "lapd" or faction == "fbi" then if self._unit:damage():has_sequence("mat_blueswat") and difficulty < 5 then self._unit:damage():run_sequence_simple("mat_blueswat") elseif self._unit:damage():has_sequence("mat_fbi") and difficulty == 5 or difficulty == 6 then From 1c35efcfc780c12d17ce394ee1e4945ca3aeaecd Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 21:21:50 -0400 Subject: [PATCH 44/65] some other fixes --- lua/sc/loc/loc.lua | 2 +- lua/sc/tweak_data/charactertweakdata.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index c0dee6eb9f..41acb1ffa0 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -4636,7 +4636,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) --Iron Man ["menu_juggernaut_beta_sc"] = "Iron Man", - ["menu_juggernaut_beta_desc_sc"] = "BASIC: #{owned}#$basic##\nYou can wear the #{skill_color}#Improved Combined Tactical Vest.##\n\nWhen you melee Shield enemies, they get staggered from the sheer force.\n\n#{risk}#NOTE:## #{important_1}#Titan Shields## and #{important_1}#Captain Winters## #{risk}#cannot be staggered.##\n\nACE: #{owned}#$pro##\nYour armor recovers #{skill_color}#10%## faster.\n\nYour ability to stagger shields is extended to your ranged weapons; chances are increased the higher the total damage of the weapon is.", + ["menu_juggernaut_beta_desc_sc"] = "BASIC: #{owned}#$basic##\nYou can wear the #{skill_color}#Improved Combined Tactical Vest.##\n\nWhen you melee Shield enemies, they get staggered from the sheer force.\n\n#{risk}#NOTE:## #{important_1}#Titan Shields## #{risk}#and## #{important_1}#Captain Winters## #{risk}#cannot be staggered.##\n\nACE: #{owned}#$pro##\nYour armor recovers #{skill_color}#10%## faster.\n\nYour ability to stagger shields is extended to your ranged weapons; chances are increased the higher the total damage of the weapon is.", --[[ SUPPORT SUBTREE ]]-- --Scavenger diff --git a/lua/sc/tweak_data/charactertweakdata.lua b/lua/sc/tweak_data/charactertweakdata.lua index 2721c3267d..56f0afe375 100644 --- a/lua/sc/tweak_data/charactertweakdata.lua +++ b/lua/sc/tweak_data/charactertweakdata.lua @@ -2756,7 +2756,7 @@ function CharacterTweakData:_init_phalanx_minion(presets) self.phalanx_minion.can_be_tased = false self.phalanx_minion.immune_to_knock_down = true self.phalanx_minion.immune_to_concussion = true - self.phalanx_minion.damage.immune_to_knockback = false + self.phalanx_minion.damage.immune_to_knockback = true self.phalanx_minion.spawn_sound_event_2 = "hos_shield_indication_sound_terminator_style" --that's a big ass name self.phalanx_minion.suppression = nil self.phalanx_minion.is_special = true From bfd5ae5d4819d78a380ba72555962c1637ec48f8 Mon Sep 17 00:00:00 2001 From: Noep Date: Sat, 23 Sep 2023 22:04:12 -0400 Subject: [PATCH 45/65] more fixes --- lua/sc/tweak_data/weapontweakdata.lua | 1 - lua/sc/units/player/playerstandard.lua | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lua/sc/tweak_data/weapontweakdata.lua b/lua/sc/tweak_data/weapontweakdata.lua index ca54d329ca..00f834cd69 100644 --- a/lua/sc/tweak_data/weapontweakdata.lua +++ b/lua/sc/tweak_data/weapontweakdata.lua @@ -12695,7 +12695,6 @@ Hooks:PostHook( WeaponTweakData, "init", "SC_weapons", function(self) if self.shatters_fury then self.shatters_fury.recategorize = { "heavy_pis", "handcannon" } self.shatters_fury.damage_type = "heavy_pistol" - self.shatters_fury.always_play_anims = true self.shatters_fury.fire_mode_data.fire_rate = 0.2142857 self.shatters_fury.muzzleflash = "effects/payday2/particles/weapons/big_51b_auto_fps" --if restoration.Options:GetValue("OTHER/ComboSounds") then diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index fb36cd19c9..3051f35410 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -26,7 +26,7 @@ local norecoil_blacklist = { --From Zdann --Pistols ["peacemaker"] = true, - ["model3"] = true + --["model3"] = true } local sound_buffer = BeardLib.Utils:FindMod("Megumin's Staff") and XAudio and blt.xaudio.setup() and XAudio.Buffer:new( BeardLib.Utils:FindMod("Megumin's Staff").ModPath .. "assets/soundbank/megumins_staff_charge.ogg") From d1a51ea217cbaf36e62a957f76df230cb1f2f06b Mon Sep 17 00:00:00 2001 From: SonicSoapyBoi Date: Sun, 24 Sep 2023 20:19:31 +0200 Subject: [PATCH 46/65] It is that time again... *Made Titan Snipers replace Rooftop/Harasser SWATs in Undercover on Pro Jobs *Big Bank now has increased time lock timer by 2 minutes when playing on Pro Jobs *The Commissar now uses RPK instead of M249 *Adjusted PONR in more heists *Added a fix from SH where enemies sometimes disappearing when they are told to retire *Added SH's Biker Heist Day 1 spawn delays (moved the heist spawns to tiny_levels) *Added Vest Bikers (Guard Bikers) to Biker Heist Day 1 *Border Crossing, Big Bank and Midland Ranch now have PONR player scaling *Fixed BTM'S PONR triggering too early *Moved matchmaking keys to network manager --- Core.lua | 4 +- addMISC.xml | 2 + .../ene_drak_hrt_2/ene_drak_hrt_2.object | 4 +- .../mission/elementspawnenemydummy.lua | 8 +-- lua/sc/network/base/networkmanager.lua | 9 ++- .../matchmaking/networkmatchmakingepic.lua | 5 -- .../matchmaking/networkmatchmakingsteam.lua | 5 -- lua/sc/units/enemies/copbase.lua | 3 + .../units/enemies/logics/coplogictravel.lua | 20 ++++++ main.xml | 2 - req/mission_script/big.lua | 43 +++++++++++- req/mission_script/born.lua | 68 +++++++++++++++---- req/mission_script/branchbank.lua | 8 +-- req/mission_script/brb.lua | 10 +-- req/mission_script/chca.lua | 29 ++++---- req/mission_script/chew.lua | 14 ++-- req/mission_script/dinner.lua | 14 ++-- req/mission_script/election_day_2.lua | 8 +-- req/mission_script/election_day_3.lua | 8 +-- req/mission_script/family.lua | 8 +-- req/mission_script/friend.lua | 8 +-- req/mission_script/jewelry_store.lua | 14 ++-- req/mission_script/jolly.lua | 8 +-- req/mission_script/kenaz.lua | 14 ++-- req/mission_script/mad.lua | 8 +-- req/mission_script/man.lua | 60 ++++++++++++++++ req/mission_script/mex.lua | 48 ++++++++++--- req/mission_script/mex_cooking.lua | 14 ++-- req/mission_script/pal.lua | 14 ++-- req/mission_script/pbr.lua | 10 +-- req/mission_script/ranc.lua | 56 ++++++++------- req/mission_script/sah.lua | 24 +++---- req/mission_script/ukrainian_job_res.lua | 16 ++--- req/mission_script/watchdogs_1.lua | 22 ++++++ .../welcome_to_the_jungle_1.lua | 14 ++-- .../welcome_to_the_jungle_2.lua | 10 +-- 36 files changed, 366 insertions(+), 246 deletions(-) delete mode 100644 lua/sc/network/matchmaking/networkmatchmakingepic.lua delete mode 100644 lua/sc/network/matchmaking/networkmatchmakingsteam.lua diff --git a/Core.lua b/Core.lua index 9d2f07c462..fb1517d5ba 100644 --- a/Core.lua +++ b/Core.lua @@ -271,6 +271,7 @@ function restoration:Init() "cane", --Santa's Workshop "brb", --Brooklyn Bank "mus", --The Diamond + "born", --Biker 1 "run", --Heat Street "ranc", --Midland Ranch "sah", --Shacklethorne @@ -341,8 +342,7 @@ function restoration:Init() "vit", --White House "nmh", --No Mercy "des", --Henry's Rock - "bph", --Hell's Island - "born", --Biker 1 + "bph", --Hell's Island "fex", --Buluc's Mansion --Skirmish heists below "skmc_mad", diff --git a/addMISC.xml b/addMISC.xml index fd44634fa1..76a8bde97b 100644 --- a/addMISC.xml +++ b/addMISC.xml @@ -1,5 +1,7 @@ + + diff --git a/assets/units/pd2_mod_reapers/characters/ene_drak_hrt_2/ene_drak_hrt_2.object b/assets/units/pd2_mod_reapers/characters/ene_drak_hrt_2/ene_drak_hrt_2.object index 293e6e5ee1..4a2d6f6676 100644 --- a/assets/units/pd2_mod_reapers/characters/ene_drak_hrt_2/ene_drak_hrt_2.object +++ b/assets/units/pd2_mod_reapers/characters/ene_drak_hrt_2/ene_drak_hrt_2.object @@ -196,7 +196,7 @@ - + @@ -208,7 +208,7 @@ - + diff --git a/lua/sc/managers/mission/elementspawnenemydummy.lua b/lua/sc/managers/mission/elementspawnenemydummy.lua index dc6eb04357..ed35b30104 100644 --- a/lua/sc/managers/mission/elementspawnenemydummy.lua +++ b/lua/sc/managers/mission/elementspawnenemydummy.lua @@ -2107,7 +2107,7 @@ local murkywater_normal_overkill = { --fbi ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi/ene_murkywater_light_fbi"] = "units/pd2_mod_sharks/characters/ene_fbi_swat_1/ene_fbi_swat_1", - ["units/pd2_dlc_bph/characters/ene_murkywater_light_r870/ene_murkywater_light_r870"] = "units/pd2_mod_sharks/characters/ene_fbi_swat_2/ene_fbi_swat_2", + ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi_r870/ene_murkywater_light_fbi_r870"] = "units/pd2_mod_sharks/characters/ene_fbi_swat_2/ene_fbi_swat_2", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_g36/ene_murkywater_heavy_g36"] = "units/pd2_mod_sharks/characters/ene_fbi_heavy_1/ene_fbi_heavy_1", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_shotgun/ene_murkywater_heavy_shotgun"] = "units/pd2_mod_sharks/characters/ene_fbi_heavy_r870/ene_fbi_heavy_r870", @@ -2220,7 +2220,7 @@ local murkywater_mayhem = { --fbi ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi/ene_murkywater_light_fbi"] = "units/pd2_mod_sharks/characters/ene_fbi_swat_1/ene_fbi_swat_1", - ["units/pd2_dlc_bph/characters/ene_murkywater_light_r870/ene_murkywater_light_r870"] = "units/pd2_mod_sharks/characters/ene_fbi_swat_2/ene_fbi_swat_2", + ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi_r870/ene_murkywater_light_fbi_r870"] = "units/pd2_mod_sharks/characters/ene_fbi_swat_2/ene_fbi_swat_2", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_g36/ene_murkywater_heavy_g36"] = "units/pd2_mod_sharks/characters/ene_fbi_heavy_1/ene_fbi_heavy_1", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_shotgun/ene_murkywater_heavy_shotgun"] = "units/pd2_mod_sharks/characters/ene_fbi_heavy_r870/ene_fbi_heavy_r870", @@ -2332,7 +2332,7 @@ local murkywater_deathwish = { --fbi ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi/ene_murkywater_light_fbi"] = "units/pd2_mod_sharks/characters/ene_city_swat_1/ene_city_swat_1", - ["units/pd2_dlc_bph/characters/ene_murkywater_light_r870/ene_murkywater_light_r870"] = "units/pd2_mod_sharks/characters/ene_city_swat_2/ene_city_swat_2", + ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi_r870/ene_murkywater_light_fbi_r870"] = "units/pd2_mod_sharks/characters/ene_city_swat_2/ene_city_swat_2", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_g36/ene_murkywater_heavy_g36"] = "units/pd2_mod_sharks/characters/ene_fbi_heavy_1/ene_fbi_heavy_1", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_shotgun/ene_murkywater_heavy_shotgun"] = "units/pd2_mod_sharks/characters/ene_fbi_heavy_r870/ene_fbi_heavy_r870", @@ -2445,7 +2445,7 @@ local murkywater_hecu = { --fbi ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi/ene_murkywater_light_fbi"] = "units/pd2_mod_sharks/characters/ene_zeal_city_1/ene_zeal_city_1", - ["units/pd2_dlc_bph/characters/ene_murkywater_light_r870/ene_murkywater_light_r870"] = "units/pd2_mod_sharks/characters/ene_zeal_city_2/ene_zeal_city_2", + ["units/pd2_dlc_bph/characters/ene_murkywater_light_fbi_r870/ene_murkywater_light_fbi_r870"] = "units/pd2_mod_sharks/characters/ene_zeal_city_2/ene_zeal_city_2", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_g36/ene_murkywater_heavy_g36"] = "units/pd2_mod_sharks/characters/ene_zeal_swat_heavy/ene_zeal_swat_heavy", ["units/pd2_dlc_bph/characters/ene_murkywater_heavy_shotgun/ene_murkywater_heavy_shotgun"] = "units/pd2_mod_sharks/characters/ene_zeal_swat_heavy_r870/ene_zeal_swat_heavy_r870", diff --git a/lua/sc/network/base/networkmanager.lua b/lua/sc/network/base/networkmanager.lua index 876a432701..048cf0c938 100644 --- a/lua/sc/network/base/networkmanager.lua +++ b/lua/sc/network/base/networkmanager.lua @@ -4,4 +4,11 @@ -- self:register_handler("RestorationMod__connection", RestorationMod__ConnectionNetworkHandler) -- self:register_handler("RestorationMod__unit", RestorationMod__UnitNetworkHandler) -- end --- end) \ No newline at end of file +-- end) +NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.2" +NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.2" +--Compatibility for BeardLib Editor just in case. Maybe need shift MM key stuff in networkmanager +if BLE and BLE:RunningFix() then +NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY .. "_editor" +NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY .. "_editor" +end \ No newline at end of file diff --git a/lua/sc/network/matchmaking/networkmatchmakingepic.lua b/lua/sc/network/matchmaking/networkmatchmakingepic.lua deleted file mode 100644 index cd4d632fa9..0000000000 --- a/lua/sc/network/matchmaking/networkmatchmakingepic.lua +++ /dev/null @@ -1,5 +0,0 @@ -NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.2" ---Compatibility for BeardLib Editor just in case. Maybe need shift MM key stuff in networkmanager -if BLE and BLE:RunningFix() then -NetworkMatchMakingEPIC._BUILD_SEARCH_INTEREST_KEY = NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY .. "_editor" -end \ No newline at end of file diff --git a/lua/sc/network/matchmaking/networkmatchmakingsteam.lua b/lua/sc/network/matchmaking/networkmatchmakingsteam.lua deleted file mode 100644 index 1285d76d61..0000000000 --- a/lua/sc/network/matchmaking/networkmatchmakingsteam.lua +++ /dev/null @@ -1,5 +0,0 @@ -NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = "restoration_12.2.2" ---Compatibility for BeardLib Editor just in case -if BLE and BLE:RunningFix() then -NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY = NetworkMatchMakingSTEAM._BUILD_SEARCH_INTEREST_KEY .. "_editor" -end \ No newline at end of file diff --git a/lua/sc/units/enemies/copbase.lua b/lua/sc/units/enemies/copbase.lua index 21274f71a4..81e6dc4037 100644 --- a/lua/sc/units/enemies/copbase.lua +++ b/lua/sc/units/enemies/copbase.lua @@ -493,6 +493,9 @@ local weapons_map = { [Idstring("units/payday2/characters/ene_murkywater_1/ene_murkywater_1"):key()] = {"ump", "m4", "r870", "scar_murky"}, [Idstring("units/payday2/characters/ene_murkywater_2/ene_murkywater_2"):key()] = {"ump", "m4", "r870", "scar_murky"}, [Idstring("units/pd2_dlc_berry/characters/ene_murkywater_no_light/ene_murkywater_no_light"):key()] = {"m4", "r870", "mp5", "scar_murky"}, + + --Commissar gets his precious RPK back from Russia + [Idstring("units/payday2/characters/ene_gang_mobster_boss/ene_gang_mobster_boss"):key()] = "rpk_lmg", --Giving Friendly AI silenced pistols [Idstring("units/pd2_dlc_spa/characters/npc_spa/npc_spa"):key()] = "beretta92", diff --git a/lua/sc/units/enemies/logics/coplogictravel.lua b/lua/sc/units/enemies/logics/coplogictravel.lua index 7da4ee2ba9..48811e986e 100644 --- a/lua/sc/units/enemies/logics/coplogictravel.lua +++ b/lua/sc/units/enemies/logics/coplogictravel.lua @@ -386,3 +386,23 @@ Hooks:PreHook(CopLogicTravel, "_on_destination_reached", "RR_on_destination_reac managers.groupai:state():chk_say_enemy_chatter(data.unit, data.m_pos, math_random() > 0.5 and "ready" or "inpos") -- Ready! / I'm in position! end end) + +-- Fix enemies sometimes disappearing when they are told to retire +-- Basically this function doesn't check if the retiring unit reached their actual retire spot +local _on_destination_reached_original = CopLogicTravel._on_destination_reached +function CopLogicTravel._on_destination_reached(data, ...) + local objective = data.objective + if objective.type == "flee" or objective.type == "defend_area" and objective.grp_objective and objective.grp_objective.type == "retire" then + local nav_seg = data.unit:movement():nav_tracker():nav_segment() + if objective.nav_seg == nav_seg or objective.area and objective.area.nav_segs[nav_seg] then + data.unit:brain():set_active(false) + data.unit:base():set_slot(data.unit, 0) + else + objective.in_place = true + data.logic.on_new_objective(data) + end + return + end + + return _on_destination_reached_original(data, ...) +end diff --git a/main.xml b/main.xml index 25937ca74c..899728d03b 100644 --- a/main.xml +++ b/main.xml @@ -87,8 +87,6 @@ - - diff --git a/req/mission_script/big.lua b/req/mission_script/big.lua index 086f499888..f97beb6c0c 100644 --- a/req/mission_script/big.lua +++ b/req/mission_script/big.lua @@ -9,20 +9,61 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) ponr_value = 1020 end -if Global.game_settings and Global.game_settings.one_down then +if Global.game_settings and Global.game_settings.one_down then + timelock_normal = 300 + timelock_fast = 270 + if tweak_data:difficulty_to_index(difficulty) == 5 or tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 or tweak_data:difficulty_to_index(difficulty) == 8 then australian_sniper = "units/pd2_dlc_vip/characters/ene_titan_sniper/ene_titan_sniper" end end +local ponr_timer_player_mul = { + 1, + 0.85, + 0.7, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65 +} + return { --Pro Job PONR [105790] = { + ponr_player_mul = ponr_timer_player_mul, ponr = ponr_value }, [105845] = { + ponr_player_mul = ponr_timer_player_mul, ponr = ponr_value }, + --More timelock timer on Pro Jobs + [103137] = { + values = { + time = timelock_normal + } + }, + [100956] = { + values = { + time = timelock_fast + } + }, --Titan Snipers replace FBI Heavy SWATs on Pro Jobs [100940] = { values = { diff --git a/req/mission_script/born.lua b/req/mission_script/born.lua index b3ccb9ce93..e71817dced 100644 --- a/req/mission_script/born.lua +++ b/req/mission_script/born.lua @@ -1,23 +1,65 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1050 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1020 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 990 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 960 + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 930 + ponr_value = 630 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 900 + ponr_value = 600 end return { - --Pro Job PONR - [100720] = { - ponr = ponr_value + --Pro Job PONR + [100720] = { + ponr = ponr_value + }, + -- Slow down roof and garage spawns + [100007] = { + values = { + interval = 15 + } + }, + [100128] = { + values = { + interval = 15 + } + }, + --Have Vest Biker beat up Mike + [100920] = { + values = { + enemy = "units/payday2/characters/ene_guard_biker_1/ene_guard_biker_1" + } + }, + --Biker replacements + [100254] = { + values = { + enemy = "units/payday2/characters/ene_guard_biker_1/ene_guard_biker_1" + } + }, + [100295] = { + values = { + enemy = "units/payday2/characters/ene_guard_biker_1/ene_guard_biker_1" + } + }, + [100301] = { + values = { + enemy = "units/payday2/characters/ene_guard_biker_1/ene_guard_biker_1" + } + }, + [100373] = { + values = { + enemy = "units/pd2_dlc_born/characters/ene_biker_female_1/ene_biker_female_1" + } + }, + [100374] = { + values = { + enemy = "units/pd2_dlc_born/characters/ene_biker_female_3/ene_biker_female_3" + } + }, + [100384] = { + values = { + enemy = "units/pd2_dlc_born/characters/ene_biker_female_2/ene_biker_female_2" + } } } \ No newline at end of file diff --git a/req/mission_script/branchbank.lua b/req/mission_script/branchbank.lua index 90e06e6d44..3da112e2aa 100644 --- a/req/mission_script/branchbank.lua +++ b/req/mission_script/branchbank.lua @@ -5,13 +5,7 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) bulldozer = "units/payday2/characters/ene_bulldozer_2_sc/ene_bulldozer_2_sc" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 900 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 840 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 780 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 720 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 660 diff --git a/req/mission_script/brb.lua b/req/mission_script/brb.lua index c6b0231a6b..35c5b0f847 100644 --- a/req/mission_script/brb.lua +++ b/req/mission_script/brb.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 600 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 570 diff --git a/req/mission_script/chca.lua b/req/mission_script/chca.lua index 2ebdc4ce7f..ed248f2ed9 100644 --- a/req/mission_script/chca.lua +++ b/req/mission_script/chca.lua @@ -1,16 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value_1 = 1050 - ponr_value_2 = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value_1 = 1020 - ponr_value_2 = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value_1 = 990 - ponr_value_2 = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value_1 = 960 ponr_value_2 = 600 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then @@ -57,16 +48,22 @@ return { }, [101469] = { groups = { - tac_shield_wall = false, - tac_shield_wall_ranged = false, - tac_shield_wall_charge = false + CS_shields = false, + FBI_shields = false, + FBI_shields_boom = false, + GS_shields = false, + GS_shields_boom = false, + GS_defend_shields = false } }, [101470] = { groups = { - tac_shield_wall = false, - tac_shield_wall_ranged = false, - tac_shield_wall_charge = false + CS_shields = false, + FBI_shields = false, + FBI_shields_boom = false, + GS_shields = false, + GS_shields_boom = false, + GS_defend_shields = false } } } \ No newline at end of file diff --git a/req/mission_script/chew.lua b/req/mission_script/chew.lua index 26949dfeb3..278476a7c6 100644 --- a/req/mission_script/chew.lua +++ b/req/mission_script/chew.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1050 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1020 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 990 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 960 + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 930 + ponr_value = 630 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 900 + ponr_value = 600 end return { diff --git a/req/mission_script/dinner.lua b/req/mission_script/dinner.lua index c2f6e460ac..6d67bf35f0 100644 --- a/req/mission_script/dinner.lua +++ b/req/mission_script/dinner.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 330 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 300 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 270 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 240 + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 180 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 210 + ponr_value = 150 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 180 + ponr_value = 120 end return { diff --git a/req/mission_script/election_day_2.lua b/req/mission_script/election_day_2.lua index 671db3a78f..072efaaba2 100644 --- a/req/mission_script/election_day_2.lua +++ b/req/mission_script/election_day_2.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 450 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 420 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 390 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 360 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 330 diff --git a/req/mission_script/election_day_3.lua b/req/mission_script/election_day_3.lua index 80a7cb5776..bcc6426375 100644 --- a/req/mission_script/election_day_3.lua +++ b/req/mission_script/election_day_3.lua @@ -9,13 +9,7 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) jerome_dude = "units/payday2/characters/ene_city_guard_3/ene_city_guard_3" end - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 450 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 420 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 390 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 360 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 330 diff --git a/req/mission_script/family.lua b/req/mission_script/family.lua index d0bd07cbdb..8ea2449cf5 100644 --- a/req/mission_script/family.lua +++ b/req/mission_script/family.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 900 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 900 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 860 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 860 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 830 diff --git a/req/mission_script/friend.lua b/req/mission_script/friend.lua index c4df74f44e..fc8bf40c56 100644 --- a/req/mission_script/friend.lua +++ b/req/mission_script/friend.lua @@ -2,13 +2,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or " local difficulty_index = tweak_data:difficulty_to_index(difficulty) local amount_guards = 8 - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 750 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 720 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 660 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 630 diff --git a/req/mission_script/jewelry_store.lua b/req/mission_script/jewelry_store.lua index e88057facd..b97dccffee 100644 --- a/req/mission_script/jewelry_store.lua +++ b/req/mission_script/jewelry_store.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 600 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 570 + ponr_value = 540 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 540 + ponr_value = 480 end return { diff --git a/req/mission_script/jolly.lua b/req/mission_script/jolly.lua index 3cba00e672..171e0706b7 100644 --- a/req/mission_script/jolly.lua +++ b/req/mission_script/jolly.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 540 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 510 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 480 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 420 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 390 diff --git a/req/mission_script/kenaz.lua b/req/mission_script/kenaz.lua index 0a60063ff8..854eea17c5 100644 --- a/req/mission_script/kenaz.lua +++ b/req/mission_script/kenaz.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1200 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1170 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 1140 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 1080 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 1080 + ponr_value = 1050 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 1050 + ponr_value = 1020 end local ponr_timer_player_mul = { diff --git a/req/mission_script/mad.lua b/req/mission_script/mad.lua index d405657732..d828adf0b3 100644 --- a/req/mission_script/mad.lua +++ b/req/mission_script/mad.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 600 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 570 diff --git a/req/mission_script/man.lua b/req/mission_script/man.lua index 592b40808c..f1e858d465 100644 --- a/req/mission_script/man.lua +++ b/req/mission_script/man.lua @@ -1,3 +1,12 @@ +local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" +local difficulty_index = tweak_data:difficulty_to_index(difficulty) + +if Global.game_settings and Global.game_settings.one_down then + if tweak_data:difficulty_to_index(difficulty) == 5 or tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 or tweak_data:difficulty_to_index(difficulty) == 8 then + australian_sniper = "units/pd2_dlc_vip/characters/ene_titan_sniper/ene_titan_sniper" + end +end + return { --flashlights, flashlights, flashlights!!!!!!!!!! [100756] = { @@ -5,5 +14,56 @@ return { }, [101801] = { flashlight = false + }, + --Titan Snipers replace some SWAT Harassers on Pro Jobs + [103237] = { + values = { + enemy = australian_sniper + } + }, + [103236] = { + values = { + enemy = australian_sniper + } + }, + [103235] = { + values = { + enemy = australian_sniper + } + }, + [103234] = { + values = { + enemy = australian_sniper + } + }, + [103228] = { + values = { + enemy = australian_sniper + } + }, + [102097] = { + values = { + enemy = australian_sniper + } + }, + [102443] = { + values = { + enemy = australian_sniper + } + }, + [102446] = { + values = { + enemy = australian_sniper + } + }, + [102448] = { + values = { + enemy = australian_sniper + } + }, + [102450] = { + values = { + enemy = australian_sniper + } } } \ No newline at end of file diff --git a/req/mission_script/mex.lua b/req/mission_script/mex.lua index 2236353e1e..fbdf74d7dc 100644 --- a/req/mission_script/mex.lua +++ b/req/mission_script/mex.lua @@ -1,31 +1,57 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 1650 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 1620 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 1590 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 1560 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 1530 elseif tweak_data:difficulty_to_index(difficulty) == 8 then ponr_value = 1500 end + +local ponr_timer_player_mul = { + 1, + 0.85, + 0.7, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65 +} return { --Pro Job PONR [101016] = { + ponr_player_mul = ponr_timer_player_mul, ponr = ponr_value }, [103048] = { groups = { - tac_bull_rush = false, - tac_shield_wall = false, - tac_shield_wall_ranged = false, - tac_shield_wall_charge = false + GREEN_tanks = false, + BLACK_tanks = false, + SKULL_tanks = false, + TIT_tanks = false, + CS_shields = false, + FBI_shields = false, + FBI_shields_boom = false, + GS_shields = false, + GS_shields_boom = false, + GS_defend_shields = false } }, --female/guard bikers diff --git a/req/mission_script/mex_cooking.lua b/req/mission_script/mex_cooking.lua index 8f34ca4d45..4a5c2a242f 100644 --- a/req/mission_script/mex_cooking.lua +++ b/req/mission_script/mex_cooking.lua @@ -1,10 +1,16 @@ return { [103048] = { groups = { - tac_bull_rush = false, - tac_shield_wall = false, - tac_shield_wall_ranged = false, - tac_shield_wall_charge = false + GREEN_tanks = false, + BLACK_tanks = false, + SKULL_tanks = false, + TIT_tanks = false, + CS_shields = false, + FBI_shields = false, + FBI_shields_boom = false, + GS_shields = false, + GS_shields_boom = false, + GS_defend_shields = false } } } \ No newline at end of file diff --git a/req/mission_script/pal.lua b/req/mission_script/pal.lua index d37906ac78..753e74ff90 100644 --- a/req/mission_script/pal.lua +++ b/req/mission_script/pal.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 240 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 210 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 180 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 180 + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 120 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 150 + ponr_value = 90 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 120 + ponr_value = 60 end if Global.game_settings and Global.game_settings.one_down then diff --git a/req/mission_script/pbr.lua b/req/mission_script/pbr.lua index 1edb9441fc..724c381ca9 100644 --- a/req/mission_script/pbr.lua +++ b/req/mission_script/pbr.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 450 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 420 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 390 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 360 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 330 @@ -17,7 +11,7 @@ local difficulty_index = tweak_data:difficulty_to_index(difficulty) return { --Pro Job PONR - [100119] = { + [101774] = { ponr = ponr_value }, --replace most of the murkies with resmod versions diff --git a/req/mission_script/ranc.lua b/req/mission_script/ranc.lua index 8bbb28806d..3aa1b36512 100644 --- a/req/mission_script/ranc.lua +++ b/req/mission_script/ranc.lua @@ -1,42 +1,50 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value_1 = 1650 - ponr_value_2 = 300 - ponr_value_3 = 900 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value_1 = 1620 - ponr_value_2 = 270 - ponr_value_3 = 870 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value_1 = 1590 - ponr_value_2 = 240 - ponr_value_3 = 840 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value_1 = 1560 - ponr_value_2 = 210 - ponr_value_3 = 840 + ponr_value_2 = 840 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value_1 = 1530 - ponr_value_2 = 210 - ponr_value_3 = 810 + ponr_value_2 = 810 elseif tweak_data:difficulty_to_index(difficulty) == 8 then ponr_value_1 = 1500 - ponr_value_2 = 180 - ponr_value_3 = 780 + ponr_value_2 = 780 end + +local ponr_timer_player_mul = { + 1, + 0.85, + 0.7, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65, + 0.65 +} return { --Pro Job PONR [101425] = { + ponr_player_mul = ponr_timer_player_mul, ponr = ponr_value_1 }, - [100622] = { - ponr = ponr_value_2 - }, [100929] = { - ponr = ponr_value_3 + ponr = ponr_value_2 }, --fixes some spawn typos [100683] = { diff --git a/req/mission_script/sah.lua b/req/mission_script/sah.lua index 5195fbb348..dcfb936049 100644 --- a/req/mission_script/sah.lua +++ b/req/mission_script/sah.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 600 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 570 @@ -128,10 +122,16 @@ return { interval = 60 }, groups = { - tac_bull_rush = false, - tac_shield_wall = false, - tac_shield_wall_ranged = false, - tac_shield_wall_charge = false + GREEN_tanks = false, + BLACK_tanks = false, + SKULL_tanks = false, + TIT_tanks = false, + CS_shields = false, + FBI_shields = false, + FBI_shields_boom = false, + GS_shields = false, + GS_shields_boom = false, + GS_defend_shields = false } }, --Made Locke less annoying diff --git a/req/mission_script/ukrainian_job_res.lua b/req/mission_script/ukrainian_job_res.lua index 94a14c2e06..e4b1542e2a 100644 --- a/req/mission_script/ukrainian_job_res.lua +++ b/req/mission_script/ukrainian_job_res.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 690 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 660 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 600 + + if tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 300 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 570 + ponr_value = 240 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 540 + ponr_value = 180 end return { diff --git a/req/mission_script/watchdogs_1.lua b/req/mission_script/watchdogs_1.lua index 0ce85635b6..04aa164512 100644 --- a/req/mission_script/watchdogs_1.lua +++ b/req/mission_script/watchdogs_1.lua @@ -20,6 +20,28 @@ return { [102872] = { ponr = ponr_value }, + [101687] = { + groups = { + GREEN_tanks = false, + BLACK_tanks = false, + SKULL_tanks = false, + TIT_tanks = false, + CS_shields = false, + FBI_shields = false, + FBI_shields_boom = false, + GS_shields = false, + GS_shields_boom = false, + GS_defend_shields = false + } + }, + [102827] = { + groups = { + GREEN_tanks = false, + BLACK_tanks = false, + SKULL_tanks = false, + TIT_tanks = false + } + }, -- Delay SWAT response [100327] = { on_executed = { diff --git a/req/mission_script/welcome_to_the_jungle_1.lua b/req/mission_script/welcome_to_the_jungle_1.lua index 86ebc52dd2..3fddfe90e7 100644 --- a/req/mission_script/welcome_to_the_jungle_1.lua +++ b/req/mission_script/welcome_to_the_jungle_1.lua @@ -1,18 +1,12 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 390 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 360 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 330 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then - ponr_value = 300 + elseif tweak_data:difficulty_to_index(difficulty) <= 5 then + ponr_value = 240 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then - ponr_value = 270 + ponr_value = 210 elseif tweak_data:difficulty_to_index(difficulty) == 8 then - ponr_value = 240 + ponr_value = 180 end return { diff --git a/req/mission_script/welcome_to_the_jungle_2.lua b/req/mission_script/welcome_to_the_jungle_2.lua index b2bbf31f2b..955b6fb56e 100644 --- a/req/mission_script/welcome_to_the_jungle_2.lua +++ b/req/mission_script/welcome_to_the_jungle_2.lua @@ -1,13 +1,7 @@ local difficulty = Global.game_settings and Global.game_settings.difficulty or "normal" local difficulty_index = tweak_data:difficulty_to_index(difficulty) - - if tweak_data:difficulty_to_index(difficulty) <= 2 then - ponr_value = 630 - elseif tweak_data:difficulty_to_index(difficulty) == 3 then - ponr_value = 600 - elseif tweak_data:difficulty_to_index(difficulty) == 4 then - ponr_value = 570 - elseif tweak_data:difficulty_to_index(difficulty) == 5 then + + if tweak_data:difficulty_to_index(difficulty) <= 5 then ponr_value = 540 elseif tweak_data:difficulty_to_index(difficulty) == 6 or tweak_data:difficulty_to_index(difficulty) == 7 then ponr_value = 510 From a2bf81cfc05f4dcd64a67ad185bb79579c8b6e84 Mon Sep 17 00:00:00 2001 From: Hater-mater Date: Sun, 24 Sep 2023 22:51:29 +0300 Subject: [PATCH 47/65] Update locru.lua --- lua/sc/loc/locru.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lua/sc/loc/locru.lua b/lua/sc/loc/locru.lua index 7ff19e9ba6..5b3cd41699 100644 --- a/lua/sc/loc/locru.lua +++ b/lua/sc/loc/locru.lua @@ -4234,8 +4234,8 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_gameplay_res_5"] = "Грабитель вдали от товарищей - идеальная цель для Клокеров.", ["loading_gameplay_res_6"] = "Клокеры наносят урон напрямую здоровью, когда атакуют пинком. Этот урон можно уменьшить, используя Стойкость или навык 'Контрудар'.", ["loading_gameplay_res_7"] = "Зеленые Бульдозеры наносят много урона и могут пробить даже самую тяжелую броню с одного выстрела.", - ["loading_gameplay_res_8"] = "Черные Бульдозеры (Бульдозеры с Сайгой) обладают высокой скорострельностью и большим магазином.", - ["loading_gameplay_res_9"] = "Дозеры с пулеметами/Скаллдозеры ведут огонь на поражение и не останавливаются, пока не отстреляют всю ленту.", + ["loading_gameplay_res_8"] = "Черные Бульдозеры (Бульдозеры с Сайгой) обладают высокой скорострельностью и большим магазином. Помимо этого они бегают быстрее всех дозеров.", + ["loading_gameplay_res_9"] = "Дозеры с пулеметами/Скаллдозеры ведут огонь на поражение и не останавливаются, пока не отстреляют всю ленту. Они передвигаются так же медленно, как и Титановые Дозеры.", ["loading_gameplay_res_10"] = "Дозеры с дробовиками Бенелли (Бенелли Дозеры) заменяют Дозеров с миниганами - у них и высокий урон, и высокая скорость стрельбы. Они совмещают опасность Зеленого и скорость Черного Дозеров.", ["loading_gameplay_res_11"] = "Приоритет целей важен. Бульдозеру явно стоит уделить больше внимания, чем обычному спецназовцу.", ["loading_gameplay_res_12"] = "На Смертном приговоре, Бульдозеры впадают в ярость, когда их стекло сломано, что увеличивает их урон на 10%.", @@ -4264,7 +4264,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_5"] = "Титановые Дозеры предпочитают держать грабителей на расстоянии, чтобы выцелить их из своего Рельсотрона.", ["loading_new_units_res_6"] = "Титановые Снайперы не имеют высокого урона и пробития брони, как у их стандартных соратников, зато могут передвигаться и обладают высокой скоростью стрельбы.", ["loading_new_units_res_7"] = "Вместо лазеров, Титановые Снайперы используют фиолетовые трассеры.", - ["loading_new_units_res_8"] = "Титановые щиты можно пробить только снайперской винтовкой Thanatos, пилой OVE9000 (с навыком 'Рвать и метать') и особыми бронебойными патронами у турелей.", + ["loading_new_units_res_8"] = "Титановые щиты можно пробить только снайперской винтовкой Thanatos (и ее эквиваленты), пилой OVE9000 (с навыком 'Рвать и метать') и особыми бронебойными патронами у турелей. Однако, щит можно сбить, если вести по нему продолжительный огонь.", ["loading_new_units_res_9"] = "Капитан Спринг и Титановые Дозеры всегда получают дополнительный урон в голову.", ["loading_new_units_res_10"] = "Титановые Тазеры используют электрические боеприпасы, которые ненадолго замедляют вас. Экран засветится синим, если он выстрелит в вас.", ["loading_new_units_res_11"] = "Копы-ветераны при смерти бросят слезоточивую гранату, если не убить их в голову.", @@ -4276,7 +4276,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_new_units_res_17"] = "Отряды Браво используют осколочные гранаты. Обращайте внимание на их уникальные звук и эффект.", ["loading_new_units_res_18"] = "АКАН использует собственных Титановых юнитов - так называемая D-СЕРИЯ, разработанная корпорацией DRAK.", ["loading_new_units_res_19"] = "Гренадер использует гранаты со слезоточивым газом, которые наносят продолжительный урон игрокам, стоящим в облаке. На 'Смертном приговоре' он вооружен более смертоносным паралитическим газом, который также уменьшает выносливость.", - ["loading_new_units_res_20"] = "Titan Shields utilizes flashes that will use against you. Watch for red lights and beeping sounds. You can shoot shield's flash panels to stun them as they charge.", + ["loading_new_units_res_20"] = "Титановые щиты могут ослепить вас, используя свой щит. Следите за красными огнями и звуками, которые издают щиты во время подготовки к вспышке. Вы можете выстрелить в световую панель во время зарядки, чтобы оглушить противника.", --Captain Hints ["loading_captains_res_title"] = "Restoration - советы о капитанах", ["loading_captains_res_1"] = "Чтобы победить капитана Саммерса, нужно сначала обезвредить его команду, начиная с Дока. Саммерс будет неубиваем, пока вся его команда жива; остальные двое будут практически неуязвимы, пока жив Док.", @@ -4289,7 +4289,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) ["loading_captains_res_8"] = "Капитан Отем будет постепенно отключать ваше снаряжение, если дать ему оставаться незамеченным продолжительное время. Отключенное снаряжение помечено фиолетовым и будет восстановлено только после смерти Отема.", ["loading_captains_res_9"] = "Вряд ли у вас получится победить капитана Отема в кулачном бою. Не стоит пробовать.", ["loading_captains_res_10"] = "Капитан Винтерс практически неуязвим к взрывчатке и огню, обладает сильной защитой от пуль, но достаточно слаб в ближнем бою.", - ["loading_captains_res_11"] = "Щит Капитана Винтерса совершенно невозможно пробить.", + ["loading_captains_res_11"] = "Щит Капитана Винтерса совершенно невозможно пробить, но вы можете попытаться выбить его из рук. Если будете вести продолжительный огонь по щиту, то Винтерс сбросит его и войдет в ярость.", ["loading_captains_res_12"] = "Капитан Винтерс двигается по карте, постоянно подлечивая врагов.", --Stealth Hints ["loading_stealth_res_title"] = "Restoration - советы о стелсе", @@ -4746,7 +4746,7 @@ Hooks:Add("LocalizationManagerPostInit", "SC_Localization_Skills", function(loc) --Iron Man ["menu_juggernaut_beta_sc"] = "Железный человек", - ["menu_juggernaut_beta_desc_sc"] = "БАЗОВЫЙ: #{owned}#$basic##\nОткрывает возможность носить #{skill_color}#Улучшенный комбинированный тактический бронежилет.##\n\nПри ударе Щитов оружием ближнего боя, они отбрасываются от вашей силы.\n\nПИКОВЫЙ: #{owned}#$pro##\nОгнестрельное оружие получает шанс отбросить Щиты. Шанс отбрасывания зависит от урона оружия.\n\nВаша броня восстанавливается на #{skill_color}#$skill_value_p1## быстрее.", + ["menu_juggernaut_beta_desc_sc"] = "БАЗОВЫЙ: #{owned}#$basic##\nОткрывает возможность носить #{skill_color}#Улучшенный комбинированный тактический бронежилет.##\n\nПри ударе Щитов оружием ближнего боя, они отбрасываются от вашей силы.\n#{risk}#Не работает против## #{important_1}#Титановых Щитов## #{risk}#и## #{important_1}#Капитана Винтерса.##\n\nПИКОВЫЙ: #{owned}#$pro##\nОгнестрельное оружие получает шанс отбросить Щиты. Шанс отбрасывания зависит от урона оружия.\n\nВаша броня восстанавливается на #{skill_color}#$skill_value_p1## быстрее.", --[[ SUPPORT SUBTREE ]]-- --Scavenger From 04a0a4a5e8bedd28a984b386491fa42bdc7db39a Mon Sep 17 00:00:00 2001 From: Noep Date: Sun, 24 Sep 2023 23:09:15 -0400 Subject: [PATCH 48/65] Add a mid-burst input buffer option --- lua/sc/loc/loc.lua | 10 ++++++---- lua/sc/units/player/playerstandard.lua | 7 +++++-- main.xml | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lua/sc/loc/loc.lua b/lua/sc/loc/loc.lua index 41acb1ffa0..959edfbf9e 100644 --- a/lua/sc/loc/loc.lua +++ b/lua/sc/loc/loc.lua @@ -195,11 +195,13 @@ Hooks:Add("LocalizationManagerPostInit", "ResMod_english_Localization", function ["RestorationModSprintCancelTitleID"] = "Evasion Aced Sprint Cancels Reload", ["RestorationModSprintCancelDescID"] = "Toggle whether or not if *STARTING* a sprint will cancel any on-going reload when you have aced the \"Evasion\" skill. Reloading while actively sprinting is unaffected.", ["RestorationModQueuedShootingTitleID"] = "Buffer Fire Inputs", - ["RestorationModQueuedShootingDescID"] = "Enable/disable fire input buffering for semi-auto weapons to assist with oversampling (sending inputs faster than the weapon can fire).", - ["RestorationModQueuedShootingWindowTitleID"] = "Buffer Fire Input Sensitivity", - ["RestorationModQueuedShootingWindowDescID"] = "Determines the window of time for your fire input to be buffered based on a % of the weapon's fire time delay. Higher value = earlier buffer", - ["RestorationModQueuedShootingExcludeTitleID"] = "Buffer Inputs Fire Rate Limit", + ["RestorationModQueuedShootingDescID"] = "Enable/disable fire input buffering for semi-auto and weapons to assist with oversampling (sending inputs faster than the weapon can fire).", + ["RestorationModQueuedShootingWindowTitleID"] = "Single-Fire Buffer Sensitivity", + ["RestorationModQueuedShootingWindowDescID"] = "Determines the window of time for your fire inputs to be buffered based on a % of the weapon's fire time delay. Higher value = earlier buffer", + ["RestorationModQueuedShootingExcludeTitleID"] = "Single-Fire Input Buffer Firerate Limit", ["RestorationModQueuedShootingExcludeDescID"] = "Limits the buffering of fire inputs to weapons that fire *above* the fire rate (RPM) set by this option.", + ["RestorationModQueuedShootingMidBurstTitleID"] = "Mid-Burst Input Buffer", + ["RestorationModQueuedShootingMidBurstDescID"] = "Buffer fire inputs done during a burst", ["RestorationModNoADSRecoilAnimsTitleID"] = "No ADS Recoil Animations", ["RestorationModNoADSRecoilAnimsDescID"] = "Enable/disable ADS recoil animations. Some weapons are not affected by this option (i.e. Manually operated guns, bows, flamethrowers)", ["RestorationModNoSwapOnReviveTitleID"] = "No Forced Weapon Swap on Revive", diff --git a/lua/sc/units/player/playerstandard.lua b/lua/sc/units/player/playerstandard.lua index 3051f35410..f01ea146a0 100644 --- a/lua/sc/units/player/playerstandard.lua +++ b/lua/sc/units/player/playerstandard.lua @@ -717,8 +717,11 @@ function PlayerStandard:_check_action_primary_attack(t, input) self._queue_fire = true end else - if not input.fake_attack then - self._queue_burst = true + local queue_mid_burst = self:_in_burst() and restoration.Options:GetValue("OTHER/WeaponHandling/QueuedShootingMidBurst") + if queue_mid_burst or not self:_in_burst() then + if not input.fake_attack then + self._queue_burst = true + end end end end diff --git a/main.xml b/main.xml index 899728d03b..535fea8443 100644 --- a/main.xml +++ b/main.xml @@ -520,6 +520,7 @@