local ids_unit = Idstring("unit") function preload_all() for id, part in pairs(tweak_data.weapon.factory.parts) do if part.third_unit then local ids_unit_name = Idstring(part.third_unit) managers.dyn_resource:load(ids_unit, ids_unit_name, "packages/dyn_resources", false) else print(id, "didn't have third") end end end function preload_all_units() for id, part in pairs(tweak_data.weapon.factory) do if part.unit then local ids_unit_name = Idstring(part.unit) managers.dyn_resource:load(ids_unit, ids_unit_name, "packages/dyn_resources", false) else print(id, "didn't have unit") end end end function print_package_strings_unit() for id, part in pairs(tweak_data.weapon.factory) do if part.unit then print("") end end end function print_package_strings_part_unit() for id, part in pairs(tweak_data.weapon.factory.parts) do if part.unit then local f = SystemFS:open(id .. ".package", "w") f:puts("") f:puts("\t") f:puts("\t\t") f:puts("\t") f:puts("") SystemFS:close(f) end end end function preload_all_first() for id, part in pairs(tweak_data.weapon.factory.parts) do if part.unit then local ids_unit_name = Idstring(part.unit) managers.dyn_resource:load(ids_unit, ids_unit_name, "packages/dyn_resources", false) else print(id, "didn't have unit") end end end function print_package_strings() for id, part in pairs(tweak_data.weapon.factory.parts) do if part.third_unit then print("") end end end function print_parts_without_texture() Application:debug("print_parts_without_texture") for id, part in pairs(tweak_data.weapon.factory.parts) do if part.pcs then local guis_catalog = "guis/" local bundle_folder = part.texture_bundle_folder if bundle_folder then guis_catalog = guis_catalog .. "dlcs/" .. tostring(bundle_folder) .. "/" end guis_catalog = guis_catalog .. "textures/pd2/blackmarket/icons/mods/" if not DB:has(Idstring("texture"), guis_catalog .. id) then print(guis_catalog .. id) end end end Application:debug("---------------------------") end local is_win_32 = SystemInfo:platform() == Idstring("WIN32") local is_not_win_32 = not is_win_32 WeaponFactoryTweakData = WeaponFactoryTweakData or class() function WeaponFactoryTweakData:init() self.parts = {} self:_init_silencers() self:_init_nozzles() self:_init_gadgets() self:_init_vertical_grips() self:_init_sights() self:_init_tng() self:_init_content_jobs() self:_init_butchermodpack() self:_init_m4() self:_init_g18c() self:_init_amcar() self:_init_m16() self:_init_olympic() self:_init_ak_parts() self:_init_ak74() self:_init_akm() self:_init_akm_gold() self:_init_akmsu() self:_init_saiga() self:_init_ak5() self:_init_aug() self:_init_g36() self:_init_p90() self:_init_m14() self:_init_mp9() self:_init_deagle() self:_init_mp5() self:_init_colt_1911() self:_init_mac10() self:_init_r870() self:_init_g17() self:_init_b92fs() self:_init_huntsman() self:_init_raging_bull() self:_init_saw() self:_init_serbu() self:_init_usp() self:_init_g22c() self:_init_judge() self:_init_m45() self:_init_s552() self:_init_ppk() self:_init_content_dlc1() self:_init_content_dlc2() self:_init_content_dlc2_dec16() self:_init_mp7() self:_init_scar() self:_init_p226() self:_init_hk21() self:_init_m249() self:_init_rpk() self:_init_m95() self:_init_msr() self:_init_r93() self:_init_fal() self:_init_ben() self:_init_striker() self:_init_ksg() self:_init_gre_m79() self:_init_g3() self:_init_galil() self:_init_famas() self:_init_scorpion() self:_init_tec9() self:_init_uzi() self:_init_jowi() self:_init_x_1911() self:_init_x_b92fs() self:_init_x_deagle() self:_init_g26() self:_init_spas12() self:_init_mg42() self:_init_c96() self:_init_sterling() self:_init_mosin() self:_init_m1928() self:_init_l85a2() self:_init_hs2000() self:_init_vhs() self:_init_modpack_m4_ak() self:_init_m134() self:_init_rpg7() self:_init_cobray() self:_init_b682() self:_init_x_g22c() self:_init_x_g17() self:_init_x_usp() self:_init_flamethrower_mk2() self:_init_m32() self:_init_aa12() self:_init_peacemaker() self:_init_winchester1874() self:_init_plainsrider() self:_init_mateba() self:_init_asval() self:_init_sub2000() self:_init_wa2000() self:_init_polymer() self:_init_hunter() self:_init_baka() self:_init_arblast() self:_init_frankish() self:_init_long() self:_init_legendary() self:_init_par() self:_init_sparrow() self:_init_model70() self:_init_m37() self:_init_china() self:_init_sr2() self:_init_x_sr2() self:_init_pl14() self:_init_x_mp5() self:_init_x_akmsu() self:_init_tecci() self:_init_hajk() self:_init_boot() self:_init_packrat() self:_init_schakal() self:_init_desertfox() self:_init_x_packrat() self:_init_rota() self:_init_arbiter() self:_init_contraband() self:_init_ray() self:_init_tti() self:_init_siltstone() self:_init_flint() self:_init_coal() self:_init_varmods() self:_init_lemming() self:_init_chinchilla() self:_init_x_chinchilla() self:_init_shepheard() self:_init_x_shepheard() self:_init_breech() self:_init_ching() self:_init_erma() self:_init_ecp() self:_init_shrew() self:_init_x_shrew() self:_init_basset() self:_init_x_basset() self:_init_icc() self:_init_corgi() self:_init_slap() self:_init_x_coal() self:_init_x_baka() self:_init_x_cobray() self:_init_x_erma() self:_init_x_hajk() self:_init_x_m45() self:_init_x_m1928() self:_init_x_mac10() self:_init_x_mp7() self:_init_x_mp9() self:_init_x_olympic() self:_init_x_p90() self:_init_x_polymer() self:_init_x_schakal() self:_init_x_scorpion() self:_init_x_sterling() self:_init_x_tec9() self:_init_x_uzi() self:_init_x_2006m() self:_init_x_breech() self:_init_x_c96() self:_init_x_g18c() self:_init_x_hs2000() self:_init_x_p226() self:_init_x_pl14() self:_init_x_ppk() self:_init_x_rage() self:_init_x_sparrow() self:_init_x_judge() self:_init_x_rota() self:_init_shuno() self:_init_system() self:_init_komodo() self:_init_elastic() self:_init_legacy() self:_init_x_legacy() self:_init_coach() self:create_ammunition() self:_init_cc_material_config() self:_init_bipods() self:_init_content_unfinished() self:_set_inaccessibles() end function WeaponFactoryTweakData:_set_inaccessibles() for part_id, part_data in pairs(self.parts) do if not part_data.pcs and not part_data.pc then part_data.inaccessible = true end end end function WeaponFactoryTweakData:_init_silencers() self.parts.wpn_fps_upg_ns_ass_smg_large = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "barrel", name_id = "bm_wp_upg_ns_ass_smg_large", unit = "units/payday2/weapons/wpn_fps_upg_ns_ass_smg_large/wpn_fps_upg_ns_ass_smg_large", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = 2, damage = -1, suppression = 12, value = 5, recoil = 1, spread = 2, concealment = -3 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_upg_ns_ass_smg_medium = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "barrel", name_id = "bm_wp_upg_ns_ass_smg_medium", unit = "units/payday2/weapons/wpn_fps_upg_ns_ass_smg_medium/wpn_fps_upg_ns_ass_smg_medium", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -2, damage = -3, suppression = 12, value = 2, recoil = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_upg_ns_ass_smg_small = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "barrel", name_id = "bm_wp_upg_ns_ass_smg_small", unit = "units/payday2/weapons/wpn_fps_upg_ns_ass_smg_small/wpn_fps_upg_ns_ass_smg_small", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -1, damage = -5, suppression = 12, value = 3, recoil = 0, concealment = 0 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_upg_ns_pis_large = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "slide", name_id = "bm_wp_upg_ns_pis_large", unit = "units/payday2/weapons/wpn_fps_upg_ns_pis_large/wpn_fps_upg_ns_pis_large", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -2, damage = -1, suppression = 12, value = 5, recoil = 2, concealment = -3 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_upg_ns_pis_medium = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "slide", name_id = "bm_wp_upg_ns_pis_medium", unit = "units/payday2/weapons/wpn_fps_upg_ns_pis_medium/wpn_fps_upg_ns_pis_medium", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -2, damage = -2, suppression = 12, value = 1, recoil = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_upg_ns_pis_small = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "slide", name_id = "bm_wp_upg_ns_pis_small", unit = "units/payday2/weapons/wpn_fps_upg_ns_pis_small/wpn_fps_upg_ns_pis_small", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -1, damage = -4, suppression = 12, value = 3, recoil = 0, concealment = 0 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_upg_ns_shot_thick = { type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "barrel", name_id = "bm_wp_upg_ns_shot_thick", unit = "units/payday2/weapons/wpn_fps_upg_ns_shot_thick/wpn_fps_upg_ns_shot_thick", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -2, damage = -4, suppression = 12, value = 7, recoil = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_upg_ns_ass_smg_large.third_unit = "units/payday2/weapons/wpn_third_upg_ns_ass_smg_large/wpn_third_upg_ns_ass_smg_large" self.parts.wpn_fps_upg_ns_ass_smg_medium.third_unit = "units/payday2/weapons/wpn_third_upg_ns_ass_smg_medium/wpn_third_upg_ns_ass_smg_medium" self.parts.wpn_fps_upg_ns_ass_smg_small.third_unit = "units/payday2/weapons/wpn_third_upg_ns_ass_smg_small/wpn_third_upg_ns_ass_smg_small" self.parts.wpn_fps_upg_ns_pis_large.third_unit = "units/payday2/weapons/wpn_third_upg_ns_pis_large/wpn_third_upg_ns_pis_large" self.parts.wpn_fps_upg_ns_pis_medium.third_unit = "units/payday2/weapons/wpn_third_upg_ns_pis_medium/wpn_third_upg_ns_pis_medium" self.parts.wpn_fps_upg_ns_pis_small.third_unit = "units/payday2/weapons/wpn_third_upg_ns_pis_small/wpn_third_upg_ns_pis_small" self.parts.wpn_fps_upg_ns_shot_thick.third_unit = "units/payday2/weapons/wpn_third_upg_ns_shot_thick/wpn_third_upg_ns_shot_thick" end function WeaponFactoryTweakData:_init_nozzles() self.parts.wpn_fps_upg_ns_ass_smg_firepig = { parent = "barrel", unit = "units/payday2/weapons/wpn_fps_upg_ns_ass_smg_firepig/wpn_fps_upg_ns_ass_smg_firepig", type = "barrel_ext", name_id = "bm_wp_upg_ns_ass_smg_firepig", a_obj = "a_ns", pcs = { 10, 20, 30, 40 }, stats = { concealment = -2, damage = 3, suppression = -5, value = 5, recoil = 1 } } self.parts.wpn_fps_upg_ns_ass_smg_stubby = { parent = "barrel", unit = "units/payday2/weapons/wpn_fps_upg_ns_ass_smg_stubby/wpn_fps_upg_ns_ass_smg_stubby", type = "barrel_ext", name_id = "bm_wp_upg_ns_ass_smg_stubby", a_obj = "a_ns", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = 3, damage = 1, suppression = -1 } } self.parts.wpn_fps_upg_ns_ass_smg_tank = { parent = "barrel", unit = "units/payday2/weapons/wpn_fps_upg_ns_ass_smg_tank/wpn_fps_upg_ns_ass_smg_tank", type = "barrel_ext", name_id = "bm_wp_upg_ns_ass_smg_tank", a_obj = "a_ns", pcs = { 10, 20, 30, 40 }, stats = { concealment = -1, damage = 2, suppression = -2, value = 4, recoil = 2 } } self.parts.wpn_fps_upg_ns_shot_shark = { parent = "barrel", unit = "units/payday2/weapons/wpn_fps_upg_ns_shot_shark/wpn_fps_upg_ns_shot_shark", type = "barrel_ext", name_id = "bm_wp_upg_ns_shot_shark", a_obj = "a_ns", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, concealment = -2, damage = 2, suppression = -2, value = 5, recoil = 2 } } self.parts.wpn_fps_upg_ns_ass_smg_firepig.third_unit = "units/payday2/weapons/wpn_third_upg_ns_ass_smg_firepig/wpn_third_upg_ns_ass_smg_firepig" self.parts.wpn_fps_upg_ns_ass_smg_stubby.third_unit = "units/payday2/weapons/wpn_third_upg_ns_ass_smg_stubby/wpn_third_upg_ns_ass_smg_stubby" self.parts.wpn_fps_upg_ns_ass_smg_tank.third_unit = "units/payday2/weapons/wpn_third_upg_ns_ass_smg_tank/wpn_third_upg_ns_ass_smg_tank" self.parts.wpn_fps_upg_ns_shot_shark.third_unit = "units/payday2/weapons/wpn_third_upg_ns_shot_shark/wpn_third_upg_ns_shot_shark" end function WeaponFactoryTweakData:_init_gadgets() self.parts.wpn_fps_addon_ris = { a_obj = "a_fl", type = "extra", name_id = "bm_wp_upg_fl_pis_tlr1", unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_addon_ris", stats = { value = 1 }, third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_addon_ris" } self.parts.wpn_fps_upg_fl_ass_smg_sho_surefire = { sub_type = "flashlight", unit = "units/payday2/weapons/wpn_fps_upg_fl_ass_smg_sho_surefire/wpn_fps_upg_fl_ass_smg_sho_surefire", type = "gadget", name_id = "bm_wp_upg_fl_ass_smg_sho_surefire", a_obj = "a_fl", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = -1, concealment = -1 }, adds = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_upg_fl_ass_smg_sho_peqbox = { sub_type = "laser", unit = "units/payday2/weapons/wpn_fps_upg_fl_ass_smg_sho_peqbox/wpn_fps_upg_fl_ass_smg_sho_peqbox", type = "gadget", name_id = "bm_wp_upg_fl_ass_smg_sho_peqbox", a_obj = "a_fl", pcs = { 20, 30, 40 }, stats = { value = 5, spread_moving = -1, concealment = -1 }, adds = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_upg_fl_pis_laser = { sub_type = "laser", unit = "units/payday2/weapons/wpn_fps_upg_fl_pis_laser/wpn_fps_upg_fl_pis_laser", type = "gadget", name_id = "bm_wp_upg_fl_pis_laser", a_obj = "a_fl", pcs = { 20, 30, 40 }, stats = { value = 5, spread_moving = -1, concealment = -1 } } self.parts.wpn_fps_upg_fl_pis_tlr1 = { sub_type = "flashlight", unit = "units/payday2/weapons/wpn_fps_upg_fl_pis_tlr1/wpn_fps_upg_fl_pis_tlr1", type = "gadget", name_id = "bm_wp_upg_fl_pis_tlr1", a_obj = "a_fl", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = -1, concealment = -1 } } self.parts.wpn_fps_upg_fl_ass_smg_sho_surefire.third_unit = "units/payday2/weapons/wpn_third_upg_fl_ass_smg_sho_surefire/wpn_third_upg_fl_ass_smg_sho_surefire" self.parts.wpn_fps_upg_fl_ass_smg_sho_peqbox.third_unit = "units/payday2/weapons/wpn_third_upg_fl_ass_smg_sho_peqbox/wpn_third_upg_fl_ass_smg_sho_peqbox" self.parts.wpn_fps_upg_fl_pis_laser.third_unit = "units/payday2/weapons/wpn_third_upg_fl_pis_laser/wpn_third_upg_fl_pis_laser" self.parts.wpn_fps_upg_fl_pis_tlr1.third_unit = "units/payday2/weapons/wpn_third_upg_fl_pis_tlr1/wpn_third_upg_fl_pis_tlr1" end function WeaponFactoryTweakData:_init_vertical_grips() self.parts.wpn_fps_upg_vg_ass_smg_verticalgrip = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_upg_vg_ass_smg_verticalgrip", unit = "units/payday2/weapons/wpn_fps_upg_vg_ass_smg_verticalgrip/wpn_fps_upg_vg_ass_smg_verticalgrip", stats = { value = 1 } } self.parts.wpn_fps_upg_vg_ass_smg_stubby = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_upg_vg_ass_smg_stubby", unit = "units/payday2/weapons/wpn_fps_upg_vg_ass_smg_stubby/wpn_fps_upg_vg_ass_smg_stubby", stats = { value = 1 } } self.parts.wpn_fps_upg_vg_ass_smg_afg = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_upg_vg_ass_smg_afg", unit = "units/payday2/weapons/wpn_fps_upg_vg_ass_smg_afg/wpn_fps_upg_vg_ass_smg_afg", stats = { value = 1 } } self.parts.wpn_fps_upg_vg_ass_smg_verticalgrip.third_unit = "units/payday2/weapons/wpn_third_upg_vg_ass_smg_verticalgrip/wpn_third_upg_vg_ass_smg_verticalgrip" self.parts.wpn_fps_upg_vg_ass_smg_stubby.third_unit = "units/payday2/weapons/wpn_third_upg_vg_ass_smg_stubby/wpn_third_upg_vg_ass_smg_stubby" self.parts.wpn_fps_upg_vg_ass_smg_afg.third_unit = "units/payday2/weapons/wpn_third_upg_vg_ass_smg_afg/wpn_third_upg_vg_ass_smg_afg" self.parts.wpn_fps_upg_vg_ass_smg_verticalgrip_vanilla = deep_clone(self.parts.wpn_fps_upg_vg_ass_smg_verticalgrip) self.parts.wpn_fps_upg_vg_ass_smg_verticalgrip_vanilla.stats = nil self.parts.wpn_fps_upg_vg_ass_smg_verticalgrip_vanilla.pc = nil end function WeaponFactoryTweakData:_init_sights() self.parts.wpn_fps_upg_o_specter = { type = "sight", a_obj = "a_o", name_id = "bm_wp_upg_o_specter", unit = "units/payday2/weapons/wpn_fps_upg_o_specter/wpn_fps_upg_o_specter", pcs = { 30, 40 }, stats = { zoom = 4, recoil = 1, concealment = -3, value = 8, spread_moving = -3 }, perks = { "scope" }, stance_mod = { wpn_fps_ass_m4 = { translation = Vector3(0, 0, -0.58) }, wpn_fps_ass_amcar = { translation = Vector3(0, 0, -0.1) }, wpn_fps_ass_m16 = { translation = Vector3(0, 0, -0.12) }, wpn_fps_smg_olympic = { translation = Vector3(0, 0, -0.12) }, wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.1) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.2) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.2) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -3) }, wpn_fps_shot_r870 = { translation = Vector3(0.01, 0, -3.3) }, wpn_fps_shot_serbu = { translation = Vector3(0, 0, -3.3) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -3.35) }, wpn_fps_ass_ak5 = { translation = Vector3(0, 0, -3.5), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_aug = { translation = Vector3(0, 0, -2.8) }, wpn_fps_ass_g36 = { translation = Vector3(0, 0, -3) }, wpn_fps_smg_p90 = { translation = Vector3(0, 0, -2.97) }, wpn_fps_ass_m14 = { translation = Vector3(-0.04, 0, -3.87) }, wpn_fps_smg_mp9 = { translation = Vector3(0, 0, -3.47) }, wpn_fps_smg_mp5 = { translation = Vector3(0, 0, -3) }, wpn_fps_smg_mac10 = { translation = Vector3(0, -10, -3.1) }, wpn_fps_ass_s552 = { translation = Vector3(-0.08, 0, -2.1) }, wpn_fps_smg_m45 = { translation = Vector3(0, 0, -3.9) }, wpn_fps_smg_mp7 = { translation = Vector3(0, 0, -2.8) }, wpn_fps_ass_scar = { translation = Vector3(0, 0, -0.25) }, wpn_fps_pis_rage = { translation = Vector3(-0.05, -10, -4.65) }, wpn_fps_pis_deagle = { translation = Vector3(0, -15, -4.25), rotation = Rotation(0, -0.5, 0) }, wpn_fps_snp_m95 = { translation = Vector3(0, 4, -3.8) }, wpn_fps_snp_msr = { translation = Vector3(0, -7, -3.55) }, wpn_fps_snp_r93 = { translation = Vector3(-0.022, -7, -3.782) }, wpn_fps_ass_fal = { translation = Vector3(0, 4, -3.5) }, wpn_fps_sho_ben = { translation = Vector3(0, 0, -3.2) }, wpn_fps_sho_striker = { translation = Vector3(0, 0, -2.8) }, wpn_fps_sho_ksg = { translation = Vector3(0, 0, -1.3) }, wpn_fps_smg_scorpion = { translation = Vector3(0, -10, -5.2) }, wpn_fps_smg_tec9 = { translation = Vector3(0, -8, -5), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_uzi = { translation = Vector3(0, -8, -5.1) }, wpn_fps_pis_judge = { translation = Vector3(-0.02, -10, -5.406) }, wpn_fps_ass_g3 = { translation = Vector3(0.025, -8, -3.42) }, wpn_fps_ass_galil = { translation = Vector3(-0.01, -5, -3.25) }, wpn_fps_ass_famas = { translation = Vector3(0, 7, -6.2) }, wpn_fps_sho_spas12 = { translation = Vector3(-0.2, 0, -3.9) }, wpn_fps_smg_sterling = { translation = Vector3(0, -14, -3.61) }, wpn_fps_snp_mosin = { translation = Vector3(0, -28, -4.3) }, wpn_fps_smg_thompson = { translation = Vector3(0, -24, -4.2) }, wpn_fps_ass_l85a2 = { translation = Vector3(0, 2, 1.85) }, wpn_fps_ass_vhs = { translation = Vector3(-0.01, -3, -1.205) }, wpn_fps_rpg7 = { translation = Vector3(0, 5, 0.04), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_aa12 = { translation = Vector3(-0.01, 0, 0.07), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_m32 = { translation = Vector3(0, 5, -3.5), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_polymer = { translation = Vector3(0, 2, -0.65), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_wa2000 = { translation = Vector3(0, -10, 0.75), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_model70 = { translation = Vector3(0, -10, -4.05), rotation = Rotation(0, 0, 0) }, wpn_fps_shot_m37 = { translation = Vector3(0, -10, -4.05), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_sr2 = { translation = Vector3(0, 5, -4.6), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_tecci = { translation = Vector3(-0.01, 5, -1.7), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_hajk = { translation = Vector3(0, 5, -0.5), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_desertfox = { translation = Vector3(0, -12, -3.9), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_schakal = { translation = Vector3(0, 0, -2.8), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_rota = { translation = Vector3(0, 0, -0.4), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_arbiter = { translation = Vector3(0, 0, -0.4), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_contraband = { translation = Vector3(-0.01, 5, -1.7), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_tti = { translation = Vector3(0, 5, -0.1), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_siltstone = { translation = Vector3(0, 5, -4.04), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_flint = { translation = Vector3(0, 5, -2.65), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_coal = { translation = Vector3(0, 5, -4), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_shepheard = { translation = Vector3(0, 5, -0.45), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_ching = { translation = Vector3(0, 5, -2.77), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_erma = { translation = Vector3(0, 5, -3.85), rotation = Rotation(0, 0, 0) }, wpn_fps_bow_ecp = { translation = Vector3(0, 5, -3.35), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_basset = { translation = Vector3(0, 5, -0.68), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_corgi = { translation = Vector3(0, 0, -2.3), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_slap = { translation = Vector3(0, 0, -1.9), rotation = Rotation(0, 0, 0) }, wpn_fps_bow_elastic = { translation = Vector3(0, 0, -1.5), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_komodo = { translation = Vector3(0, 3, 0.1), rotation = Rotation(0, 0, 0) } }, forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "sight", "screen" } }, material_parameters = { gfx_reddot = { { id = Idstring("holo_reticle_scale"), value = Vector3(0.2, 1.5, 40), condition = function () return not _G.IS_VR end }, { id = Idstring("holo_reticle_scale"), value = Vector3(0.2, 1, 20), condition = function () return _G.IS_VR end } } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_glass = false, g_vr_phong = true, g_gfx_specter = false, g_screen = true, g_vr_lens = true, g_gfx = false } } }, camera = { a_camera = "a_camera", material = "screen", fov = 13, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_o_aimpoint = { type = "sight", a_obj = "a_o", name_id = "bm_wp_upg_o_aimpoint", unit = "units/payday2/weapons/wpn_fps_upg_o_aimpoint/wpn_fps_upg_o_aimpoint", pcs = { 30, 40 }, stats = { zoom = 4, recoil = 1, concealment = -3, value = 8, spread_moving = -3 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { material = "sight", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_aimpoint_2 = { type = "sight", dlc = "preorder", a_obj = "a_o", name_id = "bm_wp_upg_o_aimpoint", unit = "units/payday2/weapons/wpn_fps_upg_o_aimpoint/wpn_fps_upg_o_aimpoint_preorder", pcs = { 10, 20, 30, 40 }, stats = { zoom = 4, recoil = 1, concealment = -3, value = 1, spread_moving = -3 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { material = "sight", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_docter = { type = "sight", a_obj = "a_o", name_id = "bm_wp_upg_o_docter", unit = "units/payday2/weapons/wpn_fps_upg_o_docter/wpn_fps_upg_o_docter", pcs = { 20, 30, 40 }, stats = { zoom = 2, recoil = 1, concealment = -1, value = 5, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "sight", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_eotech = { type = "sight", a_obj = "a_o", name_id = "bm_wp_upg_o_eotech", unit = "units/payday2/weapons/wpn_fps_upg_o_eotech/wpn_fps_upg_o_eotech", pcs = { 10, 20, 30, 40 }, stats = { zoom = 3, recoil = 1, concealment = -2, value = 3, spread_moving = -2 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_t1micro = { type = "sight", a_obj = "a_o", name_id = "bm_wp_upg_o_t1micro", unit = "units/payday2/weapons/wpn_fps_upg_o_t1micro/wpn_fps_upg_o_t1micro", pcs = { 10, 20, 30, 40 }, stats = { zoom = 3, recoil = 1, concealment = -1, value = 3, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "sight", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_upg_o_marksmansight_rear = { type = "sight", a_obj = "a_o", name_id = "bm_wp_upg_o_marksmansight_rear", unit = "units/payday2/weapons/wpn_fps_upg_o_marksmansight/wpn_upg_o_marksmansight_rear", pcs = { 10, 20, 30, 40 }, stats = { zoom = 1, recoil = 1, value = 5, spread = 1 }, perks = { "scope" }, adds = { "wpn_upg_o_marksmansight_front" }, stance_mod = { wpn_fps_pis_beretta = { translation = Vector3(0, 0, -0.25), rotation = Rotation(0, -0.1, 0) } }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_upg_o_marksmansight_front = { name_id = "bm_wp_upg_o_marksmansight_front", unit = "units/payday2/weapons/wpn_fps_upg_o_marksmansight/wpn_upg_o_marksmansight_front", a_obj = "a_o", type = "extra" } self.parts.wpn_fps_upg_o_dd_rear = { a_obj = "a_o_r", type = "sight", name_id = "bm_wp_upg_o_dd_rear", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_upg_o_dd/wpn_fps_upg_o_dd_rear", stats = { value = 1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), adds = { "wpn_fps_upg_o_dd_front" }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_upg_o_dd_front = { name_id = "bm_wp_upg_o_dd_front", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_upg_o_dd/wpn_fps_upg_o_dd_front", a_obj = "a_o_f", type = "extra" } self.parts.wpn_fps_upg_o_specter.third_unit = "units/payday2/weapons/wpn_third_upg_o_specter/wpn_third_upg_o_specter" self.parts.wpn_fps_upg_o_docter.third_unit = "units/payday2/weapons/wpn_third_upg_o_docter/wpn_third_upg_o_docter" self.parts.wpn_fps_upg_o_aimpoint.third_unit = "units/payday2/weapons/wpn_third_upg_o_aimpoint/wpn_third_upg_o_aimpoint" self.parts.wpn_fps_upg_o_aimpoint_2.third_unit = "units/payday2/weapons/wpn_third_upg_o_aimpoint/wpn_third_upg_o_aimpoint_preorder" self.parts.wpn_fps_upg_o_eotech.third_unit = "units/payday2/weapons/wpn_third_upg_o_eotech/wpn_third_upg_o_eotech" self.parts.wpn_fps_upg_o_t1micro.third_unit = "units/payday2/weapons/wpn_third_upg_o_t1micro/wpn_third_upg_o_t1micro" self.parts.wpn_upg_o_marksmansight_rear.third_unit = "units/payday2/weapons/wpn_third_upg_o_marksmansight/wpn_third_upg_o_marksmansight_rear" self.parts.wpn_upg_o_marksmansight_front.third_unit = "units/payday2/weapons/wpn_third_upg_o_marksmansight/wpn_third_upg_o_marksmansight_front" self.parts.wpn_fps_upg_o_dd_rear.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_upg_o_dd/wpn_third_upg_o_dd_rear" self.parts.wpn_fps_upg_o_dd_front.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_upg_o_dd/wpn_third_upg_o_dd_front" self.parts.wpn_upg_o_marksmansight_rear_vanilla = deep_clone(self.parts.wpn_upg_o_marksmansight_rear) self.parts.wpn_upg_o_marksmansight_rear_vanilla.stats = nil self.parts.wpn_upg_o_marksmansight_rear_vanilla.pcs = nil self.parts.wpn_upg_o_marksmansight_rear_vanilla.perks = nil self.parts.wpn_upg_o_marksmansight_front_vanilla = deep_clone(self.parts.wpn_upg_o_marksmansight_front) self.parts.wpn_upg_o_marksmansight_front_vanilla.stats = nil self.parts.wpn_upg_o_marksmansight_front_vanilla.pc = nil self.parts.wpn_upg_o_marksmansight_front_vanilla.perks = nil self.parts.wpn_fps_extra_zoom = { sub_type = "flashlight", type = "extra", a_obj = "a_o", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_extra_zoom/wpn_fps_extra_zoom", stats = { value = 1, zoom = 8 }, perks = { "gadget" } } self.parts.wpn_fps_upg_o_45iron = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", dlc = "gage_pack_snp", a_obj = "a_o", type = "gadget", sub_type = "second_sight", name_id = "bm_wpn_fps_upg_o_45iron", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_upg_o_45iron/wpn_fps_upg_o_45iron", pcs = {}, stats = { value = 1, gadget_zoom = 1 }, perks = { "gadget" }, stance_mod = { wpn_fps_snp_m95 = { translation = Vector3(-0.5, 5.8, -14.5), rotation = Rotation(-0.4, 0, -45) }, wpn_fps_snp_msr = { translation = Vector3(-2.4, 8, -11.8), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_r93 = { translation = Vector3(-2.495, 7.8, -13.8), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_mosin = { translation = Vector3(-2.44, -5, -12.4), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_wa2000 = { translation = Vector3(-2.4, 0, -9), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_model70 = { translation = Vector3(-2.75, -4, -11.82), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_desertfox = { translation = Vector3(-3.4, -4, -11.4), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_tti = { translation = Vector3(-3.01, 1, -9.1), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_siltstone = { translation = Vector3(-1.87, 5, -12.6), rotation = Rotation(0, 0, -45) } } } self.parts.wpn_fps_upg_o_shortdot = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", dlc = "gage_pack_snp", a_obj = "a_o", reticle_obj = "g_reddot", type = "sight", name_id = "bm_wp_upg_o_specter", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_upg_o_shortdot/wpn_fps_upg_o_shortdot", stats = { value = 1, zoom = 6 }, perks = { "scope" }, stance_mod = { wpn_fps_snp_m95 = { translation = Vector3(-0.013, -22, -4.595) }, wpn_fps_snp_msr = { translation = Vector3(0, -32, -4.3) }, wpn_fps_snp_r93 = { translation = Vector3(0, -28, -4.52) }, wpn_fps_snp_mosin = { translation = Vector3(-0.01, -51, -5.04) }, wpn_fps_snp_wa2000 = { translation = Vector3(0, -28, 0) }, wpn_fps_snp_model70 = { translation = Vector3(0, -30, -4.79) }, wpn_fps_snp_desertfox = { translation = Vector3(0, -38.5, -4.7) }, wpn_fps_snp_tti = { translation = Vector3(0, -21, -0.86) }, wpn_fps_snp_siltstone = { translation = Vector3(0, -17, -4.78) } }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot1", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_gfx_lens = false, g_gfx_lens_2 = false, g_gfx_lens_3 = false, g_reddot = false, g_screen = true, g_vr_phong = true, g_reticle = false } } }, camera = { a_camera = "a_camera", material = "screen", fov = 9, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_o_leupold = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", dlc = "gage_pack_snp", a_obj = "a_o", type = "sight", reticle_obj = "g_reddot", name_id = "bm_wp_upg_o_leupold", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_upg_o_leupold/wpn_fps_upg_o_leupold", pcs = {}, stats = { zoom = 10, recoil = 1, concealment = -3, value = 8, spread_moving = -3 }, perks = { "scope", "highlight" }, stance_mod = { wpn_fps_snp_m95 = { translation = Vector3(0, -23, -4.68) }, wpn_fps_snp_msr = { translation = Vector3(0, -34, -4.3951) }, wpn_fps_snp_r93 = { translation = Vector3(-0.002, -30, -4.622) }, wpn_fps_snp_mosin = { translation = Vector3(-0.005, -53, -5.14) }, wpn_fps_snp_wa2000 = { translation = Vector3(0, -27, -0.1) }, wpn_fps_snp_model70 = { translation = Vector3(0, -27, -4.89) }, wpn_fps_snp_desertfox = { translation = Vector3(0, -40, -4.8) }, wpn_fps_snp_tti = { translation = Vector3(0, -23, -0.955) }, wpn_fps_snp_siltstone = { translation = Vector3(0, -19, -4.872) } }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot1", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_gfx_lens = false, g_gfx_lens_2 = false, g_gfx_lens_3 = false, g_reddot = false, g_screen = true, g_vr_phong = true, g_reticle = false } } }, camera = { a_camera = "a_camera", material = "screen", fov = 7, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_o_45iron.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_upg_o_45iron/wpn_third_upg_o_45iron" self.parts.wpn_fps_upg_o_shortdot.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_upg_o_shortdot/wpn_third_upg_o_shortdot" self.parts.wpn_fps_upg_o_leupold.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_upg_o_leupold/wpn_third_upg_o_leupold" self.parts.wpn_fps_upg_o_shortdot_vanilla = deep_clone(self.parts.wpn_fps_upg_o_shortdot) self.parts.wpn_fps_upg_o_shortdot_vanilla.stats = { zoom = 6 } self.parts.wpn_fps_upg_o_shortdot_vanilla.dlc = nil self.parts.wpn_fps_upg_o_shortdot_vanilla.pcs = nil end function WeaponFactoryTweakData:_init_content_dlc1() self.parts.wpn_fps_upg_o_cmore = { type = "sight", texture_bundle_folder = "dlc1", dlc = "armored_transport", a_obj = "a_o", name_id = "bm_wp_upg_o_cmore", unit = "units/pd2_dlc1/weapons/wpn_fps_upg_o_cmore/wpn_fps_upg_o_cmore", pcs = { 10, 20, 30, 40 }, stats = { zoom = 3, recoil = 1, concealment = -1, value = 5, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters), third_unit = "units/pd2_dlc1/weapons/wpn_third_upg_o_cmore/wpn_third_upg_o_cmore" } end function WeaponFactoryTweakData:_init_content_dlc2() self.parts.wpn_fps_upg_i_singlefire = { type = "custom", internal_part = true, a_obj = "a_body", dlc = "gage_pack", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", sub_type = "singlefire", name_id = "bm_wp_upg_i_singlefire", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = -2, value = 5 }, perks = { "fire_mode_single" } } self.parts.wpn_fps_upg_i_autofire = { type = "custom", internal_part = true, a_obj = "a_body", dlc = "gage_pack", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", sub_type = "autofire", name_id = "bm_wp_upg_i_autofire", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 8, spread_moving = 2, damage = 1, spread = -1, recoil = 2 }, perks = { "fire_mode_auto" } } self.parts.wpn_fps_upg_m4_g_hgrip = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "grip", name_id = "bm_wp_upg_m4_g_hgrip", a_obj = "a_g", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_upg_m4_g_hgrip/wpn_fps_upg_m4_g_hgrip", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 2, recoil = 1, spread = 1 }, third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_upg_m4_g_hgrip/wpn_third_upg_m4_g_hgrip" } self.parts.wpn_fps_upg_m4_g_mgrip = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "grip", name_id = "bm_wp_upg_m4_g_mgrip", a_obj = "a_g", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_upg_m4_g_mgrip/wpn_fps_upg_m4_g_mgrip", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 2, concealment = 2 }, third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_upg_m4_g_mgrip/wpn_third_upg_m4_g_mgrip" } self.parts.wpn_fps_upg_m4_g_hgrip_vanilla = deep_clone(self.parts.wpn_fps_upg_m4_g_hgrip) self.parts.wpn_fps_upg_m4_g_hgrip_vanilla.stats = nil self.parts.wpn_fps_upg_m4_g_hgrip_vanilla.pcs = nil end function WeaponFactoryTweakData:_init_content_dlc2_dec16() self.parts.wpn_fps_upg_o_acog = { type = "sight", reticle_obj = "g_reddot", a_obj = "a_o", name_id = "bm_wp_upg_o_acog", unit = "units/pd2_dlc2/weapons/wpn_fps_upg_o_acog/wpn_fps_upg_o_acog", pcs = { 10, 20, 30, 40 }, stats = { zoom = 5, recoil = 1, concealment = -3, value = 6, spread_moving = -1 }, perks = { "scope" }, stance_mod = { wpn_fps_ass_m4 = { translation = Vector3(0, 0, -0.58) }, wpn_fps_ass_amcar = { translation = Vector3(0, 0, -0.1) }, wpn_fps_ass_m16 = { translation = Vector3(0, 0, -0.12) }, wpn_fps_smg_olympic = { translation = Vector3(0, 0, -0.12) }, wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.1) }, wpn_fps_ass_akm = { translation = Vector3(-0.02, -16, -3.15) }, wpn_fps_ass_akm_gold = { translation = Vector3(-0.02, -16, -3.15) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -3) }, wpn_fps_shot_r870 = { translation = Vector3(0.015, 0, -3.25) }, wpn_fps_shot_serbu = { translation = Vector3(0, 0, -3.25) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -3.3) }, wpn_fps_ass_ak5 = { translation = Vector3(0, 0, -3.5) }, wpn_fps_ass_aug = { translation = Vector3(0, 0, -2.8) }, wpn_fps_ass_g36 = { translation = Vector3(0, 0, -3) }, wpn_fps_smg_p90 = { translation = Vector3(0, 0, -2.97) }, wpn_fps_ass_m14 = { translation = Vector3(-0.02, -15, -3.85) }, wpn_fps_smg_mp9 = { translation = Vector3(0, 0, -3.47) }, wpn_fps_smg_mp5 = { translation = Vector3(0, 0, -3) }, wpn_fps_smg_mac10 = { translation = Vector3(0, -10, -3.1) }, wpn_fps_ass_s552 = { translation = Vector3(-0.08, 0, -2.1) }, wpn_fps_smg_m45 = { translation = Vector3(0, -10, -3.9) }, wpn_fps_smg_mp7 = { translation = Vector3(0, 0, -2.8) }, wpn_fps_ass_scar = { translation = Vector3(0, 0, -0.25) }, wpn_fps_lmg_hk21 = { translation = Vector3(0, 0, -3.2) }, wpn_fps_lmg_m249 = { translation = Vector3(0, 0, -3.2) }, wpn_fps_pis_rage = { translation = Vector3(-0.05, -15, -4.65) }, wpn_fps_pis_deagle = { translation = Vector3(0, -18, -4.2), rotation = Rotation(0, -0.5, 0) }, wpn_fps_snp_m95 = { translation = Vector3(0, -1, -3.8) }, wpn_fps_snp_msr = { translation = Vector3(0, -7, -3.52) }, wpn_fps_snp_r93 = { translation = Vector3(-0.01, -7, -3.755) }, wpn_fps_ass_fal = { translation = Vector3(0, 7, -3.5) }, wpn_fps_sho_ben = { translation = Vector3(0, 0, -3.2) }, wpn_fps_sho_striker = { translation = Vector3(0, 5, -2.8) }, wpn_fps_sho_ksg = { translation = Vector3(0, 0, -1.3) }, wpn_fps_smg_scorpion = { translation = Vector3(0, -8, -5.2) }, wpn_fps_smg_tec9 = { translation = Vector3(0, 0, -4.9) }, wpn_fps_smg_uzi = { translation = Vector3(0, 0, -5.1) }, wpn_fps_pis_judge = { translation = Vector3(0, -10, -5.4) }, wpn_fps_ass_g3 = { translation = Vector3(0.02, -8, -3.4) }, wpn_fps_ass_galil = { translation = Vector3(0, -2, -3.2) }, wpn_fps_ass_famas = { translation = Vector3(-0.01, -5, -6.25) }, wpn_fps_sho_spas12 = { translation = Vector3(-0.2, 5, -3.9) }, wpn_fps_smg_sterling = { translation = Vector3(0, -14, -3.6) }, wpn_fps_snp_mosin = { translation = Vector3(0, -28, -4.3) }, wpn_fps_smg_thompson = { translation = Vector3(0, -24, -4.2) }, wpn_fps_ass_l85a2 = { translation = Vector3(-0.01, 8, 1.885) }, wpn_fps_ass_vhs = { translation = Vector3(-0.005, -1, -1.18) }, wpn_fps_gre_m32 = { translation = Vector3(0, 5, -3.45), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_aa12 = { translation = Vector3(-0.01, 0, 0.1), rotation = Rotation(0, 0, 0) }, wpn_fps_rpg7 = { translation = Vector3(0, 5, 0.03), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_polymer = { translation = Vector3(0, 2, -0.65), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_wa2000 = { translation = Vector3(0, -5, 0.75), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_model70 = { translation = Vector3(0, -10, -4.05), rotation = Rotation(0, 0, 0) }, wpn_fps_shot_m37 = { translation = Vector3(0, -10, -4.05), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_sr2 = { translation = Vector3(0, 12, -4.6), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_tecci = { translation = Vector3(-0.01, 10, -1.68), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_hajk = { translation = Vector3(0, 8, -0.5), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_desertfox = { translation = Vector3(0, -15, -3.9), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_schakal = { translation = Vector3(0, 0, -2.8), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_rota = { translation = Vector3(0, 0, -0.42), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_arbiter = { translation = Vector3(0, 0, -0.4), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_contraband = { translation = Vector3(-0.01, 0, -1.68), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_tti = { translation = Vector3(0, 1, -0.1), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_siltstone = { translation = Vector3(0, 5, -4), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_flint = { translation = Vector3(0, 5, -2.6), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_coal = { translation = Vector3(0, 15, -4), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_shepheard = { translation = Vector3(0, 5, -0.45), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_ching = { translation = Vector3(0, 5, -2.77), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_erma = { translation = Vector3(0, 5, -3.85), rotation = Rotation(0, 0, 0) }, wpn_fps_bow_ecp = { translation = Vector3(0, 1, -3.35), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_basset = { translation = Vector3(0, 5, -0.68), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_corgi = { translation = Vector3(0, 0, -2.3), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_slap = { translation = Vector3(0, 0, -1.9), rotation = Rotation(0, 0, 0) }, wpn_fps_bow_elastic = { translation = Vector3(0, 10, -1.5), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_komodo = { translation = Vector3(0, 5, 0.1), rotation = Rotation(0, 0, 0) } }, forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_reticle = false, g_screen = true, g_reddot = false, g_vr_acog = true, g_vr_phong = true } } }, camera = { a_camera = "a_camera", material = "screen", fov = 13, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" }, third_unit = "units/pd2_dlc2/weapons/wpn_fps_upg_o_acog/wpn_third_upg_o_acog" } end function WeaponFactoryTweakData:_init_content_jobs() self.parts.wpn_fps_pis_rage_o_adapter = { a_obj = "a_o", texture_bundle_folder = "gage_pack_jobs", type = "extra", name_id = "bm_wp_pis_rage_o_adapter", unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_o_adapter" } self.parts.wpn_fps_pis_rage_extra = { name_id = "bm_wp_pis_rage_extra", texture_bundle_folder = "gage_pack_jobs", type = "extra", a_obj = "a_o", dlc = "gage_pack_jobs", internal_part = true, unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_pis_rage_extra/wpn_fps_pis_rage_extra", pcs = {}, stats = { value = 2 }, override = { wpn_fps_pis_rage_body_smooth = { adds = {} }, wpn_fps_pis_rage_body_standard = { adds = {} } } } self.parts.wpn_fps_pis_rage_lock = { texture_bundle_folder = "gage_pack_jobs", a_obj = "a_o", type = "extra", name_id = "bm_wp_pis_rage_extra", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_pis_rage_extra/wpn_fps_pis_rage_extra", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_pis_deagle_extra = { name_id = "bm_wp_pis_deagle_extra", texture_bundle_folder = "gage_pack_jobs", type = "extra", a_obj = "a_quite", dlc = "gage_pack_jobs", internal_part = true, unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_pis_deagle_extra/wpn_fps_pis_deagle_extra", pcs = {}, stats = { value = 2 }, override = { wpn_fps_pis_deagle_body_standard = { adds = {} }, wpn_fps_pis_rage_o_adapter = { a_obj = "a_quite" } } } self.parts.wpn_fps_pis_deagle_lock = { texture_bundle_folder = "gage_pack_jobs", a_obj = "a_quite", type = "extra", name_id = "bm_wp_pis_rage_extra", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_pis_rage_extra/wpn_fps_pis_rage_extra", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_pis_rage_o_adapter.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_o_adapter" self.parts.wpn_fps_m4_upg_b_sd_smr = { texture_bundle_folder = "gage_pack_jobs", parent = "barrel", type = "barrel", name_id = "bm_wp_m4_upg_b_sd_smr", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fg_smr/wpn_fps_m4_upg_b_sd_smr", a_obj = "a_b", stats = { value = 1 } } self.parts.wpn_fps_upg_fg_jp = { texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", type = "foregrip", name_id = "bm_wp_upg_fg_jp", a_obj = "a_fg", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fg_jp/wpn_fps_upg_fg_jp", pcs = {}, stats = { concealment = 2, value = 5, damage = 1, recoil = -3, spread = 2, spread_moving = 2 } } self.parts.wpn_fps_upg_fg_smr = { type = "foregrip", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_fg", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_fg_smr", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fg_smr/wpn_fps_upg_fg_smr", pcs = {}, stats = { concealment = -2, value = 5, damage = 2, recoil = 1, spread = -1, spread_moving = -2 }, override = { wpn_fps_m4_uupg_b_sd = { third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fg_smr/wpn_third_m4_upg_b_sd_smr", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fg_smr/wpn_fps_m4_upg_b_sd_smr" } } } self.parts.wpn_fps_upg_m4_m_quad = { type = "magazine", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_m", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_m4_m_quad", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_m4_m_quad/wpn_fps_upg_m4_m_quad", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 15, value = 3, recoil = 1, spread = -1, concealment = -3, spread_moving = -2 } } self.parts.wpn_fps_m4_upg_b_sd_smr.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fg_smr/wpn_third_m4_upg_b_sd_smr" self.parts.wpn_fps_upg_fg_jp.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fg_jp/wpn_third_upg_fg_jp" self.parts.wpn_fps_upg_fg_smr.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fg_smr/wpn_third_upg_fg_smr" self.parts.wpn_fps_upg_m4_m_quad.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_m4_m_quad/wpn_third_upg_m4_m_quad" self.parts.wpn_fps_upg_ak_fg_tapco = { texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", type = "foregrip", name_id = "bm_wp_upg_ak_fg_tapco", a_obj = "a_fg", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ak_fg_tapco/wpn_fps_upg_ak_fg_tapco", pcs = {}, stats = { value = 5, spread_moving = 1, concealment = 3, spread = 1 } } self.parts.wpn_fps_upg_fg_midwest = { type = "foregrip", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_fg", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_fg_midwest", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fg_midwest/wpn_fps_upg_fg_midwest", pcs = {}, stats = { spread_moving = -1, value = 5, spread = 1, concealment = -2, recoil = 3 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_upg_ak_b_draco = { type = "barrel", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_b", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ak_b_draco", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ak_b_draco/wpn_fps_upg_ak_b_draco", pcs = {}, stats = { value = 2, spread = -2, damage = 2, concealment = 1, spread_moving = 2 }, override = { wpn_upg_ak_fg_combo3 = { unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_combo3_slavic" } } } self.parts.wpn_fps_upg_ak_m_quad = { type = "magazine", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_m", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ak_m_quad", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ak_m_quad/wpn_fps_upg_ak_m_quad", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 15, value = 3, recoil = 1, spread = -1, concealment = -3, spread_moving = -2 } } self.parts.wpn_fps_upg_ak_g_hgrip = { type = "grip", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_g", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ak_g_hgrip", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ak_g_hgrip/wpn_fps_upg_ak_g_hgrip", pcs = {}, stats = { value = 2, spread_moving = 2, recoil = 2, concealment = 2 }, forbids = { "wpn_upg_ak_g_standard" } } self.parts.wpn_fps_upg_ak_g_pgrip = { type = "grip", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_g", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ak_g_pgrip", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ak_g_pgrip/wpn_fps_upg_ak_g_pgrip", pcs = {}, stats = { value = 2, spread_moving = -2, recoil = -2, spread = 2 }, forbids = { "wpn_upg_ak_g_standard" } } self.parts.wpn_fps_upg_ak_g_wgrip = { type = "grip", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_g", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ak_g_wgrip", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ak_g_wgrip/wpn_fps_upg_ak_g_wgrip", pcs = {}, stats = { value = 2, spread_moving = 1, recoil = 3, concealment = -1 }, forbids = { "wpn_upg_ak_g_standard" } } self.parts.wpn_fps_upg_ak_fg_tapco.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ak_fg_tapco/wpn_third_upg_ak_fg_tapco" self.parts.wpn_fps_upg_fg_midwest.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fg_midwest/wpn_third_upg_fg_midwest" self.parts.wpn_fps_upg_ak_b_draco.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ak_b_draco/wpn_third_upg_ak_b_draco" self.parts.wpn_fps_upg_ak_m_quad.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ak_m_quad/wpn_third_upg_ak_m_quad" self.parts.wpn_fps_upg_ak_g_pgrip.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ak_g_pgrip/wpn_third_upg_ak_g_pgrip" self.parts.wpn_fps_upg_ak_g_wgrip.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ak_g_wgrip/wpn_third_upg_ak_g_wgrip" self.parts.wpn_fps_upg_ak_g_hgrip.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ak_g_hgrip/wpn_third_upg_ak_g_hgrip" self.parts.wpn_fps_upg_ass_ns_jprifles = { type = "barrel_ext", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_ns", parent = "barrel", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ass_ns_jprifles", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_barrel_extentions/wpn_fps_upg_ass_ns_jprifles", pcs = {}, stats = { spread = 1, concealment = -2, damage = 2, suppression = -1, value = 5, recoil = 3 } } self.parts.wpn_fps_upg_ass_ns_linear = { type = "barrel_ext", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_ns", parent = "barrel", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ass_ns_linear", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_barrel_extentions/wpn_fps_upg_ass_ns_linear", pcs = {}, stats = { value = 5, concealment = -2, damage = 4, suppression = -5, spread = -2 } } self.parts.wpn_fps_upg_ass_ns_surefire = { type = "barrel_ext", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_ns", parent = "barrel", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_ass_ns_surefire", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_barrel_extentions/wpn_fps_upg_ass_ns_surefire", pcs = {}, stats = { spread = 3, concealment = -2, damage = 1, suppression = 0, value = 5, recoil = -1 } } self.parts.wpn_fps_upg_pis_ns_flash = { type = "barrel_ext", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_co", parent = "slide", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_pis_ns_flash", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_barrel_extentions/wpn_fps_upg_pis_ns_flash", pcs = {}, stats = { spread = -1, concealment = 0, damage = 2, suppression = 0, value = 4, recoil = 3 } } self.parts.wpn_fps_upg_shot_ns_king = { type = "barrel_ext", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_ns", parent = "barrel", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_shot_ns_king", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_barrel_extentions/wpn_fps_upg_shot_ns_king", pcs = {}, stats = { value = 5, concealment = -2, damage = 1, suppression = -5, spread = 3 } } self.parts.wpn_fps_upg_ass_ns_jprifles.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_barrel_extentions/wpn_third_upg_ass_ns_jprifles" self.parts.wpn_fps_upg_ass_ns_linear.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_barrel_extentions/wpn_third_upg_ass_ns_linear" self.parts.wpn_fps_upg_ass_ns_surefire.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_barrel_extentions/wpn_third_upg_ass_ns_surefire" self.parts.wpn_fps_upg_pis_ns_flash.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_barrel_extentions/wpn_third_upg_pis_ns_flash" self.parts.wpn_fps_upg_shot_ns_king.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_barrel_extentions/wpn_third_upg_shot_ns_king" self.parts.wpn_fps_upg_ns_pis_medium_slim = { sub_type = "silencer", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_ns", type = "barrel_ext", dlc = "gage_pack_jobs", parent = "slide", name_id = "bm_wp_upg_ns_pis_medium_slim", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_ns_pis_medium_slim/wpn_fps_upg_ns_pis_medium_slim", pcs = {}, stats = { alert_size = 12, value = 1, spread_moving = 2, suppression = 12, spread = -2, recoil = -1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" }, third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_ns_pis_medium_slim/wpn_third_upg_ns_pis_medium_slim" } self.parts.wpn_fps_upg_fl_ass_peq15 = { type = "gadget", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_fl", sub_type = "laser", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_fl_ass_peq15", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fl_ass_peq15/wpn_fps_upg_fl_ass_peq15", pcs = {}, stats = { value = 5, spread_moving = -1, concealment = -2, recoil = 1 }, perks = { "gadget" }, adds = { "wpn_fps_addon_ris", "wpn_fps_upg_fl_ass_peq15_flashlight" } } self.parts.wpn_fps_upg_fl_ass_peq15_flashlight = { parent = "gadget", type = "extra", sub_type = "flashlight", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fl_ass_peq15/wpn_fps_upg_fl_ass_peq15_flashlight", a_obj = "a_fl", stats = { value = 1 }, perks = { "gadget" } } self.parts.wpn_fps_upg_fl_ass_laser = { type = "gadget", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_fl", sub_type = "laser", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_fl_ass_laser", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fl_ass_laser/wpn_fps_upg_fl_ass_laser", pcs = {}, stats = { value = 2, spread_moving = 1, concealment = 0 }, perks = { "gadget" }, adds = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_upg_fl_ass_peq15.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fl_ass_peq15/wpn_third_upg_fl_ass_peq15" self.parts.wpn_fps_upg_fl_ass_laser.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_fl_ass_laser/wpn_third_upg_fl_ass_laser" self.parts.wpn_fps_upg_m4_s_crane = { type = "stock", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_s", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_m4_s_crane", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_m4_s_crane/wpn_fps_upg_m4_s_crane", pcs = {}, stats = { value = 2, recoil = 1, concealment = 1, spread_moving = 1 }, adds_type = { "stock_adapter" }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_upg_m4_s_mk46 = { type = "stock", texture_bundle_folder = "gage_pack_jobs", a_obj = "a_s", dlc = "gage_pack_jobs", name_id = "bm_wp_upg_m4_s_mk46", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_m4_s_mk46/wpn_fps_upg_m4_s_mk46", pcs = {}, stats = { recoil = -1, value = 6, spread = 2, concealment = -3, spread_moving = -3 }, adds_type = { "stock_adapter" }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_upg_m4_s_crane.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_m4_s_crane/wpn_third_upg_m4_s_crane" self.parts.wpn_fps_upg_m4_s_mk46.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_m4_s_mk46/wpn_third_upg_m4_s_mk46" self.parts.wpn_fps_upg_o_rmr = { type = "sight", texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", a_obj = "a_rds", parent = "body", name_id = "bm_wp_upg_o_rmr", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_o_rmr/wpn_fps_upg_o_rmr", pcs = {}, stats = { zoom = 3, spread = 1, concealment = -1, value = 6, spread_moving = -1 }, perks = { "scope" }, stance_mod = { wpn_fps_pis_1911 = { translation = Vector3(0, 0, -0.45) }, wpn_fps_pis_beretta = { translation = Vector3(0, 0, -0.4), rotation = Rotation(0, -0.5, 0) }, wpn_fps_pis_deagle = { translation = Vector3(0, 0, -0.48), rotation = Rotation(0, -0.5, 0) }, wpn_fps_pis_g17 = { translation = Vector3(0, 0, -0.85) }, wpn_fps_pis_g18c = { translation = Vector3(0, 0, -0.45) }, wpn_fps_pis_usp = { translation = Vector3(-0.015, 0, -0.34) }, wpn_fps_pis_ppk = { translation = Vector3(0, 0, -1) }, wpn_fps_pis_p226 = { translation = Vector3(0, 0, -0.6) }, wpn_fps_pis_g22c = { translation = Vector3(0, 0, -0.45), rotation = Rotation(0, -0.3, 0) }, wpn_fps_pis_g26 = { translation = Vector3(-0.01, 0, -0.35) }, wpn_fps_pis_c96 = { translation = Vector3(0, 0, -1.2) }, wpn_fps_pis_hs2000 = { translation = Vector3(0, 0, -0.75) }, wpn_fps_bow_hunter = { translation = Vector3(0, 8, 0.8) }, wpn_fps_pis_sparrow = { translation = Vector3(0, 0, -0.93) }, wpn_fps_pis_pl14 = { translation = Vector3(0, 0, -0.85) }, wpn_fps_pis_packrat = { translation = Vector3(0, 0, -1.15) }, wpn_fps_pis_lemming = { translation = Vector3(0, 5, -0.75) }, wpn_fps_pis_chinchilla = { translation = Vector3(0, 5, -0.75) }, wpn_fps_pis_breech = { translation = Vector3(0, 5, -0.65) }, wpn_fps_pis_shrew = { translation = Vector3(0, 5, -0.48) }, wpn_fps_pis_legacy = { translation = Vector3(0, 5, -0.68) } }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_eotech_xps = { type = "sight", texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", a_obj = "a_o", name_id = "bm_wp_upg_o_eotech_xps", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_o_eotech_xps/wpn_fps_upg_o_eotech_xps", pcs = {}, stats = { zoom = 3, recoil = 1, concealment = -2, value = 5, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_reflex = { type = "sight", texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", a_obj = "a_o", name_id = "bm_wp_upg_o_reflex", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_o_reflex/wpn_fps_upg_o_reflex", pcs = {}, stats = { zoom = 3, recoil = 1, concealment = -1, value = 5, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_rx01 = { type = "sight", texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", a_obj = "a_o", name_id = "bm_wp_upg_o_rx01", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_o_rx01/wpn_fps_upg_o_rx01", pcs = {}, stats = { zoom = 4, recoil = 1, concealment = -1, value = 5, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_rx30 = { type = "sight", texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", a_obj = "a_o", name_id = "bm_wp_upg_o_rx30", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_o_rx30/wpn_fps_upg_o_rx30", pcs = {}, stats = { zoom = 4, recoil = 1, concealment = -2, value = 5, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up" }, texture_switch = { material = "gfx_reddot", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_cs = { type = "sight", texture_bundle_folder = "gage_pack_jobs", dlc = "gage_pack_jobs", a_obj = "a_o", reticle_obj = "g_reddot", name_id = "bm_wp_upg_o_cs", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_o_cs/wpn_fps_upg_o_cs", pcs = {}, stats = { zoom = 3, recoil = 1, concealment = -1, value = 3, spread_moving = -1 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_screen = true, g_vr_gfx_lens = true, g_reddot = false } } }, camera = { a_camera = "a_camera", material = "screen", fov = 13, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_o_rmr.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_o_rmr/wpn_third_upg_o_rmr" self.parts.wpn_fps_upg_o_eotech_xps.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_o_eotech_xps/wpn_third_upg_o_eotech_xps" self.parts.wpn_fps_upg_o_reflex.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_o_reflex/wpn_third_upg_o_reflex" self.parts.wpn_fps_upg_o_rx01.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_o_rx01/wpn_third_upg_o_rx01" self.parts.wpn_fps_upg_o_rx30.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_o_rx30/wpn_third_upg_o_rx30" self.parts.wpn_fps_upg_o_cs.third_unit = "units/pd2_dlc_gage_jobs/weapons/wpn_third_upg_o_cs/wpn_third_upg_o_cs" end function WeaponFactoryTweakData:_init_content_unfinished() local unfinished_content = {} for i, id in ipairs(unfinished_content) do local part = self.parts[id] if part then part.pc = nil part.pcs = nil part.texture_bundle_folder = "unfinished" part.unit = string.gsub(part.unit, "payday2", "pd2_backlog") part.third_unit = string.gsub(part.third_unit, "payday2", "pd2_backlog") end end for id, data in pairs(self) do if data.uses_parts then for i = #data.uses_parts, 1, -1 do if table.contains(unfinished_content, data.uses_parts[i]) then table.remove(data.uses_parts, i) end end end end end function WeaponFactoryTweakData:_cleanup_unfinished_content() end function WeaponFactoryTweakData:_cleanup_unfinished_parts() for id, data in pairs(self) do if id ~= "parts" and data.uses_parts then for i = #data.uses_parts, 1, -1 do if not self.parts[data.uses_parts[i]] then Application:error("[WeaponFactoryTweakData:_cleanup_unfinished_parts] Uses Parts: Removing part that do not exists!", data.uses_parts[i]) table.remove(data.uses_parts, i) end end end if data.default_blueprint then for i = #data.default_blueprint, 1, -1 do if not self.parts[data.default_blueprint[i]] then Application:error("[WeaponFactoryTweakData:_cleanup_unfinished_parts] Default Blueprint: Removing part that do not exists!", data.default_blueprint[i]) table.remove(data.default_blueprint, i) end end end if data.adds then for part_id, part_data in pairs(data.adds) do for i = #part_data, 1, -1 do if not self.parts[part_data[i]] then Application:error("[WeaponFactoryTweakData:_cleanup_unfinished_parts] Adds: Removing part that do not exists!", part_data[i]) table.remove(part_data, i) end end end end end for id, data in pairs(self.parts) do if data.adds then for i = #data.adds, 1, -1 do if not self.parts[data.adds[i]] then Application:error("[WeaponFactoryTweakData:_cleanup_unfinished_parts] Part Adds: Removing part that do not exists!", data.adds[i]) table.remove(data.adds, i) end end end end end function WeaponFactoryTweakData:_init_m4() self.parts.wpn_fps_m4_lower_reciever = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_m4_lower_reciever", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_lower_reciever", stats = { value = 1 } } self.parts.wpn_fps_m4_upper_reciever_edge = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_m4_upper_reciever_edge", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_upper_reciever_edge", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = 1, damage = 1 }, animations = {}, override = { wpn_fps_amcar_bolt_standard = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_bolt_edge" } } } self.parts.wpn_fps_m4_upper_reciever_round = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_m4_upper_reciever_round", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_upper_reciever_round", stats = { value = 1 }, override = { wpn_fps_amcar_bolt_standard = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_bolt_round" } } } self.parts.wpn_fps_m4_uupg_b_long = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_b_long", a_obj = "a_b", type = "barrel", name_id = "bm_wp_m4_uupg_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 4, concealment = -2, damage = 2, spread = 1, spread_moving = -3 } } self.parts.wpn_fps_m4_uupg_b_short = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_b_short", a_obj = "a_b", type = "barrel", name_id = "bm_wp_m4_uupg_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, spread_moving = 2, value = 5, concealment = 2 } } self.parts.wpn_fps_m4_uupg_b_medium = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_b_medium", a_obj = "a_b", type = "barrel", name_id = "bm_wp_m4_uupg_b_medium", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -1 } } self.parts.wpn_fps_m4_uupg_b_sd = { type = "barrel", a_obj = "a_b", sub_type = "silencer", name_id = "bm_wp_m4_uupg_b_sd", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_b_sd", pcs = { 20, 30, 40 }, stats = { alert_size = 12, value = 6, damage = -2, suppression = 12, spread = -1, recoil = 1, spread_moving = 1, concealment = 1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, forbids = { "wpn_fps_m4_uupg_fg_rail_ext", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" } } self.parts.wpn_fps_m4_uupg_fg_lr300 = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_fg_lr300", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m4_uupg_fg_lr300", pcs = { 10, 20, 30, 40 }, stats = { value = 5, spread_moving = 1, concealment = 1, recoil = 1 } } self.parts.wpn_fps_m4_uupg_fg_rail = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m4_uupg_fg_rail", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_fg_rail", stats = { value = 1 }, adds = { "wpn_fps_m4_uupg_fg_rail_ext" }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_m4_uupg_m_std = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_m_std", type = "magazine", name_id = "bm_wp_m4_uupg_m_std", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { extra_ammo = 4, value = 1, concealment = -1 } } self.parts.wpn_fps_m4_uupg_s_fold = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_s_fold", a_obj = "a_s", type = "stock", name_id = "bm_wp_m4_uupg_s_fold", pcs = { 10, 20, 30, 40 }, stats = { value = 5, recoil = -1, concealment = 3, spread_moving = 2 } } self.parts.wpn_fps_m4_uupg_o_flipup = { a_obj = "a_o", type = "sight", name_id = "bm_wp_m4_uupg_o_flipup", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_o_flipup", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_m4_uupg_draghandle = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_m4_uupg_draghandle", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_draghandle", stats = { value = 1 } } self.parts.wpn_fps_m4_uupg_fg_rail_ext = { a_obj = "a_fg", type = "foregrip_ext", name_id = "bm_wp_m4_uupg_fg_rail_ext", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_fg_rail_ext", stats = { value = 1 } } self.parts.wpn_fps_upg_m4_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_m4_g_standard", unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_g_standard", stats = { value = 1 } } self.parts.wpn_fps_upg_m4_g_ergo = { unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_g_ergo", a_obj = "a_g", type = "grip", name_id = "bm_wp_m4_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 2, recoil = 1 } } self.parts.wpn_fps_upg_m4_g_sniper = { unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_g_sniper", a_obj = "a_g", type = "grip", name_id = "bm_wp_m4_g_sniper", pcs = { 10, 20, 30, 40 }, stats = { recoil = 1, spread = 1, concealment = -1, value = 6, spread_moving = -2 } } self.parts.wpn_fps_upg_m4_m_drum = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m4_m_drum", unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_m_drum", stats = { extra_ammo = 20, value = 9, concealment = -5 } } self.parts.wpn_fps_upg_m4_m_pmag = { unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_m_pmag", type = "magazine", name_id = "bm_wp_m4_m_pmag", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 28, prefix = "g_bullet_" }, stats = { value = 3, spread_moving = 1, concealment = 0, extra_ammo = 2 } } self.parts.wpn_fps_upg_m4_m_straight = { unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_m_straight", type = "magazine", name_id = "bm_wp_m4_m_straight", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 2, spread_moving = 2, concealment = 1, extra_ammo = -4 } } self.parts.wpn_fps_upg_m4_s_standard = { unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_s_standard", a_obj = "a_s", type = "stock", name_id = "bm_wp_m4_s_standard", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread_moving = -1, concealment = -1, recoil = 1 }, adds_type = { "stock_adapter" }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_upg_m4_s_pts = { unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_s_pts", a_obj = "a_s", type = "stock", name_id = "bm_wp_m4_s_pts", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = 1, spread = 0, concealment = -1, value = 3, recoil = 1 }, adds_type = { "stock_adapter" }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_upg_m4_s_adapter = { a_obj = "a_s", type = "stock_adapter", name_id = "bm_wp_m4_s_adapter", unit = "units/payday2/weapons/wpn_fps_upg_m4_reusable/wpn_fps_upg_m4_s_adapter", stats = { value = 1 } } self.parts.wpn_fps_m4_lower_reciever.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_lower_reciever" self.parts.wpn_fps_m4_upper_reciever_edge.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_upper_reciever_edge" self.parts.wpn_fps_m4_upper_reciever_round.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_upper_reciever_round" self.parts.wpn_fps_m4_uupg_b_long.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_b_long" self.parts.wpn_fps_m4_uupg_b_short.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_b_short" self.parts.wpn_fps_m4_uupg_b_medium.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_b_medium" self.parts.wpn_fps_m4_uupg_b_sd.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_b_sd" self.parts.wpn_fps_m4_uupg_draghandle.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_draghandle" self.parts.wpn_fps_m4_uupg_fg_lr300.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_fg_lr300" self.parts.wpn_fps_m4_uupg_fg_rail.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_fg_rail" self.parts.wpn_fps_m4_uupg_fg_rail_ext.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_fg_rail_ext" self.parts.wpn_fps_m4_uupg_m_std.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_m_std" self.parts.wpn_fps_m4_uupg_o_flipup.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_o_flipup" self.parts.wpn_fps_m4_uupg_s_fold.third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_s_fold" self.parts.wpn_fps_upg_m4_g_ergo.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_g_ergo" self.parts.wpn_fps_upg_m4_g_sniper.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_g_sniper" self.parts.wpn_fps_upg_m4_g_standard.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_g_standard" self.parts.wpn_fps_upg_m4_m_drum.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_m_drum" self.parts.wpn_fps_upg_m4_m_pmag.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_m_pmag" self.parts.wpn_fps_upg_m4_m_straight.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_m_straight" self.parts.wpn_fps_upg_m4_s_adapter.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_s_adapter" self.parts.wpn_fps_upg_m4_s_pts.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_s_pts" self.parts.wpn_fps_upg_m4_s_standard.third_unit = "units/payday2/weapons/wpn_third_upg_m4_reusable/wpn_third_upg_m4_s_standard" self.parts.wpn_fps_m4_upper_reciever_round_vanilla = deep_clone(self.parts.wpn_fps_m4_upper_reciever_round) self.parts.wpn_fps_m4_upper_reciever_round_vanilla.stats = nil self.parts.wpn_fps_m4_upper_reciever_round_vanilla.pcs = nil self.parts.wpn_fps_m4_uupg_draghandle_vanilla = deep_clone(self.parts.wpn_fps_m4_uupg_draghandle) self.parts.wpn_fps_m4_uupg_draghandle_vanilla.stats = nil self.parts.wpn_fps_m4_uupg_draghandle_vanilla.pcs = nil self.parts.wpn_fps_m4_uupg_m_std_vanilla = deep_clone(self.parts.wpn_fps_m4_uupg_m_std) self.parts.wpn_fps_m4_uupg_m_std_vanilla.stats = nil self.parts.wpn_fps_m4_uupg_m_std_vanilla.pcs = nil self.parts.wpn_fps_upg_m4_m_straight_vanilla = deep_clone(self.parts.wpn_fps_upg_m4_m_straight) self.parts.wpn_fps_upg_m4_m_straight_vanilla.stats = nil self.parts.wpn_fps_upg_m4_m_straight_vanilla.pcs = nil self.parts.wpn_fps_upg_m4_s_standard_vanilla = deep_clone(self.parts.wpn_fps_upg_m4_s_standard) self.parts.wpn_fps_upg_m4_s_standard_vanilla.stats = nil self.parts.wpn_fps_upg_m4_s_standard_vanilla.pcs = nil self.parts.wpn_fps_upg_m4_g_standard_vanilla = deep_clone(self.parts.wpn_fps_upg_m4_g_standard) self.parts.wpn_fps_upg_m4_g_standard_vanilla.stats = nil self.parts.wpn_fps_upg_m4_g_standard_vanilla.pc = nil self.parts.wpn_fps_m4_uupg_b_medium_vanilla = deep_clone(self.parts.wpn_fps_m4_uupg_b_medium) self.parts.wpn_fps_m4_uupg_b_medium_vanilla.stats = nil self.parts.wpn_fps_m4_uupg_b_medium_vanilla.pcs = nil self.parts.wpn_fps_m4_uupg_b_short_vanilla = deep_clone(self.parts.wpn_fps_m4_uupg_b_short) self.parts.wpn_fps_m4_uupg_b_short_vanilla.stats = nil self.parts.wpn_fps_m4_uupg_b_short_vanilla.pcs = nil self.wpn_fps_ass_m4 = { optional_types = { "barrel_ext", "gadget", "vertical_grip" }, unit = "units/payday2/weapons/wpn_fps_ass_m4/wpn_fps_ass_m4", stock_adapter = "wpn_fps_upg_m4_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_m4_lower_reciever", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m4_uupg_b_medium_vanilla", "wpn_fps_m4_uupg_fg_rail", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_m4_uupg_draghandle", "wpn_fps_m4_uupg_o_flipup", "wpn_fps_amcar_bolt_standard" }, override = { wpn_fps_upg_ass_m4_b_beowulf = { a_obj = "a_b_beowulf" } }, uses_parts = { "wpn_fps_m4_lower_reciever", "wpn_fps_m4_upper_reciever_edge", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m4_uupg_b_long", "wpn_fps_m4_uupg_b_medium_vanilla", "wpn_fps_m4_uupg_b_short", "wpn_fps_m4_uupg_b_sd", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_m4_uupg_fg_rail", "wpn_fps_m4_uupg_fg_lr300", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight", "wpn_fps_m4_uupg_s_fold", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_m4_uupg_draghandle", "wpn_fps_m4_uupg_o_flipup", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fg_jp", "wpn_fps_upg_fg_smr", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_ass_m4_upper_reciever_ballos", "wpn_fps_upg_ass_m4_upper_reciever_core", "wpn_fps_upg_ass_m4_lower_reciever_core", "wpn_fps_m4_uupg_draghandle_ballos", "wpn_fps_m4_uupg_draghandle_core", "wpn_fps_upg_ass_m4_b_beowulf", "wpn_fps_upg_ass_m4_fg_moe", "wpn_fps_upg_ass_m4_fg_lvoa", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_amcar_bolt_standard", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_m4_npc = deep_clone(self.wpn_fps_ass_m4) self.wpn_fps_ass_m4_npc.unit = "units/payday2/weapons/wpn_fps_ass_m4/wpn_fps_ass_m4_npc" self.wpn_fps_ass_m4_secondary = deep_clone(self.wpn_fps_ass_m4) self.wpn_fps_ass_m4_secondary.unit = "units/payday2/weapons/wpn_fps_ass_m4/wpn_fps_ass_m4_secondary" self.wpn_fps_ass_m4_secondary_npc = deep_clone(self.wpn_fps_ass_m4_npc) self.wpn_fps_ass_m4_secondary_npc.unit = "units/payday2/weapons/wpn_fps_ass_m4/wpn_fps_ass_m4_secondary_npc" end function WeaponFactoryTweakData:_init_g18c() self.parts.wpn_fps_pis_g18c_body_frame = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_g18c_body_frame", unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_body_frame", stats = { value = 1 } } self.parts.wpn_fps_pis_g18c_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_g18c_b_standard", unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_b_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_g18c_co_1 = { parent = "slide", unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_co_1", type = "barrel_ext", name_id = "bm_wp_g18c_co_1", a_obj = "a_co", pcs = { 30, 40 }, stats = { concealment = -1, damage = 1, suppression = -5, value = 4, recoil = -1 } } self.parts.wpn_fps_pis_g18c_co_comp_2 = { parent = "slide", unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_co_comp_2", type = "barrel_ext", name_id = "bm_wp_g18c_co_comp_2", a_obj = "a_co", pcs = { 30, 40 }, stats = { concealment = -1, damage = 1, suppression = -1, value = 5, recoil = 4 } } self.parts.wpn_fps_pis_g18c_m_mag_33rnd = { unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_m_mag_33rnd", a_obj = "a_m", type = "magazine", name_id = "bm_wp_g18c_m_mag_33rnd", pcs = { 30, 40 }, stats = { value = 6, spread_moving = -3, extra_ammo = 6, concealment = -2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_g18c_m_mag_17rnd = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_g18c_m_mag_17rnd", unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_m_mag_17rnd", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_g18c_s_stock = { unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_s_stock", a_obj = "a_s", type = "stock", name_id = "bm_wp_g18c_s_stock", pcs = { 30, 40 }, stats = { value = 8, recoil = 2, concealment = -2 } } self.parts.wpn_fps_pis_g18c_g_ergo = { unit = "units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_g_ergo", a_obj = "a_g", type = "grip", name_id = "bm_wp_g18c_g_ergo", pcs = { 30, 40 }, stats = { value = 4, recoil = 2, spread_moving = 1 } } self.parts.wpn_fps_pis_g18c_body_frame.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_body_standard" self.parts.wpn_fps_pis_g18c_b_standard.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_b_standard" self.parts.wpn_fps_pis_g18c_co_comp_2.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_co_2" self.parts.wpn_fps_pis_g18c_co_1.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_co_1" self.parts.wpn_fps_pis_g18c_m_mag_33rnd.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_m_mag_33rnd" self.parts.wpn_fps_pis_g18c_m_mag_17rnd.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_m_mag_17rnd" self.parts.wpn_fps_pis_g18c_s_stock.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_s_stock" self.parts.wpn_fps_pis_g18c_g_ergo.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_g_ergo" self.wpn_fps_pis_g18c = { unit = "units/payday2/weapons/wpn_fps_pis_g18c/wpn_fps_pis_g18c", optional_types = { "barrel_ext", "gadget", "stock", "grip" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_pis_g26_g_gripforce = { a_obj = "a_g_2" }, wpn_fps_pis_g26_g_laser = { a_obj = "a_g_2" } }, default_blueprint = { "wpn_fps_pis_g18c_body_frame", "wpn_fps_pis_g18c_b_standard", "wpn_fps_pis_g18c_m_mag_17rnd" }, uses_parts = { "wpn_fps_pis_g18c_body_frame", "wpn_fps_pis_g18c_b_standard", "wpn_fps_pis_g18c_co_1", "wpn_fps_pis_g18c_co_comp_2", "wpn_fps_pis_g18c_m_mag_33rnd", "wpn_fps_pis_g18c_m_mag_17rnd", "wpn_fps_pis_g18c_s_stock", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_pis_g18c_g_ergo", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_g18c_npc = deep_clone(self.wpn_fps_pis_g18c) self.wpn_fps_pis_g18c_npc.unit = "units/payday2/weapons/wpn_fps_pis_g18c/wpn_fps_pis_g18c_npc" self.wpn_fps_pis_g18c_primary = deep_clone(self.wpn_fps_pis_g18c) self.wpn_fps_pis_g18c_primary.unit = "units/payday2/weapons/wpn_fps_pis_g18c/wpn_fps_pis_g18c_primary" self.wpn_fps_pis_g18c_primary_npc = deep_clone(self.wpn_fps_pis_g18c_npc) self.wpn_fps_pis_g18c_primary_npc.unit = "units/payday2/weapons/wpn_fps_pis_g18c/wpn_fps_pis_g18c_primary_npc" end function WeaponFactoryTweakData:_init_amcar() self.parts.wpn_fps_amcar_uupg_body_upperreciever = { a_obj = "a_body", type = "sight", name_id = "bm_wp_g18c_m_mag_17rnd", unit = "units/payday2/weapons/wpn_fps_ass_amcar_pts/wpn_fps_amcar_uupg_body_upperreciever", animations = { fire = "recoil", reload = "reload", magazine_empty = "last_recoil" }, adds = { "wpn_fps_ass_m16_os_frontsight" }, forbids = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_amcar_uupg_fg_amcar = { a_obj = "a_fg", unit = "units/payday2/weapons/wpn_fps_ass_amcar_pts/wpn_fps_amcar_uupg_fg_amcar", type = "foregrip" } self.parts.wpn_fps_amcar_bolt_standard = { a_obj = "a_bolt", unit = "units/payday2/weapons/wpn_fps_ass_amcar_pts/wpn_fps_amcar_bolt_standard", type = "bolt" } self.parts.wpn_fps_amcar_uupg_body_upperreciever.third_unit = "units/payday2/weapons/wpn_third_ass_amcar_pts/wpn_third_amcar_uupg_body_upperreciever" self.parts.wpn_fps_amcar_uupg_fg_amcar.third_unit = "units/payday2/weapons/wpn_third_ass_amcar_pts/wpn_third_amcar_uupg_fg_amcar" self.parts.wpn_fps_amcar_bolt_standard.third_unit = "units/payday2/weapons/wpn_third_ass_amcar_pts/wpn_third_amcar_bolt_standard" self.wpn_fps_ass_amcar = { unit = "units/payday2/weapons/wpn_fps_ass_amcar/wpn_fps_ass_amcar", stock_adapter = "wpn_fps_upg_m4_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, override = { wpn_fps_m4_uupg_b_medium_vanilla = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_para_b_medium" } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_docter = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_eotech = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_t1micro = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_cmore = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_reflex = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_rx01 = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_rx30 = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_acog = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_cs = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" }, wpn_fps_upg_o_spot = { "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_m4_uupg_draghandle_vanilla", "wpn_fps_m4_uupg_fg_rail_ext" } }, default_blueprint = { "wpn_fps_m4_uupg_b_medium_vanilla", "wpn_fps_m4_lower_reciever", "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_amcar_uupg_fg_amcar", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_amcar_bolt_standard" }, uses_parts = { "wpn_fps_m4_uupg_b_medium_vanilla", "wpn_fps_m4_lower_reciever", "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_m4_upper_reciever_round_vanilla", "wpn_fps_amcar_uupg_fg_amcar", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_m4_uupg_m_std", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_m_quad", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_amcar_bolt_standard", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_amcar_npc = deep_clone(self.wpn_fps_ass_amcar) self.wpn_fps_ass_amcar_npc.unit = "units/payday2/weapons/wpn_fps_ass_amcar/wpn_fps_ass_amcar_npc" end function WeaponFactoryTweakData:_init_m16() self.parts.wpn_fps_m16_fg_railed = { unit = "units/payday2/weapons/wpn_fps_ass_m16_pts/wpn_fps_m16_fg_railed", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m16_fg_railed", pcs = { 10, 20, 30, 40 }, stats = { value = 7, spread_moving = -2, recoil = 2, concealment = -2 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_m16_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m16_fg_standard", unit = "units/payday2/weapons/wpn_fps_ass_m16_pts/wpn_fps_m16_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_m16_fg_vietnam = { unit = "units/payday2/weapons/wpn_fps_ass_m16_pts/wpn_fps_m16_fg_vietnam", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m16_fg_vietnam", pcs = { 10, 20, 30, 40 }, stats = { value = 10, spread_moving = 1, recoil = 1, concealment = 2 } } self.parts.wpn_fps_m16_s_solid = { a_obj = "a_s", type = "stock", name_id = "bm_wp_m16_s_solid", unit = "units/payday2/weapons/wpn_fps_ass_m16_pts/wpn_fps_m16_s_solid", stats = { value = 1 } } self.parts.wpn_fps_ass_m16_o_handle_sight = { a_obj = "a_o", type = "sight", name_id = "bm_wp_m16_o_handle_sight", unit = "units/payday2/weapons/wpn_fps_ass_m16_pts/wpn_fps_ass_m16_o_handle_sight", stats = { value = 1 }, adds = { "wpn_fps_ass_m16_os_frontsight" }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_m16_os_frontsight = { a_obj = "a_os", type = "sight_special", name_id = "bm_wp_m16_os_frontsight", unit = "units/payday2/weapons/wpn_fps_ass_m16_pts/wpn_fps_ass_m16_os_frontsight", stats = { value = 1 } } self.parts.wpn_fps_m16_fg_railed.third_unit = "units/payday2/weapons/wpn_third_ass_m16_pts/wpn_third_m16_fg_railed" self.parts.wpn_fps_m16_fg_standard.third_unit = "units/payday2/weapons/wpn_third_ass_m16_pts/wpn_third_m16_fg_standard" self.parts.wpn_fps_m16_fg_vietnam.third_unit = "units/payday2/weapons/wpn_third_ass_m16_pts/wpn_third_m16_fg_vietnam" self.parts.wpn_fps_m16_s_solid.third_unit = "units/payday2/weapons/wpn_third_ass_m16_pts/wpn_third_m16_s_solid" self.parts.wpn_fps_ass_m16_o_handle_sight.third_unit = "units/payday2/weapons/wpn_third_ass_m16_pts/wpn_third_ass_m16_o_handle_sight" self.parts.wpn_fps_ass_m16_os_frontsight.third_unit = "units/payday2/weapons/wpn_third_ass_m16_pts/wpn_third_ass_m16_os_frontsight" self.parts.wpn_fps_m16_s_solid_vanilla = deep_clone(self.parts.wpn_fps_m16_s_solid) self.parts.wpn_fps_m16_s_solid_vanilla.stats = nil self.parts.wpn_fps_m16_s_solid_vanilla.pc = nil self.wpn_fps_ass_m16 = { unit = "units/payday2/weapons/wpn_fps_ass_m16/wpn_fps_ass_m16", stock_adapter = "wpn_fps_upg_m4_s_adapter", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_ass_m4_b_beowulf = { stats = { spread = 4, total_ammo_mod = -4, damage = 66, concealment = -4, value = 1, recoil = -4 }, custom_stats = { ammo_pickup_max_mul = 0.5, ammo_pickup_min_mul = 0.5 } } }, default_blueprint = { "wpn_fps_m4_lower_reciever", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m4_uupg_draghandle", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_m16_fg_standard", "wpn_fps_m4_uupg_b_medium_vanilla", "wpn_fps_ass_m16_o_handle_sight", "wpn_fps_m16_s_solid_vanilla", "wpn_fps_amcar_bolt_standard" }, uses_parts = { "wpn_fps_m16_fg_railed", "wpn_fps_m16_fg_standard", "wpn_fps_m16_fg_vietnam", "wpn_fps_m4_lower_reciever", "wpn_fps_m4_upper_reciever_edge", "wpn_fps_m4_uupg_draghandle", "wpn_fps_m4_uupg_b_long", "wpn_fps_m4_uupg_b_medium_vanilla", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m16_s_solid_vanilla", "wpn_fps_m4_uupg_m_std", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_ass_m16_o_handle_sight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_ass_m4_upper_reciever_ballos", "wpn_fps_upg_ass_m4_upper_reciever_core", "wpn_fps_upg_ass_m4_lower_reciever_core", "wpn_fps_m4_uupg_draghandle_ballos", "wpn_fps_m4_uupg_draghandle_core", "wpn_fps_upg_ass_m4_b_beowulf", "wpn_fps_upg_ass_m16_fg_stag", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_amcar_bolt_standard", "wpn_fps_ass_m16_b_legend", "wpn_fps_ass_m16_fg_legend", "wpn_fps_ass_m16_s_legend", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_m16_npc = deep_clone(self.wpn_fps_ass_m16) self.wpn_fps_ass_m16_npc.unit = "units/payday2/weapons/wpn_fps_ass_m16/wpn_fps_ass_m16_npc" end function WeaponFactoryTweakData:_init_olympic() self.parts.wpn_fps_smg_olympic_fg_railed = { unit = "units/payday2/weapons/wpn_fps_smg_olympic_pts/wpn_fps_smg_olympic_fg_railed", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_olympic_fg_railed", pcs = { 20, 30, 40 }, stats = { value = 4, spread_moving = -1, recoil = 1, concealment = -1 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_smg_olympic_fg_olympic = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_olympic_fg_olympic", unit = "units/payday2/weapons/wpn_fps_smg_olympic_pts/wpn_fps_smg_olympic_fg_olympic", stats = { value = 1 } } self.parts.wpn_fps_smg_olympic_s_short = { unit = "units/payday2/weapons/wpn_fps_smg_olympic_pts/wpn_fps_smg_olympic_s_short", a_obj = "a_s", type = "stock", name_id = "bm_wp_olympic_s_short", pcs = { 20, 30, 40 }, stats = { value = 5, recoil = -1, spread_moving = 3, concealment = 2 } } self.parts.wpn_fps_smg_olympic_s_adjust = { a_obj = "a_s", type = "stock", name_id = "bm_wp_olympic_s_adjust", unit = "units/payday2/weapons/wpn_fps_smg_olympic_pts/wpn_fps_smg_olympic_s_adjust", stats = { value = 1 } } self.parts.wpn_fps_smg_olympic_fg_railed.third_unit = "units/payday2/weapons/wpn_third_smg_olympic_pts/wpn_third_smg_olympic_fg_railed" self.parts.wpn_fps_smg_olympic_fg_olympic.third_unit = "units/payday2/weapons/wpn_third_smg_olympic_pts/wpn_third_smg_olympic_fg_olympic" self.parts.wpn_fps_smg_olympic_s_short.third_unit = "units/payday2/weapons/wpn_third_smg_olympic_pts/wpn_third_smg_olympic_s_short" self.parts.wpn_fps_smg_olympic_s_adjust.third_unit = "units/payday2/weapons/wpn_third_smg_olympic_pts/wpn_third_smg_olympic_s_adjust" self.parts.wpn_fps_smg_olympic_s_short_vanilla = deep_clone(self.parts.wpn_fps_smg_olympic_s_short) self.parts.wpn_fps_smg_olympic_s_short_vanilla.stats = nil self.parts.wpn_fps_smg_olympic_s_short_vanilla.pcs = nil self.wpn_fps_smg_olympic = { unit = "units/payday2/weapons/wpn_fps_smg_olympic/wpn_fps_smg_olympic", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, stock_adapter = "wpn_fps_upg_m4_s_adapter", override = { wpn_fps_m4_uupg_b_short_vanilla = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_para_b_short" }, wpn_fps_m4_uupg_b_medium = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_para_b_medium" } }, default_blueprint = { "wpn_fps_smg_olympic_s_adjust", "wpn_fps_m4_uupg_draghandle", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_m4_uupg_b_short_vanilla", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m4_lower_reciever", "wpn_fps_smg_olympic_fg_olympic", "wpn_fps_ass_m16_o_handle_sight", "wpn_fps_amcar_bolt_standard" }, uses_parts = { "wpn_fps_m4_lower_reciever", "wpn_fps_m4_upper_reciever_edge", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m4_uupg_draghandle", "wpn_fps_smg_olympic_fg_olympic", "wpn_fps_smg_olympic_fg_railed", "wpn_fps_smg_olympic_s_short", "wpn_fps_smg_olympic_s_adjust", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_fps_m4_uupg_b_short_vanilla", "wpn_fps_m4_uupg_b_medium", "wpn_fps_m4_uupg_m_std", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_ass_m16_o_handle_sight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_ass_m4_upper_reciever_ballos", "wpn_fps_upg_ass_m4_upper_reciever_core", "wpn_fps_upg_ass_m4_lower_reciever_core", "wpn_fps_m4_uupg_draghandle_ballos", "wpn_fps_m4_uupg_draghandle_core", "wpn_fps_upg_smg_olympic_fg_lr300", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_amcar_bolt_standard", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_olympic_npc = deep_clone(self.wpn_fps_smg_olympic) self.wpn_fps_smg_olympic_npc.unit = "units/payday2/weapons/wpn_fps_smg_olympic/wpn_fps_smg_olympic_npc" self.wpn_fps_smg_olympic_primary = deep_clone(self.wpn_fps_smg_olympic) self.wpn_fps_smg_olympic_primary.unit = "units/payday2/weapons/wpn_fps_smg_olympic/wpn_fps_smg_olympic_primary" self.wpn_fps_smg_olympic_primary_npc = deep_clone(self.wpn_fps_smg_olympic_npc) self.wpn_fps_smg_olympic_primary_npc.unit = "units/payday2/weapons/wpn_fps_smg_olympic/wpn_fps_smg_olympic_primary_npc" end function WeaponFactoryTweakData:_init_ak_parts() self.parts.wpn_upg_ak_fg_combo1 = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak_fg_combo1", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_combo1", stats = { value = 1 } } self.parts.wpn_upg_ak_fg_combo2 = { unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_combo2", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak_fg_combo2", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = -1, spread = 1, recoil = 1 }, forbids = { "wpn_fps_ak_extra_ris" } } self.parts.wpn_upg_ak_fg_combo3 = { unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_combo3", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak_fg_combo3", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = -2, value = 5, concealment = -1, spread = 1, recoil = 2 }, forbids = { "wpn_fps_addon_ris", "wpn_fps_ak_extra_ris" } } self.parts.wpn_upg_ak_fg_combo4 = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak_fg_combo4", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_combo4", stats = { value = 1 } } self.parts.wpn_upg_ak_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak_fg_standard", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_standard", stats = { value = 1 }, override = { wpn_fps_upg_o_specter = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_of" }, wpn_fps_upg_o_docter = { a_obj = "a_of" }, wpn_fps_upg_o_eotech = { a_obj = "a_of" }, wpn_fps_upg_o_t1micro = { a_obj = "a_of" }, wpn_fps_upg_o_cmore = { a_obj = "a_of" }, wpn_fps_upg_o_acog = { a_obj = "a_of" }, wpn_fps_upg_o_cs = { a_obj = "a_of" }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_of" }, wpn_fps_upg_o_reflex = { a_obj = "a_of" }, wpn_fps_upg_o_rx01 = { a_obj = "a_of" }, wpn_fps_upg_o_rx30 = { a_obj = "a_of" }, wpn_fps_upg_o_spot = { a_obj = "a_of" } } } self.parts.wpn_upg_ak_fg_standard_gold = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak_fg_standard_gold", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_standard_gold", stats = { value = 1 }, override = { wpn_fps_upg_o_specter = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_of" }, wpn_fps_upg_o_docter = { a_obj = "a_of" }, wpn_fps_upg_o_eotech = { a_obj = "a_of" }, wpn_fps_upg_o_t1micro = { a_obj = "a_of" }, wpn_fps_upg_o_cmore = { a_obj = "a_of" }, wpn_fps_upg_o_acog = { a_obj = "a_of" }, wpn_fps_upg_o_cs = { a_obj = "a_of" }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_of" }, wpn_fps_upg_o_reflex = { a_obj = "a_of" }, wpn_fps_upg_o_rx01 = { a_obj = "a_of" }, wpn_fps_upg_o_rx30 = { a_obj = "a_of" }, wpn_fps_upg_o_spot = { a_obj = "a_of" } } } self.parts.wpn_upg_ak_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_ak_g_standard", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_g_standard", stats = { value = 1 } } self.parts.wpn_upg_ak_m_akm = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_ak_m_akm", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_m_akm", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_upg_ak_m_akm_gold = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_ak_m_akm_gold", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_m_akm_gold", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_upg_ak_m_drum = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_ak_m_drum", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_m_drum", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 5, concealment = -4 } } self.parts.wpn_upg_ak_s_adapter = { a_obj = "a_s", type = "stock_adapter", name_id = "bm_wp_ak_s_adapter", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_s_adapter", stats = { value = 1 }, adds = { "wpn_upg_ak_g_standard" } } self.parts.wpn_upg_ak_s_folding = { unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_s_folding", a_obj = "a_s", type = "stock", name_id = "bm_wp_ak_s_folding", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = 2, recoil = -1, concealment = 2 }, adds = { "wpn_upg_ak_g_standard" } } self.parts.wpn_upg_ak_s_folding_vanilla_gold = { a_obj = "a_s", type = "stock", name_id = "bm_wp_ak_s_folding", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_s_folding_gold", stats = { value = 1 }, adds = { "wpn_upg_ak_g_standard" } } self.parts.wpn_upg_ak_s_psl = { unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_s_psl", a_obj = "a_s", type = "stock", name_id = "bm_wp_ak_s_psl", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = -3, spread = 3, concealment = -3, value = 6, recoil = 0 }, forbids = { "wpn_upg_ak_g_standard", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_rk3" } } self.parts.wpn_upg_ak_s_skfoldable = { unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_s_skfoldable", a_obj = "a_s", type = "stock", name_id = "bm_wp_ak_s_skfoldable", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = 2, recoil = -1, concealment = 2 }, adds = { "wpn_upg_ak_g_standard" } } self.parts.wpn_fps_ak_extra_ris = { name_id = "bm_wp_ak_s_skfoldable", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_fps_ak_extra_ris", a_obj = "a_of", type = "extra" } self.parts.wpn_fps_ak_bolt = { name_id = "bm_wp_ak_s_skfoldable", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_fps_ak_bolt", a_obj = "a_bolt", type = "drag_handle" } self.parts.wpn_upg_ak_fg_combo1.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_combo1" self.parts.wpn_upg_ak_fg_combo2.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_combo2" self.parts.wpn_upg_ak_fg_combo3.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_combo3" self.parts.wpn_upg_ak_fg_combo4.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_combo4" self.parts.wpn_upg_ak_fg_standard.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_standard" self.parts.wpn_upg_ak_fg_standard_gold.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_standard_gold" self.parts.wpn_upg_ak_g_standard.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_g_standard" self.parts.wpn_upg_ak_m_akm.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_m_akm" self.parts.wpn_upg_ak_m_akm_gold.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_m_akm_gold" self.parts.wpn_upg_ak_m_drum.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_m_drum" self.parts.wpn_upg_ak_s_adapter.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_s_adapter" self.parts.wpn_upg_ak_s_folding.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_s_folding" self.parts.wpn_upg_ak_s_folding_vanilla_gold.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_s_folding_gold" self.parts.wpn_upg_ak_s_psl.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_s_psl" self.parts.wpn_upg_ak_s_skfoldable.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_s_skfoldable" self.parts.wpn_fps_ak_extra_ris.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_ak_extra_ris" self.parts.wpn_fps_ak_bolt.third_unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_third_ak_bolt" self.parts.wpn_upg_ak_s_folding_vanilla = deep_clone(self.parts.wpn_upg_ak_s_folding) self.parts.wpn_upg_ak_s_folding_vanilla.stats = nil self.parts.wpn_upg_ak_s_folding_vanilla.pcs = nil self.parts.wpn_upg_ak_s_skfoldable_vanilla = deep_clone(self.parts.wpn_upg_ak_s_skfoldable) self.parts.wpn_upg_ak_s_skfoldable_vanilla.stats = nil self.parts.wpn_upg_ak_s_skfoldable_vanilla.pcs = nil self.parts.wpn_fps_ass_akm_body_upperreceiver = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_akm_body_upperreceiver", unit = "units/payday2/weapons/wpn_fps_ass_akm_pts/wpn_fps_ass_akm_body_upperreceiver", stats = { value = 1 } } self.parts.wpn_fps_ass_akm_body_upperreceiver_gold = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_akm_body_upperreceiver_gold", unit = "units/payday2/weapons/wpn_fps_ass_akm_gold_pts/wpn_fps_ass_akm_body_upperreceiver_gold", stats = { value = 1 } } self.parts.wpn_fps_ass_ak_body_lowerreceiver = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_ak_body_lowerreceiver", unit = "units/payday2/weapons/wpn_fps_ass_akm_pts/wpn_fps_ass_ak_body_lowerreceiver", stats = { value = 1 }, adds = { "wpn_fps_ak_bolt" } } self.parts.wpn_fps_ass_ak_body_lowerreceiver_gold = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_ak_body_lowerreceiver_gold", unit = "units/payday2/weapons/wpn_fps_ass_akm_gold_pts/wpn_fps_ass_ak_body_lowerreceiver_gold", stats = { value = 1 }, adds = { "wpn_fps_ak_bolt" } } self.parts.wpn_fps_ass_akm_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_akm_b_standard", unit = "units/payday2/weapons/wpn_fps_ass_akm_pts/wpn_fps_ass_akm_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_akm_b_standard_gold = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_akm_b_standard_gold", unit = "units/payday2/weapons/wpn_fps_ass_akm_gold_pts/wpn_fps_ass_akm_b_standard_gold", stats = { value = 1 } } self.parts.wpn_fps_ass_akm_body_upperreceiver.third_unit = "units/payday2/weapons/wpn_third_ass_akm_pts/wpn_third_ass_akm_body_upperreceiver" self.parts.wpn_fps_ass_akm_body_upperreceiver_gold.third_unit = "units/payday2/weapons/wpn_third_ass_akm_pts/wpn_third_ass_akm_body_upperreceiver_gold" self.parts.wpn_fps_ass_akm_b_standard.third_unit = "units/payday2/weapons/wpn_third_ass_akm_pts/wpn_third_ass_akm_b_standard" self.parts.wpn_fps_ass_akm_b_standard_gold.third_unit = "units/payday2/weapons/wpn_third_ass_akm_pts/wpn_third_ass_akm_b_standard_gold" self.parts.wpn_fps_ass_ak_body_lowerreceiver.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_ass_ak_body_lowerreceiver" self.parts.wpn_fps_ass_ak_body_lowerreceiver_gold.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_ass_ak_body_lowerreceiver_gold" self.parts.wpn_fps_ass_akm_body_upperreceiver_vanilla = deep_clone(self.parts.wpn_fps_ass_akm_body_upperreceiver) self.parts.wpn_fps_ass_akm_body_upperreceiver_vanilla.stats = nil self.parts.wpn_fps_ass_akm_body_upperreceiver_vanilla.pc = nil end function WeaponFactoryTweakData:_init_ak74() self.parts.wpn_fps_ass_74_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_74_b_standard", unit = "units/payday2/weapons/wpn_fps_ass_74_pts/wpn_fps_ass_74_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_74_body_upperreceiver = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_74_body_upperreceiver", unit = "units/payday2/weapons/wpn_fps_ass_74_pts/wpn_fps_ass_74_body_upperreceiver", stats = { value = 1 } } self.parts.wpn_fps_ass_74_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_74_m_standard", unit = "units/payday2/weapons/wpn_fps_ass_74_pts/wpn_fps_ass_74_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_ass_74_b_standard.third_unit = "units/payday2/weapons/wpn_third_ass_74_pts/wpn_third_ass_74_b_standard" self.parts.wpn_fps_ass_74_body_upperreceiver.third_unit = "units/payday2/weapons/wpn_third_ass_74_pts/wpn_third_ass_74_body_upperreceiver" self.parts.wpn_fps_ass_74_m_standard.third_unit = "units/payday2/weapons/wpn_third_ass_74_pts/wpn_third_ass_74_m_standard" self.wpn_fps_ass_74 = { unit = "units/payday2/weapons/wpn_fps_ass_74/wpn_fps_ass_74", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, override = { wpn_fps_upg_ass_ak_b_zastava = { stats = { spread = 3, total_ammo_mod = -12, damage = 104, concealment = -4, value = 1, recoil = -9 }, custom_stats = { ammo_pickup_max_mul = 0.15, ammo_pickup_min_mul = 0.2 } } }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_fps_ass_74_b_standard", "wpn_fps_ass_74_body_upperreceiver", "wpn_fps_ass_ak_body_lowerreceiver", "wpn_fps_ass_74_m_standard", "wpn_upg_ak_fg_standard", "wpn_upg_ak_s_skfoldable_vanilla" }, uses_parts = { "wpn_fps_ass_74_b_standard", "wpn_fps_ass_74_body_upperreceiver", "wpn_fps_ass_akm_body_upperreceiver", "wpn_fps_ass_ak_body_lowerreceiver", "wpn_fps_ass_74_m_standard", "wpn_upg_ak_m_drum", "wpn_upg_ak_fg_standard", "wpn_upg_ak_fg_combo2", "wpn_upg_ak_fg_combo3", "wpn_upg_ak_fg_combo1", "wpn_upg_ak_fg_combo4", "wpn_upg_ak_g_standard", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_upg_ak_s_folding", "wpn_upg_ak_s_psl", "wpn_upg_ak_s_skfoldable_vanilla", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ak_fg_tapco", "wpn_fps_upg_fg_midwest", "wpn_fps_upg_ak_b_draco", "wpn_fps_upg_ak_m_quad", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ak_s_solidstock", "wpn_fps_upg_o_ak_scopemount", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_m_uspalm", "wpn_fps_upg_ak_fg_krebs", "wpn_fps_upg_ak_fg_trax", "wpn_fps_upg_ak_b_ak105", "wpn_fps_upg_ak_ns_ak105", "wpn_fps_upg_ass_ak_b_zastava", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_ass_74_b_legend", "wpn_upg_ak_fg_legend", "wpn_upg_ak_g_legend", "wpn_upg_ak_s_legend", "wpn_upg_ak_fl_legend", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_ak_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_74_npc = deep_clone(self.wpn_fps_ass_74) self.wpn_fps_ass_74_npc.unit = "units/payday2/weapons/wpn_fps_ass_74/wpn_fps_ass_74_npc" self.wpn_fps_ass_74_secondary = deep_clone(self.wpn_fps_ass_74) self.wpn_fps_ass_74_secondary.unit = "units/payday2/weapons/wpn_fps_ass_74/wpn_fps_ass_74_secondary" self.wpn_fps_ass_74_secondary_npc = deep_clone(self.wpn_fps_ass_74_npc) self.wpn_fps_ass_74_secondary_npc.unit = "units/payday2/weapons/wpn_fps_ass_74/wpn_fps_ass_74_secondary_npc" end function WeaponFactoryTweakData:_init_akm() self.wpn_fps_ass_akm = { unit = "units/payday2/weapons/wpn_fps_ass_akm/wpn_fps_ass_akm", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget", "vertical_grip", "sight" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_upg_ak_s_folding_vanilla", "wpn_upg_ak_fg_standard", "wpn_upg_ak_m_akm", "wpn_upg_ak_g_standard", "wpn_fps_ass_akm_b_standard", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_ass_ak_body_lowerreceiver" }, uses_parts = { "wpn_fps_ass_akm_b_standard", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_ass_ak_body_lowerreceiver", "wpn_upg_ak_m_akm", "wpn_upg_ak_fg_standard", "wpn_upg_ak_fg_combo2", "wpn_upg_ak_fg_combo3", "wpn_upg_ak_g_standard", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_upg_ak_s_folding_vanilla", "wpn_upg_ak_s_psl", "wpn_upg_ak_s_skfoldable", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ak_fg_tapco", "wpn_fps_upg_fg_midwest", "wpn_fps_upg_ak_b_draco", "wpn_fps_upg_ak_m_quad", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ak_s_solidstock", "wpn_fps_upg_o_ak_scopemount", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_m_uspalm", "wpn_fps_upg_ak_fg_krebs", "wpn_fps_upg_ak_fg_trax", "wpn_fps_upg_ak_b_ak105", "wpn_fps_upg_ak_ns_ak105", "wpn_fps_upg_ass_ak_b_zastava", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_ak_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_akm_npc = deep_clone(self.wpn_fps_ass_akm) self.wpn_fps_ass_akm_npc.unit = "units/payday2/weapons/wpn_fps_ass_akm/wpn_fps_ass_akm_npc" end function WeaponFactoryTweakData:_init_akm_gold() self.wpn_fps_ass_akm_gold = { unit = "units/payday2/weapons/wpn_fps_ass_akm_gold/wpn_fps_ass_akm_gold", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget", "vertical_grip", "sight" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_upg_ak_s_folding_vanilla_gold", "wpn_upg_ak_fg_standard_gold", "wpn_upg_ak_m_akm_gold", "wpn_upg_ak_g_standard", "wpn_fps_ass_akm_b_standard_gold", "wpn_fps_ass_akm_body_upperreceiver_gold", "wpn_fps_ass_ak_body_lowerreceiver_gold" }, uses_parts = { "wpn_fps_ass_akm_b_standard_gold", "wpn_fps_ass_akm_body_upperreceiver_gold", "wpn_fps_ass_ak_body_lowerreceiver_gold", "wpn_upg_ak_m_akm_gold", "wpn_upg_ak_fg_standard_gold", "wpn_upg_ak_fg_combo2", "wpn_upg_ak_fg_combo3", "wpn_upg_ak_g_standard", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_upg_ak_s_folding_vanilla_gold", "wpn_upg_ak_s_psl", "wpn_upg_ak_s_skfoldable", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ak_fg_tapco", "wpn_fps_upg_fg_midwest", "wpn_fps_upg_ak_b_draco", "wpn_fps_upg_ak_m_quad", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ak_s_solidstock", "wpn_fps_upg_o_ak_scopemount", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_m_uspalm", "wpn_fps_upg_ak_fg_krebs", "wpn_fps_upg_ak_fg_trax", "wpn_fps_upg_ak_b_ak105", "wpn_fps_upg_ak_ns_ak105", "wpn_fps_upg_ass_ak_b_zastava", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_ak_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_akm_gold_npc = deep_clone(self.wpn_fps_ass_akm_gold) self.wpn_fps_ass_akm_gold_npc.unit = "units/payday2/weapons/wpn_fps_ass_akm_gold/wpn_fps_ass_akm_gold_npc" end function WeaponFactoryTweakData:_init_akmsu() self.parts.wpn_fps_smg_akmsu_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_akmsu_b_standard", unit = "units/payday2/weapons/wpn_fps_smg_akmsu_pts/wpn_fps_smg_akmsu_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_akmsu_body_lowerreceiver = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_akmsu_body_lowerreceiver", unit = "units/payday2/weapons/wpn_fps_smg_akmsu_pts/wpn_fps_smg_akmsu_body_lowerreceiver", stats = { value = 1 }, adds = { "wpn_fps_ak_bolt" } } self.parts.wpn_fps_smg_akmsu_fg_rail = { unit = "units/payday2/weapons/wpn_fps_smg_akmsu_pts/wpn_fps_smg_akmsu_fg_rail", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_akmsu_fg_rail", pcs = { 30, 40 }, stats = { value = 5, spread_moving = -2, recoil = 2, concealment = -2 }, forbids = { "wpn_fps_addon_ris", "wpn_fps_ak_extra_ris" } } self.parts.wpn_fps_smg_akmsu_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_akmsu_fg_standard", unit = "units/payday2/weapons/wpn_fps_smg_akmsu_pts/wpn_fps_smg_akmsu_fg_standard", stats = { value = 1 }, override = { wpn_fps_upg_o_specter = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_of" }, wpn_fps_upg_o_docter = { a_obj = "a_of" }, wpn_fps_upg_o_eotech = { a_obj = "a_of" }, wpn_fps_upg_o_t1micro = { a_obj = "a_of" }, wpn_fps_upg_o_cmore = { a_obj = "a_of" }, wpn_fps_upg_o_acog = { a_obj = "a_of" }, wpn_fps_upg_o_cs = { a_obj = "a_of" }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_of" }, wpn_fps_upg_o_reflex = { a_obj = "a_of" }, wpn_fps_upg_o_rx01 = { a_obj = "a_of" }, wpn_fps_upg_o_rx30 = { a_obj = "a_of" }, wpn_fps_upg_o_rx30 = { a_obj = "a_of" } } } self.parts.wpn_fps_smg_akmsu_b_standard.third_unit = "units/payday2/weapons/wpn_third_smg_akmsu_pts/wpn_third_smg_akmsu_b_standard" self.parts.wpn_fps_smg_akmsu_body_lowerreceiver.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_akmsu_body_lowerreceiver" self.parts.wpn_fps_smg_akmsu_fg_rail.third_unit = "units/payday2/weapons/wpn_third_smg_akmsu_pts/wpn_third_smg_akmsu_fg_rail" self.parts.wpn_fps_smg_akmsu_fg_standard.third_unit = "units/payday2/weapons/wpn_third_smg_akmsu_pts/wpn_third_smg_akmsu_fg_standard" self.wpn_fps_smg_akmsu = { unit = "units/payday2/weapons/wpn_fps_smg_akmsu/wpn_fps_smg_akmsu", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_fps_smg_akmsu_body_lowerreceiver", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_smg_akmsu_b_standard", "wpn_fps_smg_akmsu_fg_standard", "wpn_upg_ak_s_folding_vanilla", "wpn_upg_ak_g_standard", "wpn_upg_ak_m_akm" }, uses_parts = { "wpn_fps_smg_akmsu_body_lowerreceiver", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_smg_akmsu_b_standard", "wpn_fps_smg_akmsu_fg_standard", "wpn_fps_smg_akmsu_fg_rail", "wpn_upg_ak_g_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_upg_ak_m_akm", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_upg_ak_s_folding_vanilla", "wpn_upg_ak_s_psl", "wpn_upg_ak_s_skfoldable", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ak_m_quad", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ak_s_solidstock", "wpn_fps_upg_o_ak_scopemount", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_m_uspalm", "wpn_fps_upg_ak_fg_zenit", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_ak_m_quick", "wpn_fps_snp_tti_s_vltor" } } self.wpn_fps_smg_akmsu_npc = deep_clone(self.wpn_fps_smg_akmsu) self.wpn_fps_smg_akmsu_npc.unit = "units/payday2/weapons/wpn_fps_smg_akmsu/wpn_fps_smg_akmsu_npc" self.wpn_fps_smg_akmsu_primary = deep_clone(self.wpn_fps_smg_akmsu) self.wpn_fps_smg_akmsu_primary.unit = "units/payday2/weapons/wpn_fps_smg_akmsu/wpn_fps_smg_akmsu_primary" self.wpn_fps_smg_akmsu_primary_npc = deep_clone(self.wpn_fps_smg_akmsu_npc) self.wpn_fps_smg_akmsu_primary_npc.unit = "units/payday2/weapons/wpn_fps_smg_akmsu/wpn_fps_smg_akmsu_primary_npc" end function WeaponFactoryTweakData:_init_saiga() self.parts.wpn_fps_shot_saiga_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_saiga_b_standard", unit = "units/payday2/weapons/wpn_fps_shot_saiga_pts/wpn_fps_shot_saiga_b_standard", stats = { value = 1 } } self.parts.wpn_fps_shot_saiga_m_5rnd = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_saiga_m_5rnd", unit = "units/payday2/weapons/wpn_fps_shot_saiga_pts/wpn_fps_shot_saiga_m_5rnd", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_upg_saiga_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_saiga_fg_standard", unit = "units/payday2/weapons/wpn_fps_shot_saiga_pts/wpn_upg_saiga_fg_standard", stats = { value = 1 }, override = { wpn_fps_upg_o_specter = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint = { a_obj = "a_of" }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_of" }, wpn_fps_upg_o_docter = { a_obj = "a_of" }, wpn_fps_upg_o_eotech = { a_obj = "a_of" }, wpn_fps_upg_o_t1micro = { a_obj = "a_of" }, wpn_fps_upg_o_cmore = { a_obj = "a_of" }, wpn_fps_upg_o_acog = { a_obj = "a_of" }, wpn_fps_upg_o_cs = { a_obj = "a_of" } } } self.parts.wpn_upg_saiga_fg_lowerrail = { unit = "units/payday2/weapons/wpn_fps_shot_saiga_pts/wpn_upg_saiga_fg_lowerrail", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_saiga_fg_lowerrail", pcs = { 30, 40 }, stats = { value = 5, recoil = 2, spread_moving = -2, concealment = -2 }, forbids = { "wpn_fps_addon_ris", "wpn_fps_smg_mac10_body_ris_special" } } self.parts.wpn_fps_shot_saiga_b_standard.third_unit = "units/payday2/weapons/wpn_third_shot_saiga_pts/wpn_third_shot_saiga_b_standard" self.parts.wpn_fps_shot_saiga_m_5rnd.third_unit = "units/payday2/weapons/wpn_third_shot_saiga_pts/wpn_third_shot_saiga_m_5rnd" self.parts.wpn_upg_saiga_fg_standard.third_unit = "units/payday2/weapons/wpn_third_shot_saiga_pts/wpn_third_upg_saiga_fg_standard" self.parts.wpn_upg_saiga_fg_lowerrail.third_unit = "units/payday2/weapons/wpn_third_shot_saiga_pts/wpn_third_upg_saiga_fg_lowerrail" self.wpn_fps_shot_saiga = { unit = "units/payday2/weapons/wpn_fps_shot_saiga/wpn_fps_shot_saiga", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_upg_o_marksmansight_rear_vanilla = { a_obj = "a_or", forbids = table.list_add(self.parts.wpn_upg_o_marksmansight_rear_vanilla.forbids, { "wpn_fps_upg_o_ak_scopemount" }) }, wpn_upg_o_marksmansight_front = { a_obj = "a_of" } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_fps_smg_akmsu_body_lowerreceiver", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_shot_saiga_b_standard", "wpn_fps_shot_saiga_m_5rnd", "wpn_upg_ak_s_folding_vanilla", "wpn_upg_saiga_fg_standard", "wpn_upg_ak_g_standard", "wpn_upg_o_marksmansight_rear_vanilla" }, uses_parts = { "wpn_fps_smg_akmsu_body_lowerreceiver", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_upg_saiga_fg_standard", "wpn_upg_saiga_fg_lowerrail", "wpn_fps_shot_saiga_b_standard", "wpn_fps_shot_saiga_m_5rnd", "wpn_upg_ak_g_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_upg_o_marksmansight_rear_vanilla", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_upg_ak_s_folding_vanilla", "wpn_upg_ak_s_psl", "wpn_upg_ak_s_skfoldable", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ak_s_solidstock", "wpn_fps_upg_o_ak_scopemount", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_sho_saiga_b_short", "wpn_fps_sho_saiga_fg_holy", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_snp_tti_s_vltor", "wpn_fps_sho_basset_m_extended" } } self.wpn_fps_shot_saiga_npc = deep_clone(self.wpn_fps_shot_saiga) self.wpn_fps_shot_saiga_npc.unit = "units/payday2/weapons/wpn_fps_shot_saiga/wpn_fps_shot_saiga_npc" end function WeaponFactoryTweakData:_init_ak5() self.parts.wpn_fps_ass_ak5_b_std = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_ak5_b_std", unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_b_std", stats = { value = 1 } } self.parts.wpn_fps_ass_ak5_body_ak5 = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_ak5_body_ak5", unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_body_ak5", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_ak5_body_rail = { a_obj = "a_body", type = "extra", name_id = "bm_wp_ak5_body_rail", unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_body_rail", stats = { value = 1 } } self.parts.wpn_fps_ass_ak5_fg_ak5a = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak5_fg_ak5a", unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_fg_ak5a", stats = { value = 1 } } self.parts.wpn_fps_ass_ak5_fg_ak5c = { unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_fg_ak5c", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak5_fg_ak5c", pcs = { 10, 20, 30, 40 }, stats = { recoil = 2, concealment = -2, damage = 1, value = 7, spread_moving = -2 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_ak5_fg_fnc = { unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_fg_fnc", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ak5_fg_fnc", pcs = { 10, 20, 30, 40 }, stats = { value = 10, spread_moving = 2, recoil = -1, concealment = 1 } } self.parts.wpn_fps_ass_ak5_s_ak5a = { a_obj = "a_s", type = "stock", name_id = "bm_wp_ak5_s_ak5a", unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_s_ak5a", stats = { value = 1 } } self.parts.wpn_fps_ass_ak5_s_ak5b = { unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_s_ak5b", a_obj = "a_s", type = "stock", name_id = "bm_wp_ak5_s_ak5b", pcs = { 10, 20, 30, 40 }, stats = { recoil = 0, value = 5, concealment = -1, spread = 1, spread_moving = -3 }, adds = { "wpn_fps_ass_ak5_s_ak5a" }, stance_mod = { wpn_fps_ass_ak5 = { translation = Vector3(0, -8, 0) } } } self.parts.wpn_fps_ass_ak5_s_ak5c = { unit = "units/payday2/weapons/wpn_fps_ass_ak5_pts/wpn_fps_ass_ak5_s_ak5c", a_obj = "a_s", type = "stock", name_id = "bm_wp_ak5_s_ak5c", pcs = { 10, 20, 30, 40 }, stats = { value = 7, recoil = 2, spread_moving = 2, concealment = 2 } } self.parts.wpn_fps_ass_ak5_b_std.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_b_std" self.parts.wpn_fps_ass_ak5_body_ak5.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_body_ak5" self.parts.wpn_fps_ass_ak5_body_rail.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_body_rail" self.parts.wpn_fps_ass_ak5_fg_ak5a.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_fg_ak5a" self.parts.wpn_fps_ass_ak5_fg_ak5c.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_fg_ak5c" self.parts.wpn_fps_ass_ak5_fg_fnc.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_fg_fnc" self.parts.wpn_fps_ass_ak5_s_ak5a.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_s_ak5a" self.parts.wpn_fps_ass_ak5_s_ak5b.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_s_ak5b" self.parts.wpn_fps_ass_ak5_s_ak5c.third_unit = "units/payday2/weapons/wpn_third_ass_ak5_pts/wpn_third_ass_ak5_s_ak5c" self.wpn_fps_ass_ak5 = { unit = "units/payday2/weapons/wpn_fps_ass_ak5/wpn_fps_ass_ak5", optional_types = { "barrel_ext", "gadget", "vertical_grip", "sight" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_ak5_body_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_ak5_body_rail" } }, default_blueprint = { "wpn_fps_ass_ak5_b_std", "wpn_fps_ass_ak5_body_ak5", "wpn_fps_ass_ak5_fg_ak5a", "wpn_fps_ass_ak5_s_ak5a", "wpn_fps_m4_uupg_m_std_vanilla" }, uses_parts = { "wpn_fps_ass_ak5_b_std", "wpn_fps_ass_ak5_body_ak5", "wpn_fps_ass_ak5_body_rail", "wpn_fps_ass_ak5_fg_ak5a", "wpn_fps_ass_ak5_fg_ak5c", "wpn_fps_ass_ak5_fg_fnc", "wpn_fps_ass_ak5_s_ak5a", "wpn_fps_ass_ak5_s_ak5b", "wpn_fps_ass_ak5_s_ak5c", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_m4_m_l5", "wpn_fps_ass_ak5_b_short", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_ak5_npc = deep_clone(self.wpn_fps_ass_ak5) self.wpn_fps_ass_ak5_npc.unit = "units/payday2/weapons/wpn_fps_ass_ak5/wpn_fps_ass_ak5_npc" end function WeaponFactoryTweakData:_init_aug() self.parts.wpn_fps_aug_b_long = { unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_b_long", a_obj = "a_b", type = "barrel", name_id = "bm_wp_aug_b_long", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = -2, value = 7, damage = 1, concealment = -3, spread = 1, recoil = 1 } } self.parts.wpn_fps_aug_b_medium = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_aug_b_medium", unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_b_medium", stats = { value = 1 } } self.parts.wpn_fps_aug_b_short = { unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_b_short", a_obj = "a_b", type = "barrel", name_id = "bm_wp_aug_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = 3, value = 5, concealment = 2, spread = -1, recoil = 2 } } self.parts.wpn_fps_aug_m_pmag = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_aug_m_pmag", unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_m_pmag", bullet_objects = { amount = 21, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_aug_body_aug = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_aug_body_aug", unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_body_aug", stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_aug_fg_a3 = { a_obj = "a_fg", type = "extra", name_id = "bm_wp_aug_fg_a3", unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_fg_a3", pcs = { 10, 20, 30, 40 }, stats = { recoil = 2, concealment = -2, damage = 1, value = 7, spread_moving = -2 }, override = { wpn_fps_aug_b_short = { third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_ass_aug_b_medium", unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_b_medium" } } } self.parts.wpn_fps_aug_ris_special = { a_obj = "a_body", type = "extra", name_id = "bm_wp_aug_body_ris", unit = "units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_ris_special", stats = { value = 1 } } self.parts.wpn_fps_aug_b_long.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_ass_aug_b_long" self.parts.wpn_fps_aug_b_medium.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_ass_aug_b_medium" self.parts.wpn_fps_aug_b_short.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_ass_aug_b_short" self.parts.wpn_fps_aug_body_aug.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_ass_aug_body_aug" self.parts.wpn_fps_aug_fg_a3.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_ass_aug_fg_a3" self.parts.wpn_fps_aug_m_pmag.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_aug_m_pmag" self.parts.wpn_fps_aug_ris_special.third_unit = "units/payday2/weapons/wpn_third_ass_aug_pts/wpn_third_aug_ris_special" self.wpn_fps_ass_aug = { unit = "units/payday2/weapons/wpn_fps_ass_aug/wpn_fps_ass_aug", optional_types = { "barrel_ext", "gadget" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, adds = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_aug_ris_special" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_aug_ris_special" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_aug_ris_special" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_aug_ris_special" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_aug_ris_special" } }, override = { wpn_upg_o_marksmansight_rear_vanilla = { a_obj = "a_or" }, wpn_upg_o_marksmansight_front_vanilla = { a_obj = "a_of" }, wpn_upg_o_marksmansight_front = { a_obj = "a_of" } }, default_blueprint = { "wpn_fps_aug_body_aug", "wpn_fps_aug_b_medium", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_aug_m_pmag", "wpn_upg_o_marksmansight_rear_vanilla" }, uses_parts = { "wpn_fps_aug_body_aug", "wpn_fps_aug_fg_a3", "wpn_fps_aug_ris_special", "wpn_fps_aug_b_long", "wpn_fps_aug_b_medium", "wpn_fps_aug_b_short", "wpn_fps_aug_m_pmag", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_upg_o_marksmansight_rear_vanilla", "wpn_upg_o_marksmansight_front_vanilla", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_aug_body_f90", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_ass_aug_m_quick", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_aug_npc = deep_clone(self.wpn_fps_ass_aug) self.wpn_fps_ass_aug_npc.unit = "units/payday2/weapons/wpn_fps_ass_aug/wpn_fps_ass_aug_npc" self.wpn_fps_ass_aug_secondary = deep_clone(self.wpn_fps_ass_aug) self.wpn_fps_ass_aug_secondary.unit = "units/payday2/weapons/wpn_fps_ass_aug/wpn_fps_ass_aug_secondary" self.wpn_fps_ass_aug_secondary_npc = deep_clone(self.wpn_fps_ass_aug_npc) self.wpn_fps_ass_aug_secondary_npc.unit = "units/payday2/weapons/wpn_fps_ass_aug/wpn_fps_ass_aug_secondary_npc" end function WeaponFactoryTweakData:_init_g36() self.parts.wpn_fps_ass_g36_body_sl8 = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_g36_body_sl8", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_body_sl8", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_g36_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_g36_body_standard", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_g36_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_g36_g_standard", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_g_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_g36_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_g36_m_standard", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_m_standard", bullet_objects = { amount = 28, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_g36_b_long = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_g36_b_long", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_b_long", stats = { value = 1 } } self.parts.wpn_fps_ass_g36_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_g36_b_short", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_b_short", stats = { value = 1 } } self.parts.wpn_fps_ass_g36_fg_c = { unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_fg_c", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_g36_fg_c", pcs = { 20, 30, 40 }, stats = { value = 4, spread_moving = 2, recoil = -1, concealment = 2 }, forbids = { "wpn_fps_ass_g36_b_long", "wpn_fps_upg_g36_b_ultra" }, adds = { "wpn_fps_ass_g36_b_short" } } self.parts.wpn_fps_ass_g36_fg_k = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_g36_fg_k", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_fg_k", stats = { value = 1 }, forbids = { "wpn_fps_ass_g36_b_short", "wpn_fps_upg_g36_b_ultra" }, adds = { "wpn_fps_ass_g36_b_long" } } self.parts.wpn_fps_ass_g36_fg_ksk = { unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_fg_ksk", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_g36_fg_ksk", pcs = { 20, 30, 40 }, stats = { spread_moving = -2, value = 5, concealment = -2, spread = 1, recoil = 2 }, forbids = { "wpn_fps_ass_g36_b_short", "wpn_fps_upg_g36_b_ultra" }, adds = { "wpn_fps_ass_g36_b_long" } } self.parts.wpn_fps_ass_g36_s_kv = { unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_s_kv", a_obj = "a_s", type = "stock", name_id = "bm_wp_g36_s_kv", pcs = { 20, 30, 40 }, stats = { value = 4, spread_moving = 2, concealment = 2 }, adds = { "wpn_fps_ass_g36_body_standard", "wpn_fps_ass_g36_g_standard" }, forbids = { "wpn_fps_ass_g36_body_sl8" } } self.parts.wpn_fps_ass_g36_s_sl8 = { unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_s_sl8", a_obj = "a_s", type = "stock", name_id = "bm_wp_g36_s_sl8", pcs = { 20, 30, 40 }, stats = { recoil = 2, value = 9, concealment = -3, spread = 1, spread_moving = -3 }, adds = { "wpn_fps_ass_g36_body_sl8" }, forbids = { "wpn_fps_ass_g36_body_standard", "wpn_fps_ass_g36_g_standard" } } self.parts.wpn_fps_ass_g36_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_g36_s_standard", unit = "units/payday2/weapons/wpn_fps_ass_g36_pts/wpn_fps_ass_g36_s_standard", stats = { value = 1 }, adds = { "wpn_fps_ass_g36_body_standard", "wpn_fps_ass_g36_g_standard" }, forbids = { "wpn_fps_ass_g36_body_sl8" } } self.parts.wpn_fps_ass_g36_body_sl8.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_ass_g36_body_sl8" self.parts.wpn_fps_ass_g36_body_standard.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_ass_g36_body_standard" self.parts.wpn_fps_ass_g36_g_standard.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_ass_g36_g_standard" self.parts.wpn_fps_ass_g36_m_standard.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_ass_g36_m_standard" self.parts.wpn_fps_ass_g36_b_long.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_b_long" self.parts.wpn_fps_ass_g36_b_short.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_b_short" self.parts.wpn_fps_ass_g36_fg_c.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_fg_c" self.parts.wpn_fps_ass_g36_fg_k.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_fg_k" self.parts.wpn_fps_ass_g36_fg_ksk.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_fg_ksk" self.parts.wpn_fps_ass_g36_s_kv.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_s_kv" self.parts.wpn_fps_ass_g36_s_sl8.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_s_sl8" self.parts.wpn_fps_ass_g36_s_standard.third_unit = "units/payday2/weapons/wpn_third_ass_g36_pts/wpn_third_upg_g36_s_standard" self.wpn_fps_ass_g36 = { unit = "units/payday2/weapons/wpn_fps_ass_g36/wpn_fps_ass_g36", optional_types = { "barrel_ext", "gadget", "sight" }, default_blueprint = { "wpn_fps_ass_g36_s_standard", "wpn_fps_ass_g36_m_standard", "wpn_fps_ass_g36_b_long", "wpn_fps_ass_g36_fg_k" }, uses_parts = { "wpn_fps_ass_g36_body_standard", "wpn_fps_ass_g36_body_sl8", "wpn_fps_ass_g36_g_standard", "wpn_fps_ass_g36_m_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_ass_g36_b_long", "wpn_fps_ass_g36_b_short", "wpn_fps_ass_g36_fg_c", "wpn_fps_ass_g36_fg_k", "wpn_fps_ass_g36_fg_ksk", "wpn_fps_ass_g36_s_standard", "wpn_fps_ass_g36_s_kv", "wpn_fps_ass_g36_s_sl8", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_ass_g36_o_vintage", "wpn_fps_upg_g36_fg_long", "wpn_fps_ass_g36_m_quick", "wpn_fps_upg_g36_b_ultra", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_g36_npc = deep_clone(self.wpn_fps_ass_g36) self.wpn_fps_ass_g36_npc.unit = "units/payday2/weapons/wpn_fps_ass_g36/wpn_fps_ass_g36_npc" end function WeaponFactoryTweakData:_init_p90() self.parts.wpn_fps_smg_p90_b_long = { unit = "units/payday2/weapons/wpn_fps_smg_p90_pts/wpn_fps_smg_p90_b_long", a_obj = "a_b", type = "barrel", name_id = "bm_wp_p90_b_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = 3, damage = 2, concealment = -2, value = 8, spread_moving = -3 } } self.parts.wpn_fps_smg_p90_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_p90_b_short", unit = "units/payday2/weapons/wpn_fps_smg_p90_pts/wpn_fps_smg_p90_b_short", stats = { value = 1 } } self.parts.wpn_fps_smg_p90_body_p90 = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_p90_body_p90", unit = "units/payday2/weapons/wpn_fps_smg_p90_pts/wpn_fps_smg_p90_body_p90", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_p90_m_std = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_p90_m_std", unit = "units/payday2/weapons/wpn_fps_smg_p90_pts/wpn_fps_smg_p90_m_std", bullet_objects = { amount = 50, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_p90_b_long.third_unit = "units/payday2/weapons/wpn_third_smg_p90_pts/wpn_third_smg_p90_b_long" self.parts.wpn_fps_smg_p90_b_short.third_unit = "units/payday2/weapons/wpn_third_smg_p90_pts/wpn_third_smg_p90_b_short" self.parts.wpn_fps_smg_p90_body_p90.third_unit = "units/payday2/weapons/wpn_third_smg_p90_pts/wpn_third_smg_p90_body_p90" self.parts.wpn_fps_smg_p90_m_std.third_unit = "units/payday2/weapons/wpn_third_smg_p90_pts/wpn_third_smg_p90_m_std" self.wpn_fps_smg_p90 = { unit = "units/payday2/weapons/wpn_fps_smg_p90/wpn_fps_smg_p90", optional_types = { "barrel_ext", "gadget" }, override = { wpn_upg_o_marksmansight_rear_vanilla = { a_obj = "a_or" }, wpn_upg_o_marksmansight_front = { a_obj = "a_of" } }, default_blueprint = { "wpn_fps_smg_p90_body_p90", "wpn_fps_smg_p90_b_short", "wpn_fps_smg_p90_m_std", "wpn_upg_o_marksmansight_rear_vanilla" }, uses_parts = { "wpn_fps_smg_p90_body_p90", "wpn_fps_smg_p90_m_std", "wpn_fps_smg_p90_b_short", "wpn_fps_smg_p90_b_long", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_upg_o_marksmansight_rear_vanilla", "wpn_upg_o_marksmansight_front", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_smg_p90_b_civilian", "wpn_fps_smg_p90_b_ninja", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_smg_p90_b_legend", "wpn_fps_upg_o_spot", "wpn_fps_smg_p90_m_strap", "wpn_fps_smg_p90_body_boxy" } } self.wpn_fps_smg_p90_npc = deep_clone(self.wpn_fps_smg_p90) self.wpn_fps_smg_p90_npc.unit = "units/payday2/weapons/wpn_fps_smg_p90/wpn_fps_smg_p90_npc" end function WeaponFactoryTweakData:_init_m14() self.parts.wpn_fps_ass_m14_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m14_b_standard", unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_m14_body_dmr = { a_obj = "a_body", type = "stock", name_id = "bm_wp_m14_body_dmr", unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_body_dmr", stats = { value = 1 } } self.parts.wpn_fps_ass_m14_body_ebr = { unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_body_ebr", a_obj = "a_body", type = "stock", name_id = "bm_wp_m14_body_ebr", pcs = { 30, 40 }, stats = { value = 6, spread_moving = 3, recoil = 2, concealment = 2 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_m14_body_jae = { unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_body_jae", a_obj = "a_body", type = "stock", name_id = "bm_wp_m14_body_jae", pcs = { 30, 40 }, stats = { spread_moving = -2, value = 10, spread = 1, concealment = -2, recoil = 3 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_m14_body_lower = { a_obj = "a_body", type = "lower_body", name_id = "bm_wp_m14_body_lower", unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_body_lower", stats = { value = 1 } } self.parts.wpn_fps_ass_m14_body_upper = { a_obj = "a_body", type = "upper_body", name_id = "bm_wp_m14_body_upper", unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_body_upper", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_m14_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/payday2/weapons/wpn_fps_ass_m14_pts/wpn_fps_ass_m14_m_standard", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_m14_b_standard.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_b_standard" self.parts.wpn_fps_ass_m14_body_dmr.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_body_dmr" self.parts.wpn_fps_ass_m14_body_ebr.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_body_ebr" self.parts.wpn_fps_ass_m14_body_jae.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_body_jae" self.parts.wpn_fps_ass_m14_body_lower.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_body_lower" self.parts.wpn_fps_ass_m14_body_upper.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_body_upper" self.parts.wpn_fps_ass_m14_m_standard.third_unit = "units/payday2/weapons/wpn_third_ass_m14_pts/wpn_third_ass_m14_m_standard" self.wpn_fps_ass_m14 = { unit = "units/payday2/weapons/wpn_fps_ass_m14/wpn_fps_ass_m14", optional_types = { "barrel_ext", "gadget", "sight" }, default_blueprint = { "wpn_fps_ass_m14_b_standard", "wpn_fps_ass_m14_body_lower", "wpn_fps_ass_m14_body_upper", "wpn_fps_ass_m14_body_dmr", "wpn_fps_ass_m14_m_standard" }, uses_parts = { "wpn_fps_ass_m14_b_standard", "wpn_fps_ass_m14_body_dmr", "wpn_fps_ass_m14_body_ebr", "wpn_fps_ass_m14_body_jae", "wpn_fps_ass_m14_body_lower", "wpn_fps_ass_m14_body_upper", "wpn_fps_ass_m14_m_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_m14_scopemount", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_ass_m14_b_legendary", "wpn_fps_ass_m14_body_legendary", "wpn_fps_ass_m14_body_upper_legendary", "wpn_fps_ass_m14_body_lower_legendary", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_m14_npc = deep_clone(self.wpn_fps_ass_m14) self.wpn_fps_ass_m14_npc.unit = "units/payday2/weapons/wpn_fps_ass_m14/wpn_fps_ass_m14_npc" end function WeaponFactoryTweakData:_init_mp9() self.parts.wpn_fps_smg_mp9_body_mp9 = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mp9_body_mp9", unit = "units/payday2/weapons/wpn_fps_smg_mp9_pts/wpn_fps_smg_mp9_body_mp9", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_smg_mp9_m_extended = { unit = "units/payday2/weapons/wpn_fps_smg_mp9_pts/wpn_fps_smg_mp9_m_extended", type = "magazine", name_id = "bm_wp_mp9_m_extended", a_obj = "a_m", pcs = { 20, 30, 40 }, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { concealment = -2, spread_moving = -2, value = 4, extra_ammo = 6 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mp9_m_short = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_mp9_m_short", unit = "units/payday2/weapons/wpn_fps_smg_mp9_pts/wpn_fps_smg_mp9_m_short", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mp9_s_fold = { a_obj = "a_s", type = "stock", name_id = "bm_wp_mp9_s_fold", unit = "units/payday2/weapons/wpn_fps_smg_mp9_pts/wpn_fps_smg_mp9_s_fold", stats = { value = 1 } } self.parts.wpn_fps_smg_mp9_s_skel = { unit = "units/payday2/weapons/wpn_fps_smg_mp9_pts/wpn_fps_smg_mp9_s_skel", a_obj = "a_s", type = "stock", name_id = "bm_wp_mp9_s_skel", pcs = { 20, 30, 40 }, stats = { recoil = 3, value = 5, concealment = -3, spread = 1, spread_moving = -3 } } self.parts.wpn_fps_smg_mp9_b_dummy = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mp9_b_dummy", unit = "units/payday2/weapons/wpn_fps_smg_mp9_pts/wpn_fps_smg_mp9_b_dummy", stats = { value = 1 } } self.parts.wpn_fps_smg_mp9_body_mp9.third_unit = "units/payday2/weapons/wpn_third_smg_mp9_pts/wpn_third_smg_mp9_body_mp9" self.parts.wpn_fps_smg_mp9_m_extended.third_unit = "units/payday2/weapons/wpn_third_smg_mp9_pts/wpn_third_smg_mp9_m_extended" self.parts.wpn_fps_smg_mp9_m_short.third_unit = "units/payday2/weapons/wpn_third_smg_mp9_pts/wpn_third_smg_mp9_m_short" self.parts.wpn_fps_smg_mp9_s_fold.third_unit = "units/payday2/weapons/wpn_third_smg_mp9_pts/wpn_third_smg_mp9_s_fold" self.parts.wpn_fps_smg_mp9_s_skel.third_unit = "units/payday2/weapons/wpn_third_smg_mp9_pts/wpn_third_smg_mp9_s_skel" self.wpn_fps_smg_mp9 = { unit = "units/payday2/weapons/wpn_fps_smg_mp9/wpn_fps_smg_mp9", optional_types = { "barrel_ext", "gadget", "sight", "vertical_grip" }, default_blueprint = { "wpn_fps_smg_mp9_body_mp9", "wpn_fps_smg_mp9_s_fold", "wpn_fps_smg_mp9_m_short", "wpn_fps_smg_mp9_b_dummy" }, uses_parts = { "wpn_fps_smg_mp9_b_dummy", "wpn_fps_smg_mp9_b_suppressed", "wpn_fps_smg_mp9_body_mp9", "wpn_fps_smg_mp9_m_extended", "wpn_fps_smg_mp9_m_short", "wpn_fps_smg_mp9_s_fold", "wpn_fps_smg_mp9_s_skel", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_i_autofire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_mp9_npc = deep_clone(self.wpn_fps_smg_mp9) self.wpn_fps_smg_mp9_npc.unit = "units/payday2/weapons/wpn_fps_smg_mp9/wpn_fps_smg_mp9_npc" end function WeaponFactoryTweakData:_init_deagle() self.parts.wpn_fps_pis_deagle_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_deagle_body_standard", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_body_standard", stats = { value = 1 }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, adds = { "wpn_fps_pis_deagle_lock" } } self.parts.wpn_fps_pis_deagle_b_long = { a_obj = "a_b", type = "slide", name_id = "bm_wp_deagle_b_long", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 7, concealment = -3, damage = 2, spread = 2, spread_moving = -3 }, forbids = { "wpn_fps_pis_deagle_co_long", "wpn_fps_pis_deagle_co_short", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp" }, override = { wpn_upg_o_marksmansight_front = { a_obj = "a_ol" } } } self.parts.wpn_fps_pis_deagle_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_deagle_b_standard", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_deagle_co_long = { unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_co_long", a_obj = "a_co", type = "barrel_ext", name_id = "bm_wp_deagle_co_long", pcs = { 10, 20, 30, 40 }, stats = { recoil = 2, concealment = -2, damage = 2, value = 8, spread_moving = -2 } } self.parts.wpn_fps_pis_deagle_co_short = { unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_co_short", a_obj = "a_co", type = "barrel_ext", name_id = "bm_wp_deagle_co_short", pcs = { 10, 20, 30, 40 }, stats = { recoil = 1, concealment = -1, damage = 1, suppression = -5, value = 6, spread_moving = -1 } } self.parts.wpn_fps_pis_deagle_fg_rail = { a_obj = "a_fg", type = "extra", name_id = "bm_wp_deagle_fg_rail", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_fg_rail", stats = { value = 1 } } self.parts.wpn_fps_pis_deagle_g_bling = { unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_g_bling", a_obj = "a_g", type = "grip", name_id = "bm_wp_deagle_g_bling", pcs = { 10, 20, 30, 40 }, stats = { value = 10, spread_moving = -2, recoil = 2, concealment = 1 } } self.parts.wpn_fps_pis_deagle_g_ergo = { unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_g_ergo", a_obj = "a_g", type = "grip", name_id = "bm_wp_deagle_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = 2, value = 6, concealment = -1, spread = 1, recoil = -1 } } self.parts.wpn_fps_pis_deagle_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_deagle_g_standard", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_deagle_m_extended = { unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_m_extended", type = "magazine", name_id = "bm_wp_deagle_m_extended", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 5, prefix = "g_bullet_" }, stats = { concealment = -2, spread_moving = -2, value = 7, extra_ammo = 3 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_deagle_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_deagle_m_standard", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_m_standard", bullet_objects = { amount = 5, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_deagle_o_standard_rear = { a_obj = "a_o", type = "extra", name_id = "bm_wp_deagle_o_standard_rear", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_o_standard_rear", stats = { value = 1 } } self.parts.wpn_fps_pis_deagle_o_standard_front = { a_obj = "a_os", type = "extra", name_id = "bm_wp_deagle_o_standard_front", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_o_standard_front", stats = { value = 1 } } self.parts.wpn_fps_pis_deagle_o_standard_front_long = { a_obj = "a_ol", type = "extra", name_id = "bm_wp_deagle_o_standard_front_long", unit = "units/payday2/weapons/wpn_fps_pis_deagle_pts/wpn_fps_pis_deagle_o_standard_front_long", stats = { value = 1 } } self.parts.wpn_fps_pis_deagle_body_standard.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_body_standard" self.parts.wpn_fps_pis_deagle_b_long.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_b_long" self.parts.wpn_fps_pis_deagle_b_standard.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_b_standard" self.parts.wpn_fps_pis_deagle_co_long.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_co_long" self.parts.wpn_fps_pis_deagle_co_short.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_co_short" self.parts.wpn_fps_pis_deagle_fg_rail.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_fg_rail" self.parts.wpn_fps_pis_deagle_g_bling.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_g_bling" self.parts.wpn_fps_pis_deagle_g_ergo.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_g_ergo" self.parts.wpn_fps_pis_deagle_g_standard.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_g_standard" self.parts.wpn_fps_pis_deagle_m_extended.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_m_extended" self.parts.wpn_fps_pis_deagle_m_standard.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_m_standard" self.parts.wpn_fps_pis_deagle_o_standard_rear.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_o_standard_rear" self.parts.wpn_fps_pis_deagle_o_standard_front.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_o_standard_front" self.parts.wpn_fps_pis_deagle_o_standard_front_long.third_unit = "units/payday2/weapons/wpn_third_pis_deagle_pts/wpn_third_pis_deagle_o_standard_front_long" self.wpn_fps_pis_deagle = { unit = "units/payday2/weapons/wpn_fps_pis_deagle/wpn_fps_pis_deagle", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget", "sight" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_pis_deagle_b_standard = { "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front" }, wpn_fps_pis_deagle_b_long = { "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front_long" }, wpn_fps_pis_deagle_b_modern = { "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front" }, wpn_fps_upg_o_specter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_pis_rage_o_adapter" } }, override = { wpn_upg_o_marksmansight_rear = { a_obj = "a_o", forbids = table.list_add(self.parts.wpn_upg_o_marksmansight_rear.forbids, { "wpn_fps_pis_deagle_o_standard_front", "wpn_fps_pis_deagle_o_standard_front_long", "wpn_fps_pis_deagle_o_standard_rear" }) }, wpn_upg_o_marksmansight_front = { a_obj = "a_os" }, wpn_fps_upg_o_specter = { a_obj = "a_quite" }, wpn_fps_upg_o_aimpoint = { a_obj = "a_quite" }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_quite" }, wpn_fps_upg_o_docter = { a_obj = "a_quite" }, wpn_fps_upg_o_eotech = { a_obj = "a_quite" }, wpn_fps_upg_o_t1micro = { a_obj = "a_quite" }, wpn_fps_upg_o_cmore = { a_obj = "a_quite" }, wpn_fps_upg_o_acog = { a_obj = "a_quite" }, wpn_fps_upg_o_cs = { a_obj = "a_quite" }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_quite" }, wpn_fps_upg_o_reflex = { a_obj = "a_quite" }, wpn_fps_upg_o_rx01 = { a_obj = "a_quite" }, wpn_fps_upg_o_rx30 = { a_obj = "a_quite" }, wpn_fps_upg_o_rmr = { parent = "lower_reciever" }, wpn_fps_upg_o_spot = { a_obj = "a_quite" } }, default_blueprint = { "wpn_fps_pis_deagle_body_standard", "wpn_fps_pis_deagle_b_standard", "wpn_fps_pis_deagle_g_standard", "wpn_fps_pis_deagle_m_standard" }, uses_parts = { "wpn_fps_pis_deagle_body_standard", "wpn_fps_pis_deagle_b_standard", "wpn_fps_pis_deagle_b_long", "wpn_fps_pis_deagle_co_long", "wpn_fps_pis_deagle_co_short", "wpn_fps_pis_deagle_fg_rail", "wpn_fps_pis_deagle_g_bling", "wpn_fps_pis_deagle_g_ergo", "wpn_fps_pis_deagle_g_standard", "wpn_fps_pis_deagle_m_extended", "wpn_fps_pis_deagle_m_standard", "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front", "wpn_fps_pis_deagle_o_standard_front_long", "wpn_upg_o_marksmansight_rear", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_pis_deagle_extra", "wpn_fps_pis_rage_o_adapter", "wpn_fps_pis_deagle_lock", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rmr", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_deagle_b_legend", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_pis_deagle_b_modern" } } self.wpn_fps_pis_deagle_npc = deep_clone(self.wpn_fps_pis_deagle) self.wpn_fps_pis_deagle_npc.unit = "units/payday2/weapons/wpn_fps_pis_deagle/wpn_fps_pis_deagle_npc" self.wpn_fps_pis_deagle_primary = deep_clone(self.wpn_fps_pis_deagle) self.wpn_fps_pis_deagle_primary.unit = "units/payday2/weapons/wpn_fps_pis_deagle/wpn_fps_pis_deagle_primary" self.wpn_fps_pis_deagle_primary_npc = deep_clone(self.wpn_fps_pis_deagle_npc) self.wpn_fps_pis_deagle_primary_npc.unit = "units/payday2/weapons/wpn_fps_pis_deagle/wpn_fps_pis_deagle_primary_npc" end function WeaponFactoryTweakData:_init_mp5() self.parts.wpn_fps_smg_mp5_b_m5k = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mp5_b_m5k", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_b_m5k", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_b_mp5a4 = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mp5_b_mp5a4", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_b_mp5a4", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_b_mp5a5 = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mp5_b_mp5a5", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_b_mp5a5", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_b_mp5sd = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mp5_b_mp5sd", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_b_mp5sd", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_body_mp5 = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mp5_body_mp5", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_body_mp5", stats = { value = 1 }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_mp5_body_rail = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_mp5_body_rail", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_body_rail", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_fg_mp5a4 = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_mp5_fg_mp5a4", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_fg_mp5a4", stats = { value = 1 }, adds = { "wpn_fps_smg_mp5_b_mp5a5" }, animations = { reload = "reload" } } self.parts.wpn_fps_smg_mp5_fg_m5k = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_mp5_fg_m5k", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_fg_m5k", pcs = { 20, 30, 40 }, stats = { value = 4, spread_moving = 3, recoil = -3, concealment = 3 }, adds = { "wpn_fps_smg_mp5_b_m5k" }, animations = { reload = "reload" }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_smg_mp5_fg_mp5a5 = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_mp5_fg_mp5a5", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_fg_mp5a5", pcs = { 20, 30, 40 }, stats = { value = 5, spread_moving = -2, recoil = 2, concealment = -3 }, adds = { "wpn_fps_smg_mp5_b_mp5a5" }, animations = { reload = "reload" }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_smg_mp5_fg_mp5sd = { type = "foregrip", a_obj = "a_fg", sub_type = "silencer", name_id = "bm_wp_mp5_fg_mp5sd", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_fg_mp5sd", pcs = { 20, 30, 40 }, stats = { alert_size = 12, recoil = 3, damage = -4, suppression = 12, value = 10, spread_moving = 1, concealment = 1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, adds = { "wpn_fps_smg_mp5_b_mp5sd" }, forbids = { "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" }, animations = { reload = "reload" } } self.parts.wpn_fps_smg_mp5_m_drum = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_mp5_m_drum", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_m_drum", stats = { value = 5 } } self.parts.wpn_fps_smg_mp5_m_std = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_mp5_m_std", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_m_std", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_s_adjust = { unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_s_adjust", a_obj = "a_s", type = "stock", name_id = "bm_wp_mp5_s_adjust", pcs = { 20, 30, 40 }, stats = { value = 3, spread_moving = 1, concealment = 3 } } self.parts.wpn_fps_smg_mp5_s_ring = { unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_s_ring", a_obj = "a_s", type = "stock", name_id = "bm_wp_mp5_s_ring", pcs = { 20, 30, 40 }, stats = { value = 3, spread_moving = 4, recoil = -3, concealment = 4 } } self.parts.wpn_fps_smg_mp5_s_solid = { a_obj = "a_s", type = "stock", name_id = "bm_wp_mp5_s_solid", unit = "units/payday2/weapons/wpn_fps_smg_mp5_pts/wpn_fps_smg_mp5_s_solid", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_body_mp5.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_body_mp5" self.parts.wpn_fps_smg_mp5_body_rail.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_body_rail" self.parts.wpn_fps_smg_mp5_fg_m5k.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_fg_mp5k" self.parts.wpn_fps_smg_mp5_fg_mp5a4.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_fg_mp5a4" self.parts.wpn_fps_smg_mp5_fg_mp5a5.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_fg_mp5a5" self.parts.wpn_fps_smg_mp5_fg_mp5sd.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_fg_mp5sd" self.parts.wpn_fps_smg_mp5_m_drum.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_m_drum" self.parts.wpn_fps_smg_mp5_m_std.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_m_std" self.parts.wpn_fps_smg_mp5_s_adjust.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_s_adjust" self.parts.wpn_fps_smg_mp5_s_ring.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_s_ring" self.parts.wpn_fps_smg_mp5_s_solid.third_unit = "units/payday2/weapons/wpn_third_smg_mp5_pts/wpn_third_smg_mp5_s_solid" self.wpn_fps_smg_mp5 = { unit = "units/payday2/weapons/wpn_fps_smg_mp5/wpn_fps_smg_mp5", optional_types = { "barrel_ext", "gadget", "sight", "vertical_grip" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_mp5_body_rail" } }, default_blueprint = { "wpn_fps_smg_mp5_body_mp5", "wpn_fps_smg_mp5_fg_mp5a4", "wpn_fps_smg_mp5_m_std", "wpn_fps_smg_mp5_s_solid" }, uses_parts = { "wpn_fps_smg_mp5_body_mp5", "wpn_fps_smg_mp5_fg_m5k", "wpn_fps_smg_mp5_fg_mp5a4", "wpn_fps_smg_mp5_fg_mp5a5", "wpn_fps_smg_mp5_fg_mp5sd", "wpn_fps_smg_mp5_m_std", "wpn_fps_smg_mp5_m_drum", "wpn_fps_smg_mp5_s_ring", "wpn_fps_smg_mp5_s_adjust", "wpn_fps_smg_mp5_s_solid", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_smg_mp5_m_straight", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_smg_mp5_fg_flash", "wpn_fps_smg_mp5_s_folding", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_mp5_npc = deep_clone(self.wpn_fps_smg_mp5) self.wpn_fps_smg_mp5_npc.unit = "units/payday2/weapons/wpn_fps_smg_mp5/wpn_fps_smg_mp5_npc" end function WeaponFactoryTweakData:_init_colt_1911() self.parts.wpn_fps_pis_1911_b_long = { a_obj = "a_b", type = "slide", name_id = "bm_wp_1911_b_long", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = 2, damage = 1, concealment = -2, spread = 2, spread_moving = -2 }, adds = { "wpn_fps_pis_1911_o_long" }, override = { wpn_upg_o_marksmansight_front = { a_obj = "a_ol" } }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_1911_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_1911_b_standard", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_b_standard", stats = { value = 1 }, adds = { "wpn_fps_pis_1911_o_standard" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_1911_b_vented = { unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_b_vented", a_obj = "a_b", type = "slide", name_id = "bm_wp_1911_b_vented", pcs = { 10, 20, 30, 40 }, stats = { recoil = 2, spread = -1, damage = 1, suppression = -2, value = 1, spread_moving = 2 }, adds = { "wpn_fps_pis_1911_o_standard" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_1911_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_1911_body_standard", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_body_standard", stats = { value = 1 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_pis_1911_co_1 = { parent = "slide", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_co_1", type = "barrel_ext", name_id = "bm_wp_1911_co_1", a_obj = "a_co", pcs = { 10, 20, 30, 40 }, stats = { recoil = 1, concealment = -1, damage = 1, suppression = -5, value = 5, spread_moving = -1 } } self.parts.wpn_fps_pis_1911_co_2 = { parent = "slide", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_co_2", type = "barrel_ext", name_id = "bm_wp_1911_co_2", a_obj = "a_co", pcs = { 10, 20, 30, 40 }, stats = { recoil = 2, concealment = -1, damage = 2, suppression = -1, value = 2, spread_moving = 1 } } self.parts.wpn_fps_pis_1911_g_bling = { unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_g_bling", a_obj = "a_g", type = "grip", name_id = "bm_wp_1911_g_bling", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = -1, value = 10 } } self.parts.wpn_fps_pis_1911_g_ergo = { unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_g_ergo", a_obj = "a_g", type = "grip", name_id = "bm_wp_1911_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 1, recoil = 1 } } self.parts.wpn_fps_pis_1911_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_1911_g_standard", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_1911_m_extended = { unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_m_extended", a_obj = "a_m", type = "magazine", name_id = "bm_wp_1911_m_extended", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 3 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_1911_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_1911_m_standard", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_1911_o_long = { a_obj = "a_o", type = "extra", name_id = "bm_wp_1911_o_long", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_o_long", stats = { value = 1 } } self.parts.wpn_fps_pis_1911_o_standard = { a_obj = "a_o", type = "extra", name_id = "bm_wp_1911_o_standard", unit = "units/payday2/weapons/wpn_fps_pis_1911_pts/wpn_fps_pis_1911_o_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_1911_b_long.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_b_long" self.parts.wpn_fps_pis_1911_b_standard.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_b_standard" self.parts.wpn_fps_pis_1911_b_vented.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_b_vented" self.parts.wpn_fps_pis_1911_body_standard.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_body_standard" self.parts.wpn_fps_pis_1911_co_1.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_co_1" self.parts.wpn_fps_pis_1911_co_2.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_co_2" self.parts.wpn_fps_pis_1911_g_bling.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_g_bling" self.parts.wpn_fps_pis_1911_g_ergo.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_g_ergo" self.parts.wpn_fps_pis_1911_g_standard.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_g_standard" self.parts.wpn_fps_pis_1911_m_extended.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_m_extended" self.parts.wpn_fps_pis_1911_m_standard.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_m_standard" self.parts.wpn_fps_pis_1911_o_long.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_o_long" self.parts.wpn_fps_pis_1911_o_standard.third_unit = "units/payday2/weapons/wpn_third_pis_1911_pts/wpn_third_pis_1911_o_standard" self.wpn_fps_pis_1911 = { unit = "units/payday2/weapons/wpn_fps_pis_1911/wpn_fps_pis_1911", optional_types = { "barrel_ext", "gadget", "sight" }, animations = { reload = "reload", fire = "recoil", magazine_empty = "last_recoil" }, override = { wpn_upg_o_marksmansight_rear = { a_obj = "a_o", forbids = table.list_add(self.parts.wpn_upg_o_marksmansight_rear.forbids, { "wpn_fps_pis_1911_o_long", "wpn_fps_pis_1911_o_standard" }) }, wpn_upg_o_marksmansight_front = { a_obj = "a_os" }, wpn_fps_upg_o_rmr = { parent = "slide" } }, default_blueprint = { "wpn_fps_pis_1911_body_standard", "wpn_fps_pis_1911_b_standard", "wpn_fps_pis_1911_g_standard", "wpn_fps_pis_1911_m_standard" }, uses_parts = { "wpn_fps_pis_1911_body_standard", "wpn_fps_pis_1911_co_1", "wpn_fps_pis_1911_co_2", "wpn_fps_pis_1911_g_standard", "wpn_fps_pis_1911_g_bling", "wpn_fps_pis_1911_g_ergo", "wpn_fps_pis_1911_b_standard", "wpn_fps_pis_1911_b_long", "wpn_fps_pis_1911_b_vented", "wpn_fps_pis_1911_m_standard", "wpn_fps_pis_1911_m_extended", "wpn_fps_pis_1911_o_standard", "wpn_fps_pis_1911_o_long", "wpn_upg_o_marksmansight_rear", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_1911_g_engraved", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_1911_m_big" } } self.wpn_fps_pis_1911_npc = deep_clone(self.wpn_fps_pis_1911) self.wpn_fps_pis_1911_npc.unit = "units/payday2/weapons/wpn_fps_pis_1911/wpn_fps_pis_1911_npc" self.wpn_fps_pis_1911_primary = deep_clone(self.wpn_fps_pis_1911) self.wpn_fps_pis_1911_primary.unit = "units/payday2/weapons/wpn_fps_pis_1911/wpn_fps_pis_1911_primary" self.wpn_fps_pis_1911_primary_npc = deep_clone(self.wpn_fps_pis_1911_npc) self.wpn_fps_pis_1911_primary_npc.unit = "units/payday2/weapons/wpn_fps_pis_1911/wpn_fps_pis_1911_primary_npc" end function WeaponFactoryTweakData:_init_mac10() self.parts.wpn_fps_smg_mac10_b_dummy = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mac10_b_dummy", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_b_dummy", stats = { value = 1 } } self.parts.wpn_fps_smg_mac10_body_mac10 = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mac10_body_mac10", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_body_mac10", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_mac10_body_ris = { a_obj = "a_body", type = "extra", name_id = "bm_wp_mac10_body_ris", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_body_ris", pcs = { 10, 20, 30, 40 }, stats = { value = 5, recoil = 2, spread_moving = -2, concealment = -2 }, adds = { "wpn_upg_o_marksmansight_rear_vanilla" }, stance_mod = { wpn_fps_smg_mac10 = { translation = Vector3(0, 0, -1.8), rotation = Rotation(0, 0, 0) } }, forbids = { "wpn_fps_addon_ris", "wpn_fps_smg_mac10_body_ris_special" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_mac10_body_ris_special = { a_obj = "a_o", type = "extra", name_id = "bm_wp_mac10_body_ris_special", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_body_ris_special", stats = { value = 1 }, stance_mod = { wpn_fps_smg_mac10 = { translation = Vector3(0, 0, -1.8), rotation = Rotation(0, 0, 0) } } } self.parts.wpn_fps_smg_mac10_m_extended = { unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_m_extended", type = "magazine", name_id = "bm_wp_mac10_m_extended", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 4, value = 2, spread_moving = -2, concealment = -2, recoil = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mac10_m_short = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_mac10_m_short", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_m_short", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mac10_ris_dummy = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mac10_ris_dummy", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_ris_dummy", stats = { value = 1 }, adds = { "wpn_fps_smg_mac10_body_mac10", "wpn_fps_smg_mac10_body_ris" } } self.parts.wpn_fps_smg_mac10_s_fold = { a_obj = "a_s", type = "stock", name_id = "bm_wp_mac10_s_fold", unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_s_fold", stats = { value = 1 } } self.parts.wpn_fps_smg_mac10_s_skel = { unit = "units/payday2/weapons/wpn_fps_smg_mac10_pts/wpn_fps_smg_mac10_s_skel", a_obj = "a_s", type = "stock", name_id = "bm_wp_mac10_s_skel", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = -3, value = 1, concealment = -2, spread = 1, recoil = 3 } } self.parts.wpn_fps_smg_mac10_body_mac10.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_body_mac10" self.parts.wpn_fps_smg_mac10_body_ris.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_body_ris" self.parts.wpn_fps_smg_mac10_body_ris_special.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_body_ris_special" self.parts.wpn_fps_smg_mac10_m_extended.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_m_extended" self.parts.wpn_fps_smg_mac10_m_short.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_m_short" self.parts.wpn_fps_smg_mac10_s_fold.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_s_fold" self.parts.wpn_fps_smg_mac10_s_skel.third_unit = "units/payday2/weapons/wpn_third_smg_mac10_pts/wpn_third_smg_mac10_s_skel" self.wpn_fps_smg_mac10 = { unit = "units/payday2/weapons/wpn_fps_smg_mac10/wpn_fps_smg_mac10", optional_types = { "barrel_ext", "gadget" }, override = { wpn_upg_o_marksmansight_rear_vanilla = { a_obj = "a_or" }, wpn_upg_o_marksmansight_front_vanilla = { a_obj = "a_of" } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_mac10_body_ris_special" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_mac10_body_ris_special" } }, default_blueprint = { "wpn_fps_smg_mac10_body_mac10", "wpn_fps_smg_mac10_b_dummy", "wpn_fps_smg_mac10_m_short", "wpn_fps_smg_mac10_s_fold" }, uses_parts = { "wpn_fps_smg_mac10_b_dummy", "wpn_fps_smg_mac10_body_ris", "wpn_fps_smg_mac10_ris_dummy", "wpn_fps_smg_mac10_m_extended", "wpn_fps_smg_mac10_m_short", "wpn_fps_smg_mac10_body_mac10", "wpn_fps_smg_mac10_s_fold", "wpn_fps_smg_mac10_s_skel", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_upg_o_marksmansight_rear_vanilla", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_smg_cobray_ns_silencer", "wpn_fps_smg_cobray_ns_barrelextension", "wpn_fps_upg_o_spot", "wpn_fps_smg_mac10_m_quick", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_smg_mac10_body_modern" } } self.wpn_fps_smg_mac10_npc = deep_clone(self.wpn_fps_smg_mac10) self.wpn_fps_smg_mac10_npc.unit = "units/payday2/weapons/wpn_fps_smg_mac10/wpn_fps_smg_mac10_npc" end function WeaponFactoryTweakData:_init_r870() self.parts.wpn_fps_shot_r870_b_long = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_r870_b_long", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_b_long", stats = { value = 1 } } self.parts.wpn_fps_shot_r870_body_rack = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_body_rack", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_r870_body_rack", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = -1, concealment = -2, extra_ammo = 1 } } self.parts.wpn_fps_shot_r870_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_r870_body_standard", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_body_standard", stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_shot_r870_fg_big = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_r870_fg_big", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_fg_big", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil_zoom" } } self.parts.wpn_fps_shot_r870_fg_railed = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_r870_fg_railed", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_fg_railed", stats = { value = 1, spread_moving = 2 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil_zoom" } } self.parts.wpn_fps_shot_r870_fg_small = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_r870_fg_small", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_fg_small", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil_zoom" } } self.parts.wpn_fps_shot_r870_fg_wood = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_fg_wood", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_r870_fg_wood", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = 1, spread_moving = 0 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil_zoom" } } self.parts.wpn_fps_shot_r870_m_extended = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_m_extended", a_obj = "a_m", type = "magazine", name_id = "bm_wp_r870_m_extended", pcs = { 10, 20, 30, 40 }, stats = { concealment = -1, spread_moving = -1, value = 6, extra_ammo = 1 } } self.parts.wpn_fps_shot_r870_s_folding = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_folding", a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_folding", pcs = { 10, 20, 30, 40 }, stats = { value = 9, spread_moving = 1, recoil = -1, concealment = 1 }, forbids = { "wpn_fps_shot_r870_ris_special", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_spot" } } self.parts.wpn_fps_shot_r870_s_m4 = { a_obj = "a_s", type = "stock_adapter", name_id = "bm_wp_r870_s_m4", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_m4", stats = { value = 3 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_r870_s_solid = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_solid", a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_solid", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = -2, recoil = 1, concealment = -1 } } self.parts.wpn_fps_shot_r870_s_nostock_big = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_nostock_big", a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_nostock_big", pcs = { 10, 20, 30, 40 }, stats = { value = 4, spread_moving = 1, recoil = -3, concealment = 1 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_r870_s_nostock_single = { a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_nostock_single", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_nostock_single", stats = { value = 3, spread_moving = 2, recoil = -3, concealment = 2 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_r870_s_nostock = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_nostock", a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_nostock", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 1, recoil = -3, concealment = 3 } } self.parts.wpn_fps_shot_r870_s_solid_big = { unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_solid_big", a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_solid_big", pcs = { 10, 20, 30, 40 }, stats = { value = 4, spread_moving = -2, recoil = 2, concealment = -2 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_r870_s_solid_single = { a_obj = "a_s", type = "stock", name_id = "bm_wp_r870_s_solid_single", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_s_solid_single", stats = { value = 3, spread_moving = -1, recoil = 1, concealment = -1 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_r870_gadget_rail = { a_obj = "a_fl", type = "extra", name_id = "bm_wp_r870_s_solid_single", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_gadget_rail", forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_shot_r870_ris_special = { name_id = "bm_wp_r870_s_solid_single", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_ris_special", a_obj = "a_o", type = "extra" } self.parts.wpn_fps_shot_r870_b_long.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_b_long" self.parts.wpn_fps_shot_r870_body_rack.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_body_rack" self.parts.wpn_fps_shot_r870_body_standard.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_body_standard" self.parts.wpn_fps_shot_r870_fg_big.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_fg_big" self.parts.wpn_fps_shot_r870_fg_railed.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_fg_railed" self.parts.wpn_fps_shot_r870_fg_small.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_fg_small" self.parts.wpn_fps_shot_r870_fg_wood.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_fg_wood" self.parts.wpn_fps_shot_r870_m_extended.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_m_extended" self.parts.wpn_fps_shot_r870_s_folding.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_folding" self.parts.wpn_fps_shot_r870_s_m4.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_m4" self.parts.wpn_fps_shot_r870_s_solid.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_solid" self.parts.wpn_fps_shot_r870_s_solid_big.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_solid_big" self.parts.wpn_fps_shot_r870_s_solid_single.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_solid_single" self.parts.wpn_fps_shot_r870_ris_special.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_ris_special" self.parts.wpn_fps_shot_r870_gadget_rail.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_gadget_rail" self.parts.wpn_fps_shot_r870_s_nostock.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_nostock" self.parts.wpn_fps_shot_r870_s_nostock_big.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_nostock_big" self.parts.wpn_fps_shot_r870_s_nostock_single.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_s_nostock_single" self.parts.wpn_fps_shot_r870_s_nostock_vanilla = deep_clone(self.parts.wpn_fps_shot_r870_s_nostock) self.parts.wpn_fps_shot_r870_s_nostock_vanilla.stats = nil self.parts.wpn_fps_shot_r870_s_nostock_vanilla.pcs = nil self.parts.wpn_fps_shot_r870_s_solid_vanilla = deep_clone(self.parts.wpn_fps_shot_r870_s_solid) self.parts.wpn_fps_shot_r870_s_solid_vanilla.stats = nil self.parts.wpn_fps_shot_r870_s_solid_vanilla.pcs = nil self.parts.wpn_fps_shot_r870_fg_railed_vanilla = deep_clone(self.parts.wpn_fps_shot_r870_fg_railed) self.parts.wpn_fps_shot_r870_fg_railed_vanilla.stats = nil self.parts.wpn_fps_shot_r870_fg_railed_vanilla.pcs = nil self.wpn_fps_shot_r870 = { unit = "units/payday2/weapons/wpn_fps_shot_r870/wpn_fps_shot_r870", optional_types = { "barrel_ext", "gadget", "magazine" }, stock_adapter = "wpn_fps_shot_r870_s_m4", adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_shot_r870_body_standard", "wpn_fps_shot_r870_b_long", "wpn_fps_shot_r870_fg_big", "wpn_fps_shot_r870_s_solid_vanilla", "wpn_fps_upg_m4_g_standard" }, uses_parts = { "wpn_fps_shot_r870_body_rack", "wpn_fps_shot_r870_body_standard", "wpn_fps_shot_r870_b_long", "wpn_fps_shot_r870_fg_big", "wpn_fps_shot_r870_fg_railed", "wpn_fps_shot_r870_fg_wood", "wpn_fps_shot_r870_m_extended", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_shot_r870_s_folding", "wpn_fps_shot_r870_s_m4", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_fps_shot_r870_s_nostock_big", "wpn_fps_shot_r870_s_nostock_single", "wpn_fps_shot_r870_s_nostock", "wpn_fps_shot_r870_s_solid_vanilla", "wpn_fps_shot_r870_s_solid_big", "wpn_fps_shot_r870_s_solid_single", "wpn_fps_upg_m4_g_standard", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_shot_r870_b_legendary", "wpn_fps_shot_r870_s_legendary", "wpn_fps_shot_r870_fg_legendary", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_shot_r870_npc = deep_clone(self.wpn_fps_shot_r870) self.wpn_fps_shot_r870_npc.unit = "units/payday2/weapons/wpn_fps_shot_r870/wpn_fps_shot_r870_npc" end function WeaponFactoryTweakData:_init_serbu() self.parts.wpn_fps_shot_shorty_m_extended_short = { unit = "units/payday2/weapons/wpn_fps_shot_shorty_pts/wpn_fps_shot_shorty_m_extended_short", a_obj = "a_m", type = "magazine", name_id = "bm_wp_shorty_m_extended_short", pcs = { 20, 30, 40 }, stats = { value = 1, extra_ammo = 1 } } self.parts.wpn_fps_shot_r870_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_serbu_b_short", unit = "units/payday2/weapons/wpn_fps_shot_r870_pts/wpn_fps_shot_r870_b_short", stats = { value = 1 } } self.parts.wpn_fps_shot_shorty_s_nostock_short = { unit = "units/payday2/weapons/wpn_fps_shot_shorty_pts/wpn_fps_shot_shorty_s_nostock_short", a_obj = "a_s", type = "stock", name_id = "bm_wp_serbu_s_nostock_short", pcs = { 20, 30, 40 }, stats = { value = 4, spread_moving = 2, recoil = -4, concealment = 3 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_shorty_s_solid_short = { unit = "units/payday2/weapons/wpn_fps_shot_shorty_pts/wpn_fps_shot_shorty_s_solid_short", a_obj = "a_s", type = "stock", name_id = "bm_wp_serbu_s_solid_short", pcs = { 20, 30, 40 }, stats = { value = 3, spread_moving = -2, recoil = 2, concealment = -3 }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_shot_shorty_m_extended_short.third_unit = "units/payday2/weapons/wpn_third_shot_shorty_pts/wpn_third_shot_shorty_m_extended_short" self.parts.wpn_fps_shot_shorty_s_nostock_short.third_unit = "units/payday2/weapons/wpn_third_shot_shorty_pts/wpn_third_shot_shorty_s_nostock_short" self.parts.wpn_fps_shot_shorty_s_solid_short.third_unit = "units/payday2/weapons/wpn_third_shot_shorty_pts/wpn_third_shot_shorty_s_solid_short" self.wpn_fps_shot_serbu = { unit = "units/payday2/weapons/wpn_fps_shot_shorty/wpn_fps_shot_shorty", optional_types = { "barrel_ext", "gadget", "magazine" }, stock_adapter = "wpn_fps_shot_r870_s_m4", override = { wpn_fps_upg_a_slug = { desc_id = "bm_wp_upg_a_slug2_desc", custom_stats = { armor_piercing_add = 1, can_shoot_through_shield = true, can_shoot_through_wall = true, damage_far_mul = 1.15, damage_near_mul = 2, can_shoot_through_enemy = true, rays = 1 } }, wpn_fps_upg_a_custom = { desc_id = "bm_wp_upg_a_custom2_desc", custom_stats = {} }, wpn_fps_upg_a_custom_free = { desc_id = "bm_wp_upg_a_custom2_desc", custom_stats = {} } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_shot_r870_body_standard", "wpn_fps_shot_r870_b_short", "wpn_fps_shot_r870_fg_small", "wpn_fps_shot_r870_s_nostock_vanilla", "wpn_fps_upg_m4_g_standard" }, uses_parts = { "wpn_fps_shot_r870_body_rack", "wpn_fps_shot_r870_body_standard", "wpn_fps_shot_r870_b_short", "wpn_fps_shot_r870_fg_railed", "wpn_fps_shot_r870_fg_small", "wpn_fps_shot_shorty_m_extended_short", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_shot_r870_s_folding", "wpn_fps_shot_r870_s_m4", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_fps_shot_shorty_s_nostock_short", "wpn_fps_shot_r870_s_nostock_single", "wpn_fps_shot_r870_s_nostock_vanilla", "wpn_fps_shot_r870_s_solid", "wpn_fps_shot_shorty_s_solid_short", "wpn_fps_shot_r870_s_solid_single", "wpn_fps_upg_m4_g_standard", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_shot_shorty_b_legendary", "wpn_fps_shot_shorty_s_legendary", "wpn_fps_shot_shorty_fg_legendary", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_shot_serbu_npc = deep_clone(self.wpn_fps_shot_serbu) self.wpn_fps_shot_serbu_npc.unit = "units/payday2/weapons/wpn_fps_shot_shorty/wpn_fps_shot_shorty_npc" self.parts.wpn_fps_shot_r870_b_short.third_unit = "units/payday2/weapons/wpn_third_shot_r870_pts/wpn_third_shot_r870_b_short" end function WeaponFactoryTweakData:_init_g17() self.parts.wpn_fps_pis_g17_b_standard = { a_obj = "a_b", type = "slide", unit = "units/payday2/weapons/wpn_fps_pis_g17_pts/wpn_fps_pis_g17_b_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_g17_body_standard = { unit = "units/payday2/weapons/wpn_fps_pis_g17_pts/wpn_fps_pis_g17_body_standard", a_obj = "a_body", type = "lower_reciever", stats = { value = 1 } } self.parts.wpn_fps_pis_g17_m_standard = { a_obj = "a_m", type = "magazine", unit = "units/payday2/weapons/wpn_fps_pis_g17_pts/wpn_fps_pis_g17_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_g17_body_standard.third_unit = "units/payday2/weapons/wpn_third_pis_g17_pts/wpn_third_pis_g17_body_standard" self.parts.wpn_fps_pis_g17_b_standard.third_unit = "units/payday2/weapons/wpn_third_pis_g17_pts/wpn_third_pis_g17_b_standard" self.parts.wpn_fps_pis_g17_m_standard.third_unit = "units/payday2/weapons/wpn_third_pis_g17_pts/wpn_third_pis_g17_m_standard" self.wpn_fps_pis_g17 = { unit = "units/payday2/weapons/wpn_fps_pis_g17/wpn_fps_pis_g17", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" } }, default_blueprint = { "wpn_fps_pis_g17_body_standard", "wpn_fps_pis_g17_b_standard", "wpn_fps_pis_g17_m_standard" }, uses_parts = { "wpn_fps_pis_g17_body_standard", "wpn_fps_pis_g17_b_standard", "wpn_fps_pis_g17_m_standard", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_g18c_m_mag_33rnd" } } self.wpn_fps_pis_g17_npc = deep_clone(self.wpn_fps_pis_g17) self.wpn_fps_pis_g17_npc.unit = "units/payday2/weapons/wpn_fps_pis_g17/wpn_fps_pis_g17_npc" end function WeaponFactoryTweakData:_init_b92fs() self.parts.wpn_fps_pis_beretta_b_std = { a_obj = "a_b", type = "slide", name_id = "bm_wp_beretta_b_std", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_b_std", stats = { value = 1 } } self.parts.wpn_fps_pis_beretta_body_beretta = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_beretta_body_beretta", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_body_beretta", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_pis_beretta_body_rail = { a_obj = "a_body", type = "extra", name_id = "bm_wp_beretta_body_rail", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_body_rail", stats = { value = 1 } } self.parts.wpn_fps_pis_beretta_co_co1 = { parent = "slide", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_co_co1", type = "barrel_ext", name_id = "bm_wp_beretta_co_co1", a_obj = "a_co", pcs = { 10, 20, 30, 40 }, stats = { value = 4, spread_moving = 1, damage = 1, concealment = -2, spread = 1, recoil = 1 } } self.parts.wpn_fps_pis_beretta_co_co2 = { parent = "slide", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_co_co2", type = "barrel_ext", name_id = "bm_wp_beretta_co_co2", a_obj = "a_co", pcs = { 10, 20, 30, 40 }, stats = { concealment = -2, damage = 2, suppression = -5, value = 3, spread_moving = 2 } } self.parts.wpn_fps_pis_beretta_g_ergo = { unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_g_ergo", a_obj = "a_g", type = "grip", name_id = "bm_wp_beretta_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 1, recoil = 1 } } self.parts.wpn_fps_pis_beretta_g_std = { a_obj = "a_g", type = "grip", name_id = "bm_wp_beretta_g_std", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_g_std", stats = { value = 1 } } self.parts.wpn_fps_pis_beretta_m_extended = { unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_m_extended", type = "magazine", name_id = "bm_wp_beretta_m_extended", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 2, spread_moving = -2, concealment = -2, extra_ammo = 6 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_beretta_m_std = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_beretta_m_std", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_m_std", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_beretta_o_std = { a_obj = "a_o", type = "sight", name_id = "bm_wp_beretta_o_std", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_o_std", stats = { value = 1 } } self.parts.wpn_fps_pis_beretta_sl_brigadier = { unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_sl_brigadier", a_obj = "a_sl", type = "upper_reciever", name_id = "bm_wp_beretta_sl_brigadier", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, spread_moving = -2 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_beretta_sl_std = { a_obj = "a_sl", type = "upper_reciever", name_id = "bm_wp_beretta_sl_std", unit = "units/payday2/weapons/wpn_fps_pis_b92fs_pts/wpn_fps_pis_beretta_sl_std", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_beretta_body_beretta.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_body_beretta" self.parts.wpn_fps_pis_beretta_body_rail.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_body_rail" self.parts.wpn_fps_pis_beretta_co_co1.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_co_1" self.parts.wpn_fps_pis_beretta_co_co2.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_co_2" self.parts.wpn_fps_pis_beretta_g_ergo.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_g_ergo" self.parts.wpn_fps_pis_beretta_g_std.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_g_std" self.parts.wpn_fps_pis_beretta_m_extended.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_m_extended" self.parts.wpn_fps_pis_beretta_m_std.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_m_std" self.parts.wpn_fps_pis_beretta_o_std.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_o_std" self.parts.wpn_fps_pis_beretta_sl_brigadier.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_sl_brigadier" self.parts.wpn_fps_pis_beretta_sl_std.third_unit = "units/payday2/weapons/wpn_third_pis_b92fs_pts/wpn_third_pis_beretta_sl_std" self.wpn_fps_pis_beretta = { unit = "units/payday2/weapons/wpn_fps_pis_b92fs/wpn_fps_pis_beretta", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_o_rmr = { "wpn_fps_pis_beretta_o_std" } }, override = { wpn_upg_o_marksmansight_front = { a_obj = "a_os" }, wpn_fps_upg_o_rmr = { parent = "upper_reciever" }, wpn_fps_upg_pis_ns_flash = { parent = "lower_reciever" }, wpn_fps_upg_ns_pis_medium_slim = { parent = "lower_reciever" }, wpn_fps_upg_ns_ass_filter = { parent = "lower_reciever" }, wpn_fps_upg_ns_pis_jungle = { parent = "lower_reciever" } }, default_blueprint = { "wpn_fps_pis_beretta_body_beretta", "wpn_fps_pis_beretta_b_std", "wpn_fps_pis_beretta_g_std", "wpn_fps_pis_beretta_m_std", "wpn_fps_pis_beretta_o_std", "wpn_fps_pis_beretta_sl_std" }, uses_parts = { "wpn_fps_pis_beretta_b_std", "wpn_fps_pis_beretta_body_beretta", "wpn_fps_pis_beretta_body_rail", "wpn_fps_pis_beretta_co_co1", "wpn_fps_pis_beretta_co_co2", "wpn_fps_pis_beretta_g_ergo", "wpn_fps_pis_beretta_g_std", "wpn_fps_pis_beretta_m_extended", "wpn_fps_pis_beretta_m_std", "wpn_fps_pis_beretta_o_std", "wpn_upg_o_marksmansight_rear", "wpn_fps_pis_beretta_sl_std", "wpn_fps_pis_beretta_sl_brigadier", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_beretta_g_engraved", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_beretta_body_modern" } } self.wpn_fps_pis_beretta_npc = deep_clone(self.wpn_fps_pis_beretta) self.wpn_fps_pis_beretta_npc.unit = "units/payday2/weapons/wpn_fps_pis_b92fs/wpn_fps_pis_beretta_npc" self.wpn_fps_pis_beretta_primary = deep_clone(self.wpn_fps_pis_beretta) self.wpn_fps_pis_beretta_primary.unit = "units/payday2/weapons/wpn_fps_pis_b92fs/wpn_fps_pis_beretta_primary" self.wpn_fps_pis_beretta_primary_npc = deep_clone(self.wpn_fps_pis_beretta_npc) self.wpn_fps_pis_beretta_primary_npc.unit = "units/payday2/weapons/wpn_fps_pis_b92fs/wpn_fps_pis_beretta_primary_npc" end function WeaponFactoryTweakData:_init_huntsman() self.parts.wpn_fps_shot_huntsman_b_long = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_huntsman_b_long", unit = "units/payday2/weapons/wpn_fps_shot_huntsman_pts/wpn_fps_shot_huntsman_b_long", stats = { value = 1 }, animations = { reload_not_empty = "reload", reload = "reload" } } self.parts.wpn_fps_shot_huntsman_b_short = { unit = "units/payday2/weapons/wpn_fps_shot_huntsman_pts/wpn_fps_shot_huntsman_b_short", a_obj = "a_b", type = "barrel", name_id = "bm_wp_huntsman_b_short", pcs = { 10, 20, 30, 40 }, stats = { recoil = -4, value = 10, concealment = 10, spread = -4, spread_moving = 3 }, animations = { reload_not_empty = "reload", reload = "reload" } } self.parts.wpn_fps_shot_huntsman_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_huntsman_body_standard", unit = "units/payday2/weapons/wpn_fps_shot_huntsman_pts/wpn_fps_shot_huntsman_body_standard", stats = { value = 1 } } self.parts.wpn_fps_shot_huntsman_s_long = { a_obj = "a_s", type = "stock", name_id = "bm_wp_huntsman_s_long", unit = "units/payday2/weapons/wpn_fps_shot_huntsman_pts/wpn_fps_shot_huntsman_s_long", stats = { value = 1 } } self.parts.wpn_fps_shot_huntsman_s_short = { unit = "units/payday2/weapons/wpn_fps_shot_huntsman_pts/wpn_fps_shot_huntsman_s_short", a_obj = "a_s", type = "stock", name_id = "bm_wp_huntsman_s_short", pcs = { 10, 20, 30, 40 }, stats = { recoil = -4, value = 10, concealment = 10, spread = -4, spread_moving = 3 } } self.parts.wpn_fps_shot_huntsman_b_long.third_unit = "units/payday2/weapons/wpn_third_shot_huntsman_pts/wpn_third_shot_huntsman_b_long" self.parts.wpn_fps_shot_huntsman_b_short.third_unit = "units/payday2/weapons/wpn_third_shot_huntsman_pts/wpn_third_shot_huntsman_b_short" self.parts.wpn_fps_shot_huntsman_body_standard.third_unit = "units/payday2/weapons/wpn_third_shot_huntsman_pts/wpn_third_shot_huntsman_body_standard" self.parts.wpn_fps_shot_huntsman_s_long.third_unit = "units/payday2/weapons/wpn_third_shot_huntsman_pts/wpn_third_shot_huntsman_s_long" self.parts.wpn_fps_shot_huntsman_s_short.third_unit = "units/payday2/weapons/wpn_third_shot_huntsman_pts/wpn_third_shot_huntsman_s_short" self.wpn_fps_shot_huntsman = { unit = "units/payday2/weapons/wpn_fps_shot_huntsman/wpn_fps_shot_huntsman", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_a_explosive = { custom_stats = { ignore_statistic = true, damage_far_mul = 2.5, damage_near_mul = 2, bullet_class = "InstantExplosiveBulletBase", rays = 1 } } }, default_blueprint = { "wpn_fps_shot_huntsman_body_standard", "wpn_fps_shot_huntsman_b_long", "wpn_fps_shot_huntsman_s_long" }, uses_parts = { "wpn_fps_shot_huntsman_body_standard", "wpn_fps_shot_huntsman_b_long", "wpn_fps_shot_huntsman_b_short", "wpn_fps_shot_huntsman_s_long", "wpn_fps_shot_huntsman_s_short" } } self.wpn_fps_shot_huntsman_npc = deep_clone(self.wpn_fps_shot_huntsman) self.wpn_fps_shot_huntsman_npc.unit = "units/payday2/weapons/wpn_fps_shot_huntsman/wpn_fps_shot_huntsman_npc" end function WeaponFactoryTweakData:_init_raging_bull() self.parts.wpn_fps_pis_rage_b_comp1 = { unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_b_comp1", a_obj = "a_b", type = "slide", name_id = "bm_wp_rage_b_comp1", pcs = { 10, 20, 30, 40 }, stats = { value = 3, spread_moving = -3, damage = 2, concealment = -3, spread = 2, recoil = 2 } } self.parts.wpn_fps_pis_rage_b_comp2 = { unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_b_comp2", a_obj = "a_b", type = "slide", name_id = "bm_wp_rage_b_comp2", pcs = { 10, 20, 30, 40 }, stats = { value = 4, spread_moving = 1, damage = 1, suppression = -4, spread = -1, recoil = 1, concealment = -3 } } self.parts.wpn_fps_pis_rage_b_long = { unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_b_long", a_obj = "a_b", type = "slide", name_id = "bm_wp_rage_b_long", pcs = { 10, 20, 30, 40 }, stats = { recoil = 3, value = 5, concealment = -3, spread = 3, spread_moving = -3 } } self.parts.wpn_fps_pis_rage_b_short = { unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_b_short", a_obj = "a_b", type = "slide", name_id = "bm_wp_rage_b_short", pcs = { 10, 20, 30, 40 }, stats = { recoil = -3, value = 3, concealment = 3, spread = -2, spread_moving = 3 } } self.parts.wpn_fps_pis_rage_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_rage_b_standard", unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_rage_body_smooth = { unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_body_smooth", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_rage_body_smooth", pcs = { 10, 20, 30, 40 }, stats = { value = 6, recoil = 1, concealment = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, adds = { "wpn_fps_pis_rage_lock" } } self.parts.wpn_fps_pis_rage_body_standard = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_rage_body_standard", unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, adds = { "wpn_fps_pis_rage_lock" } } self.parts.wpn_fps_pis_rage_g_ergo = { unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_g_ergo", a_obj = "a_g", type = "grip", name_id = "bm_wp_rage_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = 1, recoil = 1 } } self.parts.wpn_fps_pis_rage_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_rage_g_standard", unit = "units/payday2/weapons/wpn_fps_pis_rage_pts/wpn_fps_pis_rage_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_rage_b_comp1.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_b_comp1" self.parts.wpn_fps_pis_rage_b_comp2.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_b_comp2" self.parts.wpn_fps_pis_rage_b_long.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_b_long" self.parts.wpn_fps_pis_rage_b_short.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_b_short" self.parts.wpn_fps_pis_rage_b_standard.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_b_standard" self.parts.wpn_fps_pis_rage_body_smooth.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_body_smooth" self.parts.wpn_fps_pis_rage_body_standard.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_body_standard" self.parts.wpn_fps_pis_rage_g_ergo.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_g_ergo" self.parts.wpn_fps_pis_rage_g_standard.third_unit = "units/payday2/weapons/wpn_third_pis_rage_pts/wpn_third_pis_rage_g_standard" self.wpn_fps_pis_rage = { unit = "units/payday2/weapons/wpn_fps_pis_rage/wpn_fps_pis_rage", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_pis_rage_o_adapter" } }, default_blueprint = { "wpn_fps_pis_rage_body_standard", "wpn_fps_pis_rage_b_standard", "wpn_fps_pis_rage_g_standard" }, uses_parts = { "wpn_fps_pis_rage_body_standard", "wpn_fps_pis_rage_body_smooth", "wpn_fps_pis_rage_b_standard", "wpn_fps_pis_rage_b_short", "wpn_fps_pis_rage_b_long", "wpn_fps_pis_rage_b_comp1", "wpn_fps_pis_rage_b_comp2", "wpn_fps_pis_rage_g_standard", "wpn_fps_pis_rage_g_ergo", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_pis_ns_flash", "wpn_fps_pis_rage_extra", "wpn_fps_pis_rage_o_adapter", "wpn_fps_pis_rage_lock", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_pis_rage_npc = deep_clone(self.wpn_fps_pis_rage) self.wpn_fps_pis_rage_npc.unit = "units/payday2/weapons/wpn_fps_pis_rage/wpn_fps_pis_rage_npc" self.wpn_fps_pis_rage_primary = deep_clone(self.wpn_fps_pis_rage) self.wpn_fps_pis_rage_primary.unit = "units/payday2/weapons/wpn_fps_pis_rage/wpn_fps_pis_rage_primary" self.wpn_fps_pis_rage_primary_npc = deep_clone(self.wpn_fps_pis_rage_npc) self.wpn_fps_pis_rage_primary_npc.unit = "units/payday2/weapons/wpn_fps_pis_rage/wpn_fps_pis_rage_primary_npc" end function WeaponFactoryTweakData:_init_saw() self.parts.wpn_fps_saw_b_normal = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_saw_b_normal", unit = "units/payday2/weapons/wpn_fps_saw_pts/wpn_fps_saw_b_normal", stats = { value = 1 } } self.parts.wpn_fps_saw_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_saw_body_standard", unit = "units/payday2/weapons/wpn_fps_saw_pts/wpn_fps_saw_body_standard", stats = { value = 1 } } self.parts.wpn_fps_saw_m_blade = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_saw_m_blade", unit = "units/payday2/weapons/wpn_fps_saw_pts/wpn_fps_saw_m_blade", stats = { value = 1 }, animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.wpn_fps_saw = { unit = "units/payday2/weapons/wpn_fps_saw/wpn_fps_saw", optional_types = { "barrel_ext", "gadget" }, default_blueprint = { "wpn_fps_saw_b_normal", "wpn_fps_saw_body_standard", "wpn_fps_saw_m_blade" }, uses_parts = { "wpn_fps_saw_b_normal", "wpn_fps_saw_body_standard", "wpn_fps_saw_m_blade", "wpn_fps_saw_body_silent", "wpn_fps_saw_body_speed", "wpn_fps_saw_m_blade_durable", "wpn_fps_saw_m_blade_sharp" } } self.wpn_fps_saw_npc = deep_clone(self.wpn_fps_saw) self.wpn_fps_saw_npc.unit = "units/payday2/weapons/wpn_fps_saw/wpn_fps_saw_npc" self.parts.wpn_fps_saw_b_normal.third_unit = "units/payday2/weapons/wpn_third_saw_pts/wpn_third_saw_b_normal" self.parts.wpn_fps_saw_body_standard.third_unit = "units/payday2/weapons/wpn_third_saw_pts/wpn_third_saw_body_standard" self.parts.wpn_fps_saw_m_blade.third_unit = "units/payday2/weapons/wpn_third_saw_pts/wpn_third_saw_m_blade" self.wpn_fps_saw_secondary = deep_clone(self.wpn_fps_saw) self.wpn_fps_saw_secondary.unit = "units/payday2/weapons/wpn_fps_saw/wpn_fps_saw_secondary" self.wpn_fps_saw_secondary_npc = deep_clone(self.wpn_fps_saw) self.wpn_fps_saw_secondary_npc.unit = "units/payday2/weapons/wpn_fps_saw/wpn_fps_saw_secondary_npc" end function WeaponFactoryTweakData:_init_usp() self.parts.wpn_fps_pis_usp_body_standard = { unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_body_standard", a_obj = "a_body", type = "lower_reciever", stats = { value = 1 } } self.parts.wpn_fps_pis_usp_m_standard = { a_obj = "a_m", type = "magazine", unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_usp_fl_adapter = { unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_fl_adapter", a_obj = "a_fl", type = "extra", stats = { value = 1 } } self.parts.wpn_fps_pis_usp_body_standard.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_body_standard" self.parts.wpn_fps_pis_usp_m_standard.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_m_standard" self.parts.wpn_fps_pis_usp_fl_adapter.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_fl_adapter" self.parts.wpn_fps_pis_usp_b_tactical = { a_obj = "a_b", type = "slide", name_id = "bm_wp_pis_usp_b_tactical", unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_b_tactical", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_usp_b_expert = { unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_b_expert", dlc = "pd2_clan", type = "slide", name_id = "bm_wp_pis_usp_b_expert", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 3, value = 2, concealment = -1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_usp_b_match = { unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_b_match", dlc = "pd2_clan", type = "slide", name_id = "bm_wp_pis_usp_b_match", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = 2, spread = 1, concealment = -1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_usp_m_extended = { unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_m_extended", dlc = "pd2_clan", type = "magazine", name_id = "bm_wp_pis_usp_m_extended", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, stats = { value = 2, spread_moving = -1, concealment = -1, extra_ammo = 4 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_usp_b_expert.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_b_expert" self.parts.wpn_fps_pis_usp_b_match.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_b_match" self.parts.wpn_fps_pis_usp_b_tactical.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_b_tactical" self.parts.wpn_fps_pis_usp_m_extended.third_unit = "units/payday2/weapons/wpn_third_pis_usp_pts/wpn_third_pis_usp_m_extended" self.parts.wpn_fps_pis_usp_co_comp_1 = { parent = "slide", dlc = "pd2_clan", type = "barrel_ext", name_id = "bm_wp_usp_co_comp_1", a_obj = "a_co", unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_co_comp_1", pcs = { 10, 20, 30, 40 }, stats = { value = 4, concealment = -1, damage = 2, suppression = -5, spread = -1 } } self.parts.wpn_fps_pis_usp_co_comp_2 = { parent = "slide", dlc = "pd2_clan", type = "barrel_ext", name_id = "bm_wp_usp_co_comp_2", a_obj = "a_co", unit = "units/payday2/weapons/wpn_fps_pis_usp_pts/wpn_fps_pis_usp_co_comp_2", pcs = { 10, 20, 30, 40 }, stats = { spread = 2, recoil = 2, value = 5, concealment = -1 }, third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_co_2" } self.parts.wpn_fps_pis_usp_co_comp_1.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_co_1" self.wpn_fps_pis_usp = { unit = "units/payday2/weapons/wpn_fps_pis_usp/wpn_fps_pis_usp", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_usp_fl_adapter" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" } }, default_blueprint = { "wpn_fps_pis_usp_b_tactical", "wpn_fps_pis_usp_body_standard", "wpn_fps_pis_usp_m_standard" }, uses_parts = { "wpn_fps_pis_usp_b_match", "wpn_fps_pis_usp_body_standard", "wpn_fps_pis_usp_m_standard", "wpn_fps_pis_usp_m_extended", "wpn_fps_pis_usp_b_expert", "wpn_fps_pis_usp_b_tactical", "wpn_fps_pis_usp_co_comp_1", "wpn_fps_pis_usp_co_comp_2", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_usp_m_big" } } self.wpn_fps_pis_usp_npc = deep_clone(self.wpn_fps_pis_usp) self.wpn_fps_pis_usp_npc.unit = "units/payday2/weapons/wpn_fps_pis_usp/wpn_fps_pis_usp_npc" end function WeaponFactoryTweakData:_init_g22c() self.parts.wpn_fps_pis_g22c_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_g22c_body_standard", unit = "units/payday2/weapons/wpn_fps_pis_g22c_pts/wpn_fps_pis_g22c_body_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_g22c_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_g22c_b_standard", unit = "units/payday2/weapons/wpn_fps_pis_g22c_pts/wpn_fps_pis_g22c_b_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_g22c_b_long = { unit = "units/payday2/weapons/wpn_fps_pis_g22c_pts/wpn_fps_pis_g22c_b_long", dlc = "pd2_clan", type = "slide", name_id = "bm_wp_g22c_b_long", a_obj = "a_sl", pcs = { 10, 20, 30, 40 }, stats = { value = 5, spread_moving = 1, damage = 1, suppression = -2, spread = -1, recoil = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_g22c_b_standard.third_unit = "units/payday2/weapons/wpn_third_pis_g22c_pts/wpn_third_pis_g22c_b_standard" self.parts.wpn_fps_pis_g22c_b_long.third_unit = "units/payday2/weapons/wpn_third_pis_g22c_pts/wpn_third_pis_g22c_b_long" self.parts.wpn_fps_pis_g22c_body_standard.third_unit = "units/payday2/weapons/wpn_third_pis_g22c_pts/wpn_third_pis_g22c_body_standard" self.wpn_fps_pis_g22c = { unit = "units/payday2/weapons/wpn_fps_pis_g22c/wpn_fps_pis_g22c", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_pis_g26_g_gripforce = { a_obj = "a_g_2" }, wpn_fps_pis_g26_g_laser = { a_obj = "a_g_2" } }, default_blueprint = { "wpn_fps_pis_g22c_b_standard", "wpn_fps_pis_g22c_body_standard", "wpn_fps_pis_g18c_m_mag_17rnd" }, uses_parts = { "wpn_fps_pis_g22c_b_standard", "wpn_fps_pis_g22c_b_long", "wpn_fps_pis_g22c_body_standard", "wpn_fps_pis_g18c_g_ergo", "wpn_fps_pis_g18c_co_1", "wpn_fps_pis_g18c_co_comp_2", "wpn_fps_pis_g18c_m_mag_33rnd", "wpn_fps_pis_g18c_m_mag_17rnd", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_g22c_npc = deep_clone(self.wpn_fps_pis_g22c) self.wpn_fps_pis_g22c_npc.unit = "units/payday2/weapons/wpn_fps_pis_g22c/wpn_fps_pis_g22c_npc" end function WeaponFactoryTweakData:_init_judge() self.parts.wpn_fps_pis_judge_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_judge_body_standard", unit = "units/pd2_million/weapons/wpn_fps_pis_judge_pts/wpn_fps_pis_judge_body_standard", stats = { value = 1 }, forbids = { "wpn_fps_addon_ris" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_pis_judge_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_judge_b_standard", unit = "units/pd2_million/weapons/wpn_fps_pis_judge_pts/wpn_fps_pis_judge_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_judge_fl_adapter = { a_obj = "a_fl_body", type = "extra", name_id = "bm_wp_judge_b_standard", unit = "units/pd2_million/weapons/wpn_fps_pis_judge_pts/wpn_fps_pis_judge_fl_adapter", stats = { value = 1 } } self.parts.wpn_fps_pis_judge_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_judge_b_standard", unit = "units/pd2_million/weapons/wpn_fps_pis_judge_pts/wpn_fps_pis_judge_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_judge_body_standard.third_unit = "units/pd2_million/weapons/wpn_third_pis_judge_pts/wpn_third_pis_judge_body_standard" self.parts.wpn_fps_pis_judge_b_standard.third_unit = "units/pd2_million/weapons/wpn_third_pis_judge_pts/wpn_third_pis_judge_b_standard" self.parts.wpn_fps_pis_judge_fl_adapter.third_unit = "units/pd2_million/weapons/wpn_third_pis_judge_pts/wpn_third_pis_judge_fl_adapter" self.parts.wpn_fps_pis_judge_g_standard.third_unit = "units/pd2_million/weapons/wpn_third_pis_judge_pts/wpn_third_pis_judge_g_standard" self.wpn_fps_pis_judge = { unit = "units/pd2_million/weapons/wpn_fps_pis_judge/wpn_fps_pis_judge", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_ns_shot_shark = { parent = "slide" }, wpn_fps_upg_ns_shot_thick = { parent = "slide" }, wpn_fps_upg_shot_ns_king = { parent = "slide" }, wpn_fps_upg_ns_sho_salvo_large = { parent = "slide" }, wpn_fps_upg_ns_duck = { parent = "slide" }, wpn_fps_upg_a_piercing = { custom_stats = { damage_near_mul = 2, armor_piercing_add = 1, damage_far_mul = 1.7 } }, wpn_fps_upg_a_explosive = { custom_stats = { ignore_statistic = true, damage_far_mul = 2.5, damage_near_mul = 2, bullet_class = "InstantExplosiveBulletBase", rays = 1 } } }, adds = { wpn_fps_upg_fl_ass_laser = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_o_specter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_pis_rage_o_adapter" } }, default_blueprint = { "wpn_fps_pis_judge_body_standard", "wpn_fps_pis_judge_b_standard", "wpn_fps_pis_judge_g_standard" }, uses_parts = { "wpn_fps_pis_judge_body_standard", "wpn_fps_pis_judge_b_standard", "wpn_fps_pis_judge_g_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_pis_judge_b_legend", "wpn_fps_pis_judge_g_legend", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_pis_judge_body_modern" } } self.wpn_fps_pis_judge_npc = deep_clone(self.wpn_fps_pis_judge) self.wpn_fps_pis_judge_npc.unit = "units/pd2_million/weapons/wpn_fps_pis_judge/wpn_fps_pis_judge_npc" end function WeaponFactoryTweakData:_init_m45() self.parts.wpn_fps_smg_m45_m_mag = { texture_bundle_folder = "dlc1", type = "magazine", name_id = "bm_wp_shorty_m_extended_short", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_m_mag", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_m45_m_extended = { texture_bundle_folder = "dlc1", a_obj = "a_m", type = "magazine", dlc = "armored_transport", name_id = "bm_wp_smg_m45_m_extended", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_m_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { concealment = -2, value = 4, extra_ammo = 6 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_m45_b_standard = { texture_bundle_folder = "dlc1", a_obj = "a_b", type = "barrel", name_id = "bm_wp_serbu_b_short", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_m45_b_green = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "barrel", name_id = "bm_wp_smg_m45_b_green", a_obj = "a_b", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_green", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 3, concealment = -1 } } self.parts.wpn_fps_smg_m45_b_small = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "barrel", name_id = "bm_wp_smg_m45_b_small", a_obj = "a_b", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_small", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, value = 2, concealment = 3 } } self.parts.wpn_fps_smg_m45_body_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_m45_body_green = { texture_bundle_folder = "dlc1", type = "upper_reciever", a_obj = "a_body", dlc = "armored_transport", name_id = "bm_wp_smg_m45_body_green", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_body_green", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = 1, concealment = -1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_m45_s_standard = { texture_bundle_folder = "dlc1", a_obj = "a_s", type = "stock", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_m45_s_folded = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "stock", name_id = "bm_wp_smg_m45_s_folded", a_obj = "a_s", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_folded", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = -2, concealment = 3 } } self.parts.wpn_fps_smg_m45_g_standard = { texture_bundle_folder = "dlc1", a_obj = "a_g", type = "grip", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_m45_g_ergo = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "grip", name_id = "bm_wp_smg_m45_g_ergo", a_obj = "a_g", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = 1, value = 2 } } self.parts.wpn_fps_smg_m45_g_bling = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "grip", name_id = "bm_wp_smg_m45_g_bling", a_obj = "a_g", unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_g_bling", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = 2, concealment = -1 } } self.parts.wpn_fps_smg_m45_m_mag.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_m_mag" self.parts.wpn_fps_smg_m45_b_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_b_standard" self.parts.wpn_fps_smg_m45_body_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_body_standard" self.parts.wpn_fps_smg_m45_s_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_s_standard" self.parts.wpn_fps_smg_m45_g_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_g_standard" self.parts.wpn_fps_smg_m45_b_small.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_b_small" self.parts.wpn_fps_smg_m45_body_green.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_body_green" self.parts.wpn_fps_smg_m45_s_folded.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_s_folded" self.parts.wpn_fps_smg_m45_g_bling.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_g_bling" self.parts.wpn_fps_smg_m45_g_ergo.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_g_ergo" self.parts.wpn_fps_smg_m45_m_extended.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_m_extended" self.parts.wpn_fps_smg_m45_b_green.third_unit = "units/pd2_dlc1/weapons/wpn_third_smg_m45_pts/wpn_third_smg_m45_b_green" self.wpn_fps_smg_m45 = { unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45/wpn_fps_smg_m45", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_smg_m45_m_mag", "wpn_fps_smg_m45_b_standard", "wpn_fps_smg_m45_body_standard", "wpn_fps_smg_m45_s_standard", "wpn_fps_smg_m45_g_standard" }, uses_parts = { "wpn_fps_smg_m45_m_mag", "wpn_fps_smg_m45_b_standard", "wpn_fps_smg_m45_body_standard", "wpn_fps_smg_m45_s_standard", "wpn_fps_smg_m45_g_standard", "wpn_fps_smg_m45_m_extended", "wpn_fps_smg_m45_b_small", "wpn_fps_smg_m45_b_green", "wpn_fps_smg_m45_body_green", "wpn_fps_smg_m45_s_folded", "wpn_fps_smg_m45_g_bling", "wpn_fps_smg_m45_g_ergo", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot" } } self.wpn_fps_smg_m45_npc = deep_clone(self.wpn_fps_smg_m45) self.wpn_fps_smg_m45_npc.unit = "units/pd2_dlc1/weapons/wpn_fps_smg_m45/wpn_fps_smg_m45_npc" end function WeaponFactoryTweakData:_init_s552() self.parts.wpn_fps_ass_s552_o_flipup = { texture_bundle_folder = "dlc1", a_obj = "a_of", type = "sight", name_id = "bm_wp_shorty_m_extended_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_o_flipup", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_s552_m_standard = { texture_bundle_folder = "dlc1", type = "magazine", name_id = "bm_wp_shorty_m_extended_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_m_standard", a_obj = "a_m", bullet_objects = { amount = 28, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_s552_b_standard = { texture_bundle_folder = "dlc1", a_obj = "a_b", type = "barrel", name_id = "bm_wp_serbu_b_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_s552_b_long = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "barrel", name_id = "bm_wp_ass_s552_b_long", a_obj = "a_b", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_b_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, concealment = -4, damage = 1, value = 6, spread_moving = -1 } } self.parts.wpn_fps_ass_s552_body_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_s552_body_standard_black = { texture_bundle_folder = "dlc1", type = "upper_reciever", a_obj = "a_body", dlc = "armored_transport", name_id = "bm_wp_ass_s552_body_standard_black", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_body_standard_black", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, value = 7, damage = 1, concealment = 4 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_s552_fg_standard = { texture_bundle_folder = "dlc1", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_s552_fg_standard_green = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "foregrip", name_id = "bm_wp_ass_s552_fg_standard_green", a_obj = "a_fg", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_fg_standard_green", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -4 } } self.parts.wpn_fps_ass_s552_fg_railed = { type = "foregrip", texture_bundle_folder = "dlc1", a_obj = "a_fg", dlc = "armored_transport", name_id = "bm_wp_ass_s552_fg_railed", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_fg_railed", pcs = { 10, 20, 30, 40 }, stats = { value = 7, recoil = 5, concealment = -2 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_s552_g_standard = { texture_bundle_folder = "dlc1", a_obj = "a_g", type = "grip", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_g_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_s552_g_standard_green = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "grip", name_id = "bm_wp_ass_s552_g_standard_green", a_obj = "a_g", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_g_standard_green", pcs = { 10, 20, 30, 40 }, stats = { value = 4, recoil = 2, concealment = -2 } } self.parts.wpn_fps_ass_s552_s_m4 = { texture_bundle_folder = "dlc1", a_obj = "a_s", type = "stock", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_s_m4", stats = { value = 1 } } self.parts.wpn_fps_ass_s552_s_standard = { texture_bundle_folder = "dlc1", a_obj = "a_s", type = "stock", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_s_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_s552_s_standard_green = { texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "stock", name_id = "bm_wp_ass_s552_s_standard_green", a_obj = "a_s", unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552_pts/wpn_fps_ass_s552_s_standard_green", pcs = { 10, 20, 30, 40 }, stats = { value = 4, recoil = 2, concealment = -2 } } self.parts.wpn_fps_ass_s552_o_flipup.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_o_flipup" self.parts.wpn_fps_ass_s552_m_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_m_standard" self.parts.wpn_fps_ass_s552_b_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_b_standard" self.parts.wpn_fps_ass_s552_body_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_body_standard" self.parts.wpn_fps_ass_s552_fg_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_fg_standard" self.parts.wpn_fps_ass_s552_fg_railed.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_fg_railed" self.parts.wpn_fps_ass_s552_g_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_g_standard" self.parts.wpn_fps_ass_s552_s_m4.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_s_m4" self.parts.wpn_fps_ass_s552_s_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_s_standard" self.parts.wpn_fps_ass_s552_b_long.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_b_long" self.parts.wpn_fps_ass_s552_body_standard_black.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_body_standard_black" self.parts.wpn_fps_ass_s552_fg_standard_green.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_fg_standard_green" self.parts.wpn_fps_ass_s552_g_standard_green.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_g_standard_green" self.parts.wpn_fps_ass_s552_s_standard_green.third_unit = "units/pd2_dlc1/weapons/wpn_third_ass_s552_pts/wpn_third_ass_s552_s_standard_green" self.wpn_fps_ass_s552 = { unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552/wpn_fps_ass_s552", optional_types = { "barrel_ext", "gadget" }, stock_adapter = "wpn_fps_ass_s552_s_m4", adds = { wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_addon_ris" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_addon_ris" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_addon_ris" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_addon_ris" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_addon_ris" } }, default_blueprint = { "wpn_fps_ass_s552_o_flipup", "wpn_fps_ass_s552_m_standard", "wpn_fps_ass_s552_b_standard", "wpn_fps_ass_s552_body_standard", "wpn_fps_ass_s552_fg_standard", "wpn_fps_ass_s552_s_standard", "wpn_fps_ass_s552_g_standard" }, uses_parts = { "wpn_fps_ass_s552_o_flipup", "wpn_fps_ass_s552_m_standard", "wpn_fps_ass_s552_b_standard", "wpn_fps_ass_s552_b_long", "wpn_fps_ass_s552_body_standard", "wpn_fps_ass_s552_body_standard_black", "wpn_fps_ass_s552_fg_standard", "wpn_fps_ass_s552_fg_railed", "wpn_fps_ass_s552_fg_standard_green", "wpn_fps_ass_s552_s_standard", "wpn_fps_ass_s552_s_m4", "wpn_fps_ass_s552_s_standard_green", "wpn_fps_ass_s552_g_standard", "wpn_fps_ass_s552_g_standard_green", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_s552_npc = deep_clone(self.wpn_fps_ass_s552) self.wpn_fps_ass_s552_npc.unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552/wpn_fps_ass_s552_npc" self.wpn_fps_ass_s552_secondary = deep_clone(self.wpn_fps_ass_s552) self.wpn_fps_ass_s552_secondary.unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552/wpn_fps_ass_s552_secondary" self.wpn_fps_ass_s552_secondary_npc = deep_clone(self.wpn_fps_ass_s552_npc) self.wpn_fps_ass_s552_secondary_npc.unit = "units/pd2_dlc1/weapons/wpn_fps_ass_s552/wpn_fps_ass_s552_secondary_npc" end function WeaponFactoryTweakData:_init_ppk() self.parts.wpn_fps_pis_ppk_b_barrel_long = { name_id = "bm_wp_ppk_body_standard", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_b_barrel_long", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_ppk_b_barrel_standard = { name_id = "bm_wp_ppk_body_standard", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_b_barrel_standard", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_ppk_dh_standard = { name_id = "bm_wp_ppk_body_standard", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_dh_standard", a_obj = "a_dh", type = "drag_handle" } self.parts.wpn_fps_pis_ppk_b_long = { type = "slide", texture_bundle_folder = "dlc1", a_obj = "a_sl", dlc = "armored_transport", name_id = "bm_wp_pis_ppk_b_long", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 3, concealment = -2, damage = 1, spread = 2, spread_moving = -2 }, adds = { "wpn_fps_pis_ppk_b_barrel_long" } } self.parts.wpn_fps_pis_ppk_b_standard = { texture_bundle_folder = "dlc1", a_obj = "a_sl", type = "slide", name_id = "bm_wp_sppk_b_standard", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_b_standard", stats = { value = 1 }, adds = { "wpn_fps_pis_ppk_b_barrel_standard" } } self.parts.wpn_fps_pis_ppk_body_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_body_standard", stats = { value = 1 }, adds = { "wpn_fps_pis_ppk_dh_standard" } } self.parts.wpn_fps_pis_ppk_fl_mount = { texture_bundle_folder = "dlc1", a_obj = "a_fl", type = "extra", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_fl_mount", stats = { value = 1 } } self.parts.wpn_fps_pis_ppk_g_laser = { a_obj = "a_g", texture_bundle_folder = "dlc1", dlc = "armored_transport", type = "grip", sub_type = "laser", name_id = "bm_wp_pis_ppk_g_laser", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_g_laser", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 2 }, perks = { "gadget" } } self.parts.wpn_fps_pis_ppk_g_standard = { texture_bundle_folder = "dlc1", a_obj = "a_g", type = "grip", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_ppk_m_standard = { texture_bundle_folder = "dlc1", type = "magazine", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk_pts/wpn_fps_pis_ppk_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_ppk_b_barrel_long.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_b_barrel_long" self.parts.wpn_fps_pis_ppk_b_barrel_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_b_barrel_standard" self.parts.wpn_fps_pis_ppk_dh_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_dh_standard" self.parts.wpn_fps_pis_ppk_b_long.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_b_long" self.parts.wpn_fps_pis_ppk_b_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_b_standard" self.parts.wpn_fps_pis_ppk_body_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_body_standard" self.parts.wpn_fps_pis_ppk_fl_mount.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_fl_mount" self.parts.wpn_fps_pis_ppk_g_laser.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_g_laser" self.parts.wpn_fps_pis_ppk_g_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_g_standard" self.parts.wpn_fps_pis_ppk_m_standard.third_unit = "units/pd2_dlc1/weapons/wpn_third_pis_ppk_pts/wpn_third_pis_ppk_m_standard" self.wpn_fps_pis_ppk = { unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk/wpn_fps_pis_ppk", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_ppk_fl_mount" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_ppk_b_standard", "wpn_fps_pis_ppk_body_standard", "wpn_fps_pis_ppk_g_standard", "wpn_fps_pis_ppk_m_standard" }, uses_parts = { "wpn_fps_pis_ppk_b_standard", "wpn_fps_pis_ppk_b_long", "wpn_fps_pis_ppk_b_barrel_standard", "wpn_fps_pis_ppk_b_barrel_long", "wpn_fps_pis_ppk_dh_standard", "wpn_fps_pis_ppk_body_standard", "wpn_fps_pis_ppk_g_standard", "wpn_fps_pis_ppk_g_laser", "wpn_fps_pis_ppk_m_standard", "wpn_fps_pis_ppk_fl_mount", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_ppk_npc = deep_clone(self.wpn_fps_pis_ppk) self.wpn_fps_pis_ppk_npc.unit = "units/pd2_dlc1/weapons/wpn_fps_pis_ppk/wpn_fps_pis_ppk_npc" end function WeaponFactoryTweakData:_init_mp7() self.parts.wpn_fps_smg_mp7_m_short = { texture_bundle_folder = "gage_pack", type = "magazine", name_id = "bm_wp_mp7_m_short", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_m_short", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mp7_m_extended = { texture_bundle_folder = "gage_pack", a_obj = "a_m", type = "magazine", dlc = "gage_pack", name_id = "bm_wp_mp7_m_extended", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_m_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1, spread_moving = -1, concealment = -3, extra_ammo = 6 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mp7_b_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_b", type = "barrel", name_id = "bm_wp_mp7_b_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_mp7_b_suppressed = { a_obj = "a_ns", texture_bundle_folder = "gage_pack", sub_type = "silencer", type = "barrel_ext", dlc = "gage_pack", parent = "barrel", name_id = "bm_wp_mp7_b_suppressed", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_b_suppressed", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 1, damage = -1, suppression = 12, value = 4, recoil = 3, spread_moving = -2, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_smg_mp7_body_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_mp7_body_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_body_standard", stats = { value = 1 }, adds = { "wpn_fps_upg_vg_ass_smg_stubby" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_smg_mp7_s_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_s", type = "stock", name_id = "bm_wp_mp7_s_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_mp7_s_long = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "stock", name_id = "bm_wp_mp7_s_long", a_obj = "a_s", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7_pts/wpn_fps_smg_mp7_s_long", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, spread_moving = -1, concealment = -2 } } self.parts.wpn_fps_smg_mp7_m_short.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_m_short" self.parts.wpn_fps_smg_mp7_m_extended.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_m_extended" self.parts.wpn_fps_smg_mp7_b_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_b_standard" self.parts.wpn_fps_smg_mp7_b_suppressed.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_b_suppressed" self.parts.wpn_fps_smg_mp7_body_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_body_standard" self.parts.wpn_fps_smg_mp7_s_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_s_standard" self.parts.wpn_fps_smg_mp7_s_long.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_smg_mp7_pts/wpn_third_smg_mp7_s_long" self.wpn_fps_smg_mp7 = { unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7/wpn_fps_smg_mp7", optional_types = { "barrel_ext", "gadget" }, default_blueprint = { "wpn_fps_smg_mp7_m_short", "wpn_fps_smg_mp7_b_standard", "wpn_fps_smg_mp7_body_standard", "wpn_fps_smg_mp7_s_standard" }, uses_parts = { "wpn_fps_smg_mp7_m_short", "wpn_fps_smg_mp7_b_standard", "wpn_fps_smg_mp7_body_standard", "wpn_fps_smg_mp7_s_standard", "wpn_fps_smg_mp7_m_extended", "wpn_fps_smg_mp7_b_suppressed", "wpn_fps_smg_mp7_s_long", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_mp7_npc = deep_clone(self.wpn_fps_smg_mp7) self.wpn_fps_smg_mp7_npc.unit = "units/pd2_dlc_dec5/weapons/wpn_fps_smg_mp7/wpn_fps_smg_mp7_npc" end function WeaponFactoryTweakData:_init_scar() self.parts.wpn_fps_ass_scar_m_standard = { texture_bundle_folder = "gage_pack", type = "magazine", name_id = "bm_wp_scar_m_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_scar_ns_standard = { texture_bundle_folder = "gage_pack", parent = "barrel", type = "barrel_ext", name_id = "bm_wp_scar_ns_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_ns_standard", a_obj = "a_ns", stats = { value = 1 } } self.parts.wpn_fps_ass_scar_ns_short = { texture_bundle_folder = "gage_pack", parent = "barrel", type = "barrel_ext", name_id = "bm_wp_scar_ns_short", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_ns_short", a_obj = "a_ns", stats = { value = 1 } } self.parts.wpn_fps_ass_scar_b_long = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "barrel", name_id = "bm_wp_scar_b_long", a_obj = "a_b", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_b_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 2, spread_moving = -3, value = 4, concealment = -3 } } self.parts.wpn_fps_ass_scar_b_medium = { texture_bundle_folder = "gage_pack", a_obj = "a_b", type = "barrel", name_id = "bm_wp_scar_b_medium", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_b_medium", stats = { value = 1 } } self.parts.wpn_fps_ass_scar_b_short = { type = "barrel", texture_bundle_folder = "gage_pack", a_obj = "a_b", dlc = "gage_pack", name_id = "bm_wp_scar_b_short", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_b_short", pcs = { 10, 20, 30, 40 }, stats = { value = 3, concealment = 3, damage = 1, suppression = -2, spread = -1, spread_moving = 3 }, override = { wpn_fps_ass_scar_ns_standard = { third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_ns_short", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_ns_short" } } } self.parts.wpn_fps_ass_scar_body_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_scar_body_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_scar_fg_railext = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "foregrip", name_id = "bm_wp_scar_fg_railext", a_obj = "a_fg", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_fg_railext", pcs = { 10, 20, 30, 40 }, stats = { value = 4, recoil = 1, spread_moving = -1, concealment = -1 } } self.parts.wpn_fps_ass_scar_o_flipups_down = { texture_bundle_folder = "gage_pack", a_obj = "a_o", type = "extra", name_id = "bm_wp_scar_o_flipups_down", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_o_flipups_down", stats = { value = 1 } } self.parts.wpn_fps_ass_scar_o_flipups_up = { texture_bundle_folder = "gage_pack", a_obj = "a_o", type = "sight", name_id = "bm_wp_scar_o_flipups_up", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_o_flipups_up", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_scar_s_sniper = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "stock", name_id = "bm_wp_scar_s_sniper", a_obj = "a_s", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_s_sniper", pcs = { 10, 20, 30, 40 }, stats = { value = 4, recoil = 2, spread_moving = -3, concealment = -3 } } self.parts.wpn_fps_ass_scar_s_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_s", type = "stock", name_id = "bm_wp_scar_s_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar_pts/wpn_fps_ass_scar_s_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_scar_m_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_m_standard" self.parts.wpn_fps_ass_scar_ns_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_ns_standard" self.parts.wpn_fps_ass_scar_ns_short.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_ns_short" self.parts.wpn_fps_ass_scar_b_long.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_b_long" self.parts.wpn_fps_ass_scar_b_medium.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_b_medium" self.parts.wpn_fps_ass_scar_b_short.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_b_short" self.parts.wpn_fps_ass_scar_body_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_body_standard" self.parts.wpn_fps_ass_scar_fg_railext.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_fg_railext" self.parts.wpn_fps_ass_scar_s_sniper.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_s_sniper" self.parts.wpn_fps_ass_scar_s_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_s_standard" self.parts.wpn_fps_ass_scar_o_flipups_down.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_o_flipups_down" self.parts.wpn_fps_ass_scar_o_flipups_up.third_unit = "units/pd2_dlc_dec5/weapons/wpn_third_ass_scar_pts/wpn_third_ass_scar_o_flipups_up" self.wpn_fps_ass_scar = { unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar/wpn_fps_ass_scar", optional_types = { "barrel_ext", "gadget" }, override = {}, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_scar_o_flipups_down" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_scar_o_flipups_down" } }, default_blueprint = { "wpn_fps_ass_scar_m_standard", "wpn_fps_ass_scar_b_medium", "wpn_fps_ass_scar_body_standard", "wpn_fps_ass_scar_s_standard", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_m4_g_hgrip_vanilla", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_ass_scar_ns_standard" }, uses_parts = { "wpn_fps_ass_scar_m_standard", "wpn_fps_ass_scar_ns_standard", "wpn_fps_ass_scar_ns_short", "wpn_fps_ass_scar_b_medium", "wpn_fps_ass_scar_b_long", "wpn_fps_ass_scar_b_short", "wpn_fps_ass_scar_body_standard", "wpn_fps_ass_scar_fg_railext", "wpn_fps_ass_scar_s_standard", "wpn_fps_ass_scar_s_sniper", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_ass_scar_o_flipups_down", "wpn_fps_upg_m4_g_hgrip_vanilla", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_scar_npc = deep_clone(self.wpn_fps_ass_scar) self.wpn_fps_ass_scar_npc.unit = "units/pd2_dlc_dec5/weapons/wpn_fps_ass_scar/wpn_fps_ass_scar_npc" end function WeaponFactoryTweakData:_init_p226() self.parts.wpn_fps_pis_p226_b_barrel_standard = { name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_b_barrel_standard", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_p226_b_barrel_equinox = { name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_b_barrel_equinox", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_p226_b_barrel_long = { name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_b_barrel_long", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_p226_o_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_o", type = "extra", name_id = "bm_wp_p226_o_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_o_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_p226_o_long = { texture_bundle_folder = "gage_pack", a_obj = "a_o", type = "extra", name_id = "bm_wp_p226_o_long", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_o_long", stats = { value = 1 } } self.parts.wpn_fps_pis_p226_b_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_sl", type = "slide", name_id = "bm_wp_p226_b_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_b_standard", stats = { value = 1 }, adds = { "wpn_fps_pis_p226_o_standard", "wpn_fps_pis_p226_b_barrel_standard" }, forbids = { "wpn_fps_pis_p226_o_long" } } self.parts.wpn_fps_pis_p226_b_equinox = { type = "slide", texture_bundle_folder = "gage_pack", a_obj = "a_sl", dlc = "gage_pack", name_id = "bm_wp_p226_b_equinox", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_b_equinox", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = 1, damage = 2, suppression = -2, value = 4, recoil = 1 }, adds = { "wpn_fps_pis_p226_o_standard", "wpn_fps_pis_p226_b_barrel_equinox" }, forbids = { "wpn_fps_pis_p226_o_long" } } self.parts.wpn_fps_pis_p226_b_long = { type = "slide", texture_bundle_folder = "gage_pack", a_obj = "a_sl", dlc = "gage_pack", name_id = "bm_wp_p226_b_long", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 6, concealment = -3, damage = 1, spread_moving = -3, spread = 2, recoil = 1 }, adds = { "wpn_fps_pis_p226_o_long", "wpn_fps_pis_p226_b_barrel_long" }, forbids = { "wpn_fps_pis_p226_o_standard" } } self.parts.wpn_fps_pis_p226_body_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_p226_body_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_pis_p226_g_standard = { texture_bundle_folder = "gage_pack", a_obj = "a_g", type = "grip", name_id = "bm_wp_p226_g_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_p226_g_ergo = { texture_bundle_folder = "gage_pack", dlc = "gage_pack", type = "grip", name_id = "bm_wp_p226_g_ergo", a_obj = "a_g", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -1 } } self.parts.wpn_fps_pis_p226_m_standard = { texture_bundle_folder = "gage_pack", type = "magazine", name_id = "bm_wp_p226_m_standard", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_m_standard", a_obj = "a_m", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_p226_m_extended = { type = "magazine", texture_bundle_folder = "gage_pack", a_obj = "a_m", dlc = "gage_pack", name_id = "bm_wp_p226_m_extended", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_m_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { extra_ammo = 4, spread_moving = -2, value = 1 } } self.parts.wpn_fps_pis_p226_b_barrel_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_b_barrel_standard" self.parts.wpn_fps_pis_p226_b_barrel_equinox.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_b_barrel_equinox" self.parts.wpn_fps_pis_p226_b_barrel_long.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_b_barrel_long" self.parts.wpn_fps_pis_p226_b_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_b_standard" self.parts.wpn_fps_pis_p226_b_equinox.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_b_equinox" self.parts.wpn_fps_pis_p226_b_long.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_b_long" self.parts.wpn_fps_pis_p226_body_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_body_standard" self.parts.wpn_fps_pis_p226_g_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_g_standard" self.parts.wpn_fps_pis_p226_g_ergo.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_g_ergo" self.parts.wpn_fps_pis_p226_m_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_m_standard" self.parts.wpn_fps_pis_p226_m_extended.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_m_extended" self.parts.wpn_fps_pis_p226_o_standard.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_o_standard" self.parts.wpn_fps_pis_p226_o_long.third_unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_third_pis_p226_o_long" self.parts.wpn_fps_pis_p226_co_comp_1 = { parent = "barrel", dlc = "gage_pack", type = "barrel_ext", name_id = "bm_wp_p226_co_comp_1", a_obj = "a_co", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_co_comp_1", pcs = { 10, 20, 30, 40 }, stats = { value = 4, concealment = -1, damage = 2, suppression = -5, spread = -1 } } self.parts.wpn_fps_pis_p226_co_comp_2 = { parent = "barrel", dlc = "gage_pack", type = "barrel_ext", name_id = "bm_wp_p226_co_comp_2", a_obj = "a_co", unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226_pts/wpn_fps_pis_p226_co_comp_2", pcs = { 10, 20, 30, 40 }, stats = { value = 5, recoil = 2, spread = 2, concealment = -1 }, third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_co_2" } self.parts.wpn_fps_pis_p226_co_comp_1.third_unit = "units/payday2/weapons/wpn_third_pis_g18c_pts/wpn_third_pis_g18c_co_1" self.wpn_fps_pis_p226 = { unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226/wpn_fps_pis_p226", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_pis_p226_co_comp_1 = { a_obj = "a_co", parent = "barrel" }, wpn_fps_pis_p226_co_comp_2 = { a_obj = "a_co", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_p226_b_standard", "wpn_fps_pis_p226_body_standard", "wpn_fps_pis_p226_g_standard", "wpn_fps_pis_p226_m_standard", "wpn_fps_pis_p226_o_standard" }, uses_parts = { "wpn_fps_pis_p226_b_standard", "wpn_fps_pis_p226_b_equinox", "wpn_fps_pis_p226_b_long", "wpn_fps_pis_p226_body_standard", "wpn_fps_pis_p226_g_standard", "wpn_fps_pis_p226_g_ergo", "wpn_fps_pis_p226_m_standard", "wpn_fps_pis_p226_m_extended", "wpn_fps_pis_p226_o_standard", "wpn_fps_pis_p226_o_long", "wpn_fps_pis_p226_b_barrel_standard", "wpn_fps_pis_p226_b_barrel_equinox", "wpn_fps_pis_p226_b_barrel_long", "wpn_fps_pis_p226_co_comp_1", "wpn_fps_pis_p226_co_comp_2", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_p226_npc = deep_clone(self.wpn_fps_pis_p226) self.wpn_fps_pis_p226_npc.unit = "units/pd2_dlc_dec5/weapons/wpn_fps_pis_p226/wpn_fps_pis_p226_npc" end function WeaponFactoryTweakData:_init_hk21() self.parts.wpn_fps_lmg_hk21_b_long = { type = "barrel", texture_bundle_folder = "gage_pack_lmg", a_obj = "a_b", parent = "foregrip", dlc = "gage_pack_lmg", name_id = "bm_wp_hk21_b_long", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_b_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, spread_moving = -2, damage = -1, concealment = -2, value = 4, recoil = 1 } } self.parts.wpn_fps_lmg_hk21_b_short = { parent = "foregrip", a_obj = "a_b", type = "barrel", name_id = "bm_wp_hk21_b_hk21a4", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_b_short", stats = { value = 1 } } self.parts.wpn_fps_lmg_hk21_body_lower = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_hk21_b_hk21a5", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_body_lower", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_hk21_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_hk21_b_hk21sd", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_body_upper", stats = { value = 1 } } self.parts.wpn_fps_lmg_hk21_fg_long = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_hk21_body_hk21", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_fg_long", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_hk21_fg_short = { texture_bundle_folder = "gage_pack_lmg", type = "foregrip", a_obj = "a_fg", dlc = "gage_pack_lmg", name_id = "bm_wp_hk21_fg_short", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_fg_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, concealment = 3, damage = 1, value = 6, spread_moving = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_hk21_g_ergo = { texture_bundle_folder = "gage_pack_lmg", dlc = "gage_pack_lmg", type = "grip", name_id = "bm_wp_hk21_g_ergo", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_g_ergo", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = 1, spread_moving = 2, concealment = -1 } } self.parts.wpn_fps_lmg_hk21_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_hk21_body_rail", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_g_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_hk21_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_hk21_body_rail", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_hk21_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_hk21_body_rail", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_fps_lmg_hk21_s_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_hk21_b_long.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_b_long" self.parts.wpn_fps_lmg_hk21_b_short.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_b_short" self.parts.wpn_fps_lmg_hk21_body_lower.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_body_lower" self.parts.wpn_fps_lmg_hk21_body_upper.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_body_upper" self.parts.wpn_fps_lmg_hk21_fg_long.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_fg_long" self.parts.wpn_fps_lmg_hk21_fg_short.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_fg_short" self.parts.wpn_fps_lmg_hk21_g_ergo.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_g_ergo" self.parts.wpn_fps_lmg_hk21_g_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_g_standard" self.parts.wpn_fps_lmg_hk21_m_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_m_standard" self.parts.wpn_fps_lmg_hk21_s_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21_pts/wpn_third_lmg_hk21_s_standard" self.wpn_fps_lmg_hk21 = { unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21/wpn_fps_lmg_hk21", optional_types = { "barrel_ext", "gadget" }, default_blueprint = { "wpn_fps_lmg_hk21_b_short", "wpn_fps_lmg_hk21_body_lower", "wpn_fps_lmg_hk21_body_upper", "wpn_fps_lmg_hk21_fg_long", "wpn_fps_lmg_hk21_g_standard", "wpn_fps_lmg_hk21_m_standard", "wpn_fps_lmg_hk21_s_standard" }, uses_parts = { "wpn_fps_lmg_hk21_b_short", "wpn_fps_lmg_hk21_b_long", "wpn_fps_lmg_hk21_body_lower", "wpn_fps_lmg_hk21_body_upper", "wpn_fps_lmg_hk21_fg_short", "wpn_fps_lmg_hk21_fg_long", "wpn_fps_lmg_hk21_g_standard", "wpn_fps_lmg_hk21_g_ergo", "wpn_fps_lmg_hk21_m_standard", "wpn_fps_lmg_hk21_s_standard", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_lmg_hk21_npc = deep_clone(self.wpn_fps_lmg_hk21) self.wpn_fps_lmg_hk21_npc.unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_hk21/wpn_fps_lmg_hk21_npc" end function WeaponFactoryTweakData:_init_m249() self.parts.wpn_fps_lmg_m249_b_long = { texture_bundle_folder = "gage_pack_lmg", dlc = "gage_pack_lmg", type = "barrel", name_id = "bm_wp_m249_b_long", a_obj = "a_b", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 4, concealment = -2, damage = -1, spread = 1, recoil = 1 } } self.parts.wpn_fps_lmg_m249_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m249_b_short", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_b_short", stats = { value = 1 } } self.parts.wpn_fps_lmg_m249_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_m249_body_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_m249_fg_mk46 = { texture_bundle_folder = "gage_pack_lmg", dlc = "gage_pack_lmg", type = "foregrip", name_id = "bm_wp_m249_fg_mk46", a_obj = "a_fg", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_fg_mk46", pcs = { 10, 20, 30, 40 }, stats = { recoil = -2, concealment = -1, damage = 2, value = 6, spread_moving = 2 } } self.parts.wpn_fps_lmg_m249_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m249_fg_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_m249_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m249_m_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_m_standard", bullet_objects = { amount = 15, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_m249_s_modern = { a_obj = "a_s", type = "stock", name_id = "bm_wp_m249_s_modern", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_s_modern", stats = { value = 1 } } self.parts.wpn_fps_lmg_m249_s_para = { a_obj = "a_s", type = "stock", name_id = "bm_wp_m249_s_para", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_s_para", stats = { value = 1 } } self.parts.wpn_fps_lmg_m249_s_solid = { texture_bundle_folder = "gage_pack_lmg", dlc = "gage_pack_lmg", type = "stock", name_id = "bm_wp_m249_s_solid", a_obj = "a_s", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_s_solid", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = 2, spread_moving = -2, concealment = -2 } } self.parts.wpn_fps_lmg_m249_upper_reciever = { a_obj = "a_upper", type = "upper_reciever", name_id = "bm_wp_m249_upper_reciever", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249_pts/wpn_fps_lmg_m249_upper_reciever", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_m249_b_long.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_b_long" self.parts.wpn_fps_lmg_m249_b_short.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_b_short" self.parts.wpn_fps_lmg_m249_body_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_body_standard" self.parts.wpn_fps_lmg_m249_fg_mk46.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_fg_mk46" self.parts.wpn_fps_lmg_m249_fg_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_fg_standard" self.parts.wpn_fps_lmg_m249_m_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_m_standard" self.parts.wpn_fps_lmg_m249_s_modern.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_s_modern" self.parts.wpn_fps_lmg_m249_s_para.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_s_para" self.parts.wpn_fps_lmg_m249_s_solid.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_s_solid" self.parts.wpn_fps_lmg_m249_upper_reciever.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_m249_pts/wpn_third_lmg_m249_upper_reciever" self.wpn_fps_lmg_m249 = { unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249/wpn_fps_lmg_m249", stock_adapter = "wpn_fps_lmg_m249_s_modern", optional_types = { "barrel_ext", "gadget", "sight", "vertical_grip" }, default_blueprint = { "wpn_fps_lmg_m249_b_short", "wpn_fps_lmg_m249_body_standard", "wpn_fps_lmg_m249_fg_standard", "wpn_fps_lmg_m249_m_standard", "wpn_fps_lmg_m249_s_para", "wpn_fps_lmg_m249_upper_reciever" }, uses_parts = { "wpn_fps_lmg_m249_b_long", "wpn_fps_lmg_m249_b_short", "wpn_fps_lmg_m249_body_standard", "wpn_fps_lmg_m249_fg_mk46", "wpn_fps_lmg_m249_fg_standard", "wpn_fps_lmg_m249_m_standard", "wpn_fps_lmg_m249_s_para", "wpn_fps_lmg_m249_s_solid", "wpn_fps_lmg_m249_upper_reciever", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_snp_tti_s_vltor" } } self.wpn_fps_lmg_m249_npc = deep_clone(self.wpn_fps_lmg_m249) self.wpn_fps_lmg_m249_npc.unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_m249/wpn_fps_lmg_m249_npc" end function WeaponFactoryTweakData:_init_rpk() self.parts.wpn_fps_lmg_rpk_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_rpk_b_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk_pts/wpn_fps_lmg_rpk_b_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_rpk_body_lowerreceiver = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_rpk_b_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk_pts/wpn_fps_lmg_rpk_body_lowerreceiver", stats = { value = 1 }, adds = { "wpn_fps_ak_bolt" } } self.parts.wpn_fps_lmg_rpk_fg_wood = { texture_bundle_folder = "gage_pack_lmg", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_rpk_fg_wood", unit = "units/payday2/weapons/wpn_fps_upg_ak_reusable/wpn_upg_ak_fg_combo4", stats = { value = 1 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_lmg_rpk_fg_standard = { type = "foregrip", texture_bundle_folder = "gage_pack_lmg", a_obj = "a_fg", dlc = "gage_pack_lmg", name_id = "bm_wp_rpk_fg_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk_pts/wpn_fps_lmg_rpk_fg_standard", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, spread_moving = 2, damage = 1, concealment = 1, value = 5, recoil = -1 }, forbids = { "wpn_fps_addon_ris" }, adds = { "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_addon_ris" } } self.parts.wpn_lmg_rpk_m_drum = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_rpk_m_drum", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk_pts/wpn_lmg_rpk_m_drum", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_lmg_rpk_s_standard = { texture_bundle_folder = "gage_pack_lmg", dlc = "gage_pack_lmg", type = "stock", name_id = "bm_wp_rpk_s_standard", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk_pts/wpn_fps_lmg_rpk_s_standard", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = 2, concealment = 1 } } self.parts.wpn_fps_lmg_rpk_s_wood = { texture_bundle_folder = "gage_pack_lmg", a_obj = "a_s", type = "stock", name_id = "bm_wp_rpk_s_wood", unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk_pts/wpn_fps_lmg_rpk_s_wood", stats = { value = 1 } } self.parts.wpn_fps_lmg_rpk_b_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_rpk_pts/wpn_third_lmg_rpk_b_standard" self.parts.wpn_fps_lmg_rpk_body_lowerreceiver.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_ass_ak_body_lowerreceiver" self.parts.wpn_fps_lmg_rpk_fg_wood.third_unit = "units/payday2/weapons/wpn_third_upg_ak_reusable/wpn_third_upg_ak_fg_combo4" self.parts.wpn_fps_lmg_rpk_fg_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_rpk_pts/wpn_third_lmg_rpk_fg_standard" self.parts.wpn_lmg_rpk_m_drum.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_rpk_pts/wpn_third_lmg_rpk_m_drum" self.parts.wpn_fps_lmg_rpk_s_standard.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_rpk_pts/wpn_third_lmg_rpk_s_standard" self.parts.wpn_fps_lmg_rpk_s_wood.third_unit = "units/pd2_dlc_gage_lmg/weapons/wpn_third_lmg_rpk_pts/wpn_third_lmg_rpk_s_wood" self.wpn_fps_lmg_rpk = { unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk/wpn_fps_lmg_rpk", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget", "sight", "vertical_grip" }, default_blueprint = { "wpn_fps_lmg_rpk_b_standard", "wpn_fps_lmg_rpk_fg_wood", "wpn_lmg_rpk_m_drum", "wpn_fps_lmg_rpk_s_wood", "wpn_fps_ass_74_body_upperreceiver", "wpn_fps_lmg_rpk_body_lowerreceiver", "wpn_upg_ak_g_standard" }, uses_parts = { "wpn_fps_lmg_rpk_b_standard", "wpn_fps_lmg_rpk_fg_standard", "wpn_fps_lmg_rpk_fg_wood", "wpn_lmg_rpk_m_drum", "wpn_fps_lmg_rpk_s_standard", "wpn_fps_lmg_rpk_s_wood", "wpn_fps_ass_74_body_upperreceiver", "wpn_fps_lmg_rpk_body_lowerreceiver", "wpn_upg_ak_g_standard", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_upg_ak_s_folding", "wpn_upg_ak_s_skfoldable_vanilla", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ak_s_solidstock", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_snp_tti_s_vltor" } } self.wpn_fps_lmg_rpk_npc = deep_clone(self.wpn_fps_lmg_rpk) self.wpn_fps_lmg_rpk_npc.unit = "units/pd2_dlc_gage_lmg/weapons/wpn_fps_lmg_rpk/wpn_fps_lmg_rpk_npc" end function WeaponFactoryTweakData:_init_m95() self.parts.wpn_fps_snp_m95_barrel_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m14_b_standard", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_barrel_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_m95_barrel_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", type = "barrel", a_obj = "a_b", dlc = "gage_pack_snp", name_id = "bm_wp_m95_b_barrel_long", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_barrel_long", pcs = {}, stats = { value = 1, concealment = -4, spread = 2, suppression = -10 } } self.parts.wpn_fps_snp_m95_barrel_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", type = "barrel", a_obj = "a_b", dlc = "gage_pack_snp", name_id = "bm_wp_m95_b_barrel_short", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_barrel_short", pcs = {}, stats = { concealment = 3, spread_moving = 3, spread = -3, value = 1 } } self.parts.wpn_fps_snp_m95_barrel_suppressed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", a_obj = "a_b", type = "barrel", sub_type = "silencer", dlc = "gage_pack_snp", name_id = "bm_wp_m95_b_barrel_suppressed", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_barrel_suppressed", pcs = {}, stats = { alert_size = 12, spread_moving = 1, damage = -4, suppression = 12, value = 6, recoil = 2, concealment = 0 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_snp_m95_bipod = { a_obj = "a_body", type = "extra", name_id = "bm_wp_m14_body_dmr", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_bipod", stats = { value = 1 } } self.parts.wpn_fps_snp_m95_lower_reciever = { a_obj = "a_body", type = "lower_body", name_id = "bm_wp_m14_body_lower", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_lower_reciever", stats = { value = 1 } } self.parts.wpn_fps_snp_m95_upper_reciever = { a_obj = "a_body", type = "upper_body", name_id = "bm_wp_m14_body_upper", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_upper_reciever", stats = { value = 1 } } self.parts.wpn_fps_snp_m95_magazine = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_fps_snp_m95_magazine", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_snp_m95_barrel_standard.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_barrel_standard" self.parts.wpn_fps_snp_m95_barrel_long.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_barrel_long" self.parts.wpn_fps_snp_m95_barrel_short.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_barrel_short" self.parts.wpn_fps_snp_m95_barrel_suppressed.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_barrel_suppressed" self.parts.wpn_fps_snp_m95_bipod.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_bipod" self.parts.wpn_fps_snp_m95_lower_reciever.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_lower_reciever" self.parts.wpn_fps_snp_m95_upper_reciever.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_upper_reciever" self.parts.wpn_fps_snp_m95_magazine.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95_pts/wpn_third_snp_m95_magazine" self.wpn_fps_snp_m95 = { unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95/wpn_fps_snp_m95", optional_types = { "gadget", "sight" }, override = { wpn_fps_upg_m4_g_mgrip = { stats = { value = 2, spread_moving = 2, concealment = 1 } } }, default_blueprint = { "wpn_fps_snp_m95_barrel_standard", "wpn_fps_snp_m95_bipod", "wpn_fps_snp_m95_lower_reciever", "wpn_fps_snp_m95_upper_reciever", "wpn_fps_snp_m95_magazine", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_m4_g_standard_vanilla" }, uses_parts = { "wpn_fps_snp_m95_barrel_standard", "wpn_fps_snp_m95_barrel_long", "wpn_fps_snp_m95_barrel_short", "wpn_fps_snp_m95_barrel_suppressed", "wpn_fps_snp_m95_bipod", "wpn_fps_snp_m95_lower_reciever", "wpn_fps_snp_m95_upper_reciever", "wpn_fps_snp_m95_magazine", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_m95_npc = deep_clone(self.wpn_fps_snp_m95) self.wpn_fps_snp_m95_npc.unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_m95/wpn_fps_snp_m95_npc" end function WeaponFactoryTweakData:_init_msr() self.parts.wpn_fps_snp_msr_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m14_b_standard", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_msr_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", type = "barrel", a_obj = "a_b", dlc = "gage_pack_snp", name_id = "bm_wp_snp_msr_b_long", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_b_long", pcs = {}, stats = { concealment = -3, value = 1, spread = 1 }, override = { wpn_fps_snp_msr_ns_suppressor = { unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_ns_suppressor_long" } } } self.parts.wpn_fps_snp_msr_ns_suppressor = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", a_obj = "a_ns", type = "barrel_ext", sub_type = "silencer", parent = "barrel", dlc = "gage_pack_snp", name_id = "bm_wp_snp_msr_ns_suppressor", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_ns_suppressor", pcs = {}, stats = { alert_size = 12, value = 5, damage = -4, suppression = 12, spread = -1, recoil = 3, concealment = -2, spread_moving = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_snp_msr_body_msr = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", type = "stock", a_obj = "a_body", dlc = "gage_pack_snp", name_id = "bm_wp_msr_body_msr", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_body_msr", pcs = {}, stats = { concealment = 5, recoil = -2, value = 8 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_msr_body_wood = { a_obj = "a_body", type = "stock", name_id = "bm_wp_msr_body_wood", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_body_wood", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_msr_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr_pts/wpn_fps_snp_msr_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_snp_msr_b_standard.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_msr_pts/wpn_third_snp_msr_b_standard" self.parts.wpn_fps_snp_msr_b_long.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_msr_pts/wpn_third_snp_msr_b_long" self.parts.wpn_fps_snp_msr_ns_suppressor.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_msr_pts/wpn_third_snp_msr_ns_suppressor" self.parts.wpn_fps_snp_msr_body_msr.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_msr_pts/wpn_third_snp_msr_body_msr" self.parts.wpn_fps_snp_msr_body_wood.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_msr_pts/wpn_third_snp_msr_body_wood" self.parts.wpn_fps_snp_msr_m_standard.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_msr_pts/wpn_third_snp_msr_m_standard" self.wpn_fps_snp_msr = { unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr/wpn_fps_snp_msr", optional_types = { "gadget", "sight" }, default_blueprint = { "wpn_fps_snp_msr_b_standard", "wpn_fps_snp_msr_body_wood", "wpn_fps_snp_msr_m_standard", "wpn_fps_upg_o_shortdot" }, uses_parts = { "wpn_fps_snp_msr_b_standard", "wpn_fps_snp_msr_b_long", "wpn_fps_snp_msr_ns_suppressor", "wpn_fps_snp_msr_body_msr", "wpn_fps_snp_msr_body_wood", "wpn_fps_snp_msr_m_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_msr_npc = deep_clone(self.wpn_fps_snp_msr) self.wpn_fps_snp_msr_npc.unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_msr/wpn_fps_snp_msr_npc" end function WeaponFactoryTweakData:_init_r93() self.parts.wpn_fps_snp_r93_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_r93_b_standard", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93_pts/wpn_fps_snp_r93_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_r93_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", type = "barrel", a_obj = "a_b", dlc = "gage_pack_snp", name_id = "bm_wp_r93_b_short", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93_pts/wpn_fps_snp_r93_b_short", pcs = {}, stats = { recoil = 2, spread = -2, concealment = 3, value = 1, spread_moving = 3 } } self.parts.wpn_fps_snp_r93_b_suppressed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", a_obj = "a_b", type = "barrel", sub_type = "silencer", dlc = "gage_pack_snp", name_id = "bm_wp_r93_b_suppressed", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93_pts/wpn_fps_snp_r93_b_suppressed", pcs = {}, stats = { alert_size = 12, value = 4, damage = -4, suppression = 12, spread = -1, recoil = 1, spread_moving = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_snp_r93_body_standard = { a_obj = "a_body", type = "stock", name_id = "bm_wp_m14_body_lower", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93_pts/wpn_fps_snp_r93_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_r93_body_wood = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_snp", type = "stock", a_obj = "a_body", dlc = "gage_pack_snp", name_id = "bm_wp_r93_body_wood", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93_pts/wpn_fps_snp_r93_body_wood", pcs = {}, stats = { concealment = -3, recoil = 2, value = 7 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_r93_m_std = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93_pts/wpn_fps_snp_r93_m_std", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_snp_r93_b_standard.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_r93_pts/wpn_third_snp_r93_b_standard" self.parts.wpn_fps_snp_r93_b_short.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_r93_pts/wpn_third_snp_r93_b_short" self.parts.wpn_fps_snp_r93_b_suppressed.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_r93_pts/wpn_third_snp_r93_b_suppressed" self.parts.wpn_fps_snp_r93_body_standard.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_r93_pts/wpn_third_snp_r93_body_standard" self.parts.wpn_fps_snp_r93_body_wood.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_r93_pts/wpn_third_snp_r93_body_wood" self.parts.wpn_fps_snp_r93_m_std.third_unit = "units/pd2_dlc_gage_snp/weapons/wpn_third_snp_r93_pts/wpn_third_snp_r93_m_std" self.wpn_fps_snp_r93 = { unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93/wpn_fps_snp_r93", optional_types = { "gadget", "sight" }, default_blueprint = { "wpn_fps_snp_r93_b_standard", "wpn_fps_snp_r93_body_standard", "wpn_fps_snp_r93_m_std", "wpn_fps_upg_o_shortdot" }, uses_parts = { "wpn_fps_snp_r93_b_standard", "wpn_fps_snp_r93_b_short", "wpn_fps_snp_r93_b_suppressed", "wpn_fps_snp_r93_body_standard", "wpn_fps_snp_r93_body_wood", "wpn_fps_snp_r93_m_std", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_r93_npc = deep_clone(self.wpn_fps_snp_r93) self.wpn_fps_snp_r93_npc.unit = "units/pd2_dlc_gage_snp/weapons/wpn_fps_snp_r93/wpn_fps_snp_r93_npc" end function WeaponFactoryTweakData:_init_fal() self.parts.wpn_fps_ass_fal_body_standard = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "upper_reciever", a_obj = "a_body", dlc = "big_bank", name_id = "bm_wp_fal_body_standard", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_body_standard", stats = { value = 2 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_fal_fg_01 = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "barrel", a_obj = "a_fg", dlc = "big_bank", name_id = "bm_wp_fal_body_standard", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_fg_01", pcs = {}, stats = { value = 2, spread = -1, damage = 1, concealment = 6, spread_moving = 4 } } self.parts.wpn_fps_ass_fal_fg_standard = { a_obj = "a_fg", type = "barrel", name_id = "bm_wp_fal_fg_standard", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_fg_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_fal_fg_03 = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "barrel", a_obj = "a_fg", dlc = "big_bank", name_id = "bm_wp_fal_fg_03", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_fg_03", pcs = {}, stats = { recoil = 2, value = 2, damage = 1, concealment = -1, spread_moving = 4 } } self.parts.wpn_fps_ass_fal_fg_04 = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "barrel", a_obj = "a_fg", dlc = "big_bank", name_id = "bm_wp_fal_fg_04", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_fg_04", pcs = {}, stats = { value = 2, spread_moving = -2, damage = 1, concealment = -2, spread = 1, recoil = -1 } } self.parts.wpn_fps_ass_fal_fg_wood = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "barrel", a_obj = "a_fg", dlc = "big_bank", name_id = "bm_wp_fal_fg_wood", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_fg_wood", pcs = {}, stats = { recoil = 1, spread = 2, concealment = -2, value = 2, spread_moving = -2 } } self.parts.wpn_fps_ass_fal_g_01 = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "grip", a_obj = "a_g", dlc = "big_bank", name_id = "bm_wp_fal_g_01", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_g_01", pcs = {}, stats = { value = 2, recoil = 1, spread_moving = 1, concealment = 2 } } self.parts.wpn_fps_ass_fal_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_fal_body_standard", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_g_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_fal_m_01 = { texture_bundle_folder = "big_bank", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "big_bank", name_id = "bm_wp_fal_m_01", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_m_01", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 10, value = 2, spread = -1, recoil = 1, concealment = -2, spread_moving = -2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_fal_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_fal_m_standard", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_fal_s_01 = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "stock", a_obj = "a_s", dlc = "big_bank", name_id = "bm_wp_fal_s_01", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_s_01", pcs = {}, stats = { value = 2, spread_moving = 2, concealment = 5 } } self.parts.wpn_fps_ass_fal_s_03 = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "stock", a_obj = "a_s", dlc = "big_bank", name_id = "bm_wp_fal_s_03", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_s_03", pcs = {}, stats = { recoil = 1, spread = 1, concealment = -2, value = 2, spread_moving = -3 } } self.parts.wpn_fps_ass_fal_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_fal_s_standard", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_s_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_fal_s_wood = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "stock", a_obj = "a_s", dlc = "big_bank", name_id = "bm_wp_fal_s_wood", unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal_pts/wpn_fps_ass_fal_s_wood", pcs = {}, stats = { value = 2, recoil = 4, spread_moving = -3 } } self.parts.wpn_fps_ass_fal_body_standard.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_body_standard" self.parts.wpn_fps_ass_fal_fg_01.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_fg_01" self.parts.wpn_fps_ass_fal_fg_standard.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_fg_standard" self.parts.wpn_fps_ass_fal_fg_03.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_fg_03" self.parts.wpn_fps_ass_fal_fg_04.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_fg_04" self.parts.wpn_fps_ass_fal_fg_wood.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_fg_wood" self.parts.wpn_fps_ass_fal_g_01.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_g_01" self.parts.wpn_fps_ass_fal_g_standard.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_g_standard" self.parts.wpn_fps_ass_fal_m_01.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_m_01" self.parts.wpn_fps_ass_fal_m_standard.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_m_standard" self.parts.wpn_fps_ass_fal_s_01.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_s_01" self.parts.wpn_fps_ass_fal_s_03.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_s_03" self.parts.wpn_fps_ass_fal_s_standard.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_s_standard" self.parts.wpn_fps_ass_fal_s_wood.third_unit = "units/pd2_dlc_big/weapons/wpn_third_ass_fal_pts/wpn_third_ass_fal_s_wood" self.wpn_fps_ass_fal = { unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal/wpn_fps_ass_fal", optional_types = { "barrel_ext", "gadget" }, animations = {}, override = {}, adds = {}, default_blueprint = { "wpn_fps_ass_fal_body_standard", "wpn_fps_ass_fal_fg_standard", "wpn_fps_ass_fal_g_standard", "wpn_fps_ass_fal_m_standard", "wpn_fps_ass_fal_s_standard" }, uses_parts = { "wpn_fps_ass_fal_body_standard", "wpn_fps_ass_fal_fg_01", "wpn_fps_ass_fal_fg_standard", "wpn_fps_ass_fal_fg_03", "wpn_fps_ass_fal_fg_04", "wpn_fps_ass_fal_fg_wood", "wpn_fps_ass_fal_g_01", "wpn_fps_ass_fal_g_standard", "wpn_fps_ass_fal_m_01", "wpn_fps_ass_fal_m_standard", "wpn_fps_ass_fal_s_01", "wpn_fps_ass_fal_s_03", "wpn_fps_ass_fal_s_standard", "wpn_fps_ass_fal_s_wood", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_fal_npc = deep_clone(self.wpn_fps_ass_fal) self.wpn_fps_ass_fal_npc.unit = "units/pd2_dlc_big/weapons/wpn_fps_ass_fal/wpn_fps_ass_fal_npc" end function WeaponFactoryTweakData:_init_ben() self.parts.wpn_fps_sho_ben_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "barrel", a_obj = "a_b", dlc = "gage_pack_shotgun", name_id = "bm_wp_ben_b_long", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_b_long", pcs = {}, stats = { extra_ammo = 1, value = 8, spread = 2, concealment = -2, recoil = 1 } } self.parts.wpn_fps_sho_ben_b_standard = { texture_bundle_folder = "gage_pack_shotgun", dlc = "gage_pack_shotgun", type = "barrel", name_id = "bm_wp_ben_b_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_b_standard", a_obj = "a_b", stats = { value = 1 } } self.parts.wpn_fps_sho_ben_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "barrel", a_obj = "a_b", dlc = "gage_pack_shotgun", name_id = "bm_wp_ben_b_short", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_b_short", pcs = {}, stats = { extra_ammo = -1, value = 5, damage = 2, spread = -2, concealment = 6, recoil = -2 } } self.parts.wpn_fps_sho_ben_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_ben_body_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_sho_ben_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ben_fg_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_ben_s_collapsable = { a_obj = "a_s", type = "stock", name_id = "bm_wp_ben_fg_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_s_collapsable", stats = { value = 1 } } self.parts.wpn_fps_sho_ben_s_collapsed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "stock", a_obj = "a_s", dlc = "gage_pack_shotgun", name_id = "bm_wp_ben_s_collapsed", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_s_collapsed", pcs = {}, stats = { value = 1, recoil = -3, concealment = 6 } } self.parts.wpn_fps_sho_ben_s_solid = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "stock", a_obj = "a_s", dlc = "gage_pack_shotgun", name_id = "bm_wp_ben_fg_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben_pts/wpn_fps_sho_ben_s_solid", pcs = {}, stats = { value = 5, recoil = 2, spread = 1, concealment = -2 } } self.parts.wpn_fps_sho_ben_b_long.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_b_long" self.parts.wpn_fps_sho_ben_b_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_b_long" self.parts.wpn_fps_sho_ben_b_short.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_b_short" self.parts.wpn_fps_sho_ben_body_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_body_standard" self.parts.wpn_fps_sho_ben_fg_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_fg_standard" self.parts.wpn_fps_sho_ben_s_collapsable.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_s_collapsable" self.parts.wpn_fps_sho_ben_s_collapsed.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_s_collapsed" self.parts.wpn_fps_sho_ben_s_solid.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ben_pts/wpn_third_sho_ben_s_solid" self.wpn_fps_sho_ben = { unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben/wpn_fps_sho_ben", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, default_blueprint = { "wpn_fps_sho_ben_b_standard", "wpn_fps_sho_ben_body_standard", "wpn_fps_sho_ben_fg_standard", "wpn_fps_sho_ben_s_collapsable" }, uses_parts = { "wpn_fps_sho_ben_b_long", "wpn_fps_sho_ben_b_standard", "wpn_fps_sho_ben_b_short", "wpn_fps_sho_ben_body_standard", "wpn_fps_sho_ben_fg_standard", "wpn_fps_sho_ben_s_collapsable", "wpn_fps_sho_ben_s_collapsed", "wpn_fps_sho_ben_s_solid", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_ben_npc = deep_clone(self.wpn_fps_sho_ben) self.wpn_fps_sho_ben_npc.unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ben/wpn_fps_sho_ben_npc" end function WeaponFactoryTweakData:_init_striker() self.parts.wpn_fps_sho_striker_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "barrel", a_obj = "a_b", dlc = "gage_pack_shotgun", name_id = "bm_wp_striker_b_long", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_striker_pts/wpn_fps_sho_striker_b_long", pcs = {}, stats = { value = 3, recoil = 1, spread = 2, concealment = -2 } } self.parts.wpn_fps_sho_striker_b_suppressed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", dlc = "gage_pack_shotgun", a_obj = "a_b", type = "barrel", sub_type = "silencer", name_id = "bm_wp_striker_b_suppressed", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_striker_pts/wpn_fps_sho_striker_b_suppressed", pcs = {}, stats = { alert_size = 12, value = 5, damage = -2, suppression = 12, spread = -1, recoil = 2, spread_moving = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" }, forbids = { "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_a_dragons_breath", "wpn_fps_upg_ns_duck" } } self.parts.wpn_fps_sho_striker_b_standard = { texture_bundle_folder = "gage_pack_shotgun", dlc = "gage_pack_shotgun", type = "barrel", name_id = "bm_wp_striker_b_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_striker_pts/wpn_fps_sho_striker_b_standard", a_obj = "a_b", stats = { value = 1 } } self.parts.wpn_fps_sho_striker_body_standard = { texture_bundle_folder = "gage_pack_shotgun", dlc = "gage_pack_shotgun", type = "lower_reciever", name_id = "bm_wp_striker_body_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_striker_pts/wpn_fps_sho_striker_body_standard", a_obj = "a_body", stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_sho_striker_b_long.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_striker_pts/wpn_third_sho_striker_b_long" self.parts.wpn_fps_sho_striker_b_suppressed.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_striker_pts/wpn_third_sho_striker_b_suppressed" self.parts.wpn_fps_sho_striker_b_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_striker_pts/wpn_third_sho_striker_b_standard" self.parts.wpn_fps_sho_striker_body_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_striker_pts/wpn_third_sho_striker_body_standard" self.wpn_fps_sho_striker = { unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_striker/wpn_fps_sho_striker", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_upg_o_marksmansight_rear_vanilla = { a_obj = "a_o_r" }, wpn_upg_o_marksmansight_front = { a_obj = "a_o_f" }, wpn_fps_upg_a_slug = { desc_id = "bm_wp_upg_a_slug2_desc", custom_stats = { armor_piercing_add = 1, can_shoot_through_shield = true, can_shoot_through_wall = true, damage_far_mul = 1.15, damage_near_mul = 2, can_shoot_through_enemy = true, rays = 1 } }, wpn_fps_upg_a_custom = { desc_id = "bm_wp_upg_a_custom2_desc", custom_stats = {} }, wpn_fps_upg_a_custom_free = { desc_id = "bm_wp_upg_a_custom2_desc", custom_stats = {} } }, default_blueprint = { "wpn_fps_sho_striker_b_standard", "wpn_fps_sho_striker_body_standard", "wpn_upg_o_marksmansight_rear_vanilla" }, uses_parts = { "wpn_fps_sho_striker_b_long", "wpn_fps_sho_striker_b_suppressed", "wpn_fps_sho_striker_b_standard", "wpn_fps_sho_striker_body_standard", "wpn_upg_o_marksmansight_rear_vanilla", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_striker_npc = deep_clone(self.wpn_fps_sho_striker) self.wpn_fps_sho_striker_npc.unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_striker/wpn_fps_sho_striker_npc" end function WeaponFactoryTweakData:_init_ksg() self.parts.wpn_fps_sho_ksg_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "barrel", a_obj = "a_b", dlc = "gage_pack_shotgun", name_id = "bm_wp_ksg_b_long", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg_pts/wpn_fps_sho_ksg_b_long", pcs = {}, stats = { extra_ammo = 2, value = 7, spread = 2, concealment = -2, recoil = 1 }, forbids = { "wpn_fps_sho_ksg_fg_short" }, adds = { "wpn_fps_sho_ksg_fg_standard" }, override = { wpn_fps_upg_o_dd_front = { a_obj = "a_o_f_2" } } } self.parts.wpn_fps_sho_ksg_b_standard = { type = "barrel", name_id = "bm_wp_ksg_b_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg_pts/wpn_fps_sho_ksg_b_standard", a_obj = "a_b", stats = { value = 1 }, forbids = { "wpn_fps_sho_ksg_fg_short" }, adds = { "wpn_fps_sho_ksg_fg_standard" }, override = { wpn_fps_upg_o_dd_front = { a_obj = "a_o_f_2" } } } self.parts.wpn_fps_sho_ksg_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", type = "barrel", a_obj = "a_b", dlc = "gage_pack_shotgun", name_id = "bm_wp_ksg_b_short", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg_pts/wpn_fps_sho_ksg_b_short", pcs = {}, stats = { extra_ammo = -2, value = 5, damage = 1, spread = -2, concealment = 4, recoil = -2 }, forbids = { "wpn_fps_sho_ksg_fg_standard" }, adds = { "wpn_fps_sho_ksg_fg_short" } } self.parts.wpn_fps_sho_ksg_fg_short = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ksg_fg_short", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg_pts/wpn_fps_sho_ksg_fg_short", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil" } } self.parts.wpn_fps_sho_ksg_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_standard_issue", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg_pts/wpn_fps_sho_ksg_fg_standard", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil" } } self.parts.wpn_fps_sho_ksg_body_standard = { a_obj = "a_body", type = "lower_body", name_id = "bm_wp_ksg_body_standard", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg_pts/wpn_fps_sho_ksg_body_standard", stats = { value = 1 } } self.parts.wpn_fps_upg_o_mbus_rear = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", dlc = "gage_pack_shotgun", a_obj = "a_o_r", type = "sight", name_id = "bm_wp_upg_o_mbus_rear", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_upg_o_mbus/wpn_fps_upg_o_mbus_rear", pcs = {}, stats = { value = 3, concealment = 2 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), adds = { "wpn_fps_upg_o_mbus_front" }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_upg_o_mbus_front = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", dlc = "gage_pack_shotgun", type = "extra", name_id = "bm_wp_upg_o_mbus_front", unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_upg_o_mbus/wpn_fps_upg_o_mbus_front", a_obj = "a_o_f" } self.parts.wpn_fps_sho_ksg_b_long.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ksg_pts/wpn_third_sho_ksg_b_long" self.parts.wpn_fps_sho_ksg_b_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ksg_pts/wpn_third_sho_ksg_b_standard" self.parts.wpn_fps_sho_ksg_b_short.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ksg_pts/wpn_third_sho_ksg_b_short" self.parts.wpn_fps_sho_ksg_fg_short.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ksg_pts/wpn_third_sho_ksg_fg_short" self.parts.wpn_fps_sho_ksg_fg_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ksg_pts/wpn_third_sho_ksg_fg_standard" self.parts.wpn_fps_sho_ksg_body_standard.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_sho_ksg_pts/wpn_third_sho_ksg_body_standard" self.parts.wpn_fps_upg_o_mbus_rear.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_upg_o_mbus/wpn_third_upg_o_mbus_rear" self.parts.wpn_fps_upg_o_mbus_front.third_unit = "units/pd2_dlc_gage_shot/weapons/wpn_third_upg_o_mbus/wpn_third_upg_o_mbus_front" self.wpn_fps_sho_ksg = { unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg/wpn_fps_sho_ksg", animations = { reload_exit = "reload_exit", fire = "recoil", fire_steelsight = "recoil" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_fps_upg_o_specter = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_specter.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_aimpoint = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_aimpoint.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_aimpoint_2 = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_aimpoint_2.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_docter = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_docter.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_eotech = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_eotech.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_t1micro = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_t1micro.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_cmore = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_cmore.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_acog = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_acog.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_cs = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_cs.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_eotech_xps = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_eotech_xps.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_reflex = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_reflex.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_rx01 = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_rx01.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_upg_o_rx30 = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_rx30.forbids, { "wpn_fps_addon_ris" }) }, wpn_fps_ak_extra_ris = { a_obj = "a_fl_90" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { forbids = table.list_add(self.parts.wpn_fps_upg_fl_ass_smg_sho_surefire.forbids, { "wpn_fps_addon_ris" }), adds = { "wpn_fps_ak_extra_ris" } }, wpn_fps_upg_fl_ass_utg = { forbids = table.list_add(self.parts.wpn_fps_upg_fl_ass_utg.forbids, { "wpn_fps_addon_ris" }), adds = { "wpn_fps_ak_extra_ris", "wpn_fps_upg_fl_ass_peq15_flashlight" } }, wpn_fps_upg_o_spot = { override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl_2" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl_2" } }, forbids = table.list_add(self.parts.wpn_fps_upg_o_spot.forbids, { "wpn_fps_addon_ris" }) } }, default_blueprint = { "wpn_fps_sho_ksg_b_standard", "wpn_fps_sho_ksg_body_standard", "wpn_fps_sho_ksg_fg_standard", "wpn_fps_upg_o_dd_rear" }, uses_parts = { "wpn_fps_sho_ksg_b_long", "wpn_fps_sho_ksg_b_standard", "wpn_fps_sho_ksg_b_short", "wpn_fps_sho_ksg_body_standard", "wpn_fps_sho_ksg_fg_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_o_dd_rear", "wpn_fps_upg_o_mbus_rear", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_sho_ksg_b_legendary", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_ksg_npc = deep_clone(self.wpn_fps_sho_ksg) self.wpn_fps_sho_ksg_npc.unit = "units/pd2_dlc_gage_shot/weapons/wpn_fps_sho_ksg/wpn_fps_sho_ksg_npc" end function WeaponFactoryTweakData:_init_gre_m79() self.parts.wpn_fps_gre_m79_barrel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_gre_m79_barrel", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_barrel", stats = { value = 1 }, adds = { "wpn_fps_gre_m79_sight_up" } } self.parts.wpn_fps_gre_m79_barrel_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", a_obj = "a_b", type = "barrel", dlc = "gage_pack_assault", name_id = "bm_wp_m79_barrel_short", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_barrel_short", pcs = {}, stats = { value = 1, recoil = 0, spread = -2, concealment = 4 }, forbids = { "wpn_fps_gre_m79_sight_up", "wpn_fps_gre_m79_sight_down" } } self.parts.wpn_fps_gre_m79_sight_up = { type = "gadget", sub_type = "second_sight", a_obj = "a_os", parent = "barrel", name_id = "bm_wp_m79_sight_up", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_sight_up", stats = { value = 1, recoil = 0, spread = 0, gadget_zoom = 1 }, stance_mod = { wpn_fps_gre_m79 = { translation = Vector3(0, -8, -2), rotation = Rotation(0, -5, 0) }, wpn_fps_gre_china = { translation = Vector3(0, -12, -4), rotation = Rotation(0, -5, 0) } }, perks = { "gadget" } } self.parts.wpn_fps_gre_m79_barrelcatch = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_m79_barrelcatch", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_barrelcatch", stats = { value = 1 } } self.parts.wpn_fps_gre_m79_grenade = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_gre_m79_grenade", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_grenade", bullet_objects = { amount = 1, prefix = "g_grenade_" }, stats = { value = 1 } } self.parts.wpn_fps_gre_m79_stock = { a_obj = "a_body", type = "stock", name_id = "bm_wp_m79_stock_short", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_stock", stats = { value = 1 } } self.parts.wpn_fps_gre_m79_stock_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_body", dlc = "gage_pack_assault", name_id = "bm_wp_gre_m79_s_leather", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_fps_gre_m79_stock_short", pcs = {}, stats = { value = 1, recoil = -1, spread = 0, concealment = 4 } } self.parts.wpn_fps_gre_m79_barrel.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_barrel" self.parts.wpn_fps_gre_m79_barrel_short.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_barrel_short" self.parts.wpn_fps_gre_m79_sight_up.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_sight_up" self.parts.wpn_fps_gre_m79_barrelcatch.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_barrelcatch" self.parts.wpn_fps_gre_m79_grenade.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_grenade" self.parts.wpn_fps_gre_m79_stock.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_stock" self.parts.wpn_fps_gre_m79_stock_short.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_stock_short" self.wpn_fps_gre_m79 = { unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79/wpn_fps_gre_m79", animations = { reload = "reload" }, default_blueprint = { "wpn_fps_gre_m79_barrel", "wpn_fps_gre_m79_barrelcatch", "wpn_fps_gre_m79_grenade", "wpn_fps_gre_m79_stock" }, uses_parts = { "wpn_fps_gre_m79_barrel", "wpn_fps_gre_m79_barrel_short", "wpn_fps_gre_m79_barrelcatch", "wpn_fps_gre_m79_stock", "wpn_fps_gre_m79_stock_short", "wpn_fps_gre_m79_sight_up", "wpn_fps_gre_m79_grenade" } } self.wpn_fps_gre_m79_npc = deep_clone(self.wpn_fps_gre_m79) self.wpn_fps_gre_m79_npc.unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79/wpn_fps_gre_m79_npc" end function WeaponFactoryTweakData:_init_g3() self.parts.wpn_fps_ass_g3_body_lower = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_g3_body_lower", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_body_lower", stats = { value = 2 } } self.parts.wpn_fps_ass_g3_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_g3_body_upper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_body_upper", stats = { value = 2 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_ass_g3_b_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", a_obj = "a_b", type = "barrel", parent = "foregrip", dlc = "gage_pack_assault", name_id = "bm_wp_g3_b_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_b_sniper", pcs = {}, stats = { extra_ammo = -5, total_ammo_mod = -6, damage = 61, value = 2, concealment = -2, recoil = -1, spread = 2 }, override = { wpn_fps_ass_g3_m_mag = { third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_m_mag_psg", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_m_mag_psg" } }, adds = { "wpn_fps_ammo_type" } } self.parts.wpn_fps_ammo_type = { a_obj = "a_m", type = "ammo", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ammo_type", stats = { value = 1 }, custom_stats = { ammo_pickup_max_mul = 0.5, ammo_pickup_min_mul = 0.5 } } self.parts.wpn_fps_ass_g3_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_b", parent = "foregrip", dlc = "gage_pack_assault", name_id = "bm_wp_g3_b_short", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_b_short", pcs = {}, stats = { spread = -4, total_ammo_mod = 15, damage = -40, value = 2, concealment = 4, recoil = 5 }, forbids = { "wpn_fps_ammo_type" }, override = { wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } } } self.parts.wpn_fps_ass_g3_b_long = { parent = "foregrip", a_obj = "a_b", type = "barrel", name_id = "bm_wp_g3_b_long", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_b_long", stats = { value = 2 }, forbids = { "wpn_fps_ammo_type" }, override = { wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } } } self.parts.wpn_fps_ass_g3_body_rail = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_g3_b_long", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_body_rail", stats = { value = 2 } } self.parts.wpn_fps_ass_g3_fg_bipod = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_g3_fg_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_fg_bipod", stats = { value = 2 }, animations = { reload = "reload" } } self.parts.wpn_fps_ass_g3_fg_psg = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "foregrip", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_g3_fg_psg", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_fg_psg", pcs = {}, stats = { value = 2, recoil = -1, spread = 1, concealment = -1 }, animations = { reload = "reload" } } self.parts.wpn_fps_ass_g3_fg_railed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "foregrip", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_g3_fg_railed", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_fg_railed", pcs = {}, stats = { value = 2, recoil = 2, spread = 0, concealment = -2 }, animations = { reload = "reload" } } self.parts.wpn_fps_ass_g3_fg_retro = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "foregrip", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_g3_fg_retro", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_fg_retro", pcs = {}, stats = { value = 2, recoil = 3, spread = -1, concealment = 2 }, animations = { reload = "reload" } } self.parts.wpn_fps_ass_g3_fg_retro_plastic = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "foregrip", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_g3_fg_retro_plastic", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_fg_retro_plastic", pcs = {}, stats = { value = 2, recoil = 0, spread = -1, concealment = 4 }, animations = { reload = "reload" } } self.parts.wpn_fps_ass_g3_g_retro = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "grip", a_obj = "a_g", dlc = "gage_pack_assault", name_id = "bm_wp_g3_g_retro", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_g_retro", pcs = {}, stats = { value = 2, recoil = 2, spread = 0, concealment = 0 } } self.parts.wpn_fps_ass_g3_g_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "grip", a_obj = "a_g", dlc = "gage_pack_assault", name_id = "bm_wp_g3_g_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_g_sniper", pcs = {}, stats = { value = 2, recoil = -1, spread = 2, concealment = -1 } } self.parts.wpn_fps_ass_g3_m_mag = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_g3_m_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_m_mag", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_g3_s_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_g3_s_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_s_sniper", pcs = {}, stats = { value = 2, recoil = -1, spread = 2, concealment = -1 } } self.parts.wpn_fps_ass_g3_s_wood = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_g3_s_wood", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_fps_ass_g3_s_wood", pcs = {}, stats = { value = 2, recoil = 3, spread = 0, concealment = -1 } } self.parts.wpn_fps_ass_g3_body_lower.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_body_lower" self.parts.wpn_fps_ass_g3_body_upper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_body_upper" self.parts.wpn_fps_ass_g3_b_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_b_sniper" self.parts.wpn_fps_ass_g3_b_short.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_b_short" self.parts.wpn_fps_ass_g3_b_long.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_b_long" self.parts.wpn_fps_ass_g3_body_rail.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_body_rail" self.parts.wpn_fps_ass_g3_fg_bipod.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_fg_bipod" self.parts.wpn_fps_ass_g3_fg_psg.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_fg_psg" self.parts.wpn_fps_ass_g3_fg_railed.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_fg_railed" self.parts.wpn_fps_ass_g3_fg_retro.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_fg_retro" self.parts.wpn_fps_ass_g3_fg_retro_plastic.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_fg_retro_plastic" self.parts.wpn_fps_ass_g3_g_retro.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_g_retro" self.parts.wpn_fps_ass_g3_g_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_g_sniper" self.parts.wpn_fps_ass_g3_m_mag.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_m_mag" self.parts.wpn_fps_ass_g3_s_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_s_sniper" self.parts.wpn_fps_ass_g3_s_wood.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3_pts/wpn_third_ass_g3_s_standard" self.wpn_fps_ass_g3 = { unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3/wpn_fps_ass_g3", optional_types = { "barrel_ext", "gadget" }, override = {}, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_g3_body_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_g3_body_rail" } }, default_blueprint = { "wpn_fps_ass_g3_b_long", "wpn_fps_ass_g3_body_lower", "wpn_fps_ass_g3_body_upper", "wpn_fps_ass_g3_fg_bipod", "wpn_fps_lmg_hk21_g_standard", "wpn_fps_ass_g3_m_mag", "wpn_fps_lmg_hk21_s_standard" }, uses_parts = { "wpn_fps_ass_g3_body_lower", "wpn_fps_ass_g3_body_upper", "wpn_fps_ass_g3_fg_bipod", "wpn_fps_ass_g3_m_mag", "wpn_fps_ass_g3_b_short", "wpn_fps_ass_g3_b_long", "wpn_fps_ass_g3_b_sniper", "wpn_fps_ass_g3_fg_psg", "wpn_fps_ass_g3_fg_railed", "wpn_fps_ass_g3_fg_retro", "wpn_fps_ass_g3_fg_retro_plastic", "wpn_fps_ass_g3_g_retro", "wpn_fps_ass_g3_g_sniper", "wpn_fps_ass_g3_s_sniper", "wpn_fps_ass_g3_s_wood", "wpn_fps_lmg_hk21_g_standard", "wpn_fps_lmg_hk21_s_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_g3_npc = deep_clone(self.wpn_fps_ass_g3) self.wpn_fps_ass_g3_npc.unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_g3/wpn_fps_ass_g3_npc" end function WeaponFactoryTweakData:_init_galil() self.parts.wpn_fps_ass_galil_body_standard = { is_a_unlockable = true, texture_bundle_folder = "big_bank", type = "upper_reciever", a_obj = "a_body", dlc = "big_bank", name_id = "bm_wp_galil_body_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_body_standard", stats = { value = 2 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_galil_fg_fab = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_galil_fg_fab", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_fg_fab", pcs = {}, stats = { value = 2, recoil = 2, spread = 1, concealment = -1 }, forbids = { "wpn_fps_shot_r870_ris_special" }, override = { wpn_fps_upg_o_specter = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_docter = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_acog = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_cs = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_45rds = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(-2.02, 0, -13.7), rotation = Rotation(0, 0, -45) } } }, wpn_fps_upg_o_45rds_v2 = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(-2.02, 0, -13.7), rotation = Rotation(0, 0, -45) } } }, wpn_fps_upg_o_spot = { a_obj = "a_os_fab", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, 0, -3.5) } } }, wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_ass_galil_fg_mar = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_galil_fg_mar", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_fg_mar", pcs = {}, stats = { spread = -1, value = 2, damage = 2, concealment = 4, recoil = -1 }, forbids = { "wpn_fps_shot_r870_ris_special" }, override = { wpn_fps_upg_o_specter = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_docter = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_acog = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_cs = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_45rds = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(-2.9, 0, -12.85), rotation = Rotation(0, 0, -45) } } }, wpn_fps_upg_o_45rds_v2 = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(-2.9, 0, -12.85), rotation = Rotation(0, 0, -45) } } }, wpn_fps_upg_o_spot = { a_obj = "a_os_mar", stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_ass_galil = { translation = Vector3(0, -8, -2.2) } } }, wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_ass_galil_fg_sar = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_galil_fg_sar", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_fg_sar", pcs = {}, stats = { spread = 0, value = 2, damage = 1, concealment = 1, recoil = 0 }, override = { wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } } } self.parts.wpn_fps_ass_galil_fg_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_fg", dlc = "gage_pack_assault", name_id = "bm_wp_galil_fg_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_fg_sniper", pcs = {}, stats = { value = 2, recoil = -1, spread = 3, concealment = -2 }, override = { wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_linear = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_firepig = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_stubby = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_tank = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } } } self.parts.wpn_fps_ass_galil_fg_standard = { a_obj = "a_fg", type = "barrel", name_id = "bm_wp_galil_fg_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_fg_standard", stats = { value = 2 }, override = { wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_s" } } } self.parts.wpn_fps_ass_galil_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_galil_g_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_g_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_galil_g_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "grip", a_obj = "a_g", dlc = "gage_pack_assault", name_id = "bm_wp_galil_g_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_g_sniper", pcs = {}, stats = { value = 2, recoil = -1, spread = 1, concealment = -1 } } self.parts.wpn_fps_ass_galil_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_galil_m_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_galil_s_fab = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_galil_s_fab", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_fab", pcs = {}, stats = { value = 2, recoil = -1, spread = 1, concealment = 3 } } self.parts.wpn_fps_ass_galil_s_light = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_galil_s_light", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_light", pcs = {}, stats = { value = 2, recoil = 1, spread = 0, concealment = 2 } } self.parts.wpn_fps_ass_galil_s_plastic = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_galil_s_plastic", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_plastic", pcs = {}, stats = { value = 2, recoil = -2, spread = 2, concealment = 1 } } self.parts.wpn_fps_ass_galil_s_skeletal = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_galil_s_skeletal", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_skeletal", pcs = {}, stats = { value = 2, recoil = 3, spread = -1, concealment = 1 } } self.parts.wpn_fps_ass_galil_s_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_galil_s_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_sniper", pcs = {}, stats = { value = 2, recoil = -3, spread = 3, concealment = -2 } } self.parts.wpn_fps_ass_galil_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_galil_s_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_galil_s_wood = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "stock", a_obj = "a_s", dlc = "gage_pack_assault", name_id = "bm_wp_galil_s_wood", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil_pts/wpn_fps_ass_galil_s_wood", pcs = {}, stats = { value = 2, recoil = 4, spread = 0, concealment = -2 } } self.parts.wpn_fps_ass_galil_body_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_body_standard" self.parts.wpn_fps_ass_galil_fg_fab.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_fg_fab" self.parts.wpn_fps_ass_galil_fg_mar.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_fg_mar" self.parts.wpn_fps_ass_galil_fg_sar.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_fg_sar" self.parts.wpn_fps_ass_galil_fg_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_fg_sniper" self.parts.wpn_fps_ass_galil_fg_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_fg_standard" self.parts.wpn_fps_ass_galil_g_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_g_standard" self.parts.wpn_fps_ass_galil_g_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_g_sniper" self.parts.wpn_fps_ass_galil_m_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_m_standard" self.parts.wpn_fps_ass_galil_s_fab.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_fab" self.parts.wpn_fps_ass_galil_s_light.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_light" self.parts.wpn_fps_ass_galil_s_plastic.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_plastic" self.parts.wpn_fps_ass_galil_s_skeletal.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_skeletal" self.parts.wpn_fps_ass_galil_s_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_sniper" self.parts.wpn_fps_ass_galil_s_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_standard" self.parts.wpn_fps_ass_galil_s_wood.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_galil_pts/wpn_third_ass_galil_s_wood" self.wpn_fps_ass_galil = { unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil/wpn_fps_ass_galil", optional_types = { "barrel_ext", "gadget" }, override = {}, adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_ass_galil_body_standard", "wpn_fps_ass_galil_fg_standard", "wpn_fps_ass_galil_m_standard", "wpn_fps_ass_galil_s_standard", "wpn_fps_ass_galil_g_standard" }, uses_parts = { "wpn_fps_ass_galil_body_standard", "wpn_fps_ass_galil_fg_fab", "wpn_fps_ass_galil_fg_mar", "wpn_fps_ass_galil_fg_sar", "wpn_fps_ass_galil_fg_sniper", "wpn_fps_ass_galil_fg_standard", "wpn_fps_ass_galil_g_standard", "wpn_fps_ass_galil_g_sniper", "wpn_fps_ass_galil_m_standard", "wpn_fps_ass_galil_s_fab", "wpn_fps_ass_galil_s_light", "wpn_fps_ass_galil_s_plastic", "wpn_fps_ass_galil_s_skeletal", "wpn_fps_ass_galil_s_sniper", "wpn_fps_ass_galil_s_standard", "wpn_fps_ass_galil_s_wood", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_galil_npc = deep_clone(self.wpn_fps_ass_galil) self.wpn_fps_ass_galil_npc.unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_galil/wpn_fps_ass_galil_npc" end function WeaponFactoryTweakData:_init_famas() self.parts.wpn_fps_ass_famas_body_standard = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_famas_body_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_body_standard", stats = { value = 2 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_famas_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_b", dlc = "gage_pack_assault", name_id = "bm_wp_famas_b_long", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_b_long", pcs = {}, stats = { spread = 0, value = 2, damage = 1, concealment = -1, recoil = 1 }, override = { wpn_fps_upg_ns_ass_smg_large = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_medium = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_small = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_n" } } } self.parts.wpn_fps_ass_famas_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_b", dlc = "gage_pack_assault", name_id = "bm_wp_famas_b_short", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_b_short", pcs = {}, stats = { spread = -1, value = 2, damage = 3, concealment = 2, recoil = -1 }, override = { wpn_fps_upg_ns_ass_smg_large = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_medium = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_small = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_n" } } } self.parts.wpn_fps_ass_famas_b_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "barrel", a_obj = "a_b", dlc = "gage_pack_assault", name_id = "bm_wp_famas_b_sniper", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_b_sniper", pcs = {}, stats = { spread = 1, value = 2, damage = 1, concealment = -2, recoil = -1 }, override = { wpn_fps_upg_ns_ass_smg_large = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_medium = { a_obj = "a_ns_s" }, wpn_fps_upg_ns_ass_smg_small = { a_obj = "a_ns_s" }, wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_n" } } } self.parts.wpn_fps_ass_famas_b_suppressed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", dlc = "gage_pack_assault", a_obj = "a_b", type = "barrel", sub_type = "silencer", name_id = "bm_wp_famas_b_suppressed", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_b_suppressed", pcs = {}, stats = { alert_size = 12, value = 4, damage = 0, suppression = 12, spread = 2, recoil = 0, spread_moving = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, forbids = { "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" } } self.parts.wpn_fps_ass_famas_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_famas_b_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_b_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_famas_o_adapter = { a_obj = "a_o", type = "grip", name_id = "bm_wp_famas_o_extra", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_o_adapter", stats = { value = 2 } } self.parts.wpn_fps_ass_famas_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_famas_g_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_g_standard", stats = { value = 2 } } self.parts.wpn_fps_ass_famas_g_retro = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_assault", type = "grip", a_obj = "a_g", dlc = "gage_pack_assault", name_id = "bm_wp_famas_g_retro", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_g_retro", pcs = {}, stats = { value = 2, recoil = 1, spread = 2, concealment = -1 } } self.parts.wpn_fps_ass_famas_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_famas_m_standard", unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas_pts/wpn_fps_ass_famas_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_famas_body_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_body_standard" self.parts.wpn_fps_ass_famas_b_long.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_b_long" self.parts.wpn_fps_ass_famas_b_short.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_b_short" self.parts.wpn_fps_ass_famas_b_sniper.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_b_sniper" self.parts.wpn_fps_ass_famas_b_suppressed.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_b_suppressed" self.parts.wpn_fps_ass_famas_b_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_b_standard" self.parts.wpn_fps_ass_famas_o_adapter.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_o_adapter" self.parts.wpn_fps_ass_famas_g_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_g_standard" self.parts.wpn_fps_ass_famas_g_retro.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_g_retro" self.parts.wpn_fps_ass_famas_m_standard.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_third_ass_famas_pts/wpn_third_ass_famas_m_standard" self.wpn_fps_ass_famas = { unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas/wpn_fps_ass_famas", optional_types = { "barrel_ext", "gadget" }, override = {}, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_famas_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_famas_o_adapter" } }, default_blueprint = { "wpn_fps_ass_famas_body_standard", "wpn_fps_ass_famas_b_standard", "wpn_fps_ass_famas_g_standard", "wpn_fps_ass_famas_m_standard" }, uses_parts = { "wpn_fps_ass_famas_body_standard", "wpn_fps_ass_famas_b_long", "wpn_fps_ass_famas_b_standard", "wpn_fps_ass_famas_b_short", "wpn_fps_ass_famas_b_sniper", "wpn_fps_ass_famas_b_suppressed", "wpn_fps_ass_famas_g_retro", "wpn_fps_ass_famas_g_standard", "wpn_fps_ass_famas_m_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_famas_npc = deep_clone(self.wpn_fps_ass_famas) self.wpn_fps_ass_famas_npc.unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_ass_famas/wpn_fps_ass_famas_npc" end function WeaponFactoryTweakData:_init_scorpion() self.parts.wpn_fps_smg_scorpion_b_standard = { texture_bundle_folder = "dlc1", a_obj = "a_b", type = "barrel", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_scorpion_b_suppressed = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", dlc = "hl_miami", a_obj = "a_b", type = "barrel_ext", sub_type = "silencer", name_id = "bm_wp_scorpion_b_suppressed", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_b_suppressed", pcs = {}, stats = { alert_size = 12, value = 5, damage = 0, suppression = 12, spread = -1, recoil = 1, spread_moving = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_smg_scorpion_body_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_scorpion_g_standard = { texture_bundle_folder = "dlc1", a_obj = "a_g", type = "grip", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_scorpion_g_wood = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "grip", a_obj = "a_g", dlc = "hl_miami", name_id = "bm_wp_scorpion_g_wood", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_g_wood", pcs = {}, stats = { value = 1, recoil = 1, spread = 1, concealment = -1 } } self.parts.wpn_fps_smg_scorpion_g_ergo = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "grip", a_obj = "a_g", dlc = "hl_miami", name_id = "bm_wp_scorpion_g_ergo", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_g_ergo", pcs = {}, stats = { spread = 0, recoil = 3, value = 1, concealment = 1 } } self.parts.wpn_fps_smg_scorpion_m_standard = { texture_bundle_folder = "dlc1", type = "magazine", name_id = "bm_wp_scorpion_m_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_scorpion_m_extended = { texture_bundle_folder = "hl_miami", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "hl_miami", name_id = "bm_wp_scorpion_m_extended", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_m_extended", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { concealment = -3, recoil = 2, value = 1, extra_ammo = 10 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_scorpion_s_nostock = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "stock", a_obj = "a_s", dlc = "hl_miami", name_id = "bm_wp_scorpion_s_nostock", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_s_nostock", pcs = {}, stats = { value = 1, recoil = -1, concealment = 1 } } self.parts.wpn_fps_smg_scorpion_s_standard = { texture_bundle_folder = "dlc1", a_obj = "a_s", type = "stock", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_scorpion_s_unfolded = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "stock", a_obj = "a_s", dlc = "hl_miami", name_id = "bm_wp_scorpion_s_unfolded", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_s_unfolded", pcs = {}, stats = { value = 1, recoil = 3, concealment = -2 } } self.parts.wpn_fps_smg_scorpion_extra_rail = { a_obj = "a_body", type = "extra", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_extra_rail", stats = { value = 1 } } self.parts.wpn_fps_smg_scorpion_extra_rail_gadget = { a_obj = "a_body", type = "extra", name_id = "bm_wp_serbu_s_nostock_short", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion_pts/wpn_fps_smg_scorpion_extra_rail_gadget", stats = { value = 1 } } self.parts.wpn_fps_smg_scorpion_b_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_b_standard" self.parts.wpn_fps_smg_scorpion_b_suppressed.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_b_suppressed" self.parts.wpn_fps_smg_scorpion_body_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_body_standard" self.parts.wpn_fps_smg_scorpion_g_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_g_standard" self.parts.wpn_fps_smg_scorpion_g_wood.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_g_wood" self.parts.wpn_fps_smg_scorpion_g_ergo.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_g_ergo" self.parts.wpn_fps_smg_scorpion_m_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_m_standard" self.parts.wpn_fps_smg_scorpion_m_extended.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_m_extended" self.parts.wpn_fps_smg_scorpion_s_nostock.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_s_nostock" self.parts.wpn_fps_smg_scorpion_s_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_s_standard" self.parts.wpn_fps_smg_scorpion_s_unfolded.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_s_unfolded" self.parts.wpn_fps_smg_scorpion_extra_rail.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_extra_rail" self.parts.wpn_fps_smg_scorpion_extra_rail_gadget.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_scorpion/wpn_third_smg_scorpion_extra_rail_gadget" self.wpn_fps_smg_scorpion = { unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion/wpn_fps_smg_scorpion", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_scorpion_extra_rail" }, wpn_fps_upg_fl_pis_laser = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_scorpion_extra_rail" } }, default_blueprint = { "wpn_fps_smg_scorpion_body_standard", "wpn_fps_smg_scorpion_b_standard", "wpn_fps_smg_scorpion_m_standard", "wpn_fps_smg_scorpion_s_standard", "wpn_fps_smg_scorpion_g_standard" }, uses_parts = { "wpn_fps_smg_scorpion_b_standard", "wpn_fps_smg_scorpion_b_suppressed", "wpn_fps_smg_scorpion_body_standard", "wpn_fps_smg_scorpion_g_standard", "wpn_fps_smg_scorpion_g_wood", "wpn_fps_smg_scorpion_g_ergo", "wpn_fps_smg_scorpion_m_standard", "wpn_fps_smg_scorpion_m_extended", "wpn_fps_smg_scorpion_s_nostock", "wpn_fps_smg_scorpion_s_standard", "wpn_fps_smg_scorpion_s_unfolded", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_scorpion_npc = deep_clone(self.wpn_fps_smg_scorpion) self.wpn_fps_smg_scorpion_npc.unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_scorpion/wpn_fps_smg_scorpion_npc" end function WeaponFactoryTweakData:_init_tec9() self.parts.wpn_fps_smg_tec9_b_long = { texture_bundle_folder = "dlc1", a_obj = "a_b", type = "barrel", name_id = "bm_wp_tec9_", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_b_long", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_tec9_b_standard = { texture_bundle_folder = "hl_miami", type = "barrel", a_obj = "a_b", is_a_unlockable = true, dlc = "hl_miami", name_id = "bm_wp_tec9_b_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_b_standard", pcs = {}, stats = { value = 3, spread = -1, damage = 0, concealment = 3, recoil = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_tec9_ns_ext = { texture_bundle_folder = "hl_miami", type = "barrel", a_obj = "a_b", is_a_unlockable = true, dlc = "hl_miami", name_id = "bm_wp_tec9_ns_ext", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_ns_ext", pcs = {}, stats = { value = 5, spread = 1, damage = 0, concealment = -3, recoil = -2 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_tec9_body_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_tec9_", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_body_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_tec9_m_extended = { texture_bundle_folder = "hl_miami", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "hl_miami", name_id = "bm_wp_tec9_m_extended", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_m_extended", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 6, recoil = 2, value = 4, concealment = -2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_tec9_m_standard = { texture_bundle_folder = "dlc1", type = "magazine", name_id = "bm_wp_tec9_", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_m_standard", a_obj = "a_body", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_tec9_s_unfolded = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "stock", a_obj = "a_s", dlc = "hl_miami", name_id = "bm_wp_tec9_s_unfolded", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9_pts/wpn_fps_smg_tec9_s_unfolded", pcs = {}, stats = { value = 3, recoil = 3, concealment = -2 } } self.parts.wpn_fps_smg_tec9_b_long.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_b_long" self.parts.wpn_fps_smg_tec9_b_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_b_standard" self.parts.wpn_fps_smg_tec9_body_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_body_standard" self.parts.wpn_fps_smg_tec9_m_extended.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_m_extended" self.parts.wpn_fps_smg_tec9_m_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_m_standard" self.parts.wpn_fps_smg_tec9_ns_ext.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_ns_ext" self.parts.wpn_fps_smg_tec9_s_unfolded.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_tec9_pts/wpn_third_smg_tec9_s_unfolded" self.wpn_fps_smg_tec9 = { unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9/wpn_fps_smg_tec9", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_smg_tec9_m_standard", "wpn_fps_smg_tec9_b_long", "wpn_fps_smg_tec9_body_standard" }, uses_parts = { "wpn_fps_smg_tec9_b_long", "wpn_fps_smg_tec9_b_standard", "wpn_fps_smg_tec9_body_standard", "wpn_fps_smg_tec9_m_standard", "wpn_fps_smg_tec9_m_extended", "wpn_fps_smg_tec9_ns_ext", "wpn_fps_smg_tec9_s_unfolded", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_tec9_npc = deep_clone(self.wpn_fps_smg_tec9) self.wpn_fps_smg_tec9_npc.unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_tec9/wpn_fps_smg_tec9_npc" end function WeaponFactoryTweakData:_init_uzi() self.parts.wpn_fps_smg_uzi_b_standard = { texture_bundle_folder = "dlc1", a_obj = "a_b", type = "barrel", name_id = "bm_wp_uzi_b_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_b_standard", stats = { value = 1 }, override = { wpn_fps_upg_ass_ns_jprifles = { a_obj = "a_ns_1" }, wpn_fps_upg_ass_ns_surefire = { a_obj = "a_ns_1" }, wpn_fps_upg_ns_ass_smg_firepig = { a_obj = "a_ns_1" }, wpn_fps_upg_ns_ass_smg_stubby = { a_obj = "a_ns_1" }, wpn_fps_upg_ns_ass_smg_tank = { a_obj = "a_ns_1" }, wpn_fps_upg_ass_ns_battle = { a_obj = "a_ns_1" } } } self.parts.wpn_fps_smg_uzi_b_suppressed = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", dlc = "hl_miami", a_obj = "a_b", type = "barrel_ext", sub_type = "silencer", name_id = "bm_wp_uzi_b_suppressed", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_b_suppressed", pcs = {}, stats = { alert_size = 12, value = 5, damage = 0, suppression = 12, spread = -1, recoil = 1, spread_moving = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_smg_uzi_body_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_uzi_body_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire = "recoil" } } self.parts.wpn_fps_smg_uzi_fg_rail = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "foregrip", a_obj = "a_fg", dlc = "hl_miami", name_id = "bm_wp_uzi_fg_rail", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_fg_rail", pcs = {}, stats = { value = 1, spread = 1, damage = 0, concealment = -2, recoil = 1 }, adds = { "wpn_fps_upg_vg_ass_smg_verticalgrip" } } self.parts.wpn_fps_smg_uzi_fg_standard = { texture_bundle_folder = "dlc1", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_uzi_fg_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_fg_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_vg_ass_smg_verticalgrip" } } self.parts.wpn_fps_smg_uzi_g_standard = { texture_bundle_folder = "dlc1", a_obj = "a_body", type = "grip", name_id = "bm_wp_uzi_g_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_uzi_m_standard = { texture_bundle_folder = "dlc1", type = "magazine", name_id = "bm_wp_uzi_m_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_uzi_s_leather = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "stock", a_obj = "a_s", dlc = "hl_miami", name_id = "bm_wp_uzi_s_leather", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_s_leather", pcs = {}, stats = { spread = 2, recoil = 1, value = 1, concealment = -2 } } self.parts.wpn_fps_smg_uzi_s_solid = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "stock", a_obj = "a_s", dlc = "hl_miami", name_id = "bm_wp_uzi_s_solid", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_s_solid", pcs = {}, stats = { spread = 1, recoil = 3, value = 1, concealment = -2 } } self.parts.wpn_fps_smg_uzi_s_standard = { is_a_unlockable = true, texture_bundle_folder = "hl_miami", type = "stock", a_obj = "a_s", dlc = "hl_miami", name_id = "bm_wp_uzi_s_standard", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_s_standard", pcs = {}, stats = { value = 1, recoil = -3, concealment = 4 } } self.parts.wpn_fps_smg_uzi_s_unfolded = { texture_bundle_folder = "dlc1", a_obj = "a_s", type = "stock", name_id = "bm_wp_uzi_s_unfolded", unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi_pts/wpn_fps_smg_uzi_s_unfolded", stats = { value = 1 } } self.parts.wpn_fps_smg_uzi_b_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_b_standard" self.parts.wpn_fps_smg_uzi_b_suppressed.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_b_suppressed" self.parts.wpn_fps_smg_uzi_body_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_body_standard" self.parts.wpn_fps_smg_uzi_fg_rail.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_fg_rail" self.parts.wpn_fps_smg_uzi_fg_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_fg_standard" self.parts.wpn_fps_smg_uzi_g_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_g_standard" self.parts.wpn_fps_smg_uzi_m_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_m_standard" self.parts.wpn_fps_smg_uzi_s_leather.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_s_leather" self.parts.wpn_fps_smg_uzi_s_solid.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_s_solid" self.parts.wpn_fps_smg_uzi_s_standard.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_s_standard" self.parts.wpn_fps_smg_uzi_s_unfolded.third_unit = "units/pd2_dlc_miami/weapons/wpn_third_smg_uzi_pts/wpn_third_smg_uzi_s_unfolded" self.wpn_fps_smg_uzi = { unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi/wpn_fps_smg_uzi", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_smg_uzi_b_standard", "wpn_fps_smg_uzi_body_standard", "wpn_fps_smg_uzi_fg_standard", "wpn_fps_smg_uzi_g_standard", "wpn_fps_smg_uzi_m_standard", "wpn_fps_smg_uzi_s_unfolded" }, uses_parts = { "wpn_fps_smg_uzi_b_standard", "wpn_fps_smg_uzi_b_suppressed", "wpn_fps_smg_uzi_body_standard", "wpn_fps_smg_uzi_fg_rail", "wpn_fps_smg_uzi_fg_standard", "wpn_fps_smg_uzi_g_standard", "wpn_fps_smg_uzi_m_standard", "wpn_fps_smg_uzi_s_leather", "wpn_fps_smg_uzi_s_solid", "wpn_fps_smg_uzi_s_standard", "wpn_fps_smg_uzi_s_unfolded", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_uzi_npc = deep_clone(self.wpn_fps_smg_uzi) self.wpn_fps_smg_uzi_npc.unit = "units/pd2_dlc_miami/weapons/wpn_fps_smg_uzi/wpn_fps_smg_uzi_npc" end function WeaponFactoryTweakData:is_part_internal(part_id) return self.parts[part_id] and self.parts[part_id].internal_part or false end function WeaponFactoryTweakData:create_bonuses(tweak_data, weapon_skins) self.parts.wpn_fps_upg_bonus_concealment_p1 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_concealment", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 1 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_concealment_p2 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_concealment", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 2 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_concealment_p3 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_concealment", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 3 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_spread_p1 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_spread", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 1 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_spread_n1 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_spread", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = -1 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_recoil_p1 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_recoil", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_damage_p1 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_damage", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, damage = 1 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_damage_p2 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_damage", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, damage = 2 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_total_ammo_p1 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_total_ammo", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = 1 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_total_ammo_p3 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", a_obj = "a_body", type = "bonus", name_id = "bm_menu_bonus_total_ammo", sub_type = "bonus_stats", internal_part = true, unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = 3 }, perks = { "bonus" } } self.parts.wpn_fps_upg_bonus_team_exp_money_p3 = { exclude_from_challenge = true, texture_bundle_folder = "boost_in_lootdrop", internal_part = true, a_obj = "a_body", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", desc_id = "bm_wp_upg_bonus_team_exp_money_p3_desc", type = "bonus", sub_type = "bonus_team", name_id = "bm_wp_upg_bonus_team_exp_money_p3", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", has_description = true, pcs = { 10, 20, 30, 40 }, stats = { value = 1 }, custom_stats = { exp_multiplier = 1.03, money_multiplier = 1.03 }, perks = { "bonus" } } if weapon_skins then local uses_parts = { wpn_fps_upg_bonus_team_exp_money_p3 = {}, wpn_fps_upg_bonus_concealment_p1 = {}, wpn_fps_upg_bonus_recoil_p1 = {}, wpn_fps_upg_bonus_spread_p1 = {}, wpn_fps_upg_bonus_spread_n1 = { category = { "shotgun" } }, wpn_fps_upg_bonus_damage_p1 = { weapon = { "flamethrower_mk2" } }, wpn_fps_upg_bonus_total_ammo_p1 = { category = { "saw", "minigun", "flamethrower", "bow", "crossbow", "snp" } }, wpn_fps_upg_bonus_concealment_p2 = { weapon = { "p90" } }, wpn_fps_upg_bonus_concealment_p3 = { weapon = { "b92fs", "famas", "new_raging_bull", "ppk" } }, wpn_fps_upg_bonus_damage_p2 = { weapon = { "famas" } }, wpn_fps_upg_bonus_total_ammo_p3 = { weapon = { "plainsrider" } } } local all_pass, weapon_pass, exclude_weapon_pass, category_pass, exclude_category_pass = nil for id, data in pairs(tweak_data.upgrades.definitions) do local weapon_tweak = tweak_data.weapon[data.weapon_id] local primary_category = weapon_tweak and weapon_tweak.categories and weapon_tweak.categories[1] if data.weapon_id and weapon_tweak and data.factory_id and self[data.factory_id] then for part_id, params in pairs(uses_parts) do weapon_pass = not params.weapon or table.contains(params.weapon, data.weapon_id) exclude_weapon_pass = not params.exclude_weapon or not table.contains(params.exclude_weapon, data.weapon_id) category_pass = not params.category or table.contains(params.category, primary_category) exclude_category_pass = not params.exclude_category or not table.contains(params.exclude_category, primary_category) all_pass = weapon_pass and exclude_weapon_pass and category_pass and exclude_category_pass if all_pass then table.insert(self[data.factory_id].uses_parts, part_id) table.insert(self[data.factory_id .. "_npc"].uses_parts, part_id) end end end end end end function WeaponFactoryTweakData:create_ammunition() self.parts.wpn_fps_upg_a_slug = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", a_obj = "a_body", type = "ammo", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", internal_part = true, sub_type = "ammo_slug", dlc = "gage_pack_shotgun", name_id = "bm_wp_upg_a_slug", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { value = 5, total_ammo_mod = -3, damage = 15, moving_spread = 2, spread = 2 }, custom_stats = { armor_piercing_add = 1, can_shoot_through_shield = true, can_shoot_through_wall = true, damage_far_mul = 1.15, damage_near_mul = 2, can_shoot_through_enemy = true, rays = 1 } } self.parts.wpn_fps_upg_a_custom = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", a_obj = "a_body", type = "ammo", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", internal_part = true, sub_type = "ammo_custom", dlc = "gage_pack_shotgun", name_id = "bm_wp_upg_a_custom", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { value = 5, damage = 15 } } if is_win_32 then self.parts.wpn_fps_upg_a_custom_free = deep_clone(self.parts.wpn_fps_upg_a_custom) self.parts.wpn_fps_upg_a_custom_free.dlc = nil self.parts.wpn_fps_upg_a_custom_free.is_a_unlockable = nil end self.parts.wpn_fps_upg_a_explosive = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", a_obj = "a_body", type = "ammo", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", internal_part = true, sub_type = "ammo_explosive", dlc = "gage_pack_shotgun", name_id = "bm_wp_upg_a_explosive", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { value = 5, total_ammo_mod = -2, damage = 3, moving_spread = 3, spread = -3 }, custom_stats = { ignore_statistic = true, damage_far_mul = 2.5, damage_near_mul = 2, bullet_class = "InstantExplosiveBulletBase", rays = 1 } } self.parts.wpn_fps_upg_a_piercing = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_shotgun", a_obj = "a_body", type = "ammo", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", internal_part = true, sub_type = "ammo_piercing", dlc = "gage_pack_shotgun", name_id = "bm_wp_upg_a_piercing", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { value = 5, spread = 2, damage = -3 }, custom_stats = { damage_near_mul = 2, armor_piercing_add = 1, damage_far_mul = 1.7 } } self.parts.wpn_fps_upg_a_dragons_breath = { is_a_unlockable = true, texture_bundle_folder = "bbq", a_obj = "a_body", type = "ammo", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", muzzleflash = "effects/payday2/particles/weapons/shotgun/sho_muzzleflash_dragons_breath", hit_effect = "dragonsbreath", sub_type = "ammo_dragons_breath", dlc = "bbq", internal_part = true, name_id = "bm_wp_upg_a_dragons_breath", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { value = 5, total_ammo_mod = -2, damage = -6, moving_spread = 3, spread = -1 }, custom_stats = { armor_piercing_add = 1, ignore_statistic = true, muzzleflash = "effects/payday2/particles/weapons/shotgun/sho_muzzleflash_dragons_breath", can_shoot_through_shield = true, damage_far_mul = 1.15, damage_near_mul = 2, bullet_class = "FlameBulletBase", rays = 12, fire_dot_data = { dot_trigger_chance = "100", dot_damage = "10", dot_length = "3.1", dot_trigger_max_distance = "3000", dot_tick_period = "0.5" } }, forbids = { "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_sho_aa12_barrel_silenced", "wpn_fps_sho_striker_b_suppressed" } } local weapons = { "wpn_fps_shot_saiga", "wpn_fps_shot_r870", "wpn_fps_shot_huntsman", "wpn_fps_shot_serbu", "wpn_fps_sho_ben", "wpn_fps_sho_striker", "wpn_fps_sho_ksg", "wpn_fps_pis_judge", "wpn_fps_sho_spas12", "wpn_fps_shot_b682", "wpn_fps_sho_aa12", "wpn_fps_sho_boot", "wpn_fps_shot_m37", "wpn_fps_sho_rota", "wpn_fps_sho_basset", "wpn_fps_sho_x_basset", "wpn_fps_pis_x_judge", "wpn_fps_sho_x_rota", "wpn_fps_sho_coach" } for _, factory_id in ipairs(weapons) do if self[factory_id] and self[factory_id].uses_parts then table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_slug") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_slug") table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_custom") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_custom") if is_win_32 then table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_custom_free") end if is_win_32 then table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_custom_free") end table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_explosive") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_explosive") table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_piercing") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_piercing") table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_dragons_breath") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_dragons_breath") end end self.parts.wpn_fps_upg_a_grenade_launcher_incendiary = { is_a_unlockable = true, texture_bundle_folder = "bbq", type = "ammo", a_obj = "a_body", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", internal_part = true, sub_type = "ammo_dragons_breath", dlc = "bbq", name_id = "bm_wp_upg_a_grenade_launcher_incendiary", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { damage = -127 }, custom_stats = { launcher_grenade = "launcher_incendiary" }, override = { wpn_fps_gre_m32_mag = { unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_mag_incendiary" }, wpn_fps_gre_m79_grenade = { unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m79_grenade_incendiary" }, wpn_fps_gre_m79_grenade_whole = { unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_m79_grenade_whole_incendiary" } } } local weapons = { "wpn_fps_gre_m79", "wpn_fps_gre_m32", "wpn_fps_gre_china", "wpn_fps_gre_slap" } for _, factory_id in ipairs(weapons) do if self[factory_id] and self[factory_id].uses_parts then table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_grenade_launcher_incendiary") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_grenade_launcher_incendiary") end end self.parts.wpn_fps_upg_a_grenade_launcher_incendiary_arbiter = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "ammo", a_obj = "a_body", third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", internal_part = true, sub_type = "ammo_dragons_breath", dlc = "tango", name_id = "bm_wp_upg_a_grenade_launcher_incendiary", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = { damage = -67 }, custom_stats = { launcher_grenade = "launcher_incendiary_arbiter" } } local weapons = { "wpn_fps_gre_arbiter" } for _, factory_id in ipairs(weapons) do if self[factory_id] and self[factory_id].uses_parts then table.insert(self[factory_id].uses_parts, "wpn_fps_upg_a_grenade_launcher_incendiary_arbiter") table.insert(self[factory_id .. "_npc"].uses_parts, "wpn_fps_upg_a_grenade_launcher_incendiary_arbiter") end end self.parts.wpn_fps_upg_pis_adam = { is_a_unlockable = false, third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", type = "ammo", a_obj = "a_body", internal_part = true, sub_type = "ammo", name_id = "bm_wp_upg_pis_adam", unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy", pcs = {}, stats = {}, custom_stats = {} } end function WeaponFactoryTweakData:_init_g26() self.parts.wpn_fps_pis_g26_b_custom = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_b_custom", dlc = "pd2_clan", type = "slide", name_id = "bm_wp_g26_b_custom", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 4, damage = 1, concealment = -1, recoil = -2 }, animations = { fire = "recoil", reload = "reload", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_g26_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_g26_body_frame", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_b_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_g26_body_custom = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_body_custom", dlc = "pd2_clan", type = "lower_reciever", name_id = "bm_wp_g26_body_salient", a_obj = "a_body", pcs = { 10, 20, 30, 40 }, stats = { spread = 0, value = 7, damage = 1, concealment = -1, recoil = 1 } } self.parts.wpn_fps_pis_g26_body_stardard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_g26_body_frame", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_body_stardard", stats = { value = 1 } } self.parts.wpn_fps_pis_g26_fl_adapter = { a_obj = "a_fl", type = "extra", name_id = "bm_wp_g26_body_frame", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_fl_adapter", stats = { value = 1 } } self.parts.wpn_fps_pis_g26_g_gripforce = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_g_gripforce", dlc = "pd2_clan", type = "grip", name_id = "bm_wp_pis_g_beavertail", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 7, recoil = 2, spread = 0, concealment = -1 } } self.parts.wpn_fps_pis_g26_g_laser = { type = "grip", a_obj = "a_g", sub_type = "laser", dlc = "pd2_clan", name_id = "bm_wp_pis_g_laser", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_g_laser", pcs = { 10, 20, 30, 40 }, stats = { value = 4, recoil = 0, spread = 1, concealment = -1 }, perks = { "gadget" } } self.parts.wpn_fps_pis_g26_m_contour = { type = "magazine", a_obj = "a_m", dlc = "pd2_clan", name_id = "bm_wp_g26_m_custom", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_m_contour", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { spread = 0, value = 6, damage = 0, concealment = -1, recoil = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_g26_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_g26_body_frame", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26_pts/wpn_fps_pis_g26_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_upg_fl_pis_crimson = { sub_type = "laser", dlc = "pd2_clan", type = "gadget", name_id = "bm_wp_upg_fl_crimson", a_obj = "a_fl", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_fl_pis_crimson/wpn_fps_upg_fl_pis_crimson", pcs = { 10, 20, 30, 40 }, stats = { value = 5, recoil = 0, spread = 0, concealment = 0 } } self.parts.wpn_fps_upg_fl_pis_x400v = { type = "gadget", dlc = "pd2_clan", a_obj = "a_fl", sub_type = "laser", name_id = "bm_wp_upg_fl_x400v", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_fl_pis_x400v/wpn_fps_upg_fl_pis_x400v", pcs = { 10, 20, 30, 40 }, stats = { value = 5, recoil = 1, spread = 0, concealment = -2 }, perks = { "gadget" }, adds = { "wpn_fps_upg_fl_ass_peq15_flashlight" } } self.parts.wpn_fps_upg_ns_pis_large_kac = { type = "barrel_ext", sub_type = "silencer", dlc = "pd2_clan", a_obj = "a_ns", parent = "slide", name_id = "bm_wp_upg_ns_large_kac", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_ns_pis_large_kac/wpn_fps_upg_ns_pis_large_kac", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 1, damage = -1, suppression = 12, value = 6, recoil = -2, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_upg_ns_pis_medium_gem = { type = "barrel_ext", sub_type = "silencer", dlc = "pd2_clan", a_obj = "a_ns", parent = "slide", name_id = "bm_wp_upg_ns_medium_gem", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_ns_pis_medium_gem/wpn_fps_upg_ns_pis_medium_gem", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 0, damage = -3, suppression = 12, value = 4, recoil = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_upg_ns_pis_meatgrinder = { parent = "slide", dlc = "pd2_clan", type = "barrel_ext", name_id = "bm_wp_upg_ns_meatgrinder", a_obj = "a_co", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_ns_pis_meatgrinder/wpn_fps_upg_ns_pis_meatgrinder", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, value = 7, damage = 2, concealment = -1, recoil = 2 } } self.parts.wpn_fps_upg_ns_pis_ipsccomp = { parent = "slide", dlc = "pd2_clan", type = "barrel_ext", name_id = "bm_wp_upg_ns_ipsccomp", a_obj = "a_co", unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_ns_pis_ipsccomp/wpn_fps_upg_ns_pis_ipsccomp", pcs = { 10, 20, 30, 40 }, stats = { spread = 3, value = 4, damage = 0, concealment = -1, recoil = -1 } } self.parts.wpn_fps_pis_g26_b_custom.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_b_custom" self.parts.wpn_fps_pis_g26_b_standard.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_b_standard" self.parts.wpn_fps_pis_g26_body_custom.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_body_custom" self.parts.wpn_fps_pis_g26_body_stardard.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_body_stardard" self.parts.wpn_fps_pis_g26_fl_adapter.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_fl_adapter" self.parts.wpn_fps_pis_g26_g_gripforce.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_g_gripforce" self.parts.wpn_fps_pis_g26_g_laser.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_g_laser" self.parts.wpn_fps_pis_g26_m_contour.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_m_contour" self.parts.wpn_fps_pis_g26_m_standard.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_pis_g26_pts/wpn_third_pis_g26_m_standard" self.parts.wpn_fps_upg_fl_pis_crimson.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_upg_fl_pis_crimson/wpn_third_upg_fl_pis_crimson" self.parts.wpn_fps_upg_fl_pis_x400v.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_upg_fl_pis_x400v/wpn_third_upg_fl_pis_x400v" self.parts.wpn_fps_upg_ns_pis_large_kac.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_ns_pis_large_kac/wpn_third_upg_ns_pis_large_kac" self.parts.wpn_fps_upg_ns_pis_medium_gem.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_upg_ns_pis_medium_gem/wpn_third_upg_ns_pis_medium_gem" self.parts.wpn_fps_upg_ns_pis_meatgrinder.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_upg_ns_pis_meatgrinder/wpn_third_upg_ns_pis_meatgrinder" self.parts.wpn_fps_upg_ns_pis_ipsccomp.third_unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_third_upg_ns_pis_ipsccomp/wpn_third_upg_ns_pis_ipsccomp" self.wpn_fps_pis_g26 = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26/wpn_fps_pis_g26", optional_types = { "barrel_ext", "gadget", "stock", "grip" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_g26_fl_adapter" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" } }, default_blueprint = { "wpn_fps_pis_g26_b_standard", "wpn_fps_pis_g26_body_stardard", "wpn_fps_pis_g26_m_standard" }, uses_parts = { "wpn_fps_pis_g26_b_custom", "wpn_fps_pis_g26_b_standard", "wpn_fps_pis_g26_body_custom", "wpn_fps_pis_g26_body_stardard", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_pis_g26_m_contour", "wpn_fps_pis_g26_m_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_g18c_m_mag_33rnd" } } self.wpn_fps_pis_g26_npc = deep_clone(self.wpn_fps_pis_g26) self.wpn_fps_pis_g26_npc.unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_pis_g26/wpn_fps_pis_g26_npc" end function WeaponFactoryTweakData:_init_jowi() self.wpn_fps_jowi = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_jowi/wpn_fps_jowi", optional_types = { "barrel_ext", "gadget", "stock", "grip" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_g26_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_g26_fl_adapter" } }, override = { wpn_fps_pis_g26_m_standard = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_g26_m_contour = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_g26_b_standard = { animations = { reload_left = "reload_left", reload = "reload_right", fire = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_pis_g26_b_custom = { animations = { reload_left = "reload_left", reload = "reload_right", fire = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_pis_g18c_m_mag_33rnd = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 12 } } }, default_blueprint = { "wpn_fps_pis_g26_b_standard", "wpn_fps_pis_g26_body_stardard", "wpn_fps_pis_g26_m_standard" }, uses_parts = { "wpn_fps_pis_g26_b_custom", "wpn_fps_pis_g26_b_standard", "wpn_fps_pis_g26_body_custom", "wpn_fps_pis_g26_body_stardard", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_pis_g26_m_contour", "wpn_fps_pis_g26_m_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_g18c_m_mag_33rnd" } } self.wpn_fps_jowi_npc = deep_clone(self.wpn_fps_jowi) self.wpn_fps_jowi_npc.unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_jowi/wpn_fps_jowi_npc" end function WeaponFactoryTweakData:_init_x_1911() self.wpn_fps_x_1911 = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_x_1911/wpn_fps_x_1911", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, override = { wpn_fps_pis_1911_m_standard = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_1911_m_extended = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 6 } }, wpn_fps_pis_1911_b_standard = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_1911_b_long = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_1911_b_vented = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_1911_m_big = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { extra_ammo = 12, value = 4, recoil = 2, concealment = -2, spread_moving = -1 } } }, default_blueprint = { "wpn_fps_pis_1911_body_standard", "wpn_fps_pis_1911_b_standard", "wpn_fps_pis_1911_g_standard", "wpn_fps_pis_1911_m_standard" }, uses_parts = { "wpn_fps_pis_1911_body_standard", "wpn_fps_pis_1911_co_1", "wpn_fps_pis_1911_co_2", "wpn_fps_pis_1911_g_standard", "wpn_fps_pis_1911_g_bling", "wpn_fps_pis_1911_g_ergo", "wpn_fps_pis_1911_b_standard", "wpn_fps_pis_1911_b_long", "wpn_fps_pis_1911_b_vented", "wpn_fps_pis_1911_m_standard", "wpn_fps_pis_1911_m_extended", "wpn_fps_pis_1911_o_standard", "wpn_fps_pis_1911_o_long", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_1911_g_engraved", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_1911_g_legendary", "wpn_fps_pis_1911_fl_legendary", "wpn_fps_pis_1911_m_big" } } self.wpn_fps_x_1911_npc = deep_clone(self.wpn_fps_x_1911) self.wpn_fps_x_1911_npc.unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_x_1911/wpn_fps_x_1911_npc" end function WeaponFactoryTweakData:_init_x_b92fs() self.wpn_fps_x_b92fs = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_x_b92fs/wpn_fps_x_b92fs", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_beretta_body_rail" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_beretta_body_rail" } }, override = { wpn_fps_upg_pis_ns_flash = { parent = "lower_reciever" }, wpn_fps_upg_ns_pis_medium_slim = { parent = "lower_reciever" }, wpn_fps_upg_ns_ass_filter = { parent = "lower_reciever" }, wpn_fps_upg_ns_pis_jungle = { parent = "lower_reciever" }, wpn_fps_pis_beretta_m_std = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_beretta_m_extended = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 2, spread_moving = -2, concealment = -2, extra_ammo = 12 } }, wpn_fps_pis_beretta_sl_std = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_beretta_sl_brigadier = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } } }, default_blueprint = { "wpn_fps_pis_beretta_body_beretta", "wpn_fps_pis_beretta_b_std", "wpn_fps_pis_beretta_g_std", "wpn_fps_pis_beretta_m_std", "wpn_fps_pis_beretta_o_std", "wpn_fps_pis_beretta_sl_std" }, uses_parts = { "wpn_fps_pis_beretta_b_std", "wpn_fps_pis_beretta_body_beretta", "wpn_fps_pis_beretta_body_rail", "wpn_fps_pis_beretta_co_co1", "wpn_fps_pis_beretta_co_co2", "wpn_fps_pis_beretta_g_ergo", "wpn_fps_pis_beretta_g_std", "wpn_fps_pis_beretta_m_extended", "wpn_fps_pis_beretta_m_std", "wpn_fps_pis_beretta_o_std", "wpn_fps_pis_beretta_sl_std", "wpn_fps_pis_beretta_sl_brigadier", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_beretta_g_engraved", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_beretta_body_modern" } } self.wpn_fps_x_b92fs_npc = deep_clone(self.wpn_fps_x_b92fs) self.wpn_fps_x_b92fs_npc.unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_x_b92fs/wpn_fps_x_b92fs_npc" end function WeaponFactoryTweakData:_init_x_deagle() self.wpn_fps_x_deagle = { unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_x_deagle/wpn_fps_x_deagle", animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget", "sight" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_deagle_fg_rail" }, wpn_fps_pis_deagle_b_standard = { "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front" }, wpn_fps_pis_deagle_b_long = { "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front_long" }, wpn_fps_pis_deagle_b_modern = { "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front" } }, override = { wpn_fps_pis_deagle_m_standard = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_deagle_m_extended = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { concealment = -2, spread_moving = -2, value = 7, extra_ammo = 6 } }, wpn_fps_pis_deagle_body_standard = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } } }, default_blueprint = { "wpn_fps_pis_deagle_body_standard", "wpn_fps_pis_deagle_b_standard", "wpn_fps_pis_deagle_g_standard", "wpn_fps_pis_deagle_m_standard" }, uses_parts = { "wpn_fps_pis_deagle_body_standard", "wpn_fps_pis_deagle_b_standard", "wpn_fps_pis_deagle_b_long", "wpn_fps_pis_deagle_co_long", "wpn_fps_pis_deagle_co_short", "wpn_fps_pis_deagle_fg_rail", "wpn_fps_pis_deagle_g_bling", "wpn_fps_pis_deagle_g_ergo", "wpn_fps_pis_deagle_g_standard", "wpn_fps_pis_deagle_m_extended", "wpn_fps_pis_deagle_m_standard", "wpn_fps_pis_deagle_o_standard_rear", "wpn_fps_pis_deagle_o_standard_front", "wpn_fps_pis_deagle_o_standard_front_long", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_deagle_b_modern" } } self.wpn_fps_x_deagle_npc = deep_clone(self.wpn_fps_x_deagle) self.wpn_fps_x_deagle_npc.unit = "units/pd2_crimefest_2014/oct22/weapons/wpn_fps_x_deagle/wpn_fps_x_deagle_npc" end function WeaponFactoryTweakData:_init_spas12() self.parts.wpn_fps_sho_b_spas12_long = { unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_b_spas12_long", dlc = "pd2_clan", type = "barrel", name_id = "bm_wp_spas12_b_long", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -1, extra_ammo = 2 } } self.parts.wpn_fps_sho_b_spas12_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_spas12_b_long", unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_b_spas12_short", stats = { value = 1 } } self.parts.wpn_fps_sho_body_spas12_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_spas12_b_long", unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_body_spas12_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_sho_fg_spas12_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_spas12_b_long", unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_fg_spas12_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_s_spas12_folded = { unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_s_spas12_folded", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_spas12_s_folded", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, recoil = -1, value = 1, concealment = 2 }, forbids = { "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_spot" } } self.parts.wpn_fps_sho_s_spas12_nostock = { unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_s_spas12_nostock", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_spas12_s_no", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { spread = 0, recoil = -3, value = 4, concealment = 4 } } self.parts.wpn_fps_sho_s_spas12_solid = { unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_s_spas12_solid", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_spas12_s_solid", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = 1, value = 1, concealment = -3 } } self.parts.wpn_fps_sho_s_spas12_unfolded = { a_obj = "a_s", type = "stock", name_id = "bm_wp_spas12_b_long", unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12_pts/wpn_fps_sho_s_spas12_unfolded", stats = { value = 1 } } self.parts.wpn_fps_sho_b_spas12_long.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_b_spas12_long" self.parts.wpn_fps_sho_b_spas12_short.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_b_spas12_short" self.parts.wpn_fps_sho_body_spas12_standard.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_body_spas12_standard" self.parts.wpn_fps_sho_fg_spas12_standard.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_fg_spas12_standard" self.parts.wpn_fps_sho_s_spas12_folded.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_s_spas12_folded" self.parts.wpn_fps_sho_s_spas12_nostock.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_s_spas12_nostock" self.parts.wpn_fps_sho_s_spas12_solid.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_s_spas12_solid" self.parts.wpn_fps_sho_s_spas12_unfolded.third_unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_third_sho_spas12_pts/wpn_third_sho_s_spas12_unfolded" self.wpn_fps_sho_spas12 = { unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12/wpn_fps_sho_spas12", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_docter = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_t1micro = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cmore = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_acog = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_cs = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_reflex = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx01 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_rx30 = { "wpn_fps_shot_r870_ris_special" }, wpn_fps_upg_o_spot = { "wpn_fps_shot_r870_ris_special" } }, default_blueprint = { "wpn_fps_sho_b_spas12_short", "wpn_fps_sho_body_spas12_standard", "wpn_fps_sho_fg_spas12_standard", "wpn_fps_sho_s_spas12_unfolded" }, uses_parts = { "wpn_fps_sho_b_spas12_long", "wpn_fps_sho_b_spas12_short", "wpn_fps_sho_body_spas12_standard", "wpn_fps_sho_fg_spas12_standard", "wpn_fps_sho_s_spas12_folded", "wpn_fps_sho_s_spas12_nostock", "wpn_fps_sho_s_spas12_solid", "wpn_fps_sho_s_spas12_unfolded", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_spas12_npc = deep_clone(self.wpn_fps_sho_spas12) self.wpn_fps_sho_spas12_npc.unit = "units/pd2_crimefest_2014/oct26/weapons/wpn_fps_sho_spas12/wpn_fps_sho_spas12_npc" end function WeaponFactoryTweakData:_init_mg42() self.parts.wpn_fps_lmg_mg42_b_mg42 = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_mg42_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_b_mg42", stats = { value = 1 } } self.parts.wpn_fps_lmg_mg42_b_mg34 = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "barrel", a_obj = "a_b", dlc = "gage_pack_historical", name_id = "bm_wp_mg42_b_mg34", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_b_mg34", pcs = {}, stats = { value = 1, recoil = 2, damage = -1, spread = 2 }, override = { wpn_fps_lmg_mg42_n42 = { third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_n34", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_n34" } } } self.parts.wpn_fps_lmg_mg42_b_vg38 = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", a_obj = "a_b", type = "barrel", sub_type = "silencer", dlc = "gage_pack_historical", name_id = "bm_wp_mg42_b_vg38", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_b_vg38", pcs = {}, stats = { alert_size = 12, spread = -1, damage = 0, suppression = 12, value = 4, recoil = 1, spread_moving = 0, concealment = 0 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_d" }, forbids = { "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" }, override = { wpn_fps_lmg_mg42_n42 = { third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_n38", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_n38" } } } self.parts.wpn_fps_lmg_mg42_reciever = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mg42_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_reciever", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_mg42_n42 = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_mg42_n42", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_n42", stats = { value = 1 } } self.parts.wpn_fps_lmg_mg42_n34 = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_mg42_n42", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_n42", stats = { value = 1 } } self.parts.wpn_fps_lmg_mg42_n38 = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_mg42_n42", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42_pts/wpn_fps_lmg_mg42_n38", stats = { value = 1 } } self.parts.wpn_fps_lmg_mg42_b_mg42.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_b_mg42" self.parts.wpn_fps_lmg_mg42_b_mg34.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_b_mg34" self.parts.wpn_fps_lmg_mg42_b_vg38.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_b_vg38" self.parts.wpn_fps_lmg_mg42_reciever.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_reciever" self.parts.wpn_fps_lmg_mg42_n42.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_nozzle_42" self.parts.wpn_fps_lmg_mg42_n34.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_nozzle_34" self.parts.wpn_fps_lmg_mg42_n38.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_lmg_mg42_pts/wpn_third_lmg_mg42_n38" self.wpn_fps_lmg_mg42 = { unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42/wpn_fps_lmg_mg42", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, adds = {}, default_blueprint = { "wpn_fps_lmg_mg42_b_mg42", "wpn_fps_lmg_mg42_n42", "wpn_fps_lmg_mg42_reciever" }, uses_parts = { "wpn_fps_lmg_mg42_b_mg42", "wpn_fps_lmg_mg42_b_mg34", "wpn_fps_lmg_mg42_b_vg38", "wpn_fps_lmg_mg42_reciever", "wpn_fps_lmg_mg42_n42", "wpn_fps_lmg_mg42_n34", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_lmg_mg42_npc = deep_clone(self.wpn_fps_lmg_mg42) self.wpn_fps_lmg_mg42_npc.unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_lmg_mg42/wpn_fps_lmg_mg42_npc" end function WeaponFactoryTweakData:_init_c96() self.parts.wpn_fps_pis_c96_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "slide", a_obj = "a_b", dlc = "gage_pack_historical", name_id = "bm_wp_c96_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_b_long", pcs = {}, stats = { value = 1, total_ammo_mod = -10, damage = 110, concealment = -3, spread = -2, recoil = 2 }, custom_stats = { ammo_pickup_max_mul = 0.5, ammo_pickup_min_mul = 1 }, animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_c96_nozzle = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", a_obj = "a_co", type = "barrel_ext", parent = "slide", dlc = "gage_pack_historical", name_id = "bm_wp_c96_nozzle", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_nozzle", pcs = {}, stats = { value = 1, concealment = -1, damage = 2, spread = -1, recoil = 2 }, sound_switch = { suppressed = "suppressed_d" } } self.parts.wpn_fps_pis_c96_sight = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "sight", a_obj = "a_o", reticle_obj = "g_reddot", dlc = "gage_pack_historical", name_id = "bm_wp_c96_sight", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_sight", pcs = {}, stats = { zoom = 7, value = 1, concealment = -2 }, perks = { "scope" }, stance_mod = { wpn_fps_pis_c96 = { translation = Vector3(-3.41, -12, 0.93) } }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot1", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_gfx_lens = false, g_gfx_lens_2 = false, g_gfx_lens_3 = false, g_reddot = false, g_vr_screen = true, g_vr_phong = true, g_reticle = false } } }, camera = { a_camera = "a_camera", material = "screen", fov = 9, a_screen = "g_vr_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_pis_c96_rail = { a_obj = "a_body", type = "extra", name_id = "bm_wp_c96_b_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_rail", stats = { value = 1 } } self.parts.wpn_fps_pis_c96_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_c96_b_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_b_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_c96_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_c96_body_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_body_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_c96_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_c96_g_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_c96_m_extended = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "magazine", a_obj = "a_m", dlc = "gage_pack_historical", name_id = "bm_wp_c96_m_extended", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_m_extended", pcs = {}, stats = { concealment = -2, value = 1, extra_ammo = 5 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_c96_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_c96_m_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_c96_s_solid = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "stock", a_obj = "a_s", dlc = "gage_pack_historical", name_id = "bm_wp_c96_s_solid", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_s_solid", pcs = {}, stats = { value = 1, recoil = 4, concealment = -3 } } self.parts.wpn_fps_pis_c96_b_long.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_b_long" self.parts.wpn_fps_pis_c96_b_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_b_standard" self.parts.wpn_fps_pis_c96_body_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_body_standard" self.parts.wpn_fps_pis_c96_g_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_g_standard" self.parts.wpn_fps_pis_c96_m_extended.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_m_extended" self.parts.wpn_fps_pis_c96_m_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_m_standard" self.parts.wpn_fps_pis_c96_s_solid.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_s_solid" self.parts.wpn_fps_pis_c96_nozzle.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_nozzle" self.parts.wpn_fps_pis_c96_sight.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_sight" self.parts.wpn_fps_pis_c96_rail.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_pis_c96_pts/wpn_third_pis_c96_rail" self.wpn_fps_pis_c96 = { unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96/wpn_fps_pis_c96", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget", "sight" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_c96_rail" }, wpn_fps_pis_c96_sight = { "wpn_fps_pis_c96_rail" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" } }, default_blueprint = { "wpn_fps_pis_c96_b_standard", "wpn_fps_pis_c96_body_standard", "wpn_fps_pis_c96_g_standard", "wpn_fps_pis_c96_m_standard" }, uses_parts = { "wpn_fps_pis_c96_b_long", "wpn_fps_pis_c96_b_standard", "wpn_fps_pis_c96_body_standard", "wpn_fps_pis_c96_g_standard", "wpn_fps_pis_c96_m_extended", "wpn_fps_pis_c96_m_standard", "wpn_fps_pis_c96_s_solid", "wpn_fps_pis_c96_nozzle", "wpn_fps_pis_c96_sight", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_c96_npc = deep_clone(self.wpn_fps_pis_c96) self.wpn_fps_pis_c96_npc.unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96/wpn_fps_pis_c96_npc" end function WeaponFactoryTweakData:_init_sterling() self.parts.wpn_fps_smg_sterling_b_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "barrel", a_obj = "a_b", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_b_long", pcs = {}, stats = { value = 1, concealment = -2, damage = 1, spread = 1, recoil = -1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_smg_sterling_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "barrel", a_obj = "a_b", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_b_short", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_b_short", pcs = {}, stats = { spread = -1, concealment = 1, damage = 2, value = 1, recoil = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_smg_sterling_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_sterling_b_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_b_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_smg_sterling_b_suppressed = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", a_obj = "a_b", type = "barrel", sub_type = "silencer", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_b_suppressed", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_b_suppressed", pcs = {}, stats = { alert_size = 12, spread = -1, damage = 0, suppression = 12, value = 4, recoil = 1, spread_moving = 0, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, forbids = { "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" } } self.parts.wpn_fps_smg_sterling_b_e11 = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", a_obj = "a_b", type = "barrel", sub_type = "silencer", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_b_e11", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_b_e11", pcs = {}, stats = { alert_size = 12, spread = -1, damage = 0, suppression = 12, value = 4, recoil = 1, spread_moving = 0, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_d" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, forbids = { "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" } } self.parts.wpn_fps_smg_sterling_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mg42_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_body_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_sterling_m_long = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "magazine", a_obj = "a_m", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_m_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_m_long", pcs = {}, bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { extra_ammo = 5, value = 1, concealment = -2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_sterling_m_medium = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_mg42_m_medium", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_m_medium", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_sterling_m_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "magazine", a_obj = "a_m", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_m_short", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_m_short", pcs = {}, bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { extra_ammo = -5, value = 1, concealment = 2 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_sterling_s_folded = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "stock", a_obj = "a_s", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_s_folded", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_s_folded", pcs = {}, stats = { value = 1, recoil = -2, concealment = 2 } } self.parts.wpn_fps_smg_sterling_s_nostock = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "stock", a_obj = "a_s", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_s_nostock", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_s_nostock", pcs = {}, stats = { spread = -1, recoil = -2, value = 1, concealment = 4 } } self.parts.wpn_fps_smg_sterling_s_solid = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "stock", a_obj = "a_s", dlc = "gage_pack_historical", name_id = "bm_wp_sterling_s_solid", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_s_solid", pcs = {}, stats = { spread = 1, recoil = 2, value = 1, concealment = -2 } } self.parts.wpn_fps_smg_sterling_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_mg42_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_sterling_o_adapter = { a_obj = "a_o", type = "extra", name_id = "bm_wp_mg42_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling_pts/wpn_fps_smg_sterling_o_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_sterling_b_long.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_b_long" self.parts.wpn_fps_smg_sterling_b_short.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_b_short" self.parts.wpn_fps_smg_sterling_b_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_b_standard" self.parts.wpn_fps_smg_sterling_b_suppressed.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_b_suppressed" self.parts.wpn_fps_smg_sterling_b_e11.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_b_e11" self.parts.wpn_fps_smg_sterling_body_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_body_standard" self.parts.wpn_fps_smg_sterling_m_long.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_m_long" self.parts.wpn_fps_smg_sterling_m_medium.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_m_medium" self.parts.wpn_fps_smg_sterling_m_short.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_m_short" self.parts.wpn_fps_smg_sterling_s_folded.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_s_folded" self.parts.wpn_fps_smg_sterling_s_nostock.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_s_nostock" self.parts.wpn_fps_smg_sterling_s_solid.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_s_solid" self.parts.wpn_fps_smg_sterling_s_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_s_standard" self.parts.wpn_fps_smg_sterling_o_adapter.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_smg_sterling_pts/wpn_third_smg_sterling_o_adapter" self.wpn_fps_smg_sterling = { unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling/wpn_fps_smg_sterling", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_sterling_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_sterling_o_adapter" } }, default_blueprint = { "wpn_fps_smg_sterling_b_standard", "wpn_fps_smg_sterling_body_standard", "wpn_fps_smg_sterling_m_medium", "wpn_fps_smg_sterling_s_standard" }, uses_parts = { "wpn_fps_smg_sterling_b_long", "wpn_fps_smg_sterling_b_short", "wpn_fps_smg_sterling_b_standard", "wpn_fps_smg_sterling_b_suppressed", "wpn_fps_smg_sterling_b_e11", "wpn_fps_smg_sterling_body_standard", "wpn_fps_smg_sterling_m_long", "wpn_fps_smg_sterling_m_medium", "wpn_fps_smg_sterling_m_short", "wpn_fps_smg_sterling_s_folded", "wpn_fps_smg_sterling_s_nostock", "wpn_fps_smg_sterling_s_solid", "wpn_fps_smg_sterling_s_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot" } } self.wpn_fps_smg_sterling_npc = deep_clone(self.wpn_fps_smg_sterling) self.wpn_fps_smg_sterling_npc.unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_smg_sterling/wpn_fps_smg_sterling_npc" end function WeaponFactoryTweakData:_init_mosin() self.parts.wpn_fps_snp_mosin_b_medium = { texture_bundle_folder = "gage_pack_historical", a_obj = "a_b", type = "barrel", name_id = "bm_wp_mosin_b_medium", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_medium", stats = { value = 1 } } self.parts.wpn_fps_snp_mosin_b_standard = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "barrel", a_obj = "a_b", dlc = "gage_pack_historical", name_id = "bm_wp_mosin_b_long", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_standard", pcs = {}, stats = { spread = 0, recoil = 2, value = 1, concealment = -2 } } self.parts.wpn_fps_snp_mosin_b_short = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "barrel", a_obj = "a_b", dlc = "gage_pack_historical", name_id = "bm_wp_mosin_b_short", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_short", pcs = {}, stats = { spread = -1, recoil = 0, value = 1, concealment = 3 } } self.parts.wpn_fps_snp_mosin_b_sniper = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", a_obj = "a_b", type = "barrel", sub_type = "silencer", dlc = "gage_pack_historical", name_id = "bm_wp_mosin_b_sniper", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_sniper", pcs = {}, stats = { alert_size = 12, spread = -1, damage = -4, suppression = 12, value = 6, recoil = 1, spread_moving = -1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_d" } } self.parts.wpn_fps_snp_mosin_body_standard = { a_obj = "a_body", type = "stock", name_id = "bm_wp_mosin_body_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_snp_mosin_body_black = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "stock", a_obj = "a_body", dlc = "gage_pack_historical", name_id = "bm_wp_mosin_body_conceal", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_body_black", pcs = {}, stats = { value = 1, recoil = -1, concealment = 3 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, override = { wpn_fps_snp_mosin_b_medium = { third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_medium_black", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_medium_black" }, wpn_fps_snp_mosin_b_standard = { third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_standard_black", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_standard_black" }, wpn_fps_snp_mosin_b_short = { third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_short_black", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_b_short_black" } } } self.parts.wpn_fps_snp_mosin_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_snp_mosin_ns_bayonet = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "bayonet", a_obj = "a_ns", parent = "barrel", dlc = "gage_pack_historical", name_id = "bm_wp_mosin_ns_bayonet", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_ns_bayonet", pcs = {}, stats = { min_damage = 4, min_damage_effect = 1.75, concealment = -2, max_damage_effect = 1.75, value = 1, max_damage = 4 } } self.parts.wpn_fps_snp_mosin_rail = { a_obj = "a_o", type = "extra", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_rail", stats = { value = 1 } } self.parts.wpn_fps_snp_mosin_iron_sight = { is_a_unlockable = true, texture_bundle_folder = "gage_pack_historical", type = "sight", a_obj = "a_o", dlc = "gage_pack_historical", name_id = "bm_wp_mosin_iron_sight", unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin_pts/wpn_fps_snp_mosin_iron_sight", pcs = {}, stats = { zoom = 3, recoil = -1, value = 0, concealment = 2 }, forbids = { "wpn_fps_upg_o_45iron", "wpn_fps_snp_mosin_rail", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_snp_mosin_b_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_standard" self.parts.wpn_fps_snp_mosin_b_medium.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_medium" self.parts.wpn_fps_snp_mosin_b_short.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_short" self.parts.wpn_fps_snp_mosin_b_sniper.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_b_sniper" self.parts.wpn_fps_snp_mosin_body_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_body_standard" self.parts.wpn_fps_snp_mosin_body_black.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_body_standard_black" self.parts.wpn_fps_snp_mosin_m_standard.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_m_standard" self.parts.wpn_fps_snp_mosin_ns_bayonet.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_ns_bayonet" self.parts.wpn_fps_snp_mosin_rail.third_unit = "units/pd2_dlc_gage_historical/weapons/wpn_third_snp_mosin_pts/wpn_third_snp_mosin_rail" self.wpn_fps_snp_mosin = { unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin/wpn_fps_snp_mosin", optional_types = { "gadget", "sight", "bayonet" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_shortdot = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_leupold = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_snp_mosin_rail" }, wpn_fps_upg_o_box = { "wpn_fps_snp_mosin_rail" } }, default_blueprint = { "wpn_fps_snp_mosin_b_medium", "wpn_fps_snp_mosin_body_standard", "wpn_fps_snp_mosin_m_standard", "wpn_fps_upg_o_shortdot" }, uses_parts = { "wpn_fps_snp_mosin_b_standard", "wpn_fps_snp_mosin_b_medium", "wpn_fps_snp_mosin_b_short", "wpn_fps_snp_mosin_b_sniper", "wpn_fps_snp_mosin_iron_sight", "wpn_fps_snp_mosin_body_black", "wpn_fps_snp_mosin_body_standard", "wpn_fps_snp_mosin_m_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_snp_mosin_ns_bayonet", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_mosin_npc = deep_clone(self.wpn_fps_snp_mosin) self.wpn_fps_snp_mosin_npc.unit = "units/pd2_dlc_gage_historical/weapons/wpn_fps_snp_mosin/wpn_fps_snp_mosin_npc" end function WeaponFactoryTweakData:_init_m1928() self.parts.wpn_fps_smg_thompson_barrel = { texture_bundle_folder = "pines", a_obj = "a_b", type = "barrel", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_barrel", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_barrel_long = { texture_bundle_folder = "pines", a_obj = "a_b", type = "barrel", name_id = "bm_wp_m1928_b_long", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_barrel_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 4, concealment = -3 } } self.parts.wpn_fps_smg_thompson_barrel_short = { texture_bundle_folder = "pines", a_obj = "a_b", type = "barrel", name_id = "bm_wp_m1928_b_short", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_barrel_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, value = 2, concealment = 3 }, override = { wpn_fps_smg_thompson_ns_standard = { third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_ns_no", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_ns_no" } } } self.parts.wpn_fps_smg_thompson_body = { texture_bundle_folder = "pines", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_body", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_smg_thompson_drummag = { texture_bundle_folder = "pines", type = "magazine", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_drummag", a_obj = "a_m", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_thompson_fl_adapter = { texture_bundle_folder = "pines", a_obj = "a_fl", type = "extra", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_fl_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_foregrip = { texture_bundle_folder = "pines", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_foregrip", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_foregrip_discrete = { texture_bundle_folder = "pines", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m1928_fg_discrete", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_foregrip_discrete", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = -1, concealment = 1 } } self.parts.wpn_fps_smg_thompson_grip = { texture_bundle_folder = "pines", a_obj = "a_g", type = "grip", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_grip", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_grip_discrete = { texture_bundle_folder = "pines", a_obj = "a_g", type = "grip", name_id = "bm_wp_m1928_g_discrete", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_grip_discrete", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = -1, concealment = 1 } } self.parts.wpn_fps_smg_thompson_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_ns_standard", texture_bundle_folder = "pines", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_o_adapter = { texture_bundle_folder = "pines", a_obj = "a_o", type = "extra", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_o_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_stock = { texture_bundle_folder = "pines", a_obj = "a_s", type = "stock", name_id = "bm_wp_m1928_b_medium", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_stock", stats = { value = 1 } } self.parts.wpn_fps_smg_thompson_stock_discrete = { texture_bundle_folder = "pines", a_obj = "a_s", type = "stock", name_id = "bm_wp_m1928_s_discrete", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_stock_discrete", pcs = { 10, 20, 30, 40 }, stats = { value = 3, recoil = -1, concealment = 1 } } self.parts.wpn_fps_smg_thompson_stock_nostock = { texture_bundle_folder = "pines", a_obj = "a_s", type = "stock", name_id = "bm_wp_m1928_s_nostock", unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_fps_smg_thompson_stock_nostock", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -3, concealment = 4 } } self.parts.wpn_fps_smg_thompson_barrel.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_barrel" self.parts.wpn_fps_smg_thompson_barrel_long.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_barrel_long" self.parts.wpn_fps_smg_thompson_barrel_short.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_barrel_short" self.parts.wpn_fps_smg_thompson_body.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_body" self.parts.wpn_fps_smg_thompson_drummag.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_drummag" self.parts.wpn_fps_smg_thompson_fl_adapter.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_fl_adapter" self.parts.wpn_fps_smg_thompson_foregrip.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_foregrip" self.parts.wpn_fps_smg_thompson_foregrip_discrete.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_foregrip_discrete" self.parts.wpn_fps_smg_thompson_grip.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_grip" self.parts.wpn_fps_smg_thompson_grip_discrete.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_grip_discrete" self.parts.wpn_fps_smg_thompson_ns_standard.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_ns_standard" self.parts.wpn_fps_smg_thompson_o_adapter.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_o_adapter" self.parts.wpn_fps_smg_thompson_stock.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_stock" self.parts.wpn_fps_smg_thompson_stock_discrete.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_stock_discrete" self.parts.wpn_fps_smg_thompson_stock_nostock.third_unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928_pts/wpn_third_smg_thompson_stock_nostock" self.wpn_fps_smg_thompson = { unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928/wpn_fps_smg_thompson", optional_types = { "gadget", "sight", "barrel_ext" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_thompson_o_adapter" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_thompson_o_adapter" } }, default_blueprint = { "wpn_fps_smg_thompson_barrel", "wpn_fps_smg_thompson_body", "wpn_fps_smg_thompson_drummag", "wpn_fps_smg_thompson_foregrip", "wpn_fps_smg_thompson_grip", "wpn_fps_smg_thompson_stock", "wpn_fps_smg_thompson_ns_standard" }, uses_parts = { "wpn_fps_smg_thompson_barrel", "wpn_fps_smg_thompson_barrel_long", "wpn_fps_smg_thompson_barrel_short", "wpn_fps_smg_thompson_body", "wpn_fps_smg_thompson_drummag", "wpn_fps_smg_thompson_fl_adapter", "wpn_fps_smg_thompson_foregrip", "wpn_fps_smg_thompson_foregrip_discrete", "wpn_fps_smg_thompson_grip", "wpn_fps_smg_thompson_grip_discrete", "wpn_fps_smg_thompson_ns_standard", "wpn_fps_smg_thompson_o_adapter", "wpn_fps_smg_thompson_stock", "wpn_fps_smg_thompson_stock_discrete", "wpn_fps_smg_thompson_stock_nostock", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_thompson_npc = deep_clone(self.wpn_fps_smg_thompson) self.wpn_fps_smg_thompson_npc.unit = "units/pd2_dlc_pines/weapons/wpn_fps_smg_m1928/wpn_fps_smg_thompson_npc" end function WeaponFactoryTweakData:_init_l85a2() self.parts.wpn_fps_ass_l85a2_body_standard = { texture_bundle_folder = "character_pack_clover", type = "upper_reciever", a_obj = "a_body", dlc = "character_pack_clover", name_id = "bm_wp_l85a2_b_medium", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_l85a2_m_emag = { type = "magazine", texture_bundle_folder = "character_pack_clover", a_obj = "a_m", dlc = "character_pack_clover", name_id = "bm_wp_l85a2_m_emag", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_m_emag", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 28, prefix = "g_bullet_" }, stats = { value = 1, recoil = 1, extra_ammo = 2 } } self.parts.wpn_fps_ass_l85a2_fg_medium = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "foregrip", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_fg_medium", a_obj = "a_b", stats = { value = 1 } } self.parts.wpn_fps_ass_l85a2_fg_short = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "foregrip", name_id = "bm_wp_l85a2_fg_short", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_fg_short", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = 1 } } self.parts.wpn_fps_ass_l85a2_b_long = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "barrel", name_id = "bm_wp_l85a2_b_long", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_b_long", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -3 } } self.parts.wpn_fps_ass_l85a2_b_medium = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "barrel", name_id = "bm_wp_l85a2_b_medium", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_b_medium", a_obj = "a_b", stats = { value = 1 } } self.parts.wpn_fps_ass_l85a2_b_short = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "barrel", name_id = "bm_wp_l85a2_b_short", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_b_short", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 3 } } self.parts.wpn_fps_ass_l85a2_g_standard = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "grip", name_id = "bm_wp_l85a2_b_medium", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_g_standard", a_obj = "a_g", stats = { value = 1 } } self.parts.wpn_fps_ass_l85a2_g_worn = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "grip", name_id = "bm_wp_l85a2_g_worn", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_g_worn", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_ass_l85a2_ns_standard = { parent = "barrel", dlc = "character_pack_clover", type = "barrel_ext", name_id = "bm_wp_l85a2_b_medium", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_ns_standard", texture_bundle_folder = "character_pack_clover", a_obj = "a_ns", stats = { value = 1 } } self.parts.wpn_fps_ass_l85a2_o_standard = { texture_bundle_folder = "character_pack_clover", dlc = "character_pack_clover", type = "sight", name_id = "bm_wp_l85a2_b_medium", unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2_pts/wpn_fps_ass_l85a2_o_standard", a_obj = "a_o", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_l85a2_body_standard.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_body_standard" self.parts.wpn_fps_ass_l85a2_m_emag.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_m_emag" self.parts.wpn_fps_ass_l85a2_fg_medium.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_fg_medium" self.parts.wpn_fps_ass_l85a2_fg_short.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_fg_short" self.parts.wpn_fps_ass_l85a2_b_long.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_b_long" self.parts.wpn_fps_ass_l85a2_b_medium.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_b_medium" self.parts.wpn_fps_ass_l85a2_b_short.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_b_short" self.parts.wpn_fps_ass_l85a2_g_standard.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_g_standard" self.parts.wpn_fps_ass_l85a2_g_worn.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_g_worn" self.parts.wpn_fps_ass_l85a2_ns_standard.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_ns_standard" self.parts.wpn_fps_ass_l85a2_o_standard.third_unit = "units/pd2_dlc_clover/weapons/wpn_third_ass_l85a2_pts/wpn_third_ass_l85a2_o_standard" self.wpn_fps_ass_l85a2 = { unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2/wpn_fps_ass_l85a2", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, adds = {}, default_blueprint = { "wpn_fps_ass_l85a2_body_standard", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_ass_l85a2_fg_medium", "wpn_fps_ass_l85a2_b_medium", "wpn_fps_ass_l85a2_g_standard", "wpn_fps_ass_l85a2_ns_standard", "wpn_fps_ass_l85a2_o_standard" }, uses_parts = { "wpn_fps_ass_l85a2_body_standard", "wpn_fps_ass_l85a2_fg_medium", "wpn_fps_ass_l85a2_fg_short", "wpn_fps_ass_l85a2_b_long", "wpn_fps_ass_l85a2_b_medium", "wpn_fps_ass_l85a2_b_short", "wpn_fps_ass_l85a2_g_standard", "wpn_fps_ass_l85a2_g_worn", "wpn_fps_ass_l85a2_ns_standard", "wpn_fps_ass_l85a2_o_standard", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight", "wpn_fps_upg_m4_m_quad", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_l85a2_npc = deep_clone(self.wpn_fps_ass_l85a2) self.wpn_fps_ass_l85a2_npc.unit = "units/pd2_dlc_clover/weapons/wpn_fps_ass_l85a2/wpn_fps_ass_l85a2_npc" end function WeaponFactoryTweakData:_init_vhs() self.parts.wpn_fps_ass_vhs_body = { texture_bundle_folder = "character_pack_dragan", type = "upper_reciever", a_obj = "a_body", dlc = "character_pack_dragan", name_id = "bm_wp_vhs_body", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_body", stats = { value = 1 }, animations = { reload = "reload" }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_vhs_m = { texture_bundle_folder = "character_pack_dragan", a_obj = "a_m", type = "magazine", dlc = "character_pack_dragan", name_id = "bm_wp_vhs_m", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_m", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1, recoil = 1, extra_ammo = 0 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_vhs_ns_vhs = { parent = "barrel", dlc = "character_pack_dragan", type = "barrel_ext", name_id = "bm_wp_vhs_ns_vhs", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs", texture_bundle_folder = "character_pack_dragan", a_obj = "a_ns", stats = { value = 1 } } self.parts.wpn_fps_ass_vhs_ns_vhs_no = { parent = "barrel", dlc = "character_pack_dragan", type = "barrel_ext", name_id = "bm_wp_vhs_ns_vhs_no", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no", texture_bundle_folder = "character_pack_dragan", a_obj = "a_ns", stats = { value = 1 } } self.parts.wpn_fps_ass_vhs_b_short = { texture_bundle_folder = "character_pack_dragan", dlc = "character_pack_dragan", type = "barrel", name_id = "bm_wp_vhs_b_short", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_b_short", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { concealment = 3, recoil = 1, value = 1, spread = -1 } } self.parts.wpn_fps_ass_vhs_b_silenced = { type = "barrel", texture_bundle_folder = "character_pack_dragan", a_obj = "a_b", sub_type = "silencer", dlc = "character_pack_dragan", name_id = "bm_wp_vhs_b_silenced", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_b_silenced", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, damage = -1, suppression = 12, value = 2, recoil = 3 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, forbids = { "wpn_fps_m4_uupg_fg_rail_ext", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" }, override = { wpn_fps_ass_vhs_ns_vhs = { third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no" } } } self.parts.wpn_fps_ass_vhs_b_sniper = { type = "barrel", texture_bundle_folder = "character_pack_dragan", a_obj = "a_b", dlc = "character_pack_dragan", name_id = "bm_wp_vhs_b_sniper", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_b_sniper", pcs = { 10, 20, 30, 40 }, stats = { spread = 2, value = 1, concealment = -2 }, override = { wpn_fps_ass_vhs_ns_vhs = { third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no" } } } self.parts.wpn_fps_ass_vhs_b_standard = { texture_bundle_folder = "character_pack_dragan", dlc = "character_pack_dragan", type = "barrel", name_id = "bm_wp_vhs_b_standard", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_b_standard", a_obj = "a_b", stats = { value = 1 }, override = { wpn_fps_ass_vhs_ns_vhs_no = { third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_ns_vhs", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs" } } } self.parts.wpn_fps_ass_vhs_o_standard = { texture_bundle_folder = "character_pack_dragan", dlc = "character_pack_dragan", type = "sight", name_id = "bm_wp_vhs_o_standard", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_o_standard", a_obj = "a_body", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_vhs_body.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_body" self.parts.wpn_fps_ass_vhs_m.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_m" self.parts.wpn_fps_ass_vhs_b_short.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_b_short" self.parts.wpn_fps_ass_vhs_b_silenced.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_b_silenced" self.parts.wpn_fps_ass_vhs_b_sniper.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_b_sniper" self.parts.wpn_fps_ass_vhs_b_standard.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_b_standard" self.parts.wpn_fps_ass_vhs_o_standard.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_o_standard" self.parts.wpn_fps_ass_vhs_ns_vhs.third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_third_ass_vhs_ns_vhs" self.wpn_fps_ass_vhs = { unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs/wpn_fps_ass_vhs", optional_types = { "gadget", "sight", "barrel_ext" }, adds = {}, forbids = { "wpn_fps_addon_ris" }, default_blueprint = { "wpn_fps_ass_vhs_body", "wpn_fps_ass_vhs_m", "wpn_fps_ass_vhs_b_standard", "wpn_fps_ass_vhs_o_standard", "wpn_fps_ass_vhs_ns_vhs" }, uses_parts = { "wpn_fps_ass_vhs_body", "wpn_fps_ass_vhs_m", "wpn_fps_ass_vhs_b_short", "wpn_fps_ass_vhs_b_silenced", "wpn_fps_ass_vhs_b_sniper", "wpn_fps_ass_vhs_b_standard", "wpn_fps_ass_vhs_o_standard", "wpn_fps_ass_vhs_ns_vhs", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_vhs_npc = deep_clone(self.wpn_fps_ass_vhs) self.wpn_fps_ass_vhs_npc.unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs/wpn_fps_ass_vhs_npc" end function WeaponFactoryTweakData:_init_hs2000() self.parts.wpn_fps_pis_hs2000_b_standard = { name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_b_standard", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_hs2000_b_custom = { name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_b_custom", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_hs2000_b_long = { name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_b_long", a_obj = "a_b", type = "barrel" } self.parts.wpn_fps_pis_hs2000_sl_standard = { texture_bundle_folder = "the_bomb", a_obj = "a_sl", type = "slide", name_id = "bm_wp_hs2000_sl_standard", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_sl_standard", stats = { value = 1 }, adds = { "wpn_fps_pis_hs2000_b_standard" } } self.parts.wpn_fps_pis_hs2000_sl_custom = { type = "slide", texture_bundle_folder = "the_bomb", a_obj = "a_sl", dlc = "the_bomb", name_id = "bm_wp_hs2000_sl_custom", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_sl_custom", pcs = { 10, 20, 30, 40 }, stats = { spread_moving = 1, damage = 2, suppression = -2, value = 4, recoil = 1 }, adds = { "wpn_fps_pis_hs2000_b_custom" } } self.parts.wpn_fps_pis_hs2000_sl_long = { type = "slide", texture_bundle_folder = "the_bomb", a_obj = "a_sl", dlc = "the_bomb", name_id = "bm_wp_hs2000_sl_long", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_sl_long", pcs = { 10, 20, 30, 40 }, stats = { value = 6, concealment = -3, damage = 1, spread_moving = -3, spread = 2, recoil = 1 }, adds = { "wpn_fps_pis_hs2000_b_long" }, stance_mod = { wpn_fps_pis_hs2000 = { translation = Vector3(0, 0, -0.25) } }, override = { wpn_fps_upg_o_rmr = { stance_mod = { wpn_fps_pis_hs2000 = { translation = Vector3(0, 0, -0.5) } } } } } self.parts.wpn_fps_pis_hs2000_body_standard = { texture_bundle_folder = "the_bomb", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_hs2000_body_standard", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_body_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_hs2000_m_standard = { texture_bundle_folder = "the_bomb", type = "magazine", name_id = "bm_wp_hs2000_m_standard", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_m_standard", a_obj = "a_m", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_hs2000_m_extended = { type = "magazine", texture_bundle_folder = "the_bomb", a_obj = "a_m", dlc = "the_bomb", name_id = "bm_wp_hs2000_m_extended", unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_fps_pis_hs2000_m_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { extra_ammo = 4, spread_moving = -2, value = 1 } } self.parts.wpn_fps_pis_hs2000_b_standard.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_b_standard" self.parts.wpn_fps_pis_hs2000_b_custom.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_b_custom" self.parts.wpn_fps_pis_hs2000_b_long.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_b_long" self.parts.wpn_fps_pis_hs2000_sl_standard.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_sl_standard" self.parts.wpn_fps_pis_hs2000_sl_custom.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_sl_custom" self.parts.wpn_fps_pis_hs2000_sl_long.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_sl_long" self.parts.wpn_fps_pis_hs2000_body_standard.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_body_standard" self.parts.wpn_fps_pis_hs2000_m_standard.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_m_standard" self.parts.wpn_fps_pis_hs2000_m_extended.third_unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000_pts/wpn_third_pis_hs2000_m_extended" self.wpn_fps_pis_hs2000 = { unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000/wpn_fps_pis_hs2000", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_hs2000_body_standard", "wpn_fps_pis_hs2000_m_standard", "wpn_fps_pis_hs2000_sl_standard" }, uses_parts = { "wpn_fps_pis_hs2000_body_standard", "wpn_fps_pis_hs2000_m_standard", "wpn_fps_pis_hs2000_m_extended", "wpn_fps_pis_hs2000_sl_standard", "wpn_fps_pis_hs2000_sl_custom", "wpn_fps_pis_hs2000_sl_long", "wpn_fps_pis_hs2000_b_standard", "wpn_fps_pis_hs2000_b_custom", "wpn_fps_pis_hs2000_b_long", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_hs2000_npc = deep_clone(self.wpn_fps_pis_hs2000) self.wpn_fps_pis_hs2000_npc.unit = "units/pd2_dlc_the_bomb/weapons/wpn_fps_pis_hs2000/wpn_fps_pis_hs2000_npc" end function WeaponFactoryTweakData:_init_modpack_m4_ak() self.parts.wpn_fps_upg_ass_ak_b_zastava = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", a_obj = "a_b", type = "barrel", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_ak_b_zastava", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_ak_b_zastava/wpn_fps_upg_ass_ak_b_zastava", pcs = {}, stats = { spread = 2, total_ammo_mod = -6, damage = 63, concealment = -4, value = 1, recoil = -3 }, custom_stats = { ammo_pickup_max_mul = 0.5, ammo_pickup_min_mul = 1 }, sound_switch = { suppressed = "regular_b" } } self.parts.wpn_fps_upg_ak_b_ak105 = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "barrel", a_obj = "a_b", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_b_ak105", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_b_ak105/wpn_fps_upg_ak_b_ak105", pcs = {}, stats = { value = 1, concealment = 1, damage = 2 }, adds = { "wpn_fps_upg_ak_ns_ak105" }, forbids = { "wpn_fps_ammo_type" }, override = { wpn_fps_upg_ns_ass_smg_large = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ns_ass_smg_medium = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ns_ass_smg_small = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ns_ass_smg_firepig = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ns_ass_smg_stubby = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ns_ass_smg_tank = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ass_ns_jprifles = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ass_ns_linear = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ass_ns_surefire = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ass_ns_battle = { forbids = { "wpn_fps_upg_ak_ns_ak105" } }, wpn_fps_upg_ns_ass_pbs1 = { forbids = { "wpn_fps_upg_ak_ns_ak105" } } } } self.parts.wpn_fps_upg_ak_ns_ak105 = { parent = "barrel", dlc = "akm4_pack", type = "barrel_ext", name_id = "bm_wp_upg_ak_ns_ak105", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_b_ak105/wpn_fps_upg_ak_ns_ak105", texture_bundle_folder = "dlc_akm4", a_obj = "a_ns", stats = { value = 1 } } self.parts.wpn_fps_upg_ak_fg_krebs = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_fg_krebs", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_fg_krebs/wpn_fps_upg_ak_fg_krebs", pcs = {}, stats = { spread = 2, value = 1, concealment = 3 }, forbids = { "wpn_fps_ak_extra_ris", "wpn_fps_addon_ris" }, override = { wpn_fps_upg_o_specter = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_docter = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_acog = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 6, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 6, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 6, -3.8) } } }, wpn_fps_upg_o_cs = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_spot = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } } } } self.parts.wpn_fps_upg_ak_fg_trax = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_fg_trax", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_fg_trax/wpn_fps_upg_ak_fg_trax", pcs = {}, stats = { spread = 2, recoil = 2, value = 1, concealment = -2 }, forbids = { "wpn_fps_ak_extra_ris", "wpn_fps_addon_ris" }, override = { wpn_fps_upg_o_specter = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_docter = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_acog = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 6, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 6, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 6, -3.8) } } }, wpn_fps_upg_o_cs = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_spot = { a_obj = "a_o_krebs", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -3.8) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -3.8) } } } } } self.parts.wpn_fps_upg_ak_fg_zenit = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_fg_zenit", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_fg_zenit/wpn_fps_upg_ak_fg_zenit", pcs = {}, stats = { value = 1, recoil = 1 }, forbids = { "wpn_fps_ak_extra_ris", "wpn_fps_addon_ris" }, override = { wpn_fps_upg_o_specter = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_docter = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_acog = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 6, -3.3) } } }, wpn_fps_upg_o_cs = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_spot = { a_obj = "a_o_zenit", stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_smg_akmsu = { translation = Vector3(0, 0, -3.3) } } } } } self.parts.wpn_fps_upg_ak_g_rk3 = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "grip", a_obj = "a_g", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_g_rk3", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_g_rk3/wpn_fps_upg_ak_g_rk3", pcs = {}, stats = { spread = 1, value = 1, concealment = 1 }, forbids = { "wpn_upg_ak_g_standard" } } self.parts.wpn_fps_upg_ak_m_uspalm = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", a_obj = "a_m", type = "magazine", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_m_uspalm", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_m_uspalm/wpn_fps_upg_ak_m_uspalm", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1, recoil = 1, concealment = 1, extra_ammo = 2 } } self.parts.wpn_fps_upg_ak_s_solidstock = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "stock", a_obj = "a_s", dlc = "akm4_pack", name_id = "bm_wp_upg_ak_s_solidstock", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ak_s_solidstock/wpn_fps_upg_ak_s_solidstock", pcs = {}, stats = { value = 1, recoil = 3, concealment = -4, spread = 1 }, adds = { "wpn_upg_ak_g_standard" } } self.parts.wpn_fps_upg_ns_ass_pbs1 = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", sub_type = "silencer", a_obj = "a_ns", dlc = "akm4_pack", type = "barrel_ext", parent = "barrel", name_id = "bm_wp_upg_ns_ass_pbs1", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ns_ass_pbs1/wpn_fps_upg_ns_ass_pbs1", pcs = {}, stats = { alert_size = 12, spread = 0, suppression = 12, value = 1, recoil = 1, concealment = -5, damage = -0 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_upg_o_ak_scopemount = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "extra", a_obj = "a_g", depends_on = "sight", dlc = "akm4_pack", name_id = "bm_wp_upg_o_ak_scopemount", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_o_ak_scopemount/wpn_fps_upg_o_ak_scopemount", pcs = {}, stats = { value = 1, recoil = 1, concealment = -1 }, forbids = { "wpn_fps_ak_extra_ris" }, override = { wpn_fps_upg_ak_fg_zenit = { override = {} }, wpn_fps_upg_ak_fg_trax = { override = {} }, wpn_fps_upg_ak_fg_krebs = { override = {} }, wpn_fps_smg_akmsu_fg_standard = { override = {} }, wpn_upg_ak_fg_standard_gold = { override = {} }, wpn_upg_ak_fg_standard = { override = {} }, wpn_upg_saiga_fg_standard = { override = {} }, wpn_fps_upg_o_specter = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_docter = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_cs = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_acog = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 6, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 6, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 6, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 6, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 6, -4.35) } } }, wpn_fps_upg_o_45rds = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(-2.01, 0, -14.9), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_akm = { translation = Vector3(-2.01, 0, -14.9), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_akm_gold = { translation = Vector3(-2.01, 0, -14.9), rotation = Rotation(0, 0, -45) } } }, wpn_fps_upg_o_spot = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_ass_74 = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm = { translation = Vector3(0, 0, -4.6) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 0, -4.6) }, wpn_fps_shot_saiga = { translation = Vector3(0, 0, -4.6) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 0, -4.36) } } }, wpn_fps_upg_o_45rds_v2 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_74 = { translation = Vector3(-2.01, 0, -14.9), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_akm = { translation = Vector3(-2.01, 0, -14.9), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_akm_gold = { translation = Vector3(-2.01, 0, -14.9), rotation = Rotation(0, 0, -45) } } } } } self.parts.wpn_fps_upg_ass_m4_fg_lvoa = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m4_fg_lvoa", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_fg_lvoa/wpn_fps_upg_ass_m4_fg_lvoa", pcs = {}, stats = { spread = -2, recoil = 4, damage = 2, value = 1 } } self.parts.wpn_fps_upg_ass_m4_fg_moe = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m4_fg_moe", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_fg_moe/wpn_fps_upg_ass_m4_fg_moe", pcs = {}, stats = { value = 1, spread = 1, damage = 1, concealment = 2, recoil = 2 }, override = { wpn_fps_m4_uupg_o_flipup = { third_unit = "units/payday2/weapons/wpn_third_ass_m4_pts/wpn_third_m4_uupg_o_flipup_emo", unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_m4_uupg_o_flipup_emo" } } } self.parts.wpn_fps_upg_ass_m16_fg_stag = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m16_fg_stag", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m16_fg_stag/wpn_fps_upg_ass_m16_fg_stag", pcs = {}, stats = { value = 1, recoil = 2, concealment = -3 }, override = { wpn_fps_ass_m16_os_frontsight = { a_obj = "a_os_stag" } } } self.parts.wpn_fps_upg_smg_olympic_fg_lr300 = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "foregrip", a_obj = "a_fg", dlc = "akm4_pack", name_id = "bm_wp_upg_smg_olympic_fg_lr300", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_smg_olympic_fg_lr300/wpn_fps_upg_smg_olympic_fg_lr300", pcs = {}, stats = { value = 1, recoil = 2 } } self.parts.wpn_fps_upg_ass_m4_upper_reciever_ballos = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "upper_reciever", a_obj = "a_body", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m4_upper_reciever_ballos", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_upper_reciever_ballos/wpn_fps_upg_ass_m4_upper_reciever_ballos", pcs = {}, stats = { spread = 1, recoil = 2, value = 1 }, override = { wpn_fps_m4_uupg_draghandle = { unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_m4_uupg_draghandle_ballos/wpn_fps_m4_uupg_draghandle_ballos" }, wpn_fps_amcar_bolt_standard = { unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_bolt_ballos/wpn_fps_upg_ass_m4_bolt_ballos" } } } self.parts.wpn_fps_upg_ass_m4_upper_reciever_core = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "upper_reciever", a_obj = "a_body", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m4_upper_reciever_core", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_upper_reciever_core/wpn_fps_upg_ass_m4_upper_reciever_core", pcs = {}, stats = { spread = -2, value = 1, damage = 2 }, override = { wpn_fps_m4_uupg_draghandle = { unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_m4_uupg_draghandle_core/wpn_fps_m4_uupg_draghandle_core" }, wpn_fps_amcar_bolt_standard = { unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_bolt_core/wpn_fps_upg_ass_m4_bolt_core" } } } self.parts.wpn_fps_m4_uupg_draghandle_ballos = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_m4_uupg_draghandle", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_m4_uupg_draghandle_ballos/wpn_fps_m4_uupg_draghandle_ballos", stats = { value = 1 } } self.parts.wpn_fps_m4_uupg_draghandle_core = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_m4_uupg_draghandle", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_m4_uupg_draghandle_core/wpn_fps_m4_uupg_draghandle_core", stats = { value = 1 } } self.parts.wpn_fps_upg_ass_m4_lower_reciever_core = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "lower_reciever", a_obj = "a_body", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m4_lower_reciever_core", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_lower_reciever_core/wpn_fps_upg_ass_m4_lower_reciever_core", pcs = {}, stats = { value = 1, damage = 2 } } self.parts.wpn_fps_upg_m4_m_l5 = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", a_obj = "a_m", type = "magazine", dlc = "akm4_pack", name_id = "bm_wp_upg_m4_m_l5", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_m4_m_l5/wpn_fps_upg_m4_m_l5", pcs = {}, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { extra_ammo = 2, recoil = 1, value = 1 } } self.parts.wpn_fps_upg_m4_s_ubr = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", type = "stock", a_obj = "a_s", dlc = "akm4_pack", name_id = "bm_wp_upg_m4_s_ubr", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_m4_s_ubr/wpn_fps_upg_m4_s_ubr", pcs = {}, stats = { spread = 1, recoil = 1, value = 1, concealment = -2 }, adds_type = { "stock_adapter" }, forbids = { "wpn_fps_shot_r870_ris_special" } } self.parts.wpn_fps_upg_ass_m4_b_beowulf = { is_a_unlockable = true, texture_bundle_folder = "dlc_akm4", a_obj = "a_b", type = "barrel", dlc = "akm4_pack", name_id = "bm_wp_upg_ass_m4_b_beowulf", unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_fps_upg_ass_m4_b_beowulf/wpn_fps_upg_ass_m4_b_beowulf", pcs = {}, stats = { spread = 4, total_ammo_mod = -12, damage = 108, concealment = -4, value = 1, recoil = -10 }, custom_stats = { ammo_pickup_max_mul = 0.15, ammo_pickup_min_mul = 0.2 }, forbids = { "wpn_fps_ammo_type" }, sound_switch = { suppressed = "regular_b" } } self.parts.wpn_fps_upg_ass_ak_b_zastava.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_ak_b_zastava/wpn_third_upg_ass_ak_b_zastava" self.parts.wpn_fps_upg_ak_b_ak105.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_b_ak105/wpn_third_upg_ak_b_ak105" self.parts.wpn_fps_upg_ak_ns_ak105.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_b_ak105/wpn_third_upg_ak_ns_ak105" self.parts.wpn_fps_upg_ak_fg_krebs.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_fg_krebs/wpn_third_upg_ak_fg_krebs" self.parts.wpn_fps_upg_ak_fg_trax.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_fg_trax/wpn_third_upg_ak_fg_trax" self.parts.wpn_fps_upg_ak_fg_zenit.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_fg_zenit/wpn_third_upg_ak_fg_zenit" self.parts.wpn_fps_upg_ak_g_rk3.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_g_rk3/wpn_third_upg_ak_g_rk3" self.parts.wpn_fps_upg_ak_m_uspalm.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_m_uspalm/wpn_third_upg_ak_m_uspalm" self.parts.wpn_fps_upg_ak_s_solidstock.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ak_s_solidstock/wpn_third_upg_ak_s_solidstock" self.parts.wpn_fps_upg_ns_ass_pbs1.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ns_ass_pbs1/wpn_third_upg_ns_ass_pbs1" self.parts.wpn_fps_upg_o_ak_scopemount.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_o_ak_scopemount/wpn_third_upg_o_ak_scopemount" self.parts.wpn_fps_upg_ass_m4_fg_lvoa.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m4_fg_lvoa/wpn_third_upg_ass_m4_fg_lvoa" self.parts.wpn_fps_upg_ass_m4_fg_moe.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m4_fg_moe/wpn_third_upg_ass_m4_fg_moe" self.parts.wpn_fps_upg_ass_m16_fg_stag.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m16_fg_stag/wpn_third_upg_ass_m16_fg_stag" self.parts.wpn_fps_upg_smg_olympic_fg_lr300.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_smg_olympic_fg_lr300/wpn_third_upg_smg_olympic_fg_lr300" self.parts.wpn_fps_upg_ass_m4_upper_reciever_ballos.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m4_upper_reciever_ballos/wpn_third_upg_ass_m4_upper_reciever_ballos" self.parts.wpn_fps_upg_ass_m4_upper_reciever_core.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m4_upper_reciever_core/wpn_third_upg_ass_m4_upper_reciever_core" self.parts.wpn_fps_m4_uupg_draghandle_ballos.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_m4_uupg_draghandle_ballos/wpn_third_m4_uupg_draghandle_ballos" self.parts.wpn_fps_m4_uupg_draghandle_core.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_m4_uupg_draghandle_core/wpn_third_m4_uupg_draghandle_core" self.parts.wpn_fps_upg_ass_m4_lower_reciever_core.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m4_lower_reciever_core/wpn_third_upg_ass_m4_lower_reciever_core" self.parts.wpn_fps_upg_m4_m_l5.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_m4_m_l5/wpn_third_upg_m4_m_l5" self.parts.wpn_fps_upg_m4_s_ubr.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_m4_s_ubr/wpn_third_upg_m4_s_ubr" self.parts.wpn_fps_upg_ass_m4_b_beowulf.third_unit = "units/pd2_dlc_akm4_modpack/weapons/wpn_third_upg_ass_m4_b_beowulf/wpn_third_upg_ass_m4_b_beowulf" end function WeaponFactoryTweakData:_init_m134() self.parts.wpn_fps_lmg_m134_body = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_m134_body", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_body", stats = { value = 1 } } self.parts.wpn_fps_lmg_m134_body_upper = { a_obj = "a_body", type = "extra", name_id = "bm_wp_m134_body_upper", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_body_upper", stats = { value = 1 } } self.parts.wpn_fps_lmg_m134_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m134_m_standard", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_m_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_m134_body_upper_light = { a_obj = "a_body", texture_bundle_folder = "dlc_pack_overkill", type = "extra", dlc = "overkill_pack", name_id = "bm_wp_m134_body_upper_light", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_body_upper_light", has_description = false, pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = -8, spread = -1, concealment = 3, recoil = 3 } } self.parts.wpn_fps_lmg_m134_barrel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m134_barrel", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_barrel", stats = { value = 1 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_m134_barrel_short = { texture_bundle_folder = "dlc_pack_overkill", a_obj = "a_b", type = "barrel", dlc = "overkill_pack", name_id = "bm_wp_m134_barrel_short", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_barrel_short", has_description = false, pcs = { 10, 20, 30, 40 }, stats = { spread = -1, recoil = 3, value = 1, concealment = 3 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_m134_barrel_extreme = { texture_bundle_folder = "dlc_pack_overkill", type = "barrel", a_obj = "a_b", dlc = "overkill_pack", name_id = "bm_wp_m134_barrel_extreme", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_fps_lmg_m134_barrel_extreme", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = -3, value = 1, concealment = -3 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_m134_body.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_body" self.parts.wpn_fps_lmg_m134_body_upper.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_body_upper" self.parts.wpn_fps_lmg_m134_body_upper_light.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_body_upper_light" self.parts.wpn_fps_lmg_m134_m_standard.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_m_standard" self.parts.wpn_fps_lmg_m134_barrel.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_barrel" self.parts.wpn_fps_lmg_m134_barrel_short.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_barrel_short" self.parts.wpn_fps_lmg_m134_barrel_extreme.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134_pts/wpn_third_lmg_m134_barrel_extreme" self.wpn_fps_lmg_m134 = { unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134/wpn_fps_lmg_m134", animations = { reload_not_empty = "reload", reload = "reload" }, optional_types = { "gadget", "sight", "barrel_ext" }, default_blueprint = { "wpn_fps_lmg_m134_body", "wpn_fps_lmg_m134_body_upper", "wpn_fps_lmg_m134_m_standard", "wpn_fps_lmg_m134_barrel" }, uses_parts = { "wpn_fps_lmg_m134_body", "wpn_fps_lmg_m134_body_upper", "wpn_fps_lmg_m134_body_upper_light", "wpn_fps_lmg_m134_m_standard", "wpn_fps_lmg_m134_barrel", "wpn_fps_lmg_m134_barrel_short", "wpn_fps_lmg_m134_barrel_extreme", "wpn_fps_lmg_m134_barrel_legendary", "wpn_fps_lmg_m134_body_upper_spikey", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_lmg_m134_npc = deep_clone(self.wpn_fps_lmg_m134) self.wpn_fps_lmg_m134_npc.unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_lmg_m134/wpn_fps_lmg_m134_npc" end function WeaponFactoryTweakData:_init_rpg7() self.parts.wpn_fps_rpg7_body = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_rpg7_body", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7_pts/wpn_fps_rpg7_body", stats = { value = 1 }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil" } } self.parts.wpn_fps_rpg7_m_rocket = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_rpg7_m_rocket", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7_pts/wpn_fps_rpg7_m_rocket", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_rpg7_barrel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_rpg7_barrel", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7_pts/wpn_fps_rpg7_barrel", stats = { value = 1 } } self.parts.wpn_fps_rpg7_sight = { a_obj = "a_o", type = "sight", name_id = "bm_wp_rpg7_sight", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7_pts/wpn_fps_rpg7_sight", stats = { value = 1 }, stance_mod = { wpn_fps_rpg7 = { translation = Vector3(0.2, 0, -0.8), rotation = Rotation(0, 0, -5) } }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_rpg7_sight_adapter = { a_obj = "a_o", type = "extra", name_id = "bm_wp_rpg7_sight_adapter", unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7_pts/wpn_fps_rpg7_sight_adapter", stats = { value = 1 }, stance_mod = { wpn_fps_rpg7 = { translation = Vector3(0, 0, -2.25), rotation = Rotation(0, 0, 0) } } } self.parts.wpn_fps_rpg7_body.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_third_rpg7_pts/wpn_third_rpg7_body" self.parts.wpn_fps_rpg7_m_rocket.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_third_rpg7_pts/wpn_third_rpg7_m_rocket" self.parts.wpn_fps_rpg7_sight.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_third_rpg7_pts/wpn_third_rpg7_sight" self.parts.wpn_fps_rpg7_sight_adapter.third_unit = "units/pd2_dlc_overkill_pack/weapons/wpn_third_rpg7_pts/wpn_third_rpg7_sight_adapter" self.wpn_fps_rpg7 = { unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7/wpn_fps_rpg7", adds = { wpn_fps_upg_o_specter = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_rpg7_sight_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_rpg7_sight_adapter" } }, default_blueprint = { "wpn_fps_rpg7_body", "wpn_fps_rpg7_m_rocket", "wpn_fps_rpg7_barrel", "wpn_fps_rpg7_sight" }, uses_parts = { "wpn_fps_rpg7_body", "wpn_fps_rpg7_m_rocket", "wpn_fps_rpg7_barrel", "wpn_fps_rpg7_sight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_rpg7_m_grinclown", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_rpg7_npc = deep_clone(self.wpn_fps_rpg7) self.wpn_fps_rpg7_npc.unit = "units/pd2_dlc_overkill_pack/weapons/wpn_fps_rpg7/wpn_fps_rpg7_npc" end function WeaponFactoryTweakData:_init_cobray() self.parts.wpn_fps_smg_cobray_body_lower = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_body_lower", stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_body_lower_jacket = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_body_lower_jacket", stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_body_upper", stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_body_upper_jacket = { is_a_unlockable = true, texture_bundle_folder = "hlm2", type = "upper_reciever", a_obj = "a_body", dlc = "hlm2_deluxe", name_id = "bm_wp_cobray_body_upper_jacket", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_body_upper_jacket", pcs = {}, stats = { value = 1, recoil = 5, damage = 1, concealment = -3 }, override = { wpn_fps_smg_cobray_body_lower = { third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_body_lower_jacket", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_body_lower_jacket" } } } self.parts.wpn_fps_smg_cobray_bolt = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_cobray_bolt", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_bolt", stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_barrel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_cobray_barrel", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_barrel", stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_cobray_m_mag", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_m_standard", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_ns_barrelextension = { type = "barrel_ext", texture_bundle_folder = "hlm2", a_obj = "a_ns", parent = "barrel", dlc = "hlm2_deluxe", name_id = "bm_wp_cobray_ns_barrelext", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_ns_barrelextension", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = -2, damage = 2, spread = 2, recoil = -2 } } self.parts.wpn_fps_smg_cobray_ns_silencer = { a_obj = "a_ns", texture_bundle_folder = "hlm2", sub_type = "silencer", type = "barrel_ext", dlc = "hlm2_deluxe", parent = "barrel", name_id = "bm_wp_cobray_ns_silencer", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_ns_silencer", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 0, damage = -3, suppression = 12, value = 1, recoil = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_smg_cobray_s_m4adapter = { a_obj = "a_s", type = "extra", name_id = "bm_wp_cobray_s_m4_adapter", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_s_m4adapter", stats = { value = 1 }, stance_mod = { wpn_fps_smg_cobray = { translation = Vector3(0, -10, 0), rotation = Rotation(0, 0, 0) } } } self.parts.wpn_fps_smg_cobray_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_cobray_s_standard", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_cobray_o_adapter = { a_obj = "a_body", type = "extra", name_id = "bm_wp_cobray_o_adapter", unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_fps_smg_cobray_o_adapter", stats = { value = 1 }, stance_mod = { wpn_fps_smg_cobray = { translation = Vector3(0, -14, -4.8) } } } self.parts.wpn_fps_smg_cobray_body_lower.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_body_lower" self.parts.wpn_fps_smg_cobray_body_lower_jacket.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_body_lower_jacket" self.parts.wpn_fps_smg_cobray_body_upper.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_body_upper" self.parts.wpn_fps_smg_cobray_body_upper_jacket.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_body_upper_jacket" self.parts.wpn_fps_smg_cobray_bolt.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_bolt" self.parts.wpn_fps_smg_cobray_barrel.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_barrel" self.parts.wpn_fps_smg_cobray_m_standard.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_m_standard" self.parts.wpn_fps_smg_cobray_ns_barrelextension.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_ns_barrelextension" self.parts.wpn_fps_smg_cobray_ns_silencer.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_ns_silencer" self.parts.wpn_fps_smg_cobray_s_m4adapter.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_s_m4adapter" self.parts.wpn_fps_smg_cobray_s_standard.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_s_standard" self.parts.wpn_fps_smg_cobray_o_adapter.third_unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray_pts/wpn_third_smg_cobray_o_adapter" self.wpn_fps_smg_cobray = { unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray/wpn_fps_smg_cobray", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_cobray_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_cobray_o_adapter" } }, stock_adapter = "wpn_fps_smg_cobray_s_m4adapter", default_blueprint = { "wpn_fps_smg_cobray_body_lower", "wpn_fps_smg_cobray_body_upper", "wpn_fps_smg_cobray_bolt", "wpn_fps_smg_cobray_m_standard", "wpn_fps_smg_cobray_s_standard", "wpn_fps_smg_cobray_barrel" }, uses_parts = { "wpn_fps_smg_cobray_body_lower", "wpn_fps_smg_cobray_body_upper", "wpn_fps_smg_cobray_body_lower_jacket", "wpn_fps_smg_cobray_body_upper_jacket", "wpn_fps_smg_cobray_bolt", "wpn_fps_smg_cobray_m_standard", "wpn_fps_smg_cobray_ns_barrelextension", "wpn_fps_smg_cobray_ns_silencer", "wpn_fps_smg_cobray_s_m4adapter", "wpn_fps_smg_cobray_s_standard", "wpn_fps_smg_cobray_barrel", "wpn_fps_smg_cobray_o_adapter", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_snp_tti_s_vltor" } } self.wpn_fps_smg_cobray_npc = deep_clone(self.wpn_fps_smg_cobray) self.wpn_fps_smg_cobray_npc.unit = "units/pd2_dlc_hotline2/weapons/wpn_fps_smg_cobray/wpn_fps_smg_cobray_npc" end function WeaponFactoryTweakData:_init_b682() self.parts.wpn_fps_shot_b682_b_short = { texture_bundle_folder = "character_pack_bonnie", type = "barrel", a_obj = "a_b", dlc = "pd2_clan", name_id = "bm_wp_b682_b_short", unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_fps_shot_b682_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -4, recoil = -3, value = 1, concealment = 10 }, sound_switch = { suppressed = "regular_b" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_shot_b682_b_long = { texture_bundle_folder = "character_pack_bonnie", dlc = "pd2_clan", type = "barrel", name_id = "bm_wp_b682_b_long", unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_fps_shot_b682_b_long", a_obj = "a_b", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_shot_b682_body_standard = { texture_bundle_folder = "character_pack_bonnie", dlc = "pd2_clan", type = "lower_reciever", name_id = "bm_wp_b682_body_standard", unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_fps_shot_b682_body_standard", a_obj = "a_body", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_shot_b682_s_long = { texture_bundle_folder = "character_pack_bonnie", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_b682_s_long", unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_fps_shot_b682_s_long", a_obj = "a_s", stats = { value = 1 } } self.parts.wpn_fps_shot_b682_s_short = { texture_bundle_folder = "character_pack_bonnie", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_b682_s_short", unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_fps_shot_b682_s_short", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { spread = -4, recoil = -3, value = 1, concealment = 6 } } self.parts.wpn_fps_shot_b682_s_ammopouch = { texture_bundle_folder = "character_pack_bonnie", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_b682_s_ammopouch", unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_fps_shot_b682_s_ammopouch", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = 6 } } self.parts.wpn_fps_shot_b682_b_short.third_unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_third_shot_b682_b_short" self.parts.wpn_fps_shot_b682_b_long.third_unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_third_shot_b682_b_long" self.parts.wpn_fps_shot_b682_body_standard.third_unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_third_shot_b682_body_standard" self.parts.wpn_fps_shot_b682_s_long.third_unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_third_shot_b682_s_long" self.parts.wpn_fps_shot_b682_s_short.third_unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_third_shot_b682_s_short" self.parts.wpn_fps_shot_b682_s_ammopouch.third_unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682_pts/wpn_third_shot_b682_s_ammopouch" self.wpn_fps_shot_b682 = { unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682/wpn_fps_shot_b682", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_a_explosive = { custom_stats = { ignore_statistic = true, damage_far_mul = 2.5, damage_near_mul = 2, bullet_class = "InstantExplosiveBulletBase", rays = 1 } } }, default_blueprint = { "wpn_fps_shot_b682_body_standard", "wpn_fps_shot_b682_b_long", "wpn_fps_shot_b682_s_long" }, uses_parts = { "wpn_fps_shot_b682_body_standard", "wpn_fps_shot_b682_b_long", "wpn_fps_shot_b682_s_long", "wpn_fps_shot_b682_b_short", "wpn_fps_shot_b682_s_short", "wpn_fps_shot_b682_s_ammopouch" } } self.wpn_fps_shot_b682_npc = deep_clone(self.wpn_fps_shot_b682) self.wpn_fps_shot_b682_npc.unit = "units/pd2_dlc_bonnie/weapons/wpn_fps_shot_b682/wpn_fps_shot_b682_npc" end function WeaponFactoryTweakData:_init_butchermodpack() self.parts.wpn_fps_saw_body_silent = { type = "lower_reciever", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_body", dlc = "butch_pack_free", name_id = "bm_wp_saw_body_silent", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_saw_body_silent/wpn_fps_saw_body_silent", pcs = { 10, 20, 30, 40 }, stats = { value = 1, alert_size = 9, suppression = 9 }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_saw_body_speed = { type = "lower_reciever", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_body", dlc = "butch_pack_free", name_id = "bm_wp_saw_body_speed", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_saw_body_speed/wpn_fps_saw_body_speed", pcs = { 10, 20, 30, 40 }, stats = { value = 1, damage = 3 }, sound_switch = { suppressed = "regular_b" } } self.parts.wpn_fps_saw_m_blade_durable = { texture_bundle_folder = "butcher_pack_mods", type = "magazine", a_obj = "a_m", dlc = "butch_pack_free", name_id = "bm_wp_saw_m_blade_durable", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_saw_m_blade_durable/wpn_fps_saw_m_blade_durable", pcs = { 10, 20, 30, 40 }, stats = { extra_ammo = 25, total_ammo_mod = 10, value = 1 }, animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_saw_m_blade_sharp = { texture_bundle_folder = "butcher_pack_mods", type = "magazine", a_obj = "a_m", dlc = "butch_pack_free", name_id = "bm_wp_saw_m_blade_sharp", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_saw_m_blade_sharp/wpn_fps_saw_m_blade_sharp", pcs = { 10, 20, 30, 40 }, stats = { value = 1, damage = 3 }, animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_aug_body_f90 = { texture_bundle_folder = "butcher_pack_mods", type = "lower_reciever", a_obj = "a_body", dlc = "butch_pack_free", name_id = "bm_wp_aug_body_f90", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_aug_body_f90/wpn_fps_aug_body_f90", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = -2, damage = 2, spread = 1, recoil = 2 }, animations = { reload = "reload" } } self.parts.wpn_fps_ass_ak5_b_short = { texture_bundle_folder = "butcher_pack_mods", dlc = "butch_pack_free", type = "barrel", name_id = "bm_wp_ak5_b_short", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_ass_ak5_b_short/wpn_fps_ass_ak5_b_short", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 1, damage = 2, concealment = 2 } } self.parts.wpn_fps_smg_mp5_m_straight = { type = "magazine", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_m", dlc = "butch_pack_free", name_id = "bm_wp_mp5_m_straight", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_smg_mp5_m_straight/wpn_fps_smg_mp5_m_straight", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1, recoil = 2, concealment = -1 } } self.parts.wpn_fps_smg_mp9_b_suppressed = { a_obj = "a_ns", texture_bundle_folder = "butcher_pack_mods", sub_type = "silencer", type = "barrel_ext", dlc = "butch_pack_free", parent = "barrel", name_id = "bm_wp_mp9_b_suppressed", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_smg_mp9_b_suppressed/wpn_fps_smg_mp9_b_suppressed", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 1, damage = 0, suppression = 12, value = 4, recoil = 3, spread_moving = -2, concealment = -4 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_smg_p90_b_civilian = { texture_bundle_folder = "butcher_pack_mods", dlc = "butch_pack_free", type = "barrel", name_id = "bm_wp_p90_b_civilian", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_smg_p90_b_civilian/wpn_fps_smg_p90_b_civilian", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = -4, damage = 2, spread = 2, recoil = -2 } } self.parts.wpn_fps_smg_p90_b_ninja = { type = "barrel", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_b", sub_type = "silencer", dlc = "butch_pack_free", name_id = "bm_wp_p90_b_ninja", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_smg_p90_b_ninja/wpn_fps_smg_p90_b_ninja", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, damage = -1, suppression = 12, value = 2, recoil = 3 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, forbids = { "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" }, override = { wpn_fps_ass_vhs_ns_vhs = { third_unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no", unit = "units/pd2_dlc_dragan/weapons/wpn_fps_ass_vhs_pts/wpn_fps_ass_vhs_ns_vhs_no" } } } self.parts.wpn_fps_upg_o_m14_scopemount = { depends_on = "sight", texture_bundle_folder = "butcher_pack_mods", type = "extra", a_obj = "a_body", dlc = "butch_pack_free", name_id = "bm_wp_upg_o_m14_scopemount", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_o_m14_scopemount/wpn_fps_upg_o_m14_scopemount", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -1 }, override = { wpn_fps_upg_o_specter = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_aimpoint = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_aimpoint_2 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_docter = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_eotech = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_t1micro = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_cmore = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_cs = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_eotech_xps = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_reflex = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_rx01 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_rx30 = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_acog = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 6, -5.21) } } }, wpn_fps_upg_o_spot = { a_obj = "a_o_sm", stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } }, wpn_fps_upg_o_xpsg33_magnifier = { stance_mod = { wpn_fps_ass_m14 = { translation = Vector3(-0.03, 0, -5.21) } } } } } self.parts.wpn_fps_pis_1911_g_engraved = { texture_bundle_folder = "butcher_pack_mods", dlc = "butch_pack_free", type = "grip", name_id = "bm_wp_1911_g_engraved", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_1911_g_engraved/wpn_fps_pis_1911_g_engraved", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_pis_beretta_g_engraved = { texture_bundle_folder = "butcher_pack_mods", dlc = "butch_pack_free", type = "grip", name_id = "bm_wp_beretta_g_engraved", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_beretta_g_engraved/wpn_fps_pis_beretta_g_engraved", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_upg_fl_ass_utg = { type = "gadget", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_fl", sub_type = "laser", dlc = "butch_pack_free", name_id = "bm_wp_upg_fl_ass_utg", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_fl_ass_utg/wpn_fps_upg_fl_ass_utg", pcs = { 10, 20, 30, 40 }, stats = { concealment = -2, recoil = 2, value = 5 }, perks = { "gadget" }, adds = { "wpn_fps_addon_ris", "wpn_fps_upg_fl_ass_peq15_flashlight" } } self.parts.wpn_fps_upg_fl_pis_m3x = { type = "gadget", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_fl", sub_type = "flashlight", dlc = "butch_pack_free", name_id = "bm_wp_upg_fl_pis_m3x", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_fl_pis_m3x/wpn_fps_upg_fl_pis_m3x", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -1 } } self.parts.wpn_fps_upg_ass_ns_battle = { type = "barrel_ext", texture_bundle_folder = "butcher_pack_mods", a_obj = "a_ns", parent = "barrel", dlc = "butch_pack_free", name_id = "bm_wp_ns_battle", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_ass_ns_battle/wpn_fps_upg_ass_ns_battle", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = -1, damage = 2, spread = 1, recoil = -2 } } self.parts.wpn_fps_upg_ns_ass_filter = { type = "barrel_ext", texture_bundle_folder = "butcher_pack_mods", sub_type = "silencer", a_obj = "a_ns", dlc = "butch_pack_free", parent = "slide", name_id = "bm_wp_upg_ns_ass_filter", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_ns_ass_filter/wpn_fps_upg_ns_ass_filter", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = -1, damage = -3, suppression = 12, value = 0, spread_moving = -2, concealment = -3 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_upg_ns_pis_jungle = { type = "barrel_ext", texture_bundle_folder = "butcher_pack_mods", sub_type = "silencer", a_obj = "a_ns", dlc = "butch_pack_free", parent = "slide", name_id = "bm_wp_upg_ns_pis_jungle", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_ns_pis_jungle/wpn_fps_upg_ns_pis_jungle", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, value = 5, concealment = -5, suppression = 12, spread = 1, recoil = 2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_upg_ns_sho_salvo_large = { type = "barrel_ext", texture_bundle_folder = "butcher_pack_mods", sub_type = "silencer", a_obj = "a_ns", dlc = "butch_pack_free", parent = "barrel", name_id = "bm_wp_upg_ns_sho_salvo_large", unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_upg_ns_sho_salvo/wpn_fps_upg_ns_sho_salvo_large", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 1, damage = -4, suppression = 12, value = 7, recoil = 1, spread_moving = -2, concealment = -4 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_saw_body_silent.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_saw_body_silent/wpn_third_saw_body_silent" self.parts.wpn_fps_saw_body_speed.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_saw_body_speed/wpn_third_saw_body_speed" self.parts.wpn_fps_saw_m_blade_durable.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_saw_m_blade_durable/wpn_third_saw_m_blade_durable" self.parts.wpn_fps_saw_m_blade_sharp.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_saw_m_blade_sharp/wpn_third_saw_m_blade_sharp" self.parts.wpn_fps_aug_body_f90.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_aug_body_f90/wpn_third_aug_body_f90" self.parts.wpn_fps_ass_ak5_b_short.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_ass_ak5_b_short/wpn_third_ass_ak5_b_short" self.parts.wpn_fps_smg_mp5_m_straight.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_smg_mp5_m_straight/wpn_third_smg_mp5_m_straight" self.parts.wpn_fps_smg_mp9_b_suppressed.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_smg_mp9_b_suppressed/wpn_third_smg_mp9_b_suppressed" self.parts.wpn_fps_smg_p90_b_civilian.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_smg_p90_b_civilian/wpn_third_smg_p90_b_civilian" self.parts.wpn_fps_smg_p90_b_ninja.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_smg_p90_b_ninja/wpn_third_smg_p90_b_ninja" self.parts.wpn_fps_upg_o_m14_scopemount.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_o_m14_scopemount/wpn_third_upg_o_m14_scopemount" self.parts.wpn_fps_pis_1911_g_engraved.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_pis_1911_g_engraved/wpn_third_pis_1911_g_engraved" self.parts.wpn_fps_pis_beretta_g_engraved.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_pis_beretta_g_engraved/wpn_third_pis_beretta_g_engraved" self.parts.wpn_fps_upg_fl_ass_utg.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_fl_ass_utg/wpn_third_upg_fl_ass_utg" self.parts.wpn_fps_upg_fl_pis_m3x.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_fl_pis_m3x/wpn_third_upg_fl_pis_m3x" self.parts.wpn_fps_upg_ass_ns_battle.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_ass_ns_battle/wpn_third_upg_ass_ns_battle" self.parts.wpn_fps_upg_ns_ass_filter.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_ns_ass_filter/wpn_third_upg_ns_ass_filter" self.parts.wpn_fps_upg_ns_pis_jungle.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_ns_pis_jungle/wpn_third_upg_ns_pis_jungle" self.parts.wpn_fps_upg_ns_sho_salvo_large.third_unit = "units/pd2_dlc_butcher_mods/weapons/wpn_third_upg_ns_sho_salvo/wpn_third_upg_ns_sho_salvo_large" end function WeaponFactoryTweakData:_init_x_g22c() self.wpn_fps_pis_x_g22c = { unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_x_g22c/wpn_fps_pis_x_g22c", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, override = { wpn_fps_pis_g18c_m_mag_33rnd = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 12 } }, wpn_fps_pis_g18c_m_mag_17rnd = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_g22c_b_standard = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_g22c_b_long = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_g26_g_gripforce = { a_obj = "a_g_2" }, wpn_fps_pis_g26_g_laser = { a_obj = "a_g_2" } }, default_blueprint = { "wpn_fps_pis_g22c_b_standard", "wpn_fps_pis_g22c_body_standard", "wpn_fps_pis_g18c_m_mag_17rnd" }, uses_parts = { "wpn_fps_pis_g22c_b_standard", "wpn_fps_pis_g22c_b_long", "wpn_fps_pis_g22c_body_standard", "wpn_fps_pis_g18c_g_ergo", "wpn_fps_pis_g18c_co_1", "wpn_fps_pis_g18c_co_comp_2", "wpn_fps_pis_g18c_m_mag_33rnd", "wpn_fps_pis_g18c_m_mag_17rnd", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_g22c_npc = deep_clone(self.wpn_fps_pis_x_g22c) self.wpn_fps_pis_x_g22c_npc.unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_x_g22c/wpn_fps_pis_x_g22c_npc" end function WeaponFactoryTweakData:_init_x_g17() self.wpn_fps_pis_x_g17 = { unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_x_g17/wpn_fps_pis_x_g17", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left" }, override = { wpn_fps_pis_g17_m_standard = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_g17_b_standard = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_g18c_m_mag_33rnd = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 12 } } }, default_blueprint = { "wpn_fps_pis_g17_body_standard", "wpn_fps_pis_g17_b_standard", "wpn_fps_pis_g17_m_standard" }, uses_parts = { "wpn_fps_pis_g17_body_standard", "wpn_fps_pis_g17_b_standard", "wpn_fps_pis_g17_m_standard", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_g18c_m_mag_33rnd" } } self.wpn_fps_pis_x_g17_npc = deep_clone(self.wpn_fps_pis_x_g17) self.wpn_fps_pis_x_g17_npc.unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_x_g17/wpn_fps_pis_x_g17_npc" end function WeaponFactoryTweakData:_init_x_usp() self.wpn_fps_pis_x_usp = { unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_x_usp/wpn_fps_pis_x_usp", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_usp_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_usp_fl_adapter" } }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left" }, override = { wpn_fps_pis_usp_m_standard = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_usp_m_extended = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 8 } }, wpn_fps_pis_usp_b_tactical = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_usp_b_expert = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_usp_b_match = { animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload = "reload_right", magazine_empty = "last_recoil" } }, wpn_fps_pis_usp_m_big = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { extra_ammo = 12, value = 4, recoil = 2, concealment = -2, spread_moving = -1 } } }, default_blueprint = { "wpn_fps_pis_usp_b_tactical", "wpn_fps_pis_usp_body_standard", "wpn_fps_pis_usp_m_standard" }, uses_parts = { "wpn_fps_pis_usp_b_match", "wpn_fps_pis_usp_body_standard", "wpn_fps_pis_usp_m_standard", "wpn_fps_pis_usp_m_extended", "wpn_fps_pis_usp_b_expert", "wpn_fps_pis_usp_b_tactical", "wpn_fps_pis_usp_co_comp_1", "wpn_fps_pis_usp_co_comp_2", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_pis_usp_m_big" } } self.wpn_fps_pis_x_usp_npc = deep_clone(self.wpn_fps_pis_x_usp) self.wpn_fps_pis_x_usp_npc.unit = "units/pd2_dlc_butcher_mods/weapons/wpn_fps_pis_x_usp/wpn_fps_pis_x_usp_npc" end function WeaponFactoryTweakData:_init_flamethrower_mk2() self.parts.wpn_fps_fla_mk2_empty = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_huntsman_b_long", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_fps_fla_mk2_empty", stats = { value = 1 } } self.parts.wpn_fps_fla_mk2_body = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_huntsman_body_standard", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_fps_fla_mk2_body", stats = { value = 1 }, animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_fla_mk2_mag_rare = { texture_bundle_folder = "bbq", dlc = "bbq", type = "magazine", name_id = "bm_wp_fla_mk2_mag_rare", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_fps_fla_mk2_mag_rare", a_obj = "a_m", pcs = { 20, 30, 40 }, stats = { value = 1, total_ammo_mod = 5, damage = -4 } } self.parts.wpn_fps_fla_mk2_mag = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_fla_mk2_mag_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_fps_fla_mk2_mag", stats = { value = 1 } } self.parts.wpn_fps_fla_mk2_mag_welldone = { texture_bundle_folder = "bbq", dlc = "bbq", type = "magazine", name_id = "bm_wp_fla_mk2_mag_welldone", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_fps_fla_mk2_mag_welldone", a_obj = "a_m", pcs = { 20, 30, 40 }, stats = { value = 1, total_ammo_mod = -5, damage = 7 } } self.parts.wpn_fps_fla_mk2_body.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_third_fla_mk2_body" self.parts.wpn_fps_fla_mk2_mag_rare.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_third_fla_mk2_mag_rare" self.parts.wpn_fps_fla_mk2_mag.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_third_fla_mk2_mag" self.parts.wpn_fps_fla_mk2_mag_welldone.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2_pts/wpn_third_fla_mk2_mag_welldone" self.wpn_fps_fla_mk2 = { unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2/wpn_fps_fla_mk2", optional_types = { "barrel_ext", "gadget" }, animations = { reload_not_empty = "reload", reload = "reload" }, default_blueprint = { "wpn_fps_fla_mk2_empty", "wpn_fps_fla_mk2_body", "wpn_fps_fla_mk2_mag" }, uses_parts = { "wpn_fps_fla_mk2_empty", "wpn_fps_fla_mk2_body", "wpn_fps_fla_mk2_mag_rare", "wpn_fps_fla_mk2_mag", "wpn_fps_fla_mk2_mag_welldone", "wpn_fps_fla_mk2_body_fierybeast" } } self.wpn_fps_fla_mk2_npc = deep_clone(self.wpn_fps_fla_mk2) self.wpn_fps_fla_mk2_npc.unit = "units/pd2_dlc_bbq/weapons/wpn_fps_fla_mk2/wpn_fps_fla_mk2_npc" end function WeaponFactoryTweakData:_init_m32() self.parts.wpn_fps_gre_m32_barrel = { texture_bundle_folder = "bbq", dlc = "bbq", type = "barrel", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_barrel", a_obj = "a_b", stats = { value = 1 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_gre_m32_barrel_short = { type = "barrel", texture_bundle_folder = "bbq", a_obj = "a_b", dlc = "bbq", name_id = "bm_wp_m32_barrel_short", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_barrel_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, recoil = 5, value = 1, concealment = 2 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_gre_m32_bolt = { texture_bundle_folder = "bbq", dlc = "bbq", type = "extra", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_bolt", a_obj = "a_bolt", stats = { value = 1 } } self.parts.wpn_fps_gre_m32_lower_reciever = { texture_bundle_folder = "bbq", dlc = "bbq", type = "lower_reciever", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_lower_reciever", a_obj = "a_body", stats = { value = 1 } } self.parts.wpn_fps_gre_m32_mag = { texture_bundle_folder = "bbq", dlc = "bbq", type = "magazine", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_mag", a_obj = "a_m", stats = { value = 1 }, animations = { reload_not_empty = "reload", fire = "recoil", fire_steelsight = "recoil", reload = "reload", reload_enter = "reload_enter" } } self.parts.wpn_fps_gre_m32_stock_adapter = { texture_bundle_folder = "bbq", dlc = "pd2_clan", type = "stock_adapter", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_stock_adapter", a_obj = "a_s", stats = { value = 1 } } self.parts.wpn_fps_gre_m32_no_stock = { is_a_unlockable = true, texture_bundle_folder = "bbq", type = "stock", a_obj = "a_s", dlc = "bbq", name_id = "bm_wp_m32_no_stock", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_no_stock", pcs = {}, stats = { concealment = 4, recoil = -4, value = 0 } } self.parts.wpn_fps_gre_m32_upper_reciever = { texture_bundle_folder = "bbq", dlc = "bbq", type = "upper_reciever", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_upper_reciever", a_obj = "a_body_2", stats = { value = 1 } } self.parts.wpn_fps_gre_m32_barrel.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_third_gre_m32_barrel" self.parts.wpn_fps_gre_m32_barrel_short.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_third_gre_m32_barrel_short" self.parts.wpn_fps_gre_m32_bolt.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_no_stock" self.parts.wpn_fps_gre_m32_lower_reciever.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_third_gre_m32_lower_reciever" self.parts.wpn_fps_gre_m32_mag.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_no_stock" self.parts.wpn_fps_gre_m32_stock_adapter.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_third_gre_m32_stock_adapter" self.parts.wpn_fps_gre_m32_upper_reciever.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32_pts/wpn_fps_gre_m32_no_stock" self.wpn_fps_gre_m32 = { unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32/wpn_fps_gre_m32", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { fire = "recoil", fire_steelsight = "recoil_zoom", reload_not_empty_exit = "reload_exit", reload_exit = "reload_exit", reload_enter = "reload_enter" }, stock_adapter = "wpn_fps_gre_m32_stock_adapter", forbids = { "wpn_fps_addon_ris" }, adds = {}, default_blueprint = { "wpn_fps_gre_m32_barrel", "wpn_fps_gre_m32_bolt", "wpn_fps_gre_m32_lower_reciever", "wpn_fps_gre_m32_mag", "wpn_fps_gre_m32_upper_reciever", "wpn_fps_upg_m4_s_standard_vanilla" }, uses_parts = { "wpn_fps_gre_m32_barrel", "wpn_fps_gre_m32_barrel_short", "wpn_fps_gre_m32_bolt", "wpn_fps_gre_m32_lower_reciever", "wpn_fps_gre_m32_mag", "wpn_fps_gre_m32_stock_adapter", "wpn_fps_gre_m32_no_stock", "wpn_fps_gre_m32_upper_reciever", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_gre_m32_npc = deep_clone(self.wpn_fps_gre_m32) self.wpn_fps_gre_m32_npc.unit = "units/pd2_dlc_bbq/weapons/wpn_fps_gre_m32/wpn_fps_gre_m32_npc" end function WeaponFactoryTweakData:_init_aa12() self.parts.wpn_fps_sho_aa12_barrel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_aa12_barrel", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_barrel", stats = { value = 1 } } self.parts.wpn_fps_sho_aa12_barrel_long = { texture_bundle_folder = "bbq", dlc = "bbq", type = "barrel", name_id = "bm_wp_aa12_barrel_long", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_barrel_long", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 2, recoil = 2, value = 1, concealment = -2 } } self.parts.wpn_fps_sho_aa12_barrel_silenced = { type = "barrel", texture_bundle_folder = "bbq", dlc = "bbq", a_obj = "a_b", sub_type = "silencer", name_id = "bm_wp_aa12_barrel_silenced", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_barrel_silenced", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, value = 5, damage = -2, suppression = 12, spread = 1, recoil = -2, spread_moving = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" }, forbids = { "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_a_dragons_breath", "wpn_fps_upg_ns_duck" } } self.parts.wpn_fps_sho_aa12_body = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_aa12_body", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_body", stats = { value = 1 } } self.parts.wpn_fps_sho_aa12_body_rail = { a_obj = "a_body", type = "extra", name_id = "bm_wp_aa12_body_rail ", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_body_rail", stats = { value = 1 }, stance_mod = { wpn_fps_sho_aa12 = { translation = Vector3(0, 2, -0.8) } }, forbids = { "wpn_fps_sho_aa12_body_rear_sight" } } self.parts.wpn_fps_sho_aa12_body_rear_sight = { a_obj = "a_body", type = "sight", name_id = "bm_wp_aa12_body_rear_sight", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_body_rear_sight", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_sho_aa12_bolt = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_aa12_bolt", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_bolt", stats = { value = 1 } } self.parts.wpn_fps_sho_aa12_dh = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_aa12_dh", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_dh", stats = { value = 1 } } self.parts.wpn_fps_sho_aa12_mag_drum = { texture_bundle_folder = "bbq", a_obj = "a_m", type = "magazine", dlc = "bbq", name_id = "bm_wp_aa12_mag_drum", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_mag_drum", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 21, prefix = "g_bullet_" }, stats = { extra_ammo = 6, value = 1, concealment = -4 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_sho_aa12_mag_straight = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_aa12_mag_straight", unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_fps_sho_aa12_mag_straight", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_sho_aa12_barrel.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_barrel" self.parts.wpn_fps_sho_aa12_barrel_long.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_barrel_long" self.parts.wpn_fps_sho_aa12_barrel_silenced.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_barrel_silenced" self.parts.wpn_fps_sho_aa12_body.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_body" self.parts.wpn_fps_sho_aa12_body_rail.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_body_rail" self.parts.wpn_fps_sho_aa12_body_rear_sight.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_body_rear_sight" self.parts.wpn_fps_sho_aa12_bolt.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_bolt" self.parts.wpn_fps_sho_aa12_dh.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_dh" self.parts.wpn_fps_sho_aa12_mag_drum.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_mag_drum" self.parts.wpn_fps_sho_aa12_mag_straight.third_unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12_pts/wpn_third_sho_aa12_mag_straight" self.wpn_fps_sho_aa12 = { unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12/wpn_fps_sho_aa12", stock_adapter = "wpn_upg_ak_s_adapter", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_sho_aa12_body_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_sho_aa12_body_rail" } }, default_blueprint = { "wpn_fps_sho_aa12_mag_straight", "wpn_fps_sho_aa12_dh", "wpn_fps_sho_aa12_bolt", "wpn_fps_sho_aa12_body", "wpn_fps_sho_aa12_barrel", "wpn_fps_sho_aa12_body_rear_sight" }, uses_parts = { "wpn_fps_sho_aa12_barrel", "wpn_fps_sho_aa12_barrel_long", "wpn_fps_sho_aa12_barrel_silenced", "wpn_fps_sho_aa12_body", "wpn_fps_sho_aa12_body_rail", "wpn_fps_sho_aa12_body_rear_sight", "wpn_fps_sho_aa12_bolt", "wpn_fps_sho_aa12_dh", "wpn_fps_sho_aa12_mag_drum", "wpn_fps_sho_aa12_mag_straight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_aa12_npc = deep_clone(self.wpn_fps_sho_aa12) self.wpn_fps_sho_aa12_npc.unit = "units/pd2_dlc_bbq/weapons/wpn_fps_sho_aa12/wpn_fps_sho_aa12_npc" end function WeaponFactoryTweakData:_init_peacemaker() self.parts.wpn_fps_pis_peacemaker_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_peacemaker_body_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_body_standard", stats = { value = 1 }, animations = { fire = "recoil", fire_steelsight = "recoil", reload_not_empty_exit = "reload_exit", reload_exit = "reload_exit", reload_enter = "reload_enter" } } self.parts.wpn_fps_pis_peacemaker_b_standard = { a_obj = "a_b", type = "slide", name_id = "bm_wp_peacemaker_barrel_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_peacemaker_b_long = { texture_bundle_folder = "west", dlc = "west", type = "slide", name_id = "bm_wp_peacemaker_barrel_long", a_obj = "a_b", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_b_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, spread_moving = -1, value = 1, concealment = -2 } } self.parts.wpn_fps_pis_peacemaker_b_short = { texture_bundle_folder = "west", dlc = "west", type = "slide", name_id = "bm_wp_peacemaker_barrel_short", a_obj = "a_b", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, spread_moving = -1, value = 1, concealment = 2 } } self.parts.wpn_fps_pis_peacemaker_m_standard = { a_obj = "a_m", type = "upper_reciever", name_id = "bm_wp_peacemaker_m_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload", fire = "recoil", fire_steelsight = "recoil", reload = "reload", reload_enter = "reload_enter" } } self.parts.wpn_fps_pis_peacemaker_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_peacemaker_handle_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_peacemaker_g_bling = { texture_bundle_folder = "west", dlc = "west", type = "grip", name_id = "bm_wp_peacemaker_handle_bling", a_obj = "a_g", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_g_bling", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -1 } } self.parts.wpn_fps_pis_peacemaker_s_skeletal = { texture_bundle_folder = "west", dlc = "west", type = "stock", name_id = "bm_wp_peacemaker_rifle_stock", a_obj = "a_s", unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker_pts/wpn_fps_pis_peacemaker_s_skeletal", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, concealment = -2 } } self.parts.wpn_fps_pis_peacemaker_body_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_body_standard" self.parts.wpn_fps_pis_peacemaker_b_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_b_standard" self.parts.wpn_fps_pis_peacemaker_b_long.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_b_long" self.parts.wpn_fps_pis_peacemaker_b_short.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_b_short" self.parts.wpn_fps_pis_peacemaker_m_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_m_standard" self.parts.wpn_fps_pis_peacemaker_g_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_g_standard" self.parts.wpn_fps_pis_peacemaker_g_bling.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_g_bling" self.parts.wpn_fps_pis_peacemaker_s_skeletal.third_unit = "units/pd2_dlc_west/weapons/wpn_third_pis_peacemaker_pts/wpn_third_pis_peacemaker_s_skeletal" self.wpn_fps_pis_peacemaker = { unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker/wpn_fps_pis_peacemaker", optional_types = { "barrel_ext", "gadget", "sight" }, default_blueprint = { "wpn_fps_pis_peacemaker_body_standard", "wpn_fps_pis_peacemaker_b_standard", "wpn_fps_pis_peacemaker_m_standard", "wpn_fps_pis_peacemaker_g_standard" }, uses_parts = { "wpn_fps_pis_peacemaker_body_standard", "wpn_fps_pis_peacemaker_b_standard", "wpn_fps_pis_peacemaker_b_long", "wpn_fps_pis_peacemaker_b_short", "wpn_fps_pis_peacemaker_m_standard", "wpn_fps_pis_peacemaker_g_standard", "wpn_fps_pis_peacemaker_g_bling", "wpn_fps_pis_peacemaker_s_skeletal" } } self.wpn_fps_pis_peacemaker_npc = deep_clone(self.wpn_fps_pis_peacemaker) self.wpn_fps_pis_peacemaker_npc.unit = "units/pd2_dlc_west/weapons/wpn_fps_pis_peacemaker/wpn_fps_pis_peacemaker_npc" end function WeaponFactoryTweakData:_init_winchester1874() self.parts.wpn_fps_snp_winchester_b_standard = { texture_bundle_folder = "west", a_obj = "a_b", type = "barrel", name_id = "bm_wp_winchester_b_medium", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_snp_winchester_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_winchester_b_long = { texture_bundle_folder = "west", dlc = "west", type = "barrel", name_id = "bm_wp_winchester_b_long", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_snp_winchester_b_long", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = 0, value = 1, concealment = -2 } } self.parts.wpn_fps_snp_winchester_b_suppressed = { a_obj = "a_b", texture_bundle_folder = "west", type = "barrel", sub_type = "silencer", dlc = "west", name_id = "bm_wp_winchester_b_suppressed", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_snp_winchester_b_suppressed", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, value = 6, damage = -3, suppression = 12, spread = -1, recoil = 3, concealment = -2, spread_moving = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_snp_winchester_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_winchester_body_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_snp_winchester_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_winchester_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_snp_winchester_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload", reload = "reload" } } self.parts.wpn_fps_snp_winchester_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_winchester_body_standard", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_snp_winchester_s_standard", stats = { value = 1 } } self.parts.wpn_fps_upg_winchester_o_classic = { type = "sight", texture_bundle_folder = "west", reticle_obj = "g_reticle", a_obj = "a_o", dlc = "west", name_id = "bm_wp_winchester_sniper_scope", unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester_pts/wpn_fps_upg_winchester_o_classic", pcs = { 10, 20, 30, 40 }, stats = { zoom = 10, recoil = 1, value = 0, concealment = -3 }, stance_mod = { wpn_fps_snp_winchester = { translation = Vector3(0, -28, -1.69) } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_gfx_lens = false, g_gfx_lens_2 = false, g_gfx_lens_3 = false, g_vr_scope = true, g_vr_phong = true, g_reticle = false, g_screen = true } } }, camera = { a_camera = "a_camera", material = "screen", fov = 12, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_snp_winchester_b_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_snp_winchester_b_standard" self.parts.wpn_fps_snp_winchester_b_long.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_snp_winchester_b_long" self.parts.wpn_fps_snp_winchester_b_suppressed.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_snp_winchester_b_suppressed" self.parts.wpn_fps_snp_winchester_body_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_snp_winchester_body_standard" self.parts.wpn_fps_snp_winchester_m_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_snp_winchester_m_standard" self.parts.wpn_fps_snp_winchester_s_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_snp_winchester_s_standard" self.parts.wpn_fps_upg_winchester_o_classic.third_unit = "units/pd2_dlc_west/weapons/wpn_third_snp_winchester/wpn_third_upg_winchester_o_classic" self.wpn_fps_snp_winchester = { unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester/wpn_fps_snp_winchester", optional_types = { "gadget", "sight" }, default_blueprint = { "wpn_fps_snp_winchester_b_standard", "wpn_fps_snp_winchester_body_standard", "wpn_fps_snp_winchester_m_standard", "wpn_fps_snp_winchester_s_standard" }, uses_parts = { "wpn_fps_snp_winchester_b_standard", "wpn_fps_snp_winchester_b_long", "wpn_fps_snp_winchester_b_suppressed", "wpn_fps_snp_winchester_body_standard", "wpn_fps_snp_winchester_m_standard", "wpn_fps_snp_winchester_s_standard", "wpn_fps_upg_winchester_o_classic" } } self.wpn_fps_snp_winchester_npc = deep_clone(self.wpn_fps_snp_winchester) self.wpn_fps_snp_winchester_npc.unit = "units/pd2_dlc_west/weapons/wpn_fps_snp_winchester/wpn_fps_snp_winchester_npc" end function WeaponFactoryTweakData:_init_plainsrider() self.parts.wpn_fps_bow_plainsrider_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_plainsrider_barrel", unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_fps_bow_plainsrider_b_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_plainsrider_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_plainsrider_barrel", unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_fps_bow_plainsrider_body_standard", stats = { value = 1 }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", charge = "charge" } } self.parts.wpn_fps_bow_plainsrider_m_standard = { parent = "lower_reciever", type = "ammo", name_id = "bm_wp_plainsrider_barrel", unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_fps_bow_plainsrider_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_upg_a_bow_explosion = { is_a_unlockable = true, texture_bundle_folder = "west", type = "ammo", a_obj = "a_m", third_unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_third_bow_plainsrider_m_explosive", sub_type = "ammo_explosive", parent = "lower_reciever", dlc = "west", name_id = "bm_wpn_fps_upg_a_bow_explosion", unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_fps_bow_plainsrider_m_explosive", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -30 }, custom_stats = { launcher_grenade = "west_arrow_exp" } } self.parts.wpn_fps_upg_a_bow_poison = { is_a_unlockable = true, texture_bundle_folder = "turtles", type = "ammo", a_obj = "a_m", third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_plainsrider_m_poison/wpn_third_bow_plainsrider_m_poison", sub_type = "ammo_poison", parent = "lower_reciever", name_id = "bm_wp_upg_a_bow_poison", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_plainsrider_m_poison/wpn_fps_bow_plainsrider_m_poison", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -90, total_ammo_mod = -6 }, custom_stats = { launcher_grenade = "bow_poison_arrow", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_bow_plainsrider_body_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_third_bow_plainsrider_body_standard" self.parts.wpn_fps_bow_plainsrider_m_standard.third_unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider_pts/wpn_third_bow_plainsrider_m_standard" self.wpn_fps_bow_plainsrider = { unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider/wpn_fps_bow_plainsrider", default_blueprint = { "wpn_fps_bow_plainsrider_b_standard", "wpn_fps_bow_plainsrider_body_standard", "wpn_fps_bow_plainsrider_m_standard" }, uses_parts = { "wpn_fps_bow_plainsrider_b_standard", "wpn_fps_bow_plainsrider_body_standard", "wpn_fps_bow_plainsrider_m_standard", "wpn_fps_upg_a_bow_explosion", "wpn_fps_upg_a_bow_poison" } } self.wpn_fps_bow_plainsrider_npc = deep_clone(self.wpn_fps_bow_plainsrider) self.wpn_fps_bow_plainsrider_npc.unit = "units/pd2_dlc_west/weapons/wpn_fps_bow_plainsrider/wpn_fps_bow_plainsrider_npc" self.wpn_fps_bow_plainsrider_npc.skip_thq_parts = true end function WeaponFactoryTweakData:_init_mateba() self.parts.wpn_fps_pis_2006m_b_long = { texture_bundle_folder = "dlc_arena", dlc = "arena", type = "barrel", name_id = "bm_wp_2006m_b_long", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_b_long", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -2 } } self.parts.wpn_fps_pis_2006m_b_medium = { texture_bundle_folder = "dlc_arena", dlc = "arena", type = "barrel", name_id = "bm_wp_2006m_b_medium", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_b_medium", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, value = 1, concealment = 2 } } self.parts.wpn_fps_pis_2006m_b_short = { texture_bundle_folder = "dlc_arena", dlc = "arena", type = "barrel", name_id = "bm_wp_2006m_b_short", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_b_short", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, value = 1, concealment = 4 } } self.parts.wpn_fps_pis_2006m_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_2006m_b_long", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_2006m_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_2006m_b_long", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_pis_2006m_fl_adapter = { a_obj = "a_fl", type = "extra", name_id = "bm_wp_2006m_b_long", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_fl_adapter", stats = { value = 1 } } self.parts.wpn_fps_pis_2006m_g_bling = { texture_bundle_folder = "dlc_arena", dlc = "arena", type = "grip", name_id = "bm_wp_2006m_g_bling", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_g_bling", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 2 } } self.parts.wpn_fps_pis_2006m_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_2006m_b_long", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_2006m_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_2006m_b_long", unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m_pts/wpn_fps_pis_2006m_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_2006m_b_long.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_b_long" self.parts.wpn_fps_pis_2006m_b_standard.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_b_standard" self.parts.wpn_fps_pis_2006m_b_short.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_b_short" self.parts.wpn_fps_pis_2006m_b_medium.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_b_medium" self.parts.wpn_fps_pis_2006m_body_standard.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_body_standard" self.parts.wpn_fps_pis_2006m_fl_adapter.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_fl_adapter" self.parts.wpn_fps_pis_2006m_g_bling.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_g_bling" self.parts.wpn_fps_pis_2006m_g_standard.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_g_standard" self.parts.wpn_fps_pis_2006m_m_standard.third_unit = "units/pd2_dlc_arena/weapons/wpn_third_pis_2006m_pts/wpn_third_pis_2006m_m_standard" self.wpn_fps_pis_2006m = { unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m/wpn_fps_pis_2006m", optional_types = { "gadget", "sight", "barrel_ext" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_2006m_fl_adapter" } }, default_blueprint = { "wpn_fps_pis_2006m_b_standard", "wpn_fps_pis_2006m_body_standard", "wpn_fps_pis_2006m_g_standard", "wpn_fps_pis_2006m_m_standard" }, uses_parts = { "wpn_fps_pis_2006m_b_long", "wpn_fps_pis_2006m_b_medium", "wpn_fps_pis_2006m_b_short", "wpn_fps_pis_2006m_b_standard", "wpn_fps_pis_2006m_body_standard", "wpn_fps_pis_2006m_fl_adapter", "wpn_fps_pis_2006m_g_bling", "wpn_fps_pis_2006m_g_standard", "wpn_fps_pis_2006m_m_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_fl_pis_m3x" } } self.wpn_fps_pis_2006m_npc = deep_clone(self.wpn_fps_pis_2006m) self.wpn_fps_pis_2006m_npc.unit = "units/pd2_dlc_arena/weapons/wpn_fps_pis_2006m/wpn_fps_pis_2006m_npc" end function WeaponFactoryTweakData:_init_asval() self.parts.wpn_fps_ass_asval_b_proto = { is_a_unlockable = true, texture_bundle_folder = "character_pack_sokol", dlc = "character_pack_sokol", a_obj = "a_b", type = "barrel", sub_type = "silencer", name_id = "bm_wp_asval_b_proto", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_b_proto", pcs = {}, stats = { value = 1, spread = -1, alert_size = 12, suppression = 12, concealment = 2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_ass_asval_b_standard = { sub_type = "silencer", type = "barrel", name_id = "bm_wp_asval_b_pro", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_b_standard", a_obj = "a_b", stats = { value = 1, alert_size = 12, suppression = 12 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_ass_asval_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_asval_b_st", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_ass_asval_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_asval_fg_st", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_asval_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_asval_g_standard", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_g_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_asval_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_asval_b_pro", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_m_standard", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_asval_s_solid = { is_a_unlockable = true, texture_bundle_folder = "character_pack_sokol", type = "stock", a_obj = "a_s", dlc = "character_pack_sokol", name_id = "bm_wp_asval_s_solid", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_s_solid", pcs = {}, stats = { value = 1, recoil = 5, concealment = -3 }, forbids = { "wpn_fps_ass_asval_g_standard" } } self.parts.wpn_fps_ass_asval_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_asval_b_pro", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_s_standard", stats = { value = 1 }, adds = { "wpn_fps_ass_asval_g_standard" } } self.parts.wpn_fps_ass_asval_scopemount = { a_obj = "a_body", type = "extra", name_id = "bm_wp_asval_scopemount", unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval_pts/wpn_fps_ass_asval_scopemount", stats = { value = 1 }, stance_mod = { wpn_fps_ass_asval = { translation = Vector3(0, 0, -6.48), rotation = Rotation(0, 0, 0) } } } self.parts.wpn_fps_ass_asval_b_proto.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_b_proto" self.parts.wpn_fps_ass_asval_b_standard.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_b_standard" self.parts.wpn_fps_ass_asval_body_standard.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_body_standard" self.parts.wpn_fps_ass_asval_fg_standard.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_fg_standard" self.parts.wpn_fps_ass_asval_g_standard.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_g_standard" self.parts.wpn_fps_ass_asval_m_standard.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_m_standard" self.parts.wpn_fps_ass_asval_s_solid.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_s_solid" self.parts.wpn_fps_ass_asval_s_standard.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_s_standard" self.parts.wpn_fps_ass_asval_scopemount.third_unit = "units/pd2_dlc_character_sokol/weapons/wpn_third_ass_asval_pts/wpn_third_ass_asval_scopemount" self.wpn_fps_ass_asval = { unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval/wpn_fps_ass_asval", optional_types = { "gadget", "sight", "barrel_ext" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_asval_scopemount" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_asval_scopemount" } }, default_blueprint = { "wpn_fps_ass_asval_b_standard", "wpn_fps_ass_asval_body_standard", "wpn_fps_ass_asval_fg_standard", "wpn_fps_ass_asval_m_standard", "wpn_fps_ass_asval_s_standard" }, uses_parts = { "wpn_fps_ass_asval_b_standard", "wpn_fps_ass_asval_b_proto", "wpn_fps_ass_asval_body_standard", "wpn_fps_ass_asval_fg_standard", "wpn_fps_ass_asval_g_standard", "wpn_fps_ass_asval_m_standard", "wpn_fps_ass_asval_s_standard", "wpn_fps_ass_asval_s_solid", "wpn_fps_ass_asval_scopemount", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_asval_npc = deep_clone(self.wpn_fps_ass_asval) self.wpn_fps_ass_asval_npc.unit = "units/pd2_dlc_character_sokol/weapons/wpn_fps_ass_asval/wpn_fps_ass_asval_npc" end function WeaponFactoryTweakData:_init_sub2000() self.parts.wpn_fps_ass_sub2000_b_std = { parent = "foregrip", a_obj = "a_b", type = "barrel", name_id = "bm_wp_sub2000_b_std", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_b_std", stats = { value = 1 } } self.parts.wpn_fps_ass_sub2000_body_gen1 = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_sub2000_body_gen1", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_body_gen1", stats = { value = 1 }, adds = { "wpn_fps_ass_sub2000_dh_standard" } } self.parts.wpn_fps_ass_sub2000_body_gen2 = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_sub2000_body_gen2", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_body_gen2", stats = { value = 1 }, adds = { "wpn_fps_ass_sub2000_dh_standard" } } self.parts.wpn_fps_ass_sub2000_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_sub2000_dh_standard", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_dh_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_ass_sub2000_fg_gen1 = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_sub2000_fg_gen1", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_fg_gen1", stats = { value = 1 }, adds = { "wpn_fps_ass_sub2000_o_front" }, animations = { equip = "equip", unequip = "unequip" } } self.parts.wpn_fps_ass_sub2000_fg_gen2 = { is_a_unlockable = true, texture_bundle_folder = "kenaz", type = "foregrip", a_obj = "a_fg", dlc = "kenaz", name_id = "bm_wp_sub2000_fg_gen2", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_fg_gen2", pcs = {}, stats = { value = 1, recoil = -4, concealment = 3 }, override = { wpn_fps_ass_sub2000_body_gen1 = { third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_body_gen2", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_body_gen2" } }, adds = { "wpn_fps_ass_sub2000_o_front" }, animations = { equip = "equip", unequip = "unequip" } } self.parts.wpn_fps_ass_sub2000_fg_railed = { is_a_unlockable = true, texture_bundle_folder = "kenaz", type = "foregrip", a_obj = "a_fg", dlc = "kenaz", name_id = "bm_wp_sub2000_fg_railed", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_fg_railed", pcs = {}, stats = { value = 1, recoil = 2, concealment = -2 }, forbids = { "wpn_fps_ass_sub2000_o_front" }, animations = { equip = "equip", unequip = "unequip" } } self.parts.wpn_fps_ass_sub2000_fg_suppressed = { is_a_unlockable = true, texture_bundle_folder = "kenaz", dlc = "kenaz", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_sub2000_fg_suppressed", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_fg_suppressed", pcs = {}, stats = { alert_size = 12, value = 5, damage = -1, suppression = 12, spread = 1, recoil = -2, spread_moving = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" }, forbids = { "wpn_fps_ass_sub2000_o_front", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ass_ns_battle" }, override = { wpn_fps_ass_sub2000_body_gen1 = { third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_body_gen2", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_body_gen2" } }, animations = { equip = "equip", unequip = "unequip" } } self.parts.wpn_fps_ass_sub2000_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_sub2000_m_standard", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_sub2000_o_back = { a_obj = "a_ob", type = "extra", name_id = "bm_wp_sub2000_o_back", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_o_back", stats = { value = 1 } } self.parts.wpn_fps_ass_sub2000_o_back_down = { a_obj = "a_ob", type = "extra", name_id = "bm_wp_sub2000_o_back_down", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_o_back_down", stats = { value = 1 } } self.parts.wpn_fps_ass_sub2000_o_front = { a_obj = "a_of", type = "extra", name_id = "bm_wp_sub2000_o_front", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_o_front", stats = { value = 1 }, animations = { equip = "equip", unequip = "unequip" } } self.parts.wpn_fps_ass_sub2000_o_adapter = { parent = "foregrip", a_obj = "a_o_adapter", type = "extra", name_id = "bm_wp_sub2000_o_front", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_o_adapter", stats = { value = 1 }, override = { wpn_fps_ass_sub2000_o_back = { third_unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_o_back_down", unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000_pts/wpn_fps_ass_sub2000_o_back_down" } }, stance_mod = { wpn_fps_ass_sub2000 = { translation = Vector3(0, 0, -1.8), rotation = Rotation(0, 0, 0) } } } self.parts.wpn_fps_ass_sub2000_body_gen1.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_body_gen1" self.parts.wpn_fps_ass_sub2000_body_gen2.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_body_gen2" self.parts.wpn_fps_ass_sub2000_b_std.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_b_std" self.parts.wpn_fps_ass_sub2000_dh_standard.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_dh_standard" self.parts.wpn_fps_ass_sub2000_fg_gen1.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_fg_gen1" self.parts.wpn_fps_ass_sub2000_fg_gen2.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_fg_gen2" self.parts.wpn_fps_ass_sub2000_fg_railed.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_fg_railed" self.parts.wpn_fps_ass_sub2000_fg_suppressed.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_fg_suppressed" self.parts.wpn_fps_ass_sub2000_o_back.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_o_back" self.parts.wpn_fps_ass_sub2000_o_back_down.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_o_back_down" self.parts.wpn_fps_ass_sub2000_o_front.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_o_front" self.parts.wpn_fps_ass_sub2000_o_adapter.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_o_adapter" self.parts.wpn_fps_ass_sub2000_m_standard.third_unit = "units/pd2_dlc_casino/weapons/wpn_third_ass_sub2000_pts/wpn_third_ass_sub2000_m_standard" self.wpn_fps_ass_sub2000 = { unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000/wpn_fps_ass_sub2000", optional_types = { "gadget", "sight", "barrel_ext" }, override = { wpn_fps_upg_o_specter = { parent = "foregrip" }, wpn_fps_upg_o_aimpoint = { parent = "foregrip" }, wpn_fps_upg_o_aimpoint_2 = { parent = "foregrip" }, wpn_fps_upg_o_docter = { parent = "foregrip" }, wpn_fps_upg_o_eotech = { parent = "foregrip" }, wpn_fps_upg_o_t1micro = { parent = "foregrip" }, wpn_fps_upg_o_cmore = { parent = "foregrip" }, wpn_fps_upg_o_acog = { parent = "foregrip" }, wpn_fps_upg_o_cs = { parent = "foregrip" }, wpn_fps_upg_o_eotech_xps = { parent = "foregrip" }, wpn_fps_upg_o_reflex = { parent = "foregrip" }, wpn_fps_upg_o_rx01 = { parent = "foregrip" }, wpn_fps_upg_o_rx30 = { parent = "foregrip" }, wpn_fps_upg_o_spot = { parent = "foregrip" }, wpn_fps_upg_ns_ass_smg_large = { parent = "foregrip" }, wpn_fps_upg_ns_ass_smg_medium = { parent = "foregrip" }, wpn_fps_upg_ns_ass_smg_small = { parent = "foregrip" }, wpn_fps_upg_ns_ass_smg_firepig = { parent = "foregrip" }, wpn_fps_upg_ns_ass_smg_stubby = { parent = "foregrip" }, wpn_fps_upg_ns_ass_smg_tank = { parent = "foregrip" }, wpn_fps_upg_ass_ns_jprifles = { parent = "foregrip" }, wpn_fps_upg_ass_ns_linear = { parent = "foregrip" }, wpn_fps_upg_ass_ns_surefire = { parent = "foregrip" }, wpn_fps_upg_ass_ns_battle = { parent = "foregrip" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { parent = "foregrip" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { parent = "foregrip" }, wpn_fps_upg_fl_ass_peq15 = { parent = "foregrip" }, wpn_fps_upg_fl_ass_laser = { parent = "foregrip" }, wpn_fps_upg_fl_ass_utg = { parent = "foregrip" } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_sub2000_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_sub2000_o_adapter" } }, default_blueprint = { "wpn_fps_ass_sub2000_b_std", "wpn_fps_ass_sub2000_body_gen1", "wpn_fps_ass_sub2000_dh_standard", "wpn_fps_ass_sub2000_fg_gen1", "wpn_fps_ass_sub2000_o_back", "wpn_fps_ass_sub2000_o_front", "wpn_fps_ass_sub2000_m_standard" }, uses_parts = { "wpn_fps_ass_sub2000_b_std", "wpn_fps_ass_sub2000_body_gen1", "wpn_fps_ass_sub2000_dh_standard", "wpn_fps_ass_sub2000_fg_gen1", "wpn_fps_ass_sub2000_fg_gen2", "wpn_fps_ass_sub2000_fg_railed", "wpn_fps_ass_sub2000_fg_suppressed", "wpn_fps_ass_sub2000_o_back", "wpn_fps_ass_sub2000_o_back_down", "wpn_fps_ass_sub2000_o_front", "wpn_fps_ass_sub2000_o_adapter", "wpn_fps_ass_sub2000_m_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_sub2000_npc = deep_clone(self.wpn_fps_ass_sub2000) self.wpn_fps_ass_sub2000_npc.unit = "units/pd2_dlc_casino/weapons/wpn_fps_ass_sub2000/wpn_fps_ass_sub2000_npc" end function WeaponFactoryTweakData:_init_wa2000() self.parts.wpn_fps_snp_wa2000_body_standard = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_wa2000_body_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_wa2000_m_standard = { texture_bundle_folder = "turtles", a_obj = "a_m", type = "magazine", dlc = "turtles", name_id = "bm_wp_wa2000_m_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_snp_wa2000_b_long = { texture_bundle_folder = "turtles", dlc = "turtles", type = "barrel", name_id = "bm_wp_wa2000_b_long", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_b_long", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -3 } } self.parts.wpn_fps_snp_wa2000_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_wa2000_b_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_wa2000_b_suppressed = { type = "barrel", texture_bundle_folder = "turtles", a_obj = "a_b", sub_type = "silencer", dlc = "turtles", name_id = "bm_wp_wa2000_b_suppressed", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_b_suppressed", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = -1, damage = -4, suppression = 12, value = 6, recoil = 2, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_snp_wa2000_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_wa2000_g_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_g_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_wa2000_g_light = { texture_bundle_folder = "turtles", dlc = "turtles", type = "grip", name_id = "bm_wp_wa2000_g_light", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_g_light", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -2 } } self.parts.wpn_fps_snp_wa2000_g_stealth = { texture_bundle_folder = "turtles", dlc = "turtles", type = "grip", name_id = "bm_wp_wa2000_g_stealth", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_g_stealth", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -1, concealment = 2 } } self.parts.wpn_fps_snp_wa2000_g_walnut = { texture_bundle_folder = "turtles", dlc = "turtles", type = "grip", name_id = "bm_wp_wa2000_g_walnut", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_g_walnut", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -2 } } self.parts.wpn_fps_snp_wa2000_s_standard = { texture_bundle_folder = "pd2_clan", a_obj = "a_s", type = "stock", name_id = "bm_wp_wa2000_s_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000_pts/wpn_fps_snp_wa2000_s_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_wa2000_body_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_body_standard" self.parts.wpn_fps_snp_wa2000_m_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_m_standard" self.parts.wpn_fps_snp_wa2000_b_suppressed.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_b_suppressed" self.parts.wpn_fps_snp_wa2000_b_long.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_b_long" self.parts.wpn_fps_snp_wa2000_b_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_b_standard" self.parts.wpn_fps_snp_wa2000_g_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_g_standard" self.parts.wpn_fps_snp_wa2000_g_light.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_g_light" self.parts.wpn_fps_snp_wa2000_g_stealth.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_g_stealth" self.parts.wpn_fps_snp_wa2000_g_walnut.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_g_walnut" self.parts.wpn_fps_snp_wa2000_s_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_snp_wa2000_pts/wpn_third_snp_wa2000_s_standard" self.wpn_fps_snp_wa2000 = { unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000/wpn_fps_snp_wa2000", optional_types = { "gadget", "sight" }, default_blueprint = { "wpn_fps_snp_wa2000_body_standard", "wpn_fps_snp_wa2000_m_standard", "wpn_fps_snp_wa2000_b_standard", "wpn_fps_snp_wa2000_g_standard", "wpn_fps_snp_wa2000_s_standard", "wpn_fps_upg_o_shortdot" }, uses_parts = { "wpn_fps_snp_wa2000_body_standard", "wpn_fps_snp_wa2000_m_standard", "wpn_fps_snp_wa2000_b_standard", "wpn_fps_snp_wa2000_g_standard", "wpn_fps_snp_wa2000_s_standard", "wpn_fps_snp_wa2000_g_walnut", "wpn_fps_snp_wa2000_g_stealth", "wpn_fps_snp_wa2000_g_light", "wpn_fps_snp_wa2000_b_long", "wpn_fps_snp_wa2000_b_suppressed", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_wa2000_npc = deep_clone(self.wpn_fps_snp_wa2000) self.wpn_fps_snp_wa2000_npc.unit = "units/pd2_dlc_turtles/weapons/wpn_fps_snp_wa2000/wpn_fps_snp_wa2000_npc" end function WeaponFactoryTweakData:_init_polymer() self.parts.wpn_fps_smg_polymer_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_body_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_bolt_standard = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_polymer_bolt", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_polymer_bolt", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_extra_sling = { a_obj = "a_sling", type = "extra", name_id = "bm_wp_polymer_bolt", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_extra_sling", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_o_iron = { a_obj = "a_o", type = "sight", name_id = "bm_wp_polymer_bolt", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_o_iron", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_smg_polymer_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_polymer_bolt", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_barrel_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_polymer_barrel", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_barrel_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_barrel_precision = { texture_bundle_folder = "turtles", dlc = "turtles", type = "barrel_ext", name_id = "bm_wp_polymer_barrel_precision", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_barrel_precision", a_obj = "a_ns", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 2, damage = 2, concealment = -4, recoil = -3 } } self.parts.wpn_fps_smg_polymer_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_polymer_m_mag", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_ns_silencer = { a_obj = "a_ns", texture_bundle_folder = "turtles", sub_type = "silencer", type = "barrel_ext", dlc = "turtles", parent = "barrel", name_id = "bm_wp_polymer_ns_silencer", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_ns_silencer", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread = 0, damage = -3, suppression = 12, value = 1, recoil = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_smg_polymer_s_adapter = { a_obj = "a_s", type = "stock_adapter", name_id = "bm_wp_polymer_s_m4_adapter", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_s_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_polymer_s_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_fps_smg_polymer_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_polymer_body_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_body_standard" self.parts.wpn_fps_smg_polymer_bolt_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_bolt_standard" self.parts.wpn_fps_smg_polymer_dh_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_dh_standard" self.parts.wpn_fps_smg_polymer_extra_sling.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_extra_sling" self.parts.wpn_fps_smg_polymer_o_iron.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_o_iron" self.parts.wpn_fps_smg_polymer_fg_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_fg_standard" self.parts.wpn_fps_smg_polymer_barrel_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_barrel_standard" self.parts.wpn_fps_smg_polymer_barrel_precision.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_barrel_precision" self.parts.wpn_fps_smg_polymer_m_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_m_standard" self.parts.wpn_fps_smg_polymer_ns_silencer.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_ns_silencer" self.parts.wpn_fps_smg_polymer_s_adapter.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_s_adapter" self.parts.wpn_fps_smg_polymer_s_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer_pts/wpn_third_smg_polymer_s_standard" self.wpn_fps_smg_polymer = { unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer/wpn_fps_smg_polymer", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, stock_adapter = "wpn_fps_smg_polymer_s_adapter", default_blueprint = { "wpn_fps_smg_polymer_body_standard", "wpn_fps_smg_polymer_bolt_standard", "wpn_fps_smg_polymer_dh_standard", "wpn_fps_smg_polymer_extra_sling", "wpn_fps_smg_polymer_o_iron", "wpn_fps_smg_polymer_fg_standard", "wpn_fps_smg_polymer_barrel_standard", "wpn_fps_smg_polymer_m_standard", "wpn_fps_smg_polymer_s_standard" }, uses_parts = { "wpn_fps_smg_polymer_body_standard", "wpn_fps_smg_polymer_bolt_standard", "wpn_fps_smg_polymer_dh_standard", "wpn_fps_smg_polymer_extra_sling", "wpn_fps_smg_polymer_o_iron", "wpn_fps_smg_polymer_fg_standard", "wpn_fps_smg_polymer_barrel_standard", "wpn_fps_smg_polymer_m_standard", "wpn_fps_smg_polymer_s_standard", "wpn_fps_smg_polymer_barrel_precision", "wpn_fps_smg_polymer_ns_silencer", "wpn_fps_smg_polymer_s_adapter", "wpn_fps_upg_m4_s_standard", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_polymer_npc = deep_clone(self.wpn_fps_smg_polymer) self.wpn_fps_smg_polymer_npc.unit = "units/pd2_dlc_turtles/weapons/wpn_fps_smg_polymer/wpn_fps_smg_polymer_npc" end function WeaponFactoryTweakData:_init_hunter() self.parts.wpn_fps_bow_hunter_b_carbon = { texture_bundle_folder = "turtles", type = "barrel", a_obj = "a_b", dlc = "turtles", name_id = "bm_wp_bow_hunter_b_carbon", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_b_carbon", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 1 }, animations = { reload = "recoil" } } self.parts.wpn_fps_bow_hunter_b_skeletal = { texture_bundle_folder = "turtles", type = "barrel", a_obj = "a_b", dlc = "turtles", name_id = "bm_wp_bow_hunter_b_skeletal", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_b_skeletal", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 1 }, animations = { reload = "recoil" } } self.parts.wpn_fps_bow_hunter_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_b_standard", stats = { value = 1 }, animations = { reload = "recoil" } } self.parts.wpn_fps_bow_hunter_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_body_standard", stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_bow_hunter_g_camo = { texture_bundle_folder = "turtles", dlc = "turtles", type = "grip", name_id = "bm_wp_bow_hunter_g_camo", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_g_camo", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = 1 } } self.parts.wpn_fps_bow_hunter_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_g_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_hunter_g_walnut = { texture_bundle_folder = "turtles", dlc = "turtles", type = "grip", name_id = "bm_wp_bow_hunter_g_walnut", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_g_walnut", a_obj = "a_g", pcs = { 10, 20, 30, 40 }, stats = { value = 1, concealment = -1 } } self.parts.wpn_fps_bow_hunter_m_standard = { a_obj = "a_m", type = "ammo", name_id = "bm_wp_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_hunter_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_standard", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_o_standard", stats = { value = 1 } } self.parts.wpn_fps_upg_a_crossbow_poison = { is_a_unlockable = true, texture_bundle_folder = "turtles", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_m_poison", sub_type = "ammo_poison", name_id = "bm_wp_upg_a_crossbow_poison", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_m_poison", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -25, total_ammo_mod = -6 }, custom_stats = { launcher_grenade = "crossbow_poison_arrow", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_upg_a_crossbow_explosion = { is_a_unlockable = true, texture_bundle_folder = "turtles", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_m_explosive", sub_type = "ammo_explosive", name_id = "bm_wp_upg_a_crossbow_explosion", unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter_pts/wpn_fps_bow_hunter_m_explosive", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -5 }, custom_stats = { launcher_grenade = "crossbow_arrow_exp" } } self.parts.wpn_fps_bow_hunter_b_carbon.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_b_carbon" self.parts.wpn_fps_bow_hunter_b_skeletal.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_b_skeletal" self.parts.wpn_fps_bow_hunter_b_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_b_standard" self.parts.wpn_fps_bow_hunter_body_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_body_standard" self.parts.wpn_fps_bow_hunter_g_camo.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_g_camo" self.parts.wpn_fps_bow_hunter_g_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_g_standard" self.parts.wpn_fps_bow_hunter_g_walnut.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_g_walnut" self.parts.wpn_fps_bow_hunter_m_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_m_standard" self.parts.wpn_fps_bow_hunter_o_standard.third_unit = "units/pd2_dlc_turtles/weapons/wpn_third_bow_hunter_pts/wpn_third_bow_hunter_o_standard" self.wpn_fps_bow_hunter = { unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter/wpn_fps_bow_hunter", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, override = { wpn_fps_upg_o_rmr = { parent = "lower_reciever" } }, default_blueprint = { "wpn_fps_bow_hunter_b_standard", "wpn_fps_bow_hunter_body_standard", "wpn_fps_bow_hunter_g_standard", "wpn_fps_bow_hunter_m_standard", "wpn_fps_bow_hunter_o_standard" }, uses_parts = { "wpn_fps_bow_hunter_b_carbon", "wpn_fps_bow_hunter_b_skeletal", "wpn_fps_bow_hunter_b_standard", "wpn_fps_bow_hunter_body_standard", "wpn_fps_bow_hunter_g_camo", "wpn_fps_bow_hunter_g_standard", "wpn_fps_bow_hunter_g_walnut", "wpn_fps_bow_hunter_o_standard", "wpn_fps_bow_hunter_m_standard", "wpn_fps_upg_a_crossbow_poison", "wpn_fps_upg_a_crossbow_explosion", "wpn_fps_upg_o_rmr" } } self.wpn_fps_bow_hunter_npc = deep_clone(self.wpn_fps_bow_hunter) self.wpn_fps_bow_hunter_npc.unit = "units/pd2_dlc_turtles/weapons/wpn_fps_bow_hunter/wpn_fps_bow_hunter_npc" end function WeaponFactoryTweakData:_init_baka() self.parts.wpn_fps_smg_baka_body_standard = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_baka_body_standard", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_baka_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_baka_m_standard", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_baka_b_comp = { texture_bundle_folder = "dragon", dlc = "dragon", type = "barrel", name_id = "bm_wp_baka_b_comp", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_b_comp", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -1 } } self.parts.wpn_fps_smg_baka_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_baka_b_standard", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_baka_b_midsupp = { type = "barrel_ext", texture_bundle_folder = "dragon", a_obj = "a_b", sub_type = "silencer", dlc = "dragon", name_id = "bm_wp_baka_b_midsupp", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_b_midsupp", pcs = { 10, 20, 30, 40 }, stats = { concealment = -2, alert_size = 12, damage = -2, suppression = 12, value = 1, recoil = 2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_smg_baka_b_smallsupp = { type = "barrel_ext", texture_bundle_folder = "dragon", a_obj = "a_b", sub_type = "silencer", dlc = "dragon", name_id = "bm_wp_baka_b_smallsupp", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_b_smallsupp", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, concealment = 0, damage = -4, suppression = 12, value = 1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_smg_baka_b_longsupp = { type = "barrel_ext", texture_bundle_folder = "dragon", a_obj = "a_b", sub_type = "silencer", dlc = "dragon", name_id = "bm_wp_baka_b_longsupp", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_b_longsupp", pcs = { 10, 20, 30, 40 }, stats = { concealment = -4, alert_size = 12, suppression = 12, value = 1, recoil = 5 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_smg_baka_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_baka_g_standard", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_baka_s_standard = { texture_bundle_folder = "dragon", dlc = "dragon", type = "stock", name_id = "bm_wp_baka_s_standard", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_s_standard", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -2, concealment = 1 } } self.parts.wpn_fps_smg_baka_s_folded = { texture_bundle_folder = "dragon", a_obj = "a_s", type = "stock", name_id = "bm_wp_baka_s_folded", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_s_folded", stats = { value = 1 } } self.parts.wpn_fps_smg_baka_s_unfolded = { texture_bundle_folder = "dragon", dlc = "dragon", type = "stock", name_id = "bm_wp_baka_s_unfolded", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_s_unfolded", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, concealment = -3 } } self.parts.wpn_fps_smg_baka_o_adapter = { a_obj = "a_o", type = "extra", name_id = "bm_w_baka_o_adapter", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_o_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_baka_fl_adapter = { a_obj = "a_fl", type = "extra", name_id = "bm_w_baka_fl_adapter", unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka_pts/wpn_fps_smg_baka_fl_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_baka_body_standard.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_body_standard" self.parts.wpn_fps_smg_baka_m_standard.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_m_standard" self.parts.wpn_fps_smg_baka_b_comp.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_b_comp" self.parts.wpn_fps_smg_baka_b_standard.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_b_standard" self.parts.wpn_fps_smg_baka_b_midsupp.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_b_midsupp" self.parts.wpn_fps_smg_baka_b_smallsupp.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_b_smallsupp" self.parts.wpn_fps_smg_baka_b_longsupp.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_b_longsupp" self.parts.wpn_fps_smg_baka_g_standard.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_g_standard" self.parts.wpn_fps_smg_baka_s_standard.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_s_standard" self.parts.wpn_fps_smg_baka_s_folded.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_s_folded" self.parts.wpn_fps_smg_baka_s_unfolded.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_s_unfolded" self.parts.wpn_fps_smg_baka_o_adapter.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_o_adapter" self.parts.wpn_fps_smg_baka_fl_adapter.third_unit = "units/pd2_dlc_dragon/weapons/wpn_third_smg_baka_pts/wpn_third_smg_baka_fl_adapter" self.wpn_fps_smg_baka = { unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka/wpn_fps_smg_baka", optional_types = { "gadget", "sight" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_smg_baka_fl_adapter" } }, default_blueprint = { "wpn_fps_smg_baka_body_standard", "wpn_fps_smg_baka_m_standard", "wpn_fps_smg_baka_b_standard", "wpn_fps_smg_baka_g_standard", "wpn_fps_smg_baka_s_folded" }, uses_parts = { "wpn_fps_smg_baka_body_standard", "wpn_fps_smg_baka_m_standard", "wpn_fps_smg_baka_b_standard", "wpn_fps_smg_baka_g_standard", "wpn_fps_smg_baka_s_standard", "wpn_fps_smg_baka_s_folded", "wpn_fps_smg_baka_s_unfolded", "wpn_fps_smg_baka_b_comp", "wpn_fps_smg_baka_b_midsupp", "wpn_fps_smg_baka_b_smallsupp", "wpn_fps_smg_baka_b_longsupp", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_pis_m3x" } } self.wpn_fps_smg_baka_npc = deep_clone(self.wpn_fps_smg_baka) self.wpn_fps_smg_baka_npc.unit = "units/pd2_dlc_dragon/weapons/wpn_fps_smg_baka/wpn_fps_smg_baka_npc" end function WeaponFactoryTweakData:_init_arblast() self.parts.wpn_fps_bow_arblast_b_steel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_fps_bow_arblast_b_steel", stats = { value = 1 }, animations = { reload = "recoil" } } self.parts.wpn_fps_bow_arblast_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_fps_bow_arblast_body_standard", stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_bow_arblast_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_fps_bow_arblast_g_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_arblast_m_standard = { a_obj = "a_m", type = "ammo", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_fps_bow_arblast_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_arblast_m_poison = { is_a_unlockable = true, texture_bundle_folder = "steel", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_third_bow_arblast_m_poison", sub_type = "ammo_poison", name_id = "bm_wp_upg_a_arblast_poison", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_fps_bow_arblast_m_poison", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -17, total_ammo_mod = -6 }, custom_stats = { launcher_grenade = "arblast_poison_arrow", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_bow_arblast_m_explosive = { is_a_unlockable = true, texture_bundle_folder = "steel", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_third_bow_arblast_m_explosive", sub_type = "ammo_explosive", name_id = "bm_wp_upg_a_arblast_explosion", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_fps_bow_arblast_m_explosive", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -6 }, custom_stats = { launcher_grenade = "arblast_arrow_exp" } } self.parts.wpn_fps_bow_arblast_b_steel.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_third_bow_arblast_b_steel" self.parts.wpn_fps_bow_arblast_body_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_third_bow_arblast_body_standard" self.parts.wpn_fps_bow_arblast_g_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_third_bow_arblast_g_standard" self.parts.wpn_fps_bow_arblast_m_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast_pts/wpn_third_bow_arblast_m_standard" self.wpn_fps_bow_arblast = { unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast/wpn_fps_bow_arblast", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, default_blueprint = { "wpn_fps_bow_arblast_b_steel", "wpn_fps_bow_arblast_body_standard", "wpn_fps_bow_arblast_g_standard", "wpn_fps_bow_arblast_m_standard" }, uses_parts = { "wpn_fps_bow_arblast_b_steel", "wpn_fps_bow_arblast_body_standard", "wpn_fps_bow_arblast_g_standard", "wpn_fps_bow_arblast_m_standard", "wpn_fps_bow_arblast_m_poison", "wpn_fps_bow_arblast_m_explosive" } } self.wpn_fps_bow_arblast_npc = deep_clone(self.wpn_fps_bow_arblast) self.wpn_fps_bow_arblast_npc.unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_arblast/wpn_fps_bow_arblast_npc" end function WeaponFactoryTweakData:_init_frankish() self.parts.wpn_fps_bow_frankish_b_steel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_fps_bow_frankish_b_steel", stats = { value = 1 }, animations = { reload = "recoil" } } self.parts.wpn_fps_bow_frankish_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_fps_bow_frankish_body_standard", stats = { value = 1 }, animations = { reload = "reload" } } self.parts.wpn_fps_bow_frankish_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_fps_bow_frankish_g_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_frankish_m_standard = { a_obj = "a_m", type = "ammo", name_id = "bm_wp_standard", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_fps_bow_frankish_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_frankish_m_poison = { is_a_unlockable = true, texture_bundle_folder = "steel", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_third_bow_frankish_m_poison", sub_type = "ammo_poison", name_id = "bm_wp_upg_a_frankish_poison", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_fps_bow_frankish_m_poison", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -65, total_ammo_mod = -6 }, custom_stats = { launcher_grenade = "frankish_poison_arrow", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_bow_frankish_m_explosive = { is_a_unlockable = true, texture_bundle_folder = "steel", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_third_bow_frankish_m_explosive", sub_type = "ammo_explosive", name_id = "bm_wp_upg_a_frankish_explosion", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_fps_bow_frankish_m_explosive", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -5 }, custom_stats = { launcher_grenade = "frankish_arrow_exp" } } self.parts.wpn_fps_bow_frankish_b_steel.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_third_bow_frankish_b_steel" self.parts.wpn_fps_bow_frankish_body_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_third_bow_frankish_body_standard" self.parts.wpn_fps_bow_frankish_g_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_third_bow_frankish_g_standard" self.parts.wpn_fps_bow_frankish_m_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish_pts/wpn_third_bow_frankish_m_standard" self.wpn_fps_bow_frankish = { unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish/wpn_fps_bow_frankish", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, default_blueprint = { "wpn_fps_bow_frankish_b_steel", "wpn_fps_bow_frankish_body_standard", "wpn_fps_bow_frankish_g_standard", "wpn_fps_bow_frankish_m_standard" }, uses_parts = { "wpn_fps_bow_frankish_b_steel", "wpn_fps_bow_frankish_body_standard", "wpn_fps_bow_frankish_g_standard", "wpn_fps_bow_frankish_m_standard", "wpn_fps_bow_frankish_m_poison", "wpn_fps_bow_frankish_m_explosive" } } self.wpn_fps_bow_frankish_npc = deep_clone(self.wpn_fps_bow_frankish) self.wpn_fps_bow_frankish_npc.unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_frankish/wpn_fps_bow_frankish_npc" end function WeaponFactoryTweakData:_init_long() self.parts.wpn_fps_bow_long_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_long_barrel", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_fps_bow_long_b_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_long_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_long_barrel", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_fps_bow_long_body_standard", stats = { value = 1 }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", charge = "charge" } } self.parts.wpn_fps_bow_long_m_standard = { parent = "lower_reciever", type = "ammo", name_id = "bm_wp_long_barrel", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_fps_bow_long_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_long_m_explosive = { is_a_unlockable = true, texture_bundle_folder = "steel", type = "ammo", a_obj = "a_m", third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_third_bow_long_m_explosive", sub_type = "ammo_explosive", parent = "lower_reciever", name_id = "bm_wp_bow_long_explosion", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_fps_bow_long_m_explosive", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -6 }, custom_stats = { launcher_grenade = "long_arrow_exp" } } self.parts.wpn_fps_bow_long_m_poison = { is_a_unlockable = true, texture_bundle_folder = "steel", type = "ammo", a_obj = "a_m", third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_third_bow_long_m_poison", sub_type = "ammo_poison", parent = "lower_reciever", name_id = "bm_wp_bow_long_poison", unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_fps_bow_long_m_poison", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -17, total_ammo_mod = -6 }, custom_stats = { launcher_grenade = "long_poison_arrow", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_bow_long_body_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_third_bow_long_body_standard" self.parts.wpn_fps_bow_long_m_standard.third_unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long_pts/wpn_third_bow_long_m_standard" self.wpn_fps_bow_long = { unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long/wpn_fps_bow_long", default_blueprint = { "wpn_fps_bow_long_b_standard", "wpn_fps_bow_long_body_standard", "wpn_fps_bow_long_m_standard" }, uses_parts = { "wpn_fps_bow_long_b_standard", "wpn_fps_bow_long_body_standard", "wpn_fps_bow_long_m_standard", "wpn_fps_bow_long_m_explosive", "wpn_fps_bow_long_m_poison" } } self.wpn_fps_bow_long_npc = deep_clone(self.wpn_fps_bow_long) self.wpn_fps_bow_long_npc.unit = "units/pd2_dlc_steel/weapons/wpn_fps_bow_long/wpn_fps_bow_long_npc" self.wpn_fps_bow_long_npc.skip_thq_parts = true end function WeaponFactoryTweakData:_init_par() self.parts.wpn_fps_lmg_par_b_short = { texture_bundle_folder = "par", a_obj = "a_b", type = "barrel", name_id = "bm_wp_par_b_short", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_b_short", pcs = { 10, 20, 30, 40 }, stats = { value = 0, concealment = 2 } } self.parts.wpn_fps_lmg_par_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_par_b_standard", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_b_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_par_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_par_body_standard", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_body_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_par_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_par_m_standard", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_m_standard", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_par_s_plastic = { texture_bundle_folder = "par", a_obj = "a_s", type = "stock", name_id = "bm_wp_par_s_plastic", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_s_plastic", pcs = { 10, 20, 30, 40 }, stats = { value = 0, recoil = 1, concealment = -2 } } self.parts.wpn_fps_lmg_par_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_par_s_standard", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_s_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_par_upper_reciever = { a_obj = "a_upper", type = "upper_reciever", name_id = "bm_wp_par_body_upper", unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par_pts/wpn_fps_lmg_par_upper_reciever", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_lmg_par_b_short.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_b_short" self.parts.wpn_fps_lmg_par_b_standard.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_b_standard" self.parts.wpn_fps_lmg_par_body_standard.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_body_standard" self.parts.wpn_fps_lmg_par_m_standard.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_m_standard" self.parts.wpn_fps_lmg_par_s_plastic.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_s_plastic" self.parts.wpn_fps_lmg_par_s_standard.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_s_standard" self.parts.wpn_fps_lmg_par_upper_reciever.third_unit = "units/pd2_dlc_par/weapons/wpn_third_lmg_par_pts/wpn_third_lmg_par_upper_reciever" self.wpn_fps_lmg_par = { unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par/wpn_fps_lmg_par", optional_types = { "barrel_ext", "gadget", "sight", "vertical_grip" }, default_blueprint = { "wpn_fps_lmg_par_b_standard", "wpn_fps_lmg_par_body_standard", "wpn_fps_lmg_par_m_standard", "wpn_fps_lmg_par_s_standard", "wpn_fps_lmg_par_upper_reciever" }, uses_parts = { "wpn_fps_lmg_par_b_short", "wpn_fps_lmg_par_b_standard", "wpn_fps_lmg_par_body_standard", "wpn_fps_lmg_par_m_standard", "wpn_fps_lmg_par_s_standard", "wpn_fps_lmg_par_s_plastic", "wpn_fps_lmg_par_upper_reciever", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_lmg_svinet_b_standard", "wpn_fps_lmg_svinet_s_legend" } } self.wpn_fps_lmg_par_npc = deep_clone(self.wpn_fps_lmg_par) self.wpn_fps_lmg_par_npc.unit = "units/pd2_dlc_par/weapons/wpn_fps_lmg_par/wpn_fps_lmg_par_npc" end function WeaponFactoryTweakData:_init_sparrow() self.parts.wpn_fps_pis_sparrow_b_941 = { texture_bundle_folder = "rip", a_obj = "a_b", type = "barrel", name_id = "bm_wp_sparrow_b_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_941", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_b_rpl = { texture_bundle_folder = "rip", a_obj = "a_b", type = "barrel", name_id = "bm_wp_sparrow_b_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_rpl", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_b_comp = { type = "barrel", texture_bundle_folder = "rip", a_obj = "a_b", dlc = "berry", name_id = "bm_wp_sparrow_b_comp", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_comp", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 1 }, forbids = { "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.parts.wpn_fps_pis_sparrow_b_threaded = { texture_bundle_folder = "rip", dlc = "berry", type = "barrel", name_id = "bm_wp_sparrow_b_threaded", a_obj = "a_b", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_threaded", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_pis_sparrow_body_941 = { type = "lower_reciever", texture_bundle_folder = "rip", a_obj = "a_body", dlc = "berry", name_id = "bm_wp_sparrow_body_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_body_941", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = -2, concealment = 1, value = 1 }, adds = { "wpn_fps_pis_sparrow_g_dummy" }, override = { wpn_fps_pis_sparrow_b_rpl = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_941" }, wpn_fps_pis_sparrow_fl_dummy = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_fl_rail", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_rail" }, wpn_fps_pis_sparrow_g_dummy = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_g_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_941" }, wpn_fps_pis_sparrow_sl_rpl = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_sl_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_sl_941" } } } self.parts.wpn_fps_pis_sparrow_body_rpl = { texture_bundle_folder = "rip", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_sparrow_body_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_body_rpl", stats = { value = 1 }, override = { wpn_fps_pis_sparrow_b_941 = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_rpl" }, wpn_fps_pis_sparrow_fl_rail = { third_unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_dummy", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_pis_sparrow_g_941 = { third_unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_dummy", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_dummy" }, wpn_fps_pis_sparrow_sl_941 = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_sl_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_sl_rpl" }, wpn_fps_pis_sparrow_b_rpl = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_b_rpl" }, wpn_fps_pis_sparrow_fl_dummy = { third_unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_dummy", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_pis_sparrow_g_dummy = { third_unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_dummy", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_dummy" }, wpn_fps_pis_sparrow_sl_rpl = { third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_sl_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_sl_rpl" } }, forbids = { "wpn_fps_pis_sparrow_g_cowboy" } } self.parts.wpn_fps_pis_sparrow_fl_rail = { texture_bundle_folder = "rip", a_obj = "a_fl", type = "extra", name_id = "bm_wp_sparrow_fl_rail", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_rail", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_fl_dummy = { texture_bundle_folder = "rip", a_obj = "a_fl", type = "extra", name_id = "bm_wp_sparrow_fl_rail", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_fl_rail", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_g_941 = { texture_bundle_folder = "rip", a_obj = "a_g", type = "grip", name_id = "bm_wp_sparrow_g_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_941", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_g_cowboy = { type = "grip", texture_bundle_folder = "rip", a_obj = "a_g", dlc = "berry", name_id = "bm_wp_sparrow_g_cowboy", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_cowboy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, concealment = -2 }, forbids = { "wpn_fps_pis_sparrow_g_dummy" } } self.parts.wpn_fps_pis_sparrow_g_dummy = { texture_bundle_folder = "rip", a_obj = "a_g", type = "grip", name_id = "bm_wp_sparrow_g_dummy", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_g_dummy", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_m_standard = { texture_bundle_folder = "rip", type = "magazine", name_id = "bm_wp_sparrow_m_standard", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_sl_941 = { texture_bundle_folder = "rip", a_obj = "a_sl", type = "slide", name_id = "bm_wp_sparrow_sl_941", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_sl_941", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_sl_rpl = { texture_bundle_folder = "rip", a_obj = "a_sl", type = "slide", name_id = "bm_wp_sparrow_sl_rpl", unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow_pts/wpn_fps_pis_sparrow_sl_rpl", stats = { value = 1 } } self.parts.wpn_fps_pis_sparrow_b_941.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_941" self.parts.wpn_fps_pis_sparrow_b_rpl.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_rpl" self.parts.wpn_fps_pis_sparrow_b_comp.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_comp" self.parts.wpn_fps_pis_sparrow_b_threaded.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_b_threaded" self.parts.wpn_fps_pis_sparrow_body_941.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_body_941" self.parts.wpn_fps_pis_sparrow_body_rpl.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_body_rpl" self.parts.wpn_fps_pis_sparrow_fl_rail.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_fl_rail" self.parts.wpn_fps_pis_sparrow_g_941.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_g_941" self.parts.wpn_fps_pis_sparrow_g_cowboy.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_g_cowboy" self.parts.wpn_fps_pis_sparrow_m_standard.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_m_standard" self.parts.wpn_fps_pis_sparrow_sl_941.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_sl_941" self.parts.wpn_fps_pis_sparrow_sl_rpl.third_unit = "units/pd2_dlc_rip/weapons/wpn_third_pis_sparrow_pts/wpn_third_pis_sparrow_sl_rpl" self.wpn_fps_pis_sparrow = { unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow/wpn_fps_pis_sparrow", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_sparrow_fl_dummy" } }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_sparrow_b_rpl", "wpn_fps_pis_sparrow_body_rpl", "wpn_fps_pis_sparrow_g_dummy", "wpn_fps_pis_sparrow_m_standard", "wpn_fps_pis_sparrow_sl_rpl" }, uses_parts = { "wpn_fps_pis_sparrow_b_941", "wpn_fps_pis_sparrow_b_rpl", "wpn_fps_pis_sparrow_b_comp", "wpn_fps_pis_sparrow_b_threaded", "wpn_fps_pis_sparrow_body_941", "wpn_fps_pis_sparrow_body_rpl", "wpn_fps_pis_sparrow_fl_rail", "wpn_fps_pis_sparrow_fl_dummy", "wpn_fps_pis_sparrow_g_941", "wpn_fps_pis_sparrow_g_cowboy", "wpn_fps_pis_sparrow_g_dummy", "wpn_fps_pis_sparrow_m_standard", "wpn_fps_pis_sparrow_sl_941", "wpn_fps_pis_sparrow_sl_rpl", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_sparrow_npc = deep_clone(self.wpn_fps_pis_sparrow) self.wpn_fps_pis_sparrow_npc.unit = "units/pd2_dlc_rip/weapons/wpn_fps_pis_sparrow/wpn_fps_pis_sparrow_npc" end function WeaponFactoryTweakData:_init_model70() self.parts.wpn_fps_snp_model70_b_standard = { texture_bundle_folder = "berry", a_obj = "a_b", type = "barrel", name_id = "bm_wp_model70_b_standard", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_model70_ns_suppressor = { a_obj = "a_ns", texture_bundle_folder = "berry", sub_type = "silencer", type = "barrel_ext", parent = "barrel", name_id = "bm_wp_model70_ns_suppressor", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_ns_suppressor", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -2, damage = -3, suppression = 12, value = 1, recoil = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_b" } } self.parts.wpn_fps_snp_model70_s_standard = { texture_bundle_folder = "berry", a_obj = "a_s", type = "stock", name_id = "bm_wp_model70_s_standard", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_s_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_model70_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_model70_body_standard", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_snp_model70_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_snp_model70_o_rail = { a_obj = "a_o", type = "extra", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_o_rail", stats = { value = 1 } } self.parts.wpn_fps_snp_model70_fl_rail = { a_obj = "a_fl", type = "extra", name_id = "bm_wp_m14_m_standard", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_fl_rail", stats = { value = 1 } } self.parts.wpn_fps_snp_model70_iron_sight = { is_a_unlockable = true, texture_bundle_folder = "berry", a_obj = "a_o", type = "sight", name_id = "bm_wp_model70_iron_sight", unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70_pts/wpn_fps_snp_model70_iron_sight", pcs = {}, stats = { zoom = 3, recoil = -1, value = 0, concealment = 2 }, forbids = { "wpn_fps_upg_o_45iron", "wpn_fps_snp_model70_o_rail", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_snp_model70_ns_suppressor.third_unit = "units/pd2_dlc_berry/weapons/wpn_third_snp_model70/wpn_third_snp_model70_ns_suppressor" self.parts.wpn_fps_snp_model70_b_standard.third_unit = "units/pd2_dlc_berry/weapons/wpn_third_snp_model70/wpn_third_snp_model70_b_standard" self.parts.wpn_fps_snp_model70_s_standard.third_unit = "units/pd2_dlc_berry/weapons/wpn_third_snp_model70/wpn_third_snp_model70_s_standard" self.parts.wpn_fps_snp_model70_body_standard.third_unit = "units/pd2_dlc_berry/weapons/wpn_third_snp_model70/wpn_third_snp_model70_body_standard" self.parts.wpn_fps_snp_model70_m_standard.third_unit = "units/pd2_dlc_berry/weapons/wpn_third_snp_model70/wpn_third_snp_model70_m_standard" self.parts.wpn_fps_snp_model70_o_rail.third_unit = "units/pd2_dlc_berry/weapons/wpn_third_snp_model70/wpn_third_snp_model70_o_rail" self.wpn_fps_snp_model70 = { unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70/wpn_fps_snp_model70", optional_types = { "gadget", "sight", "bayonet" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_shortdot = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_leupold = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_shortdot_vanilla = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_o_box = { "wpn_fps_snp_model70_o_rail" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_snp_model70_fl_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_snp_model70_fl_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_snp_model70_fl_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_snp_model70_fl_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_snp_model70_fl_rail" } }, default_blueprint = { "wpn_fps_snp_model70_b_standard", "wpn_fps_snp_model70_body_standard", "wpn_fps_snp_model70_s_standard", "wpn_fps_snp_model70_m_standard", "wpn_fps_upg_o_shortdot_vanilla" }, uses_parts = { "wpn_fps_snp_model70_b_standard", "wpn_fps_snp_model70_s_standard", "wpn_fps_snp_model70_body_standard", "wpn_fps_snp_model70_m_standard", "wpn_fps_snp_model70_o_rail", "wpn_fps_snp_model70_fl_rail", "wpn_fps_snp_model70_iron_sight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_shortdot_vanilla", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_snp_model70_b_legend", "wpn_fps_snp_model70_s_legend", "wpn_fps_snp_model70_ns_suppressor", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_model70_npc = deep_clone(self.wpn_fps_snp_model70) self.wpn_fps_snp_model70_npc.unit = "units/pd2_dlc_berry/weapons/wpn_fps_snp_model70/wpn_fps_snp_model70_npc" end function WeaponFactoryTweakData:_init_legendary() self.parts.wpn_fps_ass_74_b_legend = { a_obj = "a_b", unatainable = true, type = "barrel", name_id = "bm_wp_upg_ass_74_b_legend", unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_fps_ass_74_b_legend", stats = { spread = 8, recoil = 7, damage = 6, value = 1 } } self.parts.wpn_upg_ak_fg_legend = { a_obj = "a_fg", unatainable = true, type = "foregrip", name_id = "bm_wp_upg_ass_74_fg_legend", unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_upg_ak_fg_legend", stats = { value = 1 } } self.parts.wpn_upg_ak_g_legend = { a_obj = "a_g", unatainable = true, type = "grip", name_id = "bm_wp_upg_ass_74_g_legend", unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_upg_ak_g_legend", stats = { value = 1 } } self.parts.wpn_upg_ak_s_legend = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_upg_ass_74_s_legend", unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_upg_ak_s_legend", stats = { value = 1 } } self.parts.wpn_upg_ak_fl_legend = { sub_type = "laser", type = "gadget", name_id = "bm_wp_upg_ass_74_fl_legend", unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_upg_ak_fl_legend", unatainable = true, a_obj = "a_body", stats = { value = 1 }, perks = { "gadget" } } self.parts.wpn_fps_ass_74_b_legend.third_unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_third_ass_74_b_legend" self.parts.wpn_upg_ak_fg_legend.third_unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_third_upg_ak_fg_legend" self.parts.wpn_upg_ak_g_legend.third_unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_third_upg_ak_g_legend" self.parts.wpn_upg_ak_s_legend.third_unit = "units/payday2_cash/safes/sputnik/weapons/wpn_fps_ass_74_rodina_pts/wpn_third_upg_ak_s_legend" self.parts.wpn_fps_pis_deagle_b_legend = { unatainable = true, type = "slide", name_id = "bm_wp_deagle_b_long", unit = "units/payday2_cash/safes/cf15/weapons/wpn_fps_pis_deagle_bling_pts/wpn_fps_pis_deagle_b_legend", a_obj = "a_b", stats = { spread = 2, concealment = -10, damage = 2, value = 1, recoil = 3 }, forbids = { "wpn_fps_pis_deagle_co_long", "wpn_fps_pis_deagle_co_short", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp" }, override = { wpn_upg_o_marksmansight_front = { a_obj = "a_ol" } }, third_unit = "units/payday2_cash/safes/cf15/weapons/wpn_fps_pis_deagle_bling_pts/wpn_third_pis_deagle_b_legend" } self.parts.wpn_fps_fla_mk2_body_fierybeast = { a_obj = "a_body", unatainable = true, type = "lower_reciever", name_id = "bm_wp_huntsman_body_standard", unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_fla_mk2_body_fierybeast_pts/wpn_fps_fla_mk2_body_fierybeast", stats = { value = 1, total_ammo_mod = 5, damage = -2 }, animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_rpg7_m_grinclown = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_rpg7_m_rocket", unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_rpg7_m_grinclown/wpn_fps_rpg7_m_grinclown", unatainable = true, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload = "reload" }, third_unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_rpg7_m_grinclown/wpn_third_rpg7_m_grinclown" } self.parts.wpn_fps_lmg_m134_body_upper_spikey = { a_obj = "a_body", unatainable = true, type = "extra", name_id = "bm_wp_m134_body_upper_spikey", unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_lmg_m134_legend_pts/wpn_fps_lmg_m134_body_upper_spikey", stats = { value = 1 } } self.parts.wpn_fps_lmg_m134_barrel_legendary = { a_obj = "a_b", unatainable = true, type = "barrel", name_id = "bm_wp_m134_barrel_legendary", unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_lmg_m134_legend_pts/wpn_fps_lmg_m134_barrel_legendary", stats = { value = 1 }, animations = { fire_steelsight = "recoil", fire = "recoil" } } self.parts.wpn_fps_lmg_m134_body_upper_spikey.third_unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_lmg_m134_legend_pts/wpn_third_lmg_m134_body_upper_spikey" self.parts.wpn_fps_lmg_m134_barrel_legendary.third_unit = "units/payday2_cash/safes/cop/weapons/wpn_fps_lmg_m134_legend_pts/wpn_third_lmg_m134_barrel_legendary" self.parts.wpn_fps_smg_p90_b_legend = { a_obj = "a_b", unatainable = true, type = "slide", name_id = "bm_wp_p90_b_legend ", unit = "units/payday2_cash/safes/dallas/weapons/wpn_fps_smg_p90_b_legendary/wpn_fps_smg_p90_b_legend", stats = { value = 1 }, third_unit = "units/payday2_cash/safes/dallas/weapons/wpn_third_smg_p90_b_legendary/wpn_third_smg_p90_b_legend" } self.parts.wpn_fps_shot_r870_b_legendary = { a_obj = "a_b", unatainable = true, type = "barrel", name_id = "bm_wp_r870_b_legend ", unit = "units/payday2_cash/safes/surf/weapons/wpn_fps_shot_r870_b_legend/wpn_fps_shot_r870_b_legendary", stats = { value = 1, recoil = 10, damage = 3, extra_ammo = 2 }, stance_mod = { wpn_fps_shot_r870 = { translation = Vector3(0, 0, 0.8) } } } self.parts.wpn_fps_shot_r870_s_legendary = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_r870_b_legend ", unit = "units/payday2_cash/safes/surf/weapons/wpn_fps_shot_r870_fg_legend/wpn_fps_shot_r870_s_legendary", stats = { value = 1 } } self.parts.wpn_fps_shot_r870_fg_legendary = { a_obj = "a_fg", unatainable = true, type = "foregrip", name_id = "bm_wp_r870_b_legend ", unit = "units/payday2_cash/safes/surf/weapons/wpn_fps_shot_r870_fg_legend/wpn_fps_shot_r870_fg_legendary", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil_zoom" } } self.parts.wpn_fps_shot_r870_b_legendary.third_unit = "units/payday2_cash/safes/surf/weapons/wpn_fps_shot_r870_b_legend/wpn_third_shot_r870_b_legendary" self.parts.wpn_fps_shot_r870_s_legendary.third_unit = "units/payday2_cash/safes/surf/weapons/wpn_fps_shot_r870_fg_legend/wpn_third_shot_r870_s_legendary" self.parts.wpn_fps_shot_r870_fg_legendary.third_unit = "units/payday2_cash/safes/surf/weapons/wpn_fps_shot_r870_fg_legend/wpn_third_shot_r870_fg_legendary" self.parts.wpn_fps_pis_1911_g_legendary = { a_obj = "a_g", unatainable = true, type = "grip", name_id = "bm_wp_1911_g_legendary", unit = "units/payday2_cash/safes/flake/weapons/wpn_fps_pis_1911_g_legendary/wpn_fps_pis_1911_g_legendary", stats = { value = 1 } } self.parts.wpn_fps_pis_1911_fl_legendary = { sub_type = "laser", type = "gadget", name_id = "bm_wp_1911_fl_legendary", unit = "units/payday2_cash/safes/flake/weapons/wpn_fps_pis_1911_fl_legendary/wpn_fps_pis_1911_fl_legendary", unatainable = true, a_obj = "a_fl", stats = { spread = 3, recoil = 1, concealment = 1, value = 1 }, perks = { "gadget" } } self.parts.wpn_fps_pis_1911_g_legendary.third_unit = "units/payday2_cash/safes/flake/weapons/wpn_fps_pis_1911_g_legendary/wpn_third_pis_1911_g_legendary" self.parts.wpn_fps_pis_1911_fl_legendary.third_unit = "units/payday2_cash/safes/flake/weapons/wpn_fps_pis_1911_fl_legendary/wpn_third_pis_1911_fl_legendary" self.parts.wpn_fps_snp_model70_b_legend = { texture_bundle_folder = "berry", a_obj = "a_b", type = "barrel", name_id = "bm_wp_model70_b_standard", unit = "units/payday2_cash/safes/bah/weapons/wpn_fps_snp_model70_legendary_pts/wpn_fps_snp_model70_b_legend", unatainable = true, stats = { value = 1 }, stance_mod = { wpn_fps_snp_model70 = { translation = Vector3(0, -5, 0) } } } self.parts.wpn_fps_snp_model70_s_legend = { texture_bundle_folder = "berry", a_obj = "a_s", type = "stock", name_id = "bm_wp_model70_s_standard", unit = "units/payday2_cash/safes/bah/weapons/wpn_fps_snp_model70_legendary_pts/wpn_fps_snp_model70_s_legend", unatainable = true, stats = { spread = 3, recoil = 1, concealment = 1, value = 1 } } self.parts.wpn_fps_snp_model70_b_legend.third_unit = "units/payday2_cash/safes/bah/weapons/wpn_fps_snp_model70_legendary_pts/wpn_third_snp_model70_b_legend" self.parts.wpn_fps_snp_model70_s_legend.third_unit = "units/payday2_cash/safes/bah/weapons/wpn_fps_snp_model70_legendary_pts/wpn_third_snp_model70_s_legend" self.parts.wpn_fps_lmg_svinet_b_standard = { a_obj = "a_b", unatainable = true, type = "barrel", name_id = "bm_wp_svinet_b_standard", unit = "units/payday2_cash/safes/pack/weapons/wpn_fps_lmg_ksp58_b_legendary/wpn_fps_lmg_svinet_b_standard", stats = { spread = 3, recoil = 3, value = 1 } } self.parts.wpn_fps_lmg_svinet_s_legend = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_svinet_s_legend", unit = "units/payday2_cash/safes/pack/weapons/wpn_fps_lmg_ksp58_s_legendary/wpn_fps_lmg_svinet_s_legend", stats = { value = 1 } } self.parts.wpn_fps_lmg_svinet_b_standard.third_unit = "units/payday2_cash/safes/pack/weapons/wpn_fps_lmg_ksp58_b_legendary/wpn_third_lmg_svinet_b_legend" self.parts.wpn_fps_lmg_svinet_s_legend.third_unit = "units/payday2_cash/safes/pack/weapons/wpn_fps_lmg_ksp58_s_legendary/wpn_third_lmg_svinet_s_legend" self.parts.wpn_fps_ass_m16_b_legend = { a_obj = "a_b", unatainable = true, type = "barrel", name_id = "bm_wp_m16_b_legend", unit = "units/payday2_cash/safes/cola/weapons/wpn_fps_ass_m16_legendary/wpn_fps_ass_m16_b_legend", stats = { spread = 3, recoil = 3, value = 1 }, forbids = { "wpn_fps_ass_m16_os_frontsight" } } self.parts.wpn_fps_ass_m16_fg_legend = { a_obj = "a_fg", type = "gadget", name_id = "bm_wp_m16_fg_legend", unit = "units/payday2_cash/safes/cola/weapons/wpn_fps_ass_m16_legendary/wpn_fps_ass_m16_fg_legend", unatainable = true, stats = { value = 1 }, stance_mod = { wpn_fps_ass_m16 = { translation = Vector3(0, 10, -0.12) } }, perks = { "gadget" } } self.parts.wpn_fps_ass_m16_s_legend = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_m16_s_legend", unit = "units/payday2_cash/safes/cola/weapons/wpn_fps_ass_m16_legendary/wpn_fps_ass_m16_s_legend", stats = { spread = 6, concealment = -6, damage = 3, value = 1, recoil = 10 }, stance_mod = { wpn_fps_ass_m16 = { translation = Vector3(0, 10, -0.12) } } } self.parts.wpn_fps_ass_m16_b_legend.third_unit = "units/payday2_cash/safes/cola/weapons/wpn_fps_ass_m16_legendary/wpn_third_ass_m16_b_legend" self.parts.wpn_fps_ass_m16_fg_legend.third_unit = "units/payday2_cash/safes/cola/weapons/wpn_fps_ass_m16_legendary/wpn_third_ass_m16_fg_legend" self.parts.wpn_fps_ass_m16_s_legend.third_unit = "units/payday2_cash/safes/cola/weapons/wpn_fps_ass_m16_legendary/wpn_third_ass_m16_s_legend" self.parts.wpn_fps_pis_judge_b_legend = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_judge_b_legend", unit = "units/payday2_cash/safes/burn/weapons/wpn_fps_pis_judge_b_legend/wpn_fps_pis_judge_b_legend", unatainable = true, stats = { spread = -3, recoil = 6, value = 1, total_ammo_mod = 2 }, perks = { "gadget" } } self.parts.wpn_fps_pis_judge_g_legend = { a_obj = "a_g", unatainable = true, type = "grip", name_id = "bm_wp_judge_g_legend", unit = "units/payday2_cash/safes/burn/weapons/wpn_fps_pis_judge_g_legend/wpn_fps_pis_judge_g_legend", stats = { value = 1 } } self.parts.wpn_fps_pis_judge_b_legend.third_unit = "units/payday2_cash/safes/burn/weapons/wpn_fps_pis_judge_b_legend/wpn_third_pis_judge_b_legend" self.parts.wpn_fps_pis_judge_g_legend.third_unit = "units/payday2_cash/safes/burn/weapons/wpn_fps_pis_judge_g_legend/wpn_third_pis_judge_g_legend" self.parts.wpn_fps_sho_boot_b_legendary = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_boot_b_legend", unit = "units/payday2_cash/safes/buck/weapons/wpn_fps_sho_boot_legendary/wpn_fps_sho_boot_b_legendary", unatainable = true, stats = { spread = -3, recoil = 6, value = 1, total_ammo_mod = 2 }, perks = { "gadget" } } self.parts.wpn_fps_sho_boot_fg_legendary = { a_obj = "a_fg", unatainable = true, type = "foregrip", name_id = "bm_wp_boot_fg_legend", unit = "units/payday2_cash/safes/buck/weapons/wpn_fps_sho_boot_legendary/wpn_fps_sho_boot_fg_legendary", stats = { value = 1, damage = 20 } } self.parts.wpn_fps_sho_boot_o_legendary = { a_obj = "a_o", type = "sight", name_id = "bm_wp_boot_o_legend", unit = "units/payday2_cash/safes/buck/weapons/wpn_fps_sho_boot_legendary/wpn_fps_sho_boot_o_legendary", unatainable = true, stats = { value = 1, zoom = 1 }, perks = { "scope" }, stance_mod = { wpn_fps_sho_boot = { translation = Vector3(0, -5, -1.5) } } } self.parts.wpn_fps_sho_boot_s_legendary = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_boot_s_legend", unit = "units/payday2_cash/safes/buck/weapons/wpn_fps_sho_boot_legendary/wpn_fps_sho_boot_s_legendary", stats = { value = 1 } } self.parts.wpn_fps_sho_boot_b_legendary.third_unit = "units/payday2_cash/safes/buck/weapons/wpn_third_sho_boot_legendary/wpn_third_sho_boot_b_legendary" self.parts.wpn_fps_sho_boot_fg_legendary.third_unit = "units/payday2_cash/safes/buck/weapons/wpn_third_sho_boot_legendary/wpn_third_sho_boot_fg_legendary" self.parts.wpn_fps_sho_boot_o_legendary.third_unit = "units/payday2_cash/safes/buck/weapons/wpn_third_sho_boot_legendary/wpn_third_sho_boot_o_legendary" self.parts.wpn_fps_sho_boot_s_legendary.third_unit = "units/payday2_cash/safes/buck/weapons/wpn_third_sho_boot_legendary/wpn_third_sho_boot_s_legendary" self.parts.wpn_fps_sho_ksg_b_legendary = { sub_type = "silencer", type = "barrel", name_id = "bm_wp_ksg_b_legend", unit = "units/payday2_cash/safes/same/weapons/wpn_fps_sho_ksg_b_legendary/wpn_fps_sho_ksg_b_legendary", unatainable = true, a_obj = "a_b", stats = { extra_ammo = 2, total_ammo_mod = 2, spread = -1, value = 1, recoil = 6 }, perks = { "gadget" }, third_unit = "units/payday2_cash/safes/same/weapons/wpn_third_sho_ksg_b_legendary/wpn_third_sho_ksg_b_legendary" } self.parts.wpn_fps_ass_tecci_b_legend = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_tecci_b_legend", unit = "units/payday2_cash/safes/grunt/weapons/wpn_fps_ass_tecci_legendary/wpn_fps_ass_tecci_b_legend", unatainable = true, stats = { spread = 4, recoil = 3, value = 1, concealment = 4 }, perks = { "gadget" } } self.parts.wpn_fps_ass_tecci_fg_legend = { a_obj = "a_fg", unatainable = true, type = "foregrip", name_id = "bm_wp_tecci_fg_legend", unit = "units/payday2_cash/safes/grunt/weapons/wpn_fps_ass_tecci_legendary/wpn_fps_ass_tecci_fg_legend", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_s_legend = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_tecci_s_legend", unit = "units/payday2_cash/safes/grunt/weapons/wpn_fps_ass_tecci_legendary/wpn_fps_ass_tecci_s_legend", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_b_legend.third_unit = "units/payday2_cash/safes/grunt/weapons/wpn_third_ass_tecci_legendary/wpn_third_ass_tecci_b_legend" self.parts.wpn_fps_ass_tecci_fg_legend.third_unit = "units/payday2_cash/safes/grunt/weapons/wpn_third_ass_tecci_legendary/wpn_third_ass_tecci_fg_legend" self.parts.wpn_fps_ass_tecci_s_legend.third_unit = "units/payday2_cash/safes/grunt/weapons/wpn_third_ass_tecci_legendary/wpn_third_ass_tecci_s_legend" self.parts.wpn_fps_shot_shorty_b_legendary = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_shorty_b_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_shot_shorty_legendary_pts/wpn_fps_shot_shorty_b_legendary", unatainable = true, stats = { spread = -1, recoil = 5, value = 1, extra_ammo = 2 }, perks = { "gadget" } } self.parts.wpn_fps_shot_shorty_fg_legendary = { a_obj = "a_fg", unatainable = true, type = "foregrip", name_id = "bm_wp_shorty_fg_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_shot_shorty_legendary_pts/wpn_fps_shot_shorty_fg_legendary", stats = { value = 1, damage = 15 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil_zoom" } } self.parts.wpn_fps_shot_shorty_s_legendary = { a_obj = "a_s", unatainable = true, type = "stock", name_id = "bm_wp_shorty_s_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_shot_shorty_legendary_pts/wpn_fps_shot_shorty_s_legendary", stats = { value = 1 } } self.parts.wpn_fps_shot_shorty_b_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_shot_shorty_legendary_pts/wpn_third_shot_shorty_b_legendary" self.parts.wpn_fps_shot_shorty_fg_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_shot_shorty_legendary_pts/wpn_third_shot_shorty_fg_legendary" self.parts.wpn_fps_shot_shorty_s_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_shot_shorty_legendary_pts/wpn_third_shot_shorty_s_legendary" self.parts.wpn_fps_ass_m14_b_legendary = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m14_b_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_fps_ass_m14_b_legendary", unatainable = true, stats = { spread = 5, recoil = 2, value = 1 }, perks = { "gadget" } } self.parts.wpn_fps_ass_m14_body_legendary = { a_obj = "a_body", unatainable = true, type = "stock", name_id = "bm_wp_m14_body_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_fps_ass_m14_body_legendary", stats = { value = 1, damage = 3 } } self.parts.wpn_fps_ass_m14_body_upper_legendary = { a_obj = "a_body", type = "upper_body", name_id = "bm_wp_m14_upper_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_fps_ass_m14_body_upper_legendary", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_ass_m14_body_lower_legendary = { a_obj = "a_body", type = "lower_body", name_id = "bm_wp_m14_body_lower_legend", unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_fps_ass_m14_body_lower_legendary", stats = { value = 1 } } self.parts.wpn_fps_ass_m14_b_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_third_ass_m14_b_legendary" self.parts.wpn_fps_ass_m14_body_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_third_ass_m14_body_legendary" self.parts.wpn_fps_ass_m14_body_upper_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_third_ass_m14_body_upper_legendary" self.parts.wpn_fps_ass_m14_body_lower_legendary.third_unit = "units/payday2_cash/safes/lones/weapons/wpn_fps_ass_m14_legendary_pts/wpn_third_ass_m14_body_lower_legendary" end function WeaponFactoryTweakData:_init_cc_material_config() local parts = self.parts parts.wpn_fps_smg_m45_s_folded.material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard") parts.wpn_fps_smg_m45_s_folded.thq_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard_thq") parts.wpn_fps_smg_m45_s_folded.cc_thq_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard_cc_thq") parts.wpn_fps_smg_m45_s_folded.cc_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard_cc") parts.wpn_fps_smg_m45_b_small.bmaterial_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_standard") parts.wpn_fps_smg_m45_b_small.thq_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_standard_thq") parts.wpn_fps_smg_m45_b_small.cc_thq_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_standard_cc_thq") parts.wpn_fps_smg_m45_b_small.cc_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_b_standard_cc") parts.wpn_fps_pis_c96_nozzle.material_config = Idstring("units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_body_standard") parts.wpn_fps_pis_c96_nozzle.thq_material_config = Idstring("units/pd2_dlc_gage_historical/weapons/wpn_fps_pis_c96_pts/wpn_fps_pis_c96_body_standard_thq") parts.wpn_fps_pis_g18c_body_frame.material_config = Idstring("units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_frame") parts.wpn_fps_pis_g18c_body_frame.thq_material_config = Idstring("units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_frame_thq") parts.wpn_fps_pis_g18c_body_frame.cc_thq_material_config = Idstring("units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_frame_cc_thq") parts.wpn_fps_pis_g18c_body_frame.cc_material_config = Idstring("units/payday2/weapons/wpn_fps_pis_g18c_pts/wpn_fps_pis_g18c_frame_cc") parts.wpn_fps_upg_o_mbus_rear.material_config = Idstring("units/pd2_dlc_gage_shot/weapons/wpn_fps_upg_o_mbus/wpn_fps_upg_o_mbus_front") parts.wpn_fps_upg_o_mbus_rear.thq_material_config = Idstring("units/pd2_dlc_gage_shot/weapons/wpn_fps_upg_o_mbus/wpn_fps_upg_o_mbus_front_thq") parts.wpn_fps_aug_ris_special.material_config = Idstring("units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_body_aug") parts.wpn_fps_aug_ris_special.thq_material_config = Idstring("units/payday2/weapons/wpn_fps_ass_aug_pts/wpn_fps_aug_body_aug_thq") parts.wpn_fps_smg_m45_s_folded_vanilla.material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard") parts.wpn_fps_smg_m45_s_folded_vanilla.thq_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard_thq") parts.wpn_fps_smg_m45_s_folded_vanilla.cc_thq_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard_cc_thq") parts.wpn_fps_smg_m45_s_folded_vanilla.cc_material_config = Idstring("units/pd2_dlc1/weapons/wpn_fps_smg_m45_pts/wpn_fps_smg_m45_s_standard_cc") end function WeaponFactoryTweakData:_init_bipods() self.parts.wpn_fps_upg_bp_lmg_lionbipod = { texture_bundle_folder = "par", type = "bipod", a_obj = "a_bp", sub_type = "bipod", name_id = "bm_wp_upg_lmg_lionbipod", unit = "units/pd2_crimefest_2015/update_5/weapons/wpn_fps_upg_bp_lmg_lionbipod/wpn_fps_upg_bp_lmg_lionbipod", pcs = { 10, 20, 30, 40 }, stats = { value = 0, zoom = 1 }, animations = { undeploy = "undeploy", deploy = "deploy" }, forbids = { "wpn_fps_lmg_hk21_fg_short" }, perks = { "bipod" }, third_unit = "units/pd2_crimefest_2015/update_5/weapons/wpn_fps_upg_bp_lmg_lionbipod/wpn_third_upg_bp_lmg_lionbipod" } table.map_append(self.parts.wpn_fps_lmg_hk21_fg_short, { forbids = { "wpn_fps_upg_bp_lmg_lionbipod" } }) table.list_append(self.wpn_fps_lmg_hk21.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_hk21_npc.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_m249.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_m249_npc.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_rpk.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_rpk_npc.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_mg42.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_mg42_npc.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_par.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) table.list_append(self.wpn_fps_lmg_par_npc.uses_parts, { "wpn_fps_upg_bp_lmg_lionbipod" }) end function WeaponFactoryTweakData:_init_m37() self.parts.wpn_fps_shot_m37_b_short = { texture_bundle_folder = "peta", dlc = "peta", type = "barrel", name_id = "bm_wp_m37_b_short", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_b_short", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, value = 1, concealment = 2 } } self.parts.wpn_fps_shot_m37_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m37_b_standard", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_b_standard", stats = { value = 1 } } self.parts.wpn_fps_shot_m37_s_short = { texture_bundle_folder = "peta", dlc = "peta", type = "stock", name_id = "bm_wp_m37_s_short", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_s_short", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -2, concealment = 2 } } self.parts.wpn_fps_shot_m37_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_m37_s_standard", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_s_standard", stats = { value = 1 } } self.parts.wpn_fps_shot_m37_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m37_m_standard", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_m_standard", stats = { value = 1 } } self.parts.wpn_fps_shot_m37_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_m37_body_standard", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_body_standard", stats = { value = 1 } } self.parts.wpn_fps_shot_m37_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m37_fg_standard", unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37_pts/wpn_fps_shot_m37_fg_standard", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil" } } self.parts.wpn_fps_shot_m37_b_short.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_b_short" self.parts.wpn_fps_shot_m37_b_standard.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_b_standard" self.parts.wpn_fps_shot_m37_s_short.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_s_short" self.parts.wpn_fps_shot_m37_s_standard.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_s_standard" self.parts.wpn_fps_shot_m37_m_standard.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_m_standard" self.parts.wpn_fps_shot_m37_body_standard.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_body_standard" self.parts.wpn_fps_shot_m37_fg_standard.third_unit = "units/pd2_dlc_peta/weapons/wpn_third_shot_m37_pts/wpn_third_shot_m37_fg_standard" self.wpn_fps_shot_m37 = { unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37/wpn_fps_shot_m37", animations = { reload_exit = "reload_exit", fire = "recoil", fire_steelsight = "recoil" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { a_obj = "a_fl", parent = "foregrip" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { a_obj = "a_fl", parent = "foregrip" }, wpn_fps_upg_fl_ass_peq15 = { a_obj = "a_fl", parent = "foregrip" }, wpn_fps_upg_fl_ass_laser = { a_obj = "a_fl", parent = "foregrip" }, wpn_fps_upg_fl_ass_utg = { a_obj = "a_fl", parent = "foregrip" } }, default_blueprint = { "wpn_fps_shot_m37_b_standard", "wpn_fps_shot_m37_s_standard", "wpn_fps_shot_m37_m_standard", "wpn_fps_shot_m37_body_standard", "wpn_fps_shot_m37_fg_standard" }, uses_parts = { "wpn_fps_shot_m37_b_short", "wpn_fps_shot_m37_b_standard", "wpn_fps_shot_m37_s_short", "wpn_fps_shot_m37_s_standard", "wpn_fps_shot_m37_m_standard", "wpn_fps_shot_m37_body_standard", "wpn_fps_shot_m37_fg_standard", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_duck" } } self.wpn_fps_shot_m37_npc = deep_clone(self.wpn_fps_shot_m37) self.wpn_fps_shot_m37_npc.unit = "units/pd2_dlc_peta/weapons/wpn_fps_shot_m37/wpn_fps_shot_m37_npc" end function WeaponFactoryTweakData:_init_china() self.parts.wpn_fps_gre_china_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_gre_china_barrel", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_china_b_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_china_body_standard = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_china_receiver", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_china_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil", reload_enter = "reload_enter" } } self.parts.wpn_fps_gre_china_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_china_receiver", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_china_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_china_m_standard = { a_obj = "a_body", type = "extra", name_id = "bm_wp_gre_china_m_standard", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_china_m_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_china_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_china_stock_standard", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_china_s_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_m79_grenade_whole = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_gre_m79_grenade", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_m79_grenade_whole", bullet_objects = { amount = 1, prefix = "g_grenade_" }, stats = { value = 1 } } self.parts.wpn_fps_gre_china_s_short = { texture_bundle_folder = "lupus", dlc = "pal", type = "stock", name_id = "bm_wp_china_stock_short", unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china_pts/wpn_fps_gre_china_s_short", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -1, spread = 0, concealment = 4 } } self.parts.wpn_fps_gre_china_b_standard.third_unit = "units/pd2_dlc_lupus/weapons/wpn_third_gre_china_pts/wpn_third_gre_china_b_standard" self.parts.wpn_fps_gre_china_body_standard.third_unit = "units/pd2_dlc_lupus/weapons/wpn_third_gre_china_pts/wpn_third_gre_china_body_standard" self.parts.wpn_fps_gre_china_fg_standard.third_unit = "units/pd2_dlc_lupus/weapons/wpn_third_gre_china_pts/wpn_third_gre_china_fg_standard" self.parts.wpn_fps_gre_china_m_standard.third_unit = "units/pd2_dlc_lupus/weapons/wpn_third_gre_china_pts/wpn_third_gre_china_m_standard" self.parts.wpn_fps_gre_china_s_short.third_unit = "units/pd2_dlc_lupus/weapons/wpn_third_gre_china_pts/wpn_third_gre_china_s_short" self.parts.wpn_fps_gre_china_s_standard.third_unit = "units/pd2_dlc_lupus/weapons/wpn_third_gre_china_pts/wpn_third_gre_china_s_standard" self.parts.wpn_fps_gre_m79_grenade_whole.third_unit = "units/pd2_dlc_gage_assault/weapons/wpn_fps_gre_m79_pts/wpn_third_gre_m79_grenade" self.wpn_fps_gre_china = { unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china/wpn_fps_gre_china", animations = { fire = "recoil", reload_exit = "reload_exit", fire_steelsight = "recoil", reload_enter = "reload_enter" }, default_blueprint = { "wpn_fps_gre_china_b_standard", "wpn_fps_gre_china_body_standard", "wpn_fps_gre_china_fg_standard", "wpn_fps_gre_m79_sight_up", "wpn_fps_gre_china_m_standard", "wpn_fps_gre_china_s_standard", "wpn_fps_gre_m79_grenade_whole" }, uses_parts = { "wpn_fps_gre_china_b_standard", "wpn_fps_gre_china_body_standard", "wpn_fps_gre_china_fg_standard", "wpn_fps_gre_m79_sight_up", "wpn_fps_gre_china_m_standard", "wpn_fps_gre_china_s_standard", "wpn_fps_gre_m79_grenade_whole", "wpn_fps_gre_china_s_short" } } self.wpn_fps_gre_china_npc = deep_clone(self.wpn_fps_gre_china) self.wpn_fps_gre_china_npc.unit = "units/pd2_dlc_lupus/weapons/wpn_fps_gre_china/wpn_fps_gre_china_npc" end function WeaponFactoryTweakData:_init_sr2() self.parts.wpn_fps_smg_sr2_body_lower = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_body_lower", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" } } self.parts.wpn_fps_smg_sr2_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_sr2_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_sr2_m_mag = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_m_mag", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_sr2_s_folded = { a_obj = "a_s", type = "stock", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_s_folded", stats = { value = 1 } } self.parts.wpn_fps_smg_sr2_s_unfolded = { texture_bundle_folder = "coco", a_obj = "a_s", type = "stock", name_id = "bm_wp_sr2_s_unfolded", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_s_unfolded", pcs = { 10, 20, 30, 40 }, stats = { value = 0, recoil = 2 } } self.parts.wpn_fps_smg_sr2_vg_standard = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_vg_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_sr2_ns_silencer = { type = "barrel_ext", texture_bundle_folder = "coco", sub_type = "silencer", a_obj = "a_ns", parent = "barrel", name_id = "bm_wp_sr2_ns_silencer", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_ns_silencer", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = -1, damage = -2, suppression = 12, value = 3, recoil = 2, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_smg_sr2_o_rail = { a_obj = "a_o", type = "extra", name_id = "bm_wp_standard", unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_fps_smg_sr2_o_rail", stats = { value = 0 } } self.parts.wpn_fps_smg_sr2_body_lower.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_body_lower" self.parts.wpn_fps_smg_sr2_b_standard.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_b_standard" self.parts.wpn_fps_smg_sr2_fg_standard.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_fg_standard" self.parts.wpn_fps_smg_sr2_m_mag.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_m_mag" self.parts.wpn_fps_smg_sr2_s_folded.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_s_folded" self.parts.wpn_fps_smg_sr2_s_unfolded.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_s_unfolded" self.parts.wpn_fps_smg_sr2_vg_standard.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_vg_standard" self.parts.wpn_fps_smg_sr2_ns_silencer.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_ns_silencer" self.parts.wpn_fps_smg_sr2_o_rail.third_unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2_parts/wpn_third_smg_sr2_o_rail" self.wpn_fps_smg_sr2 = { unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2/wpn_fps_smg_sr2", optional_types = { "gadget", "sight", "barrel_ext" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_sr2_o_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_sr2_o_rail" } }, default_blueprint = { "wpn_fps_smg_sr2_body_lower", "wpn_fps_smg_sr2_b_standard", "wpn_fps_smg_sr2_fg_standard", "wpn_fps_smg_sr2_m_mag", "wpn_fps_smg_sr2_s_folded", "wpn_fps_smg_sr2_vg_standard" }, uses_parts = { "wpn_fps_smg_sr2_body_lower", "wpn_fps_smg_sr2_b_standard", "wpn_fps_smg_sr2_fg_standard", "wpn_fps_smg_sr2_m_mag", "wpn_fps_smg_sr2_s_folded", "wpn_fps_smg_sr2_s_unfolded", "wpn_fps_smg_sr2_vg_standard", "wpn_fps_smg_sr2_ns_silencer", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_smg_sr2_m_quick" } } self.wpn_fps_smg_sr2_npc = deep_clone(self.wpn_fps_smg_sr2) self.wpn_fps_smg_sr2_npc.unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_sr2/wpn_fps_smg_sr2_npc" end function WeaponFactoryTweakData:_init_x_sr2() self.wpn_fps_smg_x_sr2 = { unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_x_sr2/wpn_fps_smg_x_sr2", optional_types = { "gadget", "barrel_ext" }, override = {}, default_blueprint = { "wpn_fps_smg_sr2_body_lower", "wpn_fps_smg_sr2_b_standard", "wpn_fps_smg_sr2_fg_standard", "wpn_fps_smg_sr2_m_mag", "wpn_fps_smg_sr2_s_folded", "wpn_fps_smg_sr2_vg_standard" }, uses_parts = { "wpn_fps_smg_sr2_body_lower", "wpn_fps_smg_sr2_b_standard", "wpn_fps_smg_sr2_fg_standard", "wpn_fps_smg_sr2_m_mag", "wpn_fps_smg_sr2_s_folded", "wpn_fps_smg_sr2_s_unfolded", "wpn_fps_smg_sr2_vg_standard", "wpn_fps_smg_sr2_ns_silencer", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_smg_sr2_m_quick" } } self.wpn_fps_smg_x_sr2_npc = deep_clone(self.wpn_fps_smg_x_sr2) self.wpn_fps_smg_x_sr2_npc.unit = "units/pd2_dlc_coco/weapons/wpn_fps_smg_x_sr2/wpn_fps_smg_x_sr2_npc" end function WeaponFactoryTweakData:_init_pl14() self.parts.wpn_fps_pis_pl14_b_comp = { texture_bundle_folder = "mad", unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14_pts/wpn_fps_pis_pl14_b_comp", type = "barrel", name_id = "bm_wp_pl14_b_comp", a_obj = "a_b", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, value = 1, concealment = -1 }, forbids = { "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.parts.wpn_fps_pis_pl14_b_standard = { texture_bundle_folder = "mad", a_obj = "a_b", type = "barrel", name_id = "bm_wp_pl14_b_standard", unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14_pts/wpn_fps_pis_pl14_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_pl14_body_standard = { texture_bundle_folder = "mad", a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_pl14_body_standard", unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14_pts/wpn_fps_pis_pl14_body_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_pl14_m_extended = { texture_bundle_folder = "mad", type = "magazine", name_id = "bm_wp_pl14_m_extended", unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14_pts/wpn_fps_pis_pl14_m_extended", a_obj = "a_m", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 1, value = 1, concealment = -1 } } self.parts.wpn_fps_pis_pl14_m_standard = { texture_bundle_folder = "mad", type = "magazine", name_id = "bm_wp_pl14_m_standard", unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14_pts/wpn_fps_pis_pl14_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_pl14_sl_standard = { texture_bundle_folder = "mad", a_obj = "a_sl", type = "slide", name_id = "bm_wp_pl14_sl_standard", unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14_pts/wpn_fps_pis_pl14_sl_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_pl14_b_comp.third_unit = "units/pd2_dlc_mad/weapons/wpn_third_pis_pl14_pts/wpn_third_pis_pl14_b_comp" self.parts.wpn_fps_pis_pl14_b_standard.third_unit = "units/pd2_dlc_mad/weapons/wpn_third_pis_pl14_pts/wpn_third_pis_pl14_b_standard" self.parts.wpn_fps_pis_pl14_body_standard.third_unit = "units/pd2_dlc_mad/weapons/wpn_third_pis_pl14_pts/wpn_third_pis_pl14_body_standard" self.parts.wpn_fps_pis_pl14_m_extended.third_unit = "units/pd2_dlc_mad/weapons/wpn_third_pis_pl14_pts/wpn_third_pis_pl14_m_extended" self.parts.wpn_fps_pis_pl14_m_standard.third_unit = "units/pd2_dlc_mad/weapons/wpn_third_pis_pl14_pts/wpn_third_pis_pl14_m_standard" self.parts.wpn_fps_pis_pl14_sl_standard.third_unit = "units/pd2_dlc_mad/weapons/wpn_third_pis_pl14_pts/wpn_third_pis_pl14_sl_standard" self.wpn_fps_pis_pl14 = { unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14/wpn_fps_pis_pl14", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_pl14_b_standard", "wpn_fps_pis_pl14_body_standard", "wpn_fps_pis_pl14_m_standard", "wpn_fps_pis_pl14_sl_standard" }, uses_parts = { "wpn_fps_pis_pl14_b_comp", "wpn_fps_pis_pl14_b_standard", "wpn_fps_pis_pl14_body_standard", "wpn_fps_pis_pl14_m_extended", "wpn_fps_pis_pl14_m_standard", "wpn_fps_pis_pl14_sl_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_pl14_npc = deep_clone(self.wpn_fps_pis_pl14) self.wpn_fps_pis_pl14_npc.unit = "units/pd2_dlc_mad/weapons/wpn_fps_pis_pl14/wpn_fps_pis_pl14_npc" end function WeaponFactoryTweakData:_init_x_mp5() self.parts.wpn_fps_smg_mp5_s_ring_vanilla = deep_clone(self.parts.wpn_fps_smg_mp5_s_ring) self.parts.wpn_fps_smg_mp5_s_ring_vanilla.stats = nil self.parts.wpn_fps_smg_mp5_s_ring_vanilla.pcs = nil self.wpn_fps_smg_x_mp5 = { unit = "units/pd2_dlc_dos/weapons/wpn_fps_smg_x_mp5/wpn_fps_smg_x_mp5", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_fps_smg_mp5_fg_m5k = { animations = {} }, wpn_fps_smg_mp5_fg_mp5a4 = { animations = {} }, wpn_fps_smg_mp5_fg_mp5a5 = { animations = {} }, wpn_fps_smg_mp5_fg_mp5sd = { animations = {} }, wpn_fps_smg_mp5_m_std = { animations = {} }, wpn_fps_smg_mp5_m_straight = { animations = {} }, wpn_fps_smg_mp5_body_mp5 = { animations = { fire = "recoil" } } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_mp5_body_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_mp5_body_rail" } }, default_blueprint = { "wpn_fps_smg_mp5_body_mp5", "wpn_fps_smg_mp5_fg_mp5a4", "wpn_fps_smg_mp5_m_std", "wpn_fps_smg_mp5_s_ring_vanilla" }, uses_parts = { "wpn_fps_smg_mp5_body_mp5", "wpn_fps_smg_mp5_fg_m5k", "wpn_fps_smg_mp5_fg_mp5a4", "wpn_fps_smg_mp5_fg_mp5a5", "wpn_fps_smg_mp5_fg_mp5sd", "wpn_fps_smg_mp5_m_std", "wpn_fps_smg_mp5_m_drum", "wpn_fps_smg_mp5_s_ring_vanilla", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_smg_mp5_m_straight", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_smg_mp5_fg_flash" } } self.wpn_fps_smg_x_mp5_npc = deep_clone(self.wpn_fps_smg_x_mp5) self.wpn_fps_smg_x_mp5_npc.unit = "units/pd2_dlc_dos/weapons/wpn_fps_smg_x_mp5/wpn_fps_smg_x_mp5_npc" end function WeaponFactoryTweakData:_init_x_akmsu() self.wpn_fps_smg_x_akmsu = { unit = "units/pd2_dlc_dos/weapons/wpn_fps_smg_x_akmsu/wpn_fps_smg_x_akmsu", animations = { fire_steelsight = "recoil", fire = "recoil" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_fps_upg_ak_m_quad = { stats = { extra_ammo = 30, value = 3, recoil = 1, spread = -1, concealment = -3, spread_moving = -2 } }, wpn_fps_upg_ak_m_uspalm = { stats = { value = 1, recoil = 1, concealment = 1, extra_ammo = 4 } } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_fps_smg_akmsu_body_lowerreceiver", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_smg_akmsu_b_standard", "wpn_fps_smg_akmsu_fg_standard", "wpn_upg_ak_g_standard", "wpn_upg_ak_m_akm" }, uses_parts = { "wpn_fps_smg_akmsu_body_lowerreceiver", "wpn_fps_ass_akm_body_upperreceiver_vanilla", "wpn_fps_smg_akmsu_b_standard", "wpn_fps_smg_akmsu_fg_standard", "wpn_fps_smg_akmsu_fg_rail", "wpn_upg_ak_g_standard", "wpn_upg_ak_m_akm", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_ak_m_quad", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_m_uspalm", "wpn_fps_upg_ak_fg_zenit", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ak_m_quick" } } self.wpn_fps_smg_x_akmsu_npc = deep_clone(self.wpn_fps_smg_x_akmsu) self.wpn_fps_smg_x_akmsu_npc.unit = "units/pd2_dlc_dos/weapons/wpn_fps_smg_x_akmsu/wpn_fps_smg_x_akmsu_npc" end function WeaponFactoryTweakData:_init_tecci() self.parts.wpn_fps_ass_tecci_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_b_long = { texture_bundle_folder = "opera", dlc = "opera", type = "barrel", name_id = "bm_wp_tecci_b_long", a_obj = "a_b", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 3, spread = 1, concealment = -3 } } self.parts.wpn_fps_ass_tecci_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_g_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_lower_reciever = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_lower_reciever", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_m_drum = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_m_drum", bullet_objects = { amount = 100, prefix = "g_bullet_" }, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_tecci_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_ns_special = { type = "barrel_ext", texture_bundle_folder = "opera", a_obj = "a_ns", parent = "barrel", dlc = "opera", name_id = "bm_wp_tecci_ns_special", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_ns_special", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, concealment = -2, damage = 2, suppression = -1, value = 1, recoil = 3 } } self.parts.wpn_fps_ass_tecci_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_tecci_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_s_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_upper_reciever = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_upper_reciever", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_vg_standard = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_m4_lower_reciever", unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_fps_ass_tecci_vg_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_tecci_b_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_b_standard" self.parts.wpn_fps_ass_tecci_b_long.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_b_long" self.parts.wpn_fps_ass_tecci_dh_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_dh_standard" self.parts.wpn_fps_ass_tecci_fg_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_fg_standard" self.parts.wpn_fps_ass_tecci_g_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_g_standard" self.parts.wpn_fps_ass_tecci_lower_reciever.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_lower_reciever" self.parts.wpn_fps_ass_tecci_m_drum.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_m_drum" self.parts.wpn_fps_ass_tecci_ns_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_ns_standard" self.parts.wpn_fps_ass_tecci_ns_special.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_ns_special" self.parts.wpn_fps_ass_tecci_o_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_o_standard" self.parts.wpn_fps_ass_tecci_s_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_s_standard" self.parts.wpn_fps_ass_tecci_upper_reciever.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_upper_reciever" self.parts.wpn_fps_ass_tecci_vg_standard.third_unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci_pts/wpn_third_ass_tecci_vg_standard" self.wpn_fps_ass_tecci = { optional_types = { "barrel_ext", "gadget", "vertical_grip" }, unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci/wpn_fps_ass_tecci", stock_adapter = "wpn_fps_upg_m4_s_adapter", default_blueprint = { "wpn_fps_ass_tecci_b_standard", "wpn_fps_ass_tecci_dh_standard", "wpn_fps_ass_tecci_fg_standard", "wpn_fps_ass_tecci_g_standard", "wpn_fps_ass_tecci_lower_reciever", "wpn_fps_ass_tecci_m_drum", "wpn_fps_ass_tecci_ns_standard", "wpn_fps_ass_tecci_o_standard", "wpn_fps_ass_tecci_s_standard", "wpn_fps_ass_tecci_upper_reciever", "wpn_fps_ass_tecci_vg_standard" }, uses_parts = { "wpn_fps_ass_tecci_b_standard", "wpn_fps_ass_tecci_b_long", "wpn_fps_ass_tecci_dh_standard", "wpn_fps_ass_tecci_fg_standard", "wpn_fps_ass_tecci_g_standard", "wpn_fps_ass_tecci_lower_reciever", "wpn_fps_ass_tecci_m_drum", "wpn_fps_ass_tecci_ns_standard", "wpn_fps_ass_tecci_ns_special", "wpn_fps_ass_tecci_o_standard", "wpn_fps_ass_tecci_s_standard", "wpn_fps_ass_tecci_upper_reciever", "wpn_fps_ass_tecci_vg_standard", "wpn_fps_ass_tecci_b_legend", "wpn_fps_ass_tecci_fg_legend", "wpn_fps_ass_tecci_s_legend", "wpn_fps_upg_m4_s_adapter", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_ubr", "wpn_fps_m4_uupg_s_fold", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_ergo", "wpn_fps_m4_uupg_o_flipup", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_tecci_npc = deep_clone(self.wpn_fps_ass_tecci) self.wpn_fps_ass_tecci_npc.unit = "units/pd2_dlc_opera/weapons/wpn_fps_ass_tecci/wpn_fps_ass_tecci_npc" end function WeaponFactoryTweakData:_init_hajk() self.parts.wpn_fps_smg_hajk_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_hajk_b_standard", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_hajk_b_short = { texture_bundle_folder = "born", dlc = "born", type = "barrel", name_id = "bm_wp_hajk_b_short", a_obj = "a_b", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -3, value = 1, concealment = 5 } } self.parts.wpn_fps_smg_hajk_b_medium = { texture_bundle_folder = "born", dlc = "born", type = "barrel", name_id = "bm_wp_hajk_b_medium", a_obj = "a_b", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_b_medium", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, value = 1, concealment = 2 } } self.parts.wpn_fps_smg_hajk_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_hajk_fg_standard", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_hajk_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_hajk_g_standard", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_hajk_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_hajk_ns_standard", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_hajk_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_hajk_o_sight", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_smg_hajk_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_hajk_s_standard", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_hajk_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_hajk_body_standard", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_body_standard", stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } self.parts.wpn_fps_smg_hajk_vg_moe = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_hajk_vg_moe", unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk_pts/wpn_fps_smg_hajk_vg_moe", stats = { value = 1 } } self.parts.wpn_fps_smg_hajk_b_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_b_standard" self.parts.wpn_fps_smg_hajk_b_short.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_b_short" self.parts.wpn_fps_smg_hajk_b_medium.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_b_medium" self.parts.wpn_fps_smg_hajk_fg_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_fg_standard" self.parts.wpn_fps_smg_hajk_g_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_g_standard" self.parts.wpn_fps_smg_hajk_ns_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_ns_standard" self.parts.wpn_fps_smg_hajk_o_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_o_standard" self.parts.wpn_fps_smg_hajk_s_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_s_standard" self.parts.wpn_fps_smg_hajk_body_standard.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_body_standard" self.parts.wpn_fps_smg_hajk_vg_moe.third_unit = "units/pd2_dlc_born/weapons/wpn_third_smg_hajk_pts/wpn_third_smg_hajk_vg_moe" self.wpn_fps_smg_hajk = { optional_types = { "barrel_ext", "gadget", "vertical_grip" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk/wpn_fps_smg_hajk", default_blueprint = { "wpn_fps_smg_hajk_b_standard", "wpn_fps_smg_hajk_fg_standard", "wpn_fps_smg_hajk_g_standard", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_smg_hajk_ns_standard", "wpn_fps_smg_hajk_o_standard", "wpn_fps_smg_hajk_s_standard", "wpn_fps_smg_hajk_body_standard", "wpn_fps_smg_hajk_vg_moe" }, uses_parts = { "wpn_fps_smg_hajk_b_standard", "wpn_fps_smg_hajk_b_short", "wpn_fps_smg_hajk_b_medium", "wpn_fps_smg_hajk_fg_standard", "wpn_fps_smg_hajk_g_standard", "wpn_fps_smg_hajk_ns_standard", "wpn_fps_smg_hajk_o_standard", "wpn_fps_smg_hajk_s_standard", "wpn_fps_smg_hajk_body_standard", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_m4_m_quad", "wpn_fps_upg_m4_m_straight", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_hajk_npc = deep_clone(self.wpn_fps_smg_hajk) self.wpn_fps_smg_hajk_npc.unit = "units/pd2_dlc_born/weapons/wpn_fps_smg_hajk/wpn_fps_smg_hajk_npc" end function WeaponFactoryTweakData:_init_boot() self.parts.wpn_fps_sho_boot_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_boot_b_standard", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_b_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_boot_b_short = { texture_bundle_folder = "wild", dlc = "wild", type = "barrel", name_id = "bm_wp_boot_b_short", a_obj = "a_b", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_b_short", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -1, spread = -1, concealment = 3 } } self.parts.wpn_fps_sho_boot_b_long = { texture_bundle_folder = "wild", dlc = "wild", type = "barrel", name_id = "bm_wp_boot_b_long", a_obj = "a_b", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_b_long", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, spread = 1, concealment = -3 } } self.parts.wpn_fps_sho_boot_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_boot_fg_standard", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_boot_s_short = { a_obj = "a_s", type = "stock", name_id = "bm_wp_boot_s_standard", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_s_short", stats = { value = 1 } } self.parts.wpn_fps_sho_boot_s_long = { texture_bundle_folder = "wild", dlc = "wild", type = "stock", name_id = "bm_wp_boot_s_long", a_obj = "a_s", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_s_long", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, concealment = -2 } } self.parts.wpn_fps_sho_boot_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_boot_body_standard", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_body_standard", stats = { value = 1 }, animations = { fire = "recoil", fire_steelsight = "recoil_steelsight", reload_not_empty_exit = "reload_exit_not_empty", reload_exit = "reload_exit", reload_enter = "reload_enter" } } self.parts.wpn_fps_sho_boot_body_exotic = { texture_bundle_folder = "wild", type = "lower_reciever", a_obj = "a_body", dlc = "wild", name_id = "bm_wp_boot_body_exotic", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_body_exotic", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, spread = 1, concealment = -1 }, animations = { fire = "recoil", fire_steelsight = "recoil_steelsight", reload_not_empty_exit = "reload_exit_not_empty", reload_exit = "reload_exit", reload_enter = "reload_enter" } } self.parts.wpn_fps_sho_boot_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_boot_s_standard", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_sho_boot_em_extra = { a_obj = "a_em", type = "extra", name_id = "bm_wp_boot_s_standard", unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot_pts/wpn_fps_sho_boot_em_extra", stats = { value = 1 } } self.parts.wpn_fps_sho_boot_b_standard.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_b_standard" self.parts.wpn_fps_sho_boot_b_short.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_b_short" self.parts.wpn_fps_sho_boot_b_long.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_b_long" self.parts.wpn_fps_sho_boot_fg_standard.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_fg_standard" self.parts.wpn_fps_sho_boot_s_short.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_s_short" self.parts.wpn_fps_sho_boot_s_long.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_s_long" self.parts.wpn_fps_sho_boot_body_standard.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_body_standard" self.parts.wpn_fps_sho_boot_body_exotic.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_body_exotic" self.parts.wpn_fps_sho_boot_m_standard.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_m_standard" self.parts.wpn_fps_sho_boot_em_extra.third_unit = "units/pd2_dlc_wild/weapons/wpn_third_sho_boot_pts/wpn_third_sho_boot_em_extra" self.wpn_fps_sho_boot = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot/wpn_fps_sho_boot", animations = { fire = "recoil", fire_steelsight = "recoil", reload_not_empty_exit = "reload_exit_not_empty", reload_exit = "reload_exit", reload_enter = "reload_enter" }, default_blueprint = { "wpn_fps_sho_boot_b_standard", "wpn_fps_sho_boot_fg_standard", "wpn_fps_sho_boot_s_short", "wpn_fps_sho_boot_body_standard", "wpn_fps_sho_boot_m_standard", "wpn_fps_sho_boot_em_extra" }, uses_parts = { "wpn_fps_sho_boot_b_standard", "wpn_fps_sho_boot_b_short", "wpn_fps_sho_boot_b_long", "wpn_fps_sho_boot_fg_standard", "wpn_fps_sho_boot_s_short", "wpn_fps_sho_boot_s_long", "wpn_fps_sho_boot_body_standard", "wpn_fps_sho_boot_body_exotic", "wpn_fps_sho_boot_m_standard", "wpn_fps_sho_boot_em_extra", "wpn_fps_sho_boot_b_legendary", "wpn_fps_sho_boot_fg_legendary", "wpn_fps_sho_boot_o_legendary", "wpn_fps_sho_boot_s_legendary", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_ns_duck" } } self.wpn_fps_sho_boot_npc = deep_clone(self.wpn_fps_sho_boot) self.wpn_fps_sho_boot_npc.unit = "units/pd2_dlc_wild/weapons/wpn_fps_sho_boot/wpn_fps_sho_boot_npc" end function WeaponFactoryTweakData:_init_packrat() self.parts.wpn_fps_pis_packrat_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_packrat_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_packrat_body_standard = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_packrat_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_body_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_packrat_bolt_standard = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_packrat_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_packrat_m_extended = { is_a_unlockable = true, texture_bundle_folder = "pim", a_obj = "a_m", type = "magazine", dlc = "pim", name_id = "bm_wp_packrat_m_extended", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_m_extended", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 5, value = 1, concealment = -1 } } self.parts.wpn_fps_pis_packrat_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_packrat_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_packrat_ns_wick = { is_a_unlockable = true, texture_bundle_folder = "pim", type = "barrel_ext", a_obj = "a_ns", parent = "barrel", dlc = "pim", name_id = "bm_wp_packrat_ns_extended", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_ns_wick", pcs = {}, stats = { spread = 1, value = 1, concealment = -1 } } self.parts.wpn_fps_pis_packrat_o_expert = { is_a_unlockable = true, texture_bundle_folder = "pim", type = "sight", a_obj = "a_o", dlc = "pim", name_id = "bm_wp_packrat_o_expert", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_o_expert", pcs = {}, stats = { value = 1, spread = 1 } } self.parts.wpn_fps_pis_packrat_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_packrat_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_o_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_packrat_sl_standard = { a_obj = "a_sl", type = "slide", name_id = "bm_wp_packrat_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_fps_pis_packrat_sl_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_packrat_b_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_b_standard" self.parts.wpn_fps_pis_packrat_body_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_body_standard" self.parts.wpn_fps_pis_packrat_bolt_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_bolt_standard" self.parts.wpn_fps_pis_packrat_m_extended.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_m_extended" self.parts.wpn_fps_pis_packrat_m_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_m_standard" self.parts.wpn_fps_pis_packrat_ns_wick.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_ns_wick" self.parts.wpn_fps_pis_packrat_o_expert.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_o_expert" self.parts.wpn_fps_pis_packrat_o_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_o_standard" self.parts.wpn_fps_pis_packrat_sl_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat_pts/wpn_third_pis_packrat_sl_standard" self.wpn_fps_pis_packrat = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat/wpn_fps_pis_packrat", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_packrat_b_standard", "wpn_fps_pis_packrat_body_standard", "wpn_fps_pis_packrat_bolt_standard", "wpn_fps_pis_packrat_m_standard", "wpn_fps_pis_packrat_o_standard", "wpn_fps_pis_packrat_sl_standard" }, uses_parts = { "wpn_fps_pis_packrat_b_standard", "wpn_fps_pis_packrat_body_standard", "wpn_fps_pis_packrat_bolt_standard", "wpn_fps_pis_packrat_m_standard", "wpn_fps_pis_packrat_o_standard", "wpn_fps_pis_packrat_sl_standard", "wpn_fps_pis_packrat_m_extended", "wpn_fps_pis_packrat_ns_wick", "wpn_fps_pis_packrat_o_expert", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_packrat_npc = deep_clone(self.wpn_fps_pis_packrat) self.wpn_fps_pis_packrat_npc.unit = "units/pd2_dlc_pim/weapons/wpn_fps_pis_packrat/wpn_fps_pis_packrat_npc" end function WeaponFactoryTweakData:_init_schakal() self.parts.wpn_fps_smg_schakal_b_civil = { is_a_unlockable = true, texture_bundle_folder = "pim", type = "barrel", a_obj = "a_b", dlc = "pim", name_id = "bm_wp_schakal_b_civil", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_b_civil", pcs = {}, stats = { spread = 1, value = 1, concealment = -1 } } self.parts.wpn_fps_smg_schakal_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_body_lower = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_body_lower", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_body_upper", stats = { value = 1 }, adds = { "wpn_fps_smg_schakal_vg_extra" } } self.parts.wpn_fps_smg_schakal_m_long = { is_a_unlockable = true, texture_bundle_folder = "pim", a_obj = "a_m", type = "magazine", dlc = "pim", name_id = "bm_wp_schakal_m_long", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_m_long", pcs = {}, bullet_objects = { amount = 40, prefix = "g_bullet_" }, stats = { extra_ammo = 10, value = 1, concealment = -2 } } self.parts.wpn_fps_smg_schakal_m_short = { is_a_unlockable = true, texture_bundle_folder = "pim", a_obj = "a_m", type = "magazine", dlc = "pim", name_id = "bm_wp_schakal_m_short", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_m_short", pcs = {}, bullet_objects = { amount = 16, prefix = "g_bullet_" }, stats = { extra_ammo = -5, value = 1, concealment = 2 } } self.parts.wpn_fps_smg_schakal_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_m_standard", bullet_objects = { amount = 28, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_ns_silencer = { is_a_unlockable = true, texture_bundle_folder = "pim", dlc = "pim", type = "barrel_ext", sub_type = "silencer", a_obj = "a_ns", parent = "barrel", name_id = "bm_wp_schakal_ns_silencer", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_ns_silencer", pcs = {}, stats = { alert_size = 12, spread = 0, damage = -3, suppression = 12, value = 1, recoil = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_smg_schakal_s_civil = { is_a_unlockable = true, texture_bundle_folder = "pim", type = "stock", a_obj = "a_s", dlc = "pim", name_id = "bm_wp_schakal_s_civil", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_s_civil", pcs = {}, stats = { value = 1, recoil = 1, concealment = -1 } } self.parts.wpn_fps_smg_schakal_s_folded = { is_a_unlockable = true, texture_bundle_folder = "pim", type = "stock", a_obj = "a_s", dlc = "pim", name_id = "bm_wp_schakal_s_folded", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_s_folded", pcs = {}, stats = { value = 1, recoil = -2, concealment = 2 } } self.parts.wpn_fps_smg_schakal_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_bolt_standard = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_vg_extra = { a_obj = "a_vg", type = "extra", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_vg_extra", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_extra_magrelease = { a_obj = "a_extra", type = "extra", name_id = "bm_wp_schakal_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_extra_magrelease", stats = { value = 1 } } self.parts.wpn_fps_smg_schakal_vg_surefire = { is_a_unlockable = true, texture_bundle_folder = "pim", dlc = "pim", a_obj = "a_vg", type = "vertical_grip", sub_type = "laser", name_id = "bm_wp_schakal_vg_surefire", unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal_pts/wpn_fps_smg_schakal_vg_surefire", pcs = {}, stats = { value = 1, recoil = 1 }, perks = { "gadget" }, forbids = { "wpn_fps_smg_schakal_vg_extra" }, adds = { "wpn_fps_smg_schakal_vg_surefire_flashlight" } } self.parts.wpn_fps_smg_schakal_vg_surefire_flashlight = { parent = "vertical_grip", type = "extra", sub_type = "flashlight", unit = "units/pd2_dlc_gage_jobs/weapons/wpn_fps_upg_fl_ass_peq15/wpn_fps_upg_fl_ass_peq15_flashlight", a_obj = "a_fl", stats = { value = 1 }, perks = { "gadget" } } self.parts.wpn_fps_smg_schakal_b_civil.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_b_civil" self.parts.wpn_fps_smg_schakal_b_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_b_standard" self.parts.wpn_fps_smg_schakal_body_lower.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_body_lower" self.parts.wpn_fps_smg_schakal_body_upper.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_body_upper" self.parts.wpn_fps_smg_schakal_m_long.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_m_long" self.parts.wpn_fps_smg_schakal_m_short.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_m_short" self.parts.wpn_fps_smg_schakal_m_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_m_standard" self.parts.wpn_fps_smg_schakal_ns_silencer.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_ns_silencer" self.parts.wpn_fps_smg_schakal_s_civil.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_s_civil" self.parts.wpn_fps_smg_schakal_s_folded.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_s_folded" self.parts.wpn_fps_smg_schakal_s_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_s_standard" self.parts.wpn_fps_smg_schakal_dh_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_dh_standard" self.parts.wpn_fps_smg_schakal_bolt_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_bolt_standard" self.parts.wpn_fps_smg_schakal_vg_extra.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_vg_extra" self.parts.wpn_fps_smg_schakal_vg_surefire.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_vg_surefire" self.parts.wpn_fps_smg_schakal_extra_magrelease.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_smg_schakal_pts/wpn_third_smg_schakal_extra_magrelease" self.wpn_fps_smg_schakal = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal/wpn_fps_smg_schakal", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_smg_schakal_b_standard", "wpn_fps_smg_schakal_body_lower", "wpn_fps_smg_schakal_body_upper", "wpn_fps_smg_schakal_m_standard", "wpn_fps_smg_schakal_s_standard", "wpn_fps_smg_schakal_dh_standard", "wpn_fps_smg_schakal_bolt_standard", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_smg_schakal_extra_magrelease" }, uses_parts = { "wpn_fps_smg_schakal_b_civil", "wpn_fps_smg_schakal_b_standard", "wpn_fps_smg_schakal_body_lower", "wpn_fps_smg_schakal_body_upper", "wpn_fps_smg_schakal_m_long", "wpn_fps_smg_schakal_m_short", "wpn_fps_smg_schakal_m_standard", "wpn_fps_smg_schakal_ns_silencer", "wpn_fps_smg_schakal_s_civil", "wpn_fps_smg_schakal_s_folded", "wpn_fps_smg_schakal_s_standard", "wpn_fps_smg_schakal_dh_standard", "wpn_fps_smg_schakal_bolt_standard", "wpn_fps_smg_schakal_vg_extra", "wpn_fps_smg_schakal_vg_surefire", "wpn_fps_smg_schakal_extra_magrelease", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_schakal_npc = deep_clone(self.wpn_fps_smg_schakal) self.wpn_fps_smg_schakal_npc.unit = "units/pd2_dlc_pim/weapons/wpn_fps_smg_schakal/wpn_fps_smg_schakal_npc" end function WeaponFactoryTweakData:_init_desertfox() self.parts.wpn_fps_snp_desertfox_b_long = { is_a_unlockable = true, texture_bundle_folder = "pim", type = "barrel", a_obj = "a_b", dlc = "pim", name_id = "bm_wp_desertfox_b_long", unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox_pts/wpn_fps_snp_desertfox_b_long", pcs = {}, stats = { spread = 3, spread_moving = -2, value = 3, concealment = -3 } } self.parts.wpn_fps_snp_desertfox_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_desertfox_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox_pts/wpn_fps_snp_desertfox_b_short", stats = { value = 1 } } self.parts.wpn_fps_snp_desertfox_b_silencer = { is_a_unlockable = true, texture_bundle_folder = "pim", dlc = "pim", a_obj = "a_b", type = "barrel", name_id = "bm_wp_desertfox_b_silenced", unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox_pts/wpn_fps_snp_desertfox_b_silencer", pcs = {}, stats = { alert_size = 12, value = 6, damage = -2, suppression = 12, spread = -1, recoil = 1, spread_moving = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_snp_desertfox_body = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_desertfox_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox_pts/wpn_fps_snp_desertfox_body", stats = { value = 1 } } self.parts.wpn_fps_snp_desertfox_dh_standard = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_desertfox_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox_pts/wpn_fps_snp_desertfox_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_desertfox_mag = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_desertfox_b_standard", unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox_pts/wpn_fps_snp_desertfox_mag", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_snp_desertfox_b_long.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_snp_desertfox_pts/wpn_third_snp_desertfox_b_long" self.parts.wpn_fps_snp_desertfox_b_short.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_snp_desertfox_pts/wpn_third_snp_desertfox_b_short" self.parts.wpn_fps_snp_desertfox_b_silencer.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_snp_desertfox_pts/wpn_third_snp_desertfox_b_silencer" self.parts.wpn_fps_snp_desertfox_body.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_snp_desertfox_pts/wpn_third_snp_desertfox_body" self.parts.wpn_fps_snp_desertfox_dh_standard.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_snp_desertfox_pts/wpn_third_snp_desertfox_dh_standard" self.parts.wpn_fps_snp_desertfox_mag.third_unit = "units/pd2_dlc_pim/weapons/wpn_third_snp_desertfox_pts/wpn_third_snp_desertfox_mag" self.wpn_fps_snp_desertfox = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox/wpn_fps_snp_desertfox", animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, default_blueprint = { "wpn_fps_snp_desertfox_b_short", "wpn_fps_snp_desertfox_body", "wpn_fps_snp_desertfox_dh_standard", "wpn_fps_snp_desertfox_mag", "wpn_fps_upg_o_shortdot" }, uses_parts = { "wpn_fps_snp_desertfox_b_long", "wpn_fps_snp_desertfox_b_short", "wpn_fps_snp_desertfox_b_silencer", "wpn_fps_snp_desertfox_body", "wpn_fps_snp_desertfox_dh_standard", "wpn_fps_snp_desertfox_mag", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_desertfox_npc = deep_clone(self.wpn_fps_snp_desertfox) self.wpn_fps_snp_desertfox_npc.unit = "units/pd2_dlc_pim/weapons/wpn_fps_snp_desertfox/wpn_fps_snp_desertfox_npc" end function WeaponFactoryTweakData:_init_x_packrat() self.wpn_fps_x_packrat = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_pim/weapons/wpn_fps_x_packrat/wpn_fps_x_packrat", animations = { reload_not_empty = "reload_not_empty_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left", reload = "reload_right", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_pis_packrat_m_extended = { stats = { extra_ammo = 10, value = 2, concealment = -2 } } }, default_blueprint = { "wpn_fps_pis_packrat_b_standard", "wpn_fps_pis_packrat_body_standard", "wpn_fps_pis_packrat_bolt_standard", "wpn_fps_pis_packrat_m_standard", "wpn_fps_pis_packrat_o_standard", "wpn_fps_pis_packrat_sl_standard" }, uses_parts = { "wpn_fps_pis_packrat_b_standard", "wpn_fps_pis_packrat_body_standard", "wpn_fps_pis_packrat_bolt_standard", "wpn_fps_pis_packrat_m_standard", "wpn_fps_pis_packrat_o_standard", "wpn_fps_pis_packrat_sl_standard", "wpn_fps_pis_packrat_m_extended", "wpn_fps_pis_packrat_ns_wick", "wpn_fps_pis_packrat_o_expert", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_x_packrat_npc = deep_clone(self.wpn_fps_x_packrat) self.wpn_fps_x_packrat_npc.unit = "units/pd2_dlc_pim/weapons/wpn_fps_x_packrat/wpn_fps_x_packrat_npc" end function WeaponFactoryTweakData:_init_rota() self.parts.wpn_fps_sho_rota_b_long = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_b_long", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_b_short = { texture_bundle_folder = "rota", dlc = "rota", type = "barrel", name_id = "bm_wp_rota_b_standard", a_obj = "a_b", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, value = 1, concealment = 3 } } self.parts.wpn_fps_sho_rota_b_silencer = { type = "barrel", texture_bundle_folder = "rota", dlc = "rota", a_obj = "a_b", name_id = "bm_wp_rota_b_silenced", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_b_silencer", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, value = 6, damage = -2, suppression = 12, spread = -1, recoil = 1, spread_moving = 1, concealment = -1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" }, forbids = { "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_a_dragons_breath", "wpn_fps_upg_ns_duck" } } self.parts.wpn_fps_sho_rota_body_lower = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_body_lower", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_body_upper", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_g_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_m_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_mag_realese = { a_obj = "a_extra", type = "extra", name_id = "bm_wp_rota_b_standard", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_mag_realese", stats = { value = 1 } } self.parts.wpn_fps_sho_rota_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_hajk_o_sight", unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_fps_sho_rota_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_sho_rota_b_long.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_b_long" self.parts.wpn_fps_sho_rota_b_short.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_b_short" self.parts.wpn_fps_sho_rota_b_silencer.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_b_silencer" self.parts.wpn_fps_sho_rota_body_lower.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_body_lower" self.parts.wpn_fps_sho_rota_body_upper.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_body_upper" self.parts.wpn_fps_sho_rota_fg_standard.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_fg_standard" self.parts.wpn_fps_sho_rota_g_standard.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_g_standard" self.parts.wpn_fps_sho_rota_m_standard.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_m_standard" self.parts.wpn_fps_sho_rota_mag_realese.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_mag_realese" self.parts.wpn_fps_sho_rota_o_standard.third_unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota_pts/wpn_third_sho_rota_o_standard" self.wpn_fps_sho_rota = { unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota/wpn_fps_sho_rota", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload" }, optional_types = { "barrel_ext", "gadget", "vertical_grip" }, default_blueprint = { "wpn_fps_sho_rota_b_long", "wpn_fps_sho_rota_body_lower", "wpn_fps_sho_rota_body_upper", "wpn_fps_sho_rota_fg_standard", "wpn_fps_sho_rota_g_standard", "wpn_fps_sho_rota_m_standard", "wpn_fps_sho_rota_mag_realese", "wpn_fps_sho_rota_o_standard", "wpn_fps_smg_hajk_vg_moe" }, uses_parts = { "wpn_fps_sho_rota_b_long", "wpn_fps_sho_rota_b_short", "wpn_fps_sho_rota_b_silencer", "wpn_fps_sho_rota_body_lower", "wpn_fps_sho_rota_body_upper", "wpn_fps_sho_rota_fg_standard", "wpn_fps_sho_rota_g_standard", "wpn_fps_sho_rota_m_standard", "wpn_fps_sho_rota_mag_realese", "wpn_fps_sho_rota_o_standard", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_rota_npc = deep_clone(self.wpn_fps_sho_rota) self.wpn_fps_sho_rota_npc.unit = "units/pd2_dlc_rota/weapons/wpn_fps_sho_rota/wpn_fps_sho_rota_npc" end function WeaponFactoryTweakData:_init_tng() self.parts.wpn_fps_sho_saiga_b_short = { is_a_unlockable = true, texture_bundle_folder = "tng", a_obj = "a_b", type = "barrel", dlc = "tango", name_id = "bm_wp_saiga_b_short", unit = "units/pd2_dlc_tng/weapons/wpn_fps_sho_saiga_b_short/wpn_fps_sho_saiga_b_short", pcs = {}, stats = { spread = -1, recoil = -1, concealment = 4, value = 1 }, forbids = { "wpn_fps_ak_extra_ris" }, override = { wpn_upg_saiga_fg_lowerrail = { unit = "units/payday2/weapons/wpn_fps_shot_saiga_pts/wpn_upg_saiga_fg_lowerrail_short" } } } self.parts.wpn_fps_sho_saiga_fg_holy = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "foregrip", a_obj = "a_fg", dlc = "tango", name_id = "bm_wp_saiga_fg_holy", unit = "units/pd2_dlc_tng/weapons/wpn_fps_sho_saiga_fg_holy/wpn_fps_sho_saiga_fg_holy", pcs = {}, stats = { value = 1, concealment = 4 } } self.parts.wpn_fps_upg_o_45rds = { is_a_unlockable = true, texture_bundle_folder = "tng", a_obj = "a_o", depends_on = "sight", dlc = "tango", sub_type = "second_sight", type = "gadget", name_id = "bm_wpn_fps_upg_o_45rds", unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_o_45rds/wpn_fps_upg_o_45rds", pcs = {}, stats = { value = 1, gadget_zoom = 1, recoil = 1 }, perks = { "gadget" }, texture_switch = { material = "gfx_reddot1", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters), stance_mod = { wpn_fps_ass_m4 = { translation = Vector3(-2.75, 0, -11.15), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_amcar = { translation = Vector3(-2.75, 0, -10.7), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_m16 = { translation = Vector3(-2.75, 0, -10.7), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_74 = { translation = Vector3(-3.2, -20, -13.75), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_akm = { translation = Vector3(-3.2, -20, -13.75), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_akm_gold = { translation = Vector3(-3.2, -20, -13.75), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_ak5 = { translation = Vector3(-1.25, 0, -13.5), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_aug = { translation = Vector3(-3.52, 0, -12.15), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_g36 = { translation = Vector3(-0.65, 0, -12.47), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_m14 = { translation = Vector3(-1.94, -10, -14.35), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_s552 = { translation = Vector3(-3.15, 0, -12.9), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_scar = { translation = Vector3(-1.6, 0, -10.4), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_scar = { translation = Vector3(-1.6, 0, -10.4), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_fal = { translation = Vector3(-2.37, 0, -13.98), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_g3 = { translation = Vector3(-0.7, -10, -13.14), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_galil = { translation = Vector3(-2.2, 0, -13.56), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_famas = { translation = Vector3(2.7, 0, -16.9), rotation = Rotation(0, 1.5, -45) }, wpn_fps_ass_l85a2 = { translation = Vector3(-4.3, 10, -8.35), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_asval = { translation = Vector3(-1.7, 0, -10.15), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_vhs = { translation = Vector3(-2.65, 0, -10.7), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_sub2000 = { translation = Vector3(-5.15, 0, -10.1), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_tecci = { translation = Vector3(-3, 0, -12.85), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_contraband = { translation = Vector3(-2.35, 0, -12), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_corgi = { translation = Vector3(-2.9, 0, -13.9), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_komodo = { translation = Vector3(-4.95, 0, -11.7), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_m95 = { translation = Vector3(-0.4, 5.8, -15.075), rotation = Rotation(-0.4, 0, -45) }, wpn_fps_snp_msr = { translation = Vector3(-2.2, 8, -12.29), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_r93 = { translation = Vector3(-2.3, 7.8, -14.1), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_mosin = { translation = Vector3(-2.2, -5, -13), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_wa2000 = { translation = Vector3(-2.25, 0, -9.5), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_model70 = { translation = Vector3(-2.55, -4, -12.3), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_desertfox = { translation = Vector3(-3.21, -4, -12.05), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_tti = { translation = Vector3(-2.83, 0, -9.65), rotation = Rotation(0, 0, -45) }, wpn_fps_snp_siltstone = { translation = Vector3(-1.67, 0, -13.15), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_flint = { translation = Vector3(-3.2, 0, -13.1), rotation = Rotation(0, 0, -45) }, wpn_fps_ass_ching = { translation = Vector3(-1.8, 0, -13.1), rotation = Rotation(0, 0, -45) } } } self.parts.wpn_fps_upg_o_spot = { is_a_unlockable = true, texture_bundle_folder = "tng", dlc = "tango", a_obj = "a_o", type = "sight", reticle_obj = "g_reticle", name_id = "bm_wp_upg_o_spot", unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_o_spot/wpn_fps_upg_o_spot", pcs = {}, stats = { zoom = 4, recoil = 1, concealment = -3, value = 8, spread_moving = -3 }, perks = { "scope" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_specter.stance_mod), forbids = { "wpn_fps_amcar_uupg_body_upperreciever", "wpn_fps_ass_m16_os_frontsight", "wpn_fps_ass_scar_o_flipups_up", "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot1", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_gfx_lens_2 = false, g_gfx_lens = false, g_gfx_lens_3 = false, g_screen = true, g_reddot = false, g_vr_phong = true, g_vr_spot = true } } }, camera = { a_camera = "a_camera", material = "screen", fov = 13, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_o_box = { is_a_unlockable = true, texture_bundle_folder = "tng", dlc = "tango", a_obj = "a_o", type = "sight", reticle_obj = "g_reticle", name_id = "bm_wp_upg_o_box", unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_o_box/wpn_fps_upg_o_box", pcs = {}, stats = { zoom = 10, recoil = 1, concealment = -3, value = 8, spread_moving = -3 }, perks = { "scope", "highlight" }, stance_mod = { wpn_fps_snp_m95 = { translation = Vector3(0, -18, -4.68) }, wpn_fps_snp_msr = { translation = Vector3(0, -31, -4.3951) }, wpn_fps_snp_r93 = { translation = Vector3(-0.002, -27, -4.622) }, wpn_fps_snp_mosin = { translation = Vector3(-0.005, -47, -5.14) }, wpn_fps_snp_wa2000 = { translation = Vector3(0, -27, -0.1) }, wpn_fps_snp_model70 = { translation = Vector3(0, -27, -4.89) }, wpn_fps_snp_desertfox = { translation = Vector3(0, -35, -4.8) }, wpn_fps_snp_tti = { translation = Vector3(0, -19, -0.955) }, wpn_fps_snp_siltstone = { translation = Vector3(0, -14, -4.872) } }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "gfx_reddot1", "screen" } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_reticle = false, g_screen = true, g_reddot = false } } }, camera = { a_camera = "a_camera", material = "screen", fov = 7, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_ass_g36_o_vintage = { reticle_obj = "g_reticle", texture_bundle_folder = "tng", dlc = "tango", type = "sight", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_body_optics/wpn_fps_ass_g36_o_vintage", is_a_unlockable = true, a_obj = "a_body", name_id = "bm_wp_g36_o_vintage", pcs = {}, stats = { zoom = 5, recoil = 1, value = 1 }, perks = { "scope" }, override = { wpn_fps_ass_g36_body_standard = { third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_body_optics/wpn_third_ass_g36_body_optics", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_body_optics/wpn_fps_ass_g36_body_optics" }, wpn_fps_ass_g36_body_sl8 = { third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_body_optics/wpn_third_ass_g36_body_optics_sl8", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_body_optics/wpn_fps_ass_g36_body_optics_sl8" } }, stance_mod = { wpn_fps_ass_g36 = { translation = Vector3(-0.02, 0, -2.35) } }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" }, texture_switch = { channel = "diffuse_texture", material = { "sight" } }, material_parameters = { gfx_reddot = { { id = Idstring("holo_reticle_scale"), value = Vector3(0.2, 1.5, 40), condition = function () return not _G.IS_VR end }, { id = Idstring("holo_reticle_scale"), value = Vector3(0.2, 1, 20), condition = function () return _G.IS_VR end } } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_vr_phong = true, g_vr_optic = true, g_screen = true } } }, camera = { a_camera = "a_camera", material = "screen", fov = 13, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_g36_fg_long = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "foregrip", a_obj = "a_fg", dlc = "tango", name_id = "bm_wp_g36_fg_long", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_fg_long/wpn_fps_upg_g36_fg_long", pcs = {}, stats = { spread = 2, recoil = 1, value = 1, concealment = -3 }, forbids = { "wpn_fps_ass_g36_b_short", "wpn_fps_ass_g36_b_long" }, adds = { "wpn_fps_upg_g36_b_ultra" } } self.parts.wpn_fps_upg_g36_b_ultra = { a_obj = "a_fg", type = "barrel", name_id = "bm_wp_g36_b_ultra", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_fg_long/wpn_fps_upg_g36_b_ultra", stats = { value = 1 } } self.parts.wpn_fps_smg_mp5_fg_flash = { is_a_unlockable = true, texture_bundle_folder = "tng", dlc = "tango", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_mp5_fg_flash", unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_mp5_fg_flash/wpn_fps_smg_mp5_fg_flash", pcs = {}, stats = { spread = 1, recoil = 1, concealment = -2, value = 1 }, perks = { "gadget" }, adds = { "wpn_fps_smg_mp5_b_mp5a5" }, animations = { reload = "reload" }, override = { wpn_fps_upg_fl_ass_smg_sho_peqbox = { parent = "foregrip" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { parent = "foregrip" }, wpn_fps_upg_fl_ass_peq15 = { parent = "foregrip" }, wpn_fps_upg_fl_ass_laser = { parent = "foregrip" }, wpn_fps_upg_fl_ass_utg = { parent = "foregrip" }, wpn_fps_addon_ris = { parent = "foregrip" } } } self.parts.wpn_fps_smg_mp5_s_folding = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "stock", a_obj = "a_s", dlc = "tango", name_id = "bm_wp_mp5_s_folding", unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_mp5_s_folding/wpn_fps_smg_mp5_s_folding", pcs = {}, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_upg_ns_duck = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "barrel_ext", a_obj = "a_ns", parent = "barrel", dlc = "tango", name_id = "bm_wp_ns_duck", unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_ns_duck/wpn_fps_upg_ns_duck", pcs = {}, stats = { value = 1, recoil = 2, damage = 2, concealment = -2, spread_multi = { 2.25, 0.5 } } } self.parts.wpn_fps_pis_usp_m_big = { texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "tango", name_id = "bm_wp_usp_m_big", unit = "units/pd2_dlc_tng/weapons/wpn_fps_pis_usp_m_big/wpn_fps_pis_usp_m_big", pcs = {}, stats = { extra_ammo = 6, value = 2, recoil = 2, concealment = -2, spread_moving = -1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_pis_1911_m_big = { texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "tango", name_id = "bm_wp_1911_m_big", unit = "units/pd2_dlc_tng/weapons/wpn_fps_pis_1911_m_big/wpn_fps_pis_1911_m_big", pcs = {}, stats = { extra_ammo = 6, value = 2, recoil = 2, concealment = -2, spread_moving = -1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_p90_m_strap = { texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "tango", name_id = "bm_wp_p90_m_strap", unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_p90_m_strap/wpn_fps_smg_p90_m_strap", pcs = {}, bullet_objects = { amount = 50, prefix = "g_bullet_" }, stats = { value = 2, reload = 10 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_ass_aug_m_quick = { is_a_unlockable = true, texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", dlc = "tango", name_id = "bm_wp_aug_m_quick", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_aug_m_quick/wpn_fps_ass_aug_m_quick", pcs = {}, bullet_objects = { amount = 21, prefix = "g_bullet_" }, stats = { value = 2, reload = 10 } } self.parts.wpn_fps_m4_upg_m_quick = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "magazine", a_obj = "a_m", dlc = "tango", name_id = "bm_wp_m4_m_quick", unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_olympic_m_quick/wpn_fps_m4_upg_m_quick", pcs = {}, stats = { value = 2, reload = 10 } } self.parts.wpn_fps_upg_ak_m_quick = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "magazine", a_obj = "a_m", dlc = "tango", name_id = "bm_wp_ak_m_quick", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_ak_m_quick/wpn_fps_upg_ak_m_quick", pcs = {}, stats = { value = 2, reload = 10 } } self.parts.wpn_fps_ass_g36_m_quick = { texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "tango", name_id = "bm_wp_g36_m_quick", unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_m_quick/wpn_fps_ass_g36_m_quick", pcs = {}, stats = { value = 2, reload = 10 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_mac10_m_quick = { texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "tango", name_id = "bm_wp_mac10_m_quick", unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_mac10_m_quick/wpn_fps_smg_mac10_m_quick", pcs = {}, stats = { value = 2, reload = 10, extra_ammo = 4 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_smg_sr2_m_quick = { texture_bundle_folder = "tng", a_obj = "a_m", type = "magazine", is_a_unlockable = true, dlc = "tango", name_id = "bm_wp_sr2_m_quick", unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_sr2_m_quick/wpn_fps_smg_sr2_m_quick", pcs = {}, stats = { value = 2, reload = 10 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" } } self.parts.wpn_fps_sho_saiga_b_short.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_sho_saiga_b_short/wpn_third_sho_saiga_b_short" self.parts.wpn_fps_sho_saiga_fg_holy.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_sho_saiga_fg_holy/wpn_third_sho_saiga_fg_holy" self.parts.wpn_fps_upg_o_45rds.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_o_45rds/wpn_third_upg_o_45rds" self.parts.wpn_fps_upg_o_spot.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_o_spot/wpn_third_upg_o_spot" self.parts.wpn_fps_upg_o_box.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_o_box/wpn_third_upg_o_box" self.parts.wpn_fps_upg_g36_fg_long.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_fg_long/wpn_third_upg_g36_fg_long" self.parts.wpn_fps_smg_mp5_fg_flash.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_mp5_fg_flash/wpn_third_smg_mp5_fg_flash" self.parts.wpn_fps_smg_mp5_s_folding.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_mp5_s_folding/wpn_third_smg_mp5_s_folding" self.parts.wpn_fps_upg_ns_duck.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_upg_ns_duck/wpn_third_upg_ns_duck" self.parts.wpn_fps_pis_usp_m_big.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_pis_usp_m_big/wpn_third_pis_usp_m_big" self.parts.wpn_fps_pis_1911_m_big.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_pis_1911_m_big/wpn_third_pis_1911_m_big" self.parts.wpn_fps_smg_p90_m_strap.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_p90_m_strap/wpn_third_smg_p90_m_strap" self.parts.wpn_fps_ass_aug_m_quick.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_aug_m_quick/wpn_third_ass_aug_m_quick" self.parts.wpn_fps_m4_upg_m_quick.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_olympic_m_quick/wpn_third_m4_upg_m_quick" self.parts.wpn_fps_upg_ak_m_quick.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_ak_m_quick/wpn_third_upg_ak_m_quick" self.parts.wpn_fps_ass_g36_m_quick.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_ass_g36_m_quick/wpn_third_ass_g36_m_quick" self.parts.wpn_fps_smg_mac10_m_quick.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_mac10_m_quick/wpn_third_smg_mac10_m_quick" self.parts.wpn_fps_smg_sr2_m_quick.third_unit = "units/pd2_dlc_tng/weapons/wpn_fps_smg_sr2_m_quick/wpn_third_smg_sr2_m_quick" end function WeaponFactoryTweakData:_init_arbiter() self.parts.wpn_fps_gre_arbiter_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_arbiter_b_standard", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_b_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_b_long = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "barrel", a_obj = "a_b", dlc = "tango", name_id = "bm_wp_arbiter_b_long", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_b_long", pcs = {}, stats = { spread = 1, recoil = 1, value = 1, concealment = -2 } } self.parts.wpn_fps_gre_arbiter_b_comp = { is_a_unlockable = true, texture_bundle_folder = "tng", type = "barrel", a_obj = "a_b", dlc = "tango", name_id = "bm_wp_arbiter_b_comp", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_b_comp", pcs = {}, stats = { spread = -1, recoil = -1, value = 1, concealment = 2 } } self.parts.wpn_fps_gre_arbiter_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_body_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_l85a2_fg_medium", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_mp5_s_folding", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_s_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_bolt = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_mp5_s_folding", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_bolt", stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_charginghandle = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_mp5_s_folding", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_charginghandle", stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_ejector = { a_obj = "a_ejector", type = "extra", name_id = "bm_wp_mp5_s_folding", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_ejector", stats = { value = 1 } } self.parts.wpn_fps_gre_arbiter_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_mp5_s_folding", unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter_pts/wpn_fps_gre_arbiter_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_gre_arbiter_b_comp.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_b_comp" self.parts.wpn_fps_gre_arbiter_b_long.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_b_long" self.parts.wpn_fps_gre_arbiter_b_standard.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_b_standard" self.parts.wpn_fps_gre_arbiter_body_standard.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_body_standard" self.parts.wpn_fps_gre_arbiter_m_standard.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_m_standard" self.parts.wpn_fps_gre_arbiter_s_standard.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_s_standard" self.parts.wpn_fps_gre_arbiter_bolt.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_bolt" self.parts.wpn_fps_gre_arbiter_charginghandle.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_charginghandle" self.parts.wpn_fps_gre_arbiter_ejector.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_ejector" self.parts.wpn_fps_gre_arbiter_o_standard.third_unit = "units/pd2_dlc_tng/weapons/wpn_third_gre_arbiter_pts/wpn_third_gre_arbiter_o_standard" self.wpn_fps_gre_arbiter = { unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter/wpn_fps_gre_arbiter", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil_zoom", fire = "recoil" }, stock_adapter = "wpn_fps_gre_arbiter_stock_adapter", forbids = { "wpn_fps_addon_ris" }, adds = {}, default_blueprint = { "wpn_fps_gre_arbiter_b_standard", "wpn_fps_gre_arbiter_body_standard", "wpn_fps_gre_arbiter_m_standard", "wpn_fps_gre_arbiter_s_standard", "wpn_fps_gre_arbiter_bolt", "wpn_fps_gre_arbiter_charginghandle", "wpn_fps_gre_arbiter_ejector", "wpn_fps_gre_arbiter_o_standard" }, uses_parts = { "wpn_fps_gre_arbiter_b_comp", "wpn_fps_gre_arbiter_b_long", "wpn_fps_gre_arbiter_b_standard", "wpn_fps_gre_arbiter_body_standard", "wpn_fps_gre_arbiter_m_standard", "wpn_fps_gre_arbiter_s_standard", "wpn_fps_gre_arbiter_bolt", "wpn_fps_gre_arbiter_charginghandle", "wpn_fps_gre_arbiter_ejector", "wpn_fps_gre_arbiter_o_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_gre_arbiter_npc = deep_clone(self.wpn_fps_gre_arbiter) self.wpn_fps_gre_arbiter_npc.unit = "units/pd2_dlc_tng/weapons/wpn_fps_gre_arbiter/wpn_fps_gre_arbiter_npc" end function WeaponFactoryTweakData:_init_contraband() self.parts.wpn_fps_ass_contraband_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_contraband_b_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_body_standard = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_contraband_body_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_body_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_contraband_dh_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_contraband_fg_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_contraband_g_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_g_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_gl_m203 = { type = "underbarrel", a_obj = "a_gl", sub_type = "grenade_launcher", name_id = "bm_wp_contraband_gl_m203", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_gl_m203", bullet_objects = { amount = 1, prefix = "g_grenade_" }, stats = { value = 1 }, animations = { bipod_reload = "reload_ul" }, perks = { "underbarrel" } } self.parts.wpn_fps_ass_contraband_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_contraband_m_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_contraband_ns_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_contraband_o_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2" } } self.parts.wpn_fps_ass_contraband_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_contraband_s_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_s_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_bolt_standard = { a_obj = "a_bolt", type = "extra", name_id = "bm_wp_contraband_s_standard", unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband_pts/wpn_fps_ass_contraband_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_contraband_b_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_b_standard" self.parts.wpn_fps_ass_contraband_body_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_body_standard" self.parts.wpn_fps_ass_contraband_dh_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_dh_standard" self.parts.wpn_fps_ass_contraband_fg_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_fg_standard" self.parts.wpn_fps_ass_contraband_g_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_g_standard" self.parts.wpn_fps_ass_contraband_gl_m203.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_gl_m203" self.parts.wpn_fps_ass_contraband_m_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_m_standard" self.parts.wpn_fps_ass_contraband_ns_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_ns_standard" self.parts.wpn_fps_ass_contraband_o_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_o_standard" self.parts.wpn_fps_ass_contraband_s_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_s_standard" self.parts.wpn_fps_ass_contraband_bolt_standard.third_unit = "units/pd2_dlc_chico/weapons/wpn_third_ass_contraband_pts/wpn_third_ass_contraband_bolt_standard" self.wpn_fps_ass_contraband = { unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband/wpn_fps_ass_contraband", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", bipod_reload = "bipod_reload", bipod_fire = "bipod_recoil", reload = "reload", bipod_fire_steelsight = "bipod_recoil_zoom" }, forbids = { "wpn_fps_addon_ris" }, adds = {}, default_blueprint = { "wpn_fps_ass_contraband_b_standard", "wpn_fps_ass_contraband_body_standard", "wpn_fps_ass_contraband_dh_standard", "wpn_fps_ass_contraband_fg_standard", "wpn_fps_ass_contraband_g_standard", "wpn_fps_ass_contraband_gl_m203", "wpn_fps_ass_contraband_m_standard", "wpn_fps_ass_contraband_ns_standard", "wpn_fps_ass_contraband_o_standard", "wpn_fps_ass_contraband_s_standard", "wpn_fps_ass_contraband_bolt_standard" }, uses_parts = { "wpn_fps_ass_contraband_b_standard", "wpn_fps_ass_contraband_body_standard", "wpn_fps_ass_contraband_dh_standard", "wpn_fps_ass_contraband_fg_standard", "wpn_fps_ass_contraband_g_standard", "wpn_fps_ass_contraband_gl_m203", "wpn_fps_ass_contraband_m_standard", "wpn_fps_ass_contraband_ns_standard", "wpn_fps_ass_contraband_o_standard", "wpn_fps_ass_contraband_s_standard", "wpn_fps_ass_contraband_bolt_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_contraband_npc = deep_clone(self.wpn_fps_ass_contraband) self.wpn_fps_ass_contraband_npc.unit = "units/pd2_dlc_chico/weapons/wpn_fps_ass_contraband/wpn_fps_ass_contraband_npc" end function WeaponFactoryTweakData:_init_ray() self.parts.wpn_fps_gre_ray_body = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_body", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_bolt = { a_obj = "a_bolt", type = "upper_reciever", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_bolt", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_magazine = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_magazine", bullet_objects = { amount = 4, prefix = "g_rocket_" }, stats = { value = 1 } } self.parts.wpn_fps_gre_ray_magazine_handle = { a_obj = "a_handle", type = "foregrip", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_magazine_handle", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_ring_back = { a_obj = "a_ring_back", type = "grip", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_ring_back", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_ring_front = { a_obj = "a_ring_front", type = "stock", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_ring_front", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_sight = { a_obj = "a_o", type = "sight", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_sight", stats = { value = 1 }, material_parameters = { sight = { { id = Idstring("holo_reticle_scale"), value = Vector3(0.2, 1.5, 40), condition = function () return not _G.IS_VR end }, { id = Idstring("holo_reticle_scale"), value = Vector3(0.2, 1, 20), condition = function () return _G.IS_VR end } } } } self.parts.wpn_fps_gre_ray_sight_lid = { a_obj = "a_lid", type = "drag_handle", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_sight_lid", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_barrel = { a_obj = "a_body", type = "barrel", name_id = "bm_wp_gre_ray_body", unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray_pts/wpn_fps_gre_ray_barrel", stats = { value = 1 } } self.parts.wpn_fps_gre_ray_body.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_body" self.parts.wpn_fps_gre_ray_bolt.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_bolt" self.parts.wpn_fps_gre_ray_magazine.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_magazine" self.parts.wpn_fps_gre_ray_magazine_handle.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_magazine_handle" self.parts.wpn_fps_gre_ray_ring_back.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_ring_back" self.parts.wpn_fps_gre_ray_ring_front.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_ring_front" self.parts.wpn_fps_gre_ray_sight.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_sight" self.parts.wpn_fps_gre_ray_sight_lid.third_unit = "units/pd2_dlc_friend/weapons/wpn_third_gre_ray_pts/wpn_third_gre_ray_sight_lid" self.wpn_fps_gre_ray = { unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray/wpn_fps_gre_ray", animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil_zoom", fire = "recoil" }, default_blueprint = { "wpn_fps_gre_ray_body", "wpn_fps_gre_ray_bolt", "wpn_fps_gre_ray_magazine", "wpn_fps_gre_ray_magazine_handle", "wpn_fps_gre_ray_ring_back", "wpn_fps_gre_ray_ring_front", "wpn_fps_gre_ray_sight", "wpn_fps_gre_ray_sight_lid", "wpn_fps_gre_ray_barrel" }, uses_parts = { "wpn_fps_gre_ray_body", "wpn_fps_gre_ray_bolt", "wpn_fps_gre_ray_magazine", "wpn_fps_gre_ray_magazine_handle", "wpn_fps_gre_ray_ring_back", "wpn_fps_gre_ray_ring_front", "wpn_fps_gre_ray_sight", "wpn_fps_gre_ray_sight_lid", "wpn_fps_gre_ray_barrel" } } self.wpn_fps_gre_ray_npc = deep_clone(self.wpn_fps_gre_ray) self.wpn_fps_gre_ray_npc.unit = "units/pd2_dlc_friend/weapons/wpn_fps_gre_ray/wpn_fps_gre_ray_npc" end function WeaponFactoryTweakData:_init_tti() self.parts.wpn_fps_snp_tti_body_standard = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_tti_body_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_body_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_vg_standard = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_vg_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_s_vltor = { texture_bundle_folder = "spa", type = "stock", a_obj = "a_s", dlc = "spa", name_id = "bm_wp_tti_s_vltor", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_s_vltor", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 }, adds_type = { "stock_adapter" } } self.parts.wpn_fps_snp_tti_ns_standard = { a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_ns_hex = { type = "barrel_ext", texture_bundle_folder = "spa", dlc = "spa", a_obj = "a_ns", sub_type = "silencer", name_id = "bm_wp_tti_ns_hex", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_ns_hex", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, spread_moving = 1, damage = -2, suppression = 12, value = 1, recoil = 1, concealment = -2 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_a" } } self.parts.wpn_fps_snp_tti_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_m_standard", bullet_objects = { amount = 20, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_snp_tti_g_grippy = { texture_bundle_folder = "spa", dlc = "spa", type = "grip", name_id = "bm_wp_tti_g_grippy", a_obj = "a_g", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_g_grippy", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_snp_tti_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_dhs_switch = { a_obj = "a_dhs", type = "switch", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_dhs_switch", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_bolt_standard = { a_obj = "a_bolt", type = "bolt", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_body_receiverupper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_body_receiverupper", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_body_receiverlower = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_body_receiverlower", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_tti_vg_standard", unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti_pts/wpn_fps_snp_tti_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_tti_body_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_body_standard" self.parts.wpn_fps_snp_tti_vg_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_vg_standard" self.parts.wpn_fps_snp_tti_s_vltor.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_s_vltor" self.parts.wpn_fps_snp_tti_ns_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_ns_standard" self.parts.wpn_fps_snp_tti_ns_hex.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_ns_hex" self.parts.wpn_fps_snp_tti_m_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_m_standard" self.parts.wpn_fps_snp_tti_g_grippy.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_g_grippy" self.parts.wpn_fps_snp_tti_fg_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_fg_standard" self.parts.wpn_fps_snp_tti_dhs_switch.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_dhs_switch" self.parts.wpn_fps_snp_tti_dh_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_dh_standard" self.parts.wpn_fps_snp_tti_bolt_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_bolt_standard" self.parts.wpn_fps_snp_tti_body_receiverupper.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_body_receiverupper" self.parts.wpn_fps_snp_tti_body_receiverlower.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_body_receiverlower" self.parts.wpn_fps_snp_tti_b_standard.third_unit = "units/pd2_dlc_spa/weapons/wpn_third_snp_tti_pts/wpn_third_snp_tti_b_standard" self.wpn_fps_snp_tti = { unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti/wpn_fps_snp_tti", optional_types = { "gadget", "sight" }, stock_adapter = "wpn_fps_upg_m4_s_adapter", animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, default_blueprint = { "wpn_fps_snp_tti_vg_standard", "wpn_fps_snp_tti_ns_standard", "wpn_fps_snp_tti_m_standard", "wpn_fps_snp_tti_fg_standard", "wpn_fps_snp_tti_dhs_switch", "wpn_fps_snp_tti_dh_standard", "wpn_fps_snp_tti_bolt_standard", "wpn_fps_snp_tti_body_receiverupper", "wpn_fps_snp_tti_body_receiverlower", "wpn_fps_snp_tti_b_standard", "wpn_fps_upg_o_shortdot", "wpn_fps_ass_contraband_s_standard", "wpn_fps_upg_m4_g_standard_vanilla" }, uses_parts = { "wpn_fps_snp_tti_vg_standard", "wpn_fps_snp_tti_s_vltor", "wpn_fps_snp_tti_ns_standard", "wpn_fps_snp_tti_ns_hex", "wpn_fps_snp_tti_m_standard", "wpn_fps_snp_tti_g_grippy", "wpn_fps_snp_tti_fg_standard", "wpn_fps_snp_tti_dhs_switch", "wpn_fps_snp_tti_dh_standard", "wpn_fps_snp_tti_bolt_standard", "wpn_fps_snp_tti_body_receiverupper", "wpn_fps_snp_tti_body_receiverlower", "wpn_fps_snp_tti_b_standard", "wpn_fps_ass_contraband_s_standard", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_m4_uupg_s_fold", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_m4_s_adapter", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_tti_npc = deep_clone(self.wpn_fps_snp_tti) self.wpn_fps_snp_tti_npc.unit = "units/pd2_dlc_spa/weapons/wpn_fps_snp_tti/wpn_fps_snp_tti_npc" end function WeaponFactoryTweakData:_init_siltstone() self.parts.wpn_fps_snp_siltstone_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_b_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_b_silenced = { type = "barrel", texture_bundle_folder = "grv", dlc = "grv", a_obj = "a_b", sub_type = "silencer", name_id = "bm_wp_siltstone_b_silenced", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_b_silenced", pcs = { 10, 20, 30, 40 }, stats = { alert_size = 12, value = 6, damage = -2, suppression = 12, spread = -1, recoil = 1, spread_moving = 1 }, perks = { "silencer" }, sound_switch = { suppressed = "suppressed_c" } } self.parts.wpn_fps_snp_siltstone_ns_variation_b = { texture_bundle_folder = "grv", dlc = "grv", type = "barrel", name_id = "bm_wp_siltstone_ns_variation_b", a_obj = "a_b", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_ns_variation_b", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, spread = 2 } } self.parts.wpn_fps_snp_siltstone_body_receiver = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_body_receiver", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_ejector = { a_obj = "a_m_release", type = "extra", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_ejector", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_fg_polymer = { texture_bundle_folder = "grv", dlc = "grv", type = "foregrip", name_id = "bm_wp_siltstone_fg_polymer", a_obj = "a_fg", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_fg_polymer", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -2, concealment = 4 } } self.parts.wpn_fps_snp_siltstone_fg_wood = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_fg_wood", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_o_scopemount = { a_obj = "a_o", type = "extra", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_o_scopemount", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_iron_sight = { type = "sight", texture_bundle_folder = "grv", a_obj = "a_o", dlc = "grv", name_id = "bm_wp_siltstone_iron_sight", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_iron_sight", pcs = { 10, 20, 30, 40 }, stats = { value = 1 }, forbids = { "wpn_fps_upg_o_45iron", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_snp_siltstone_s_polymer = { texture_bundle_folder = "grv", dlc = "grv", type = "stock", name_id = "bm_wp_siltstone_s_polymer", a_obj = "a_s", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_s_polymer", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -2, concealment = 3 } } self.parts.wpn_fps_snp_siltstone_s_wood = { a_obj = "a_s", type = "stock", name_id = "bm_wp_siltstone_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_fps_snp_siltstone_s_wood", stats = { value = 1 } } self.parts.wpn_fps_snp_siltstone_b_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_b_standard" self.parts.wpn_fps_snp_siltstone_b_silenced.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_b_silenced" self.parts.wpn_fps_snp_siltstone_body_receiver.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_body_receiver" self.parts.wpn_fps_snp_siltstone_dh_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_dh_standard" self.parts.wpn_fps_snp_siltstone_ejector.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_ejector" self.parts.wpn_fps_snp_siltstone_fg_polymer.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_fg_polymer" self.parts.wpn_fps_snp_siltstone_fg_wood.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_fg_wood" self.parts.wpn_fps_snp_siltstone_m_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_m_standard" self.parts.wpn_fps_snp_siltstone_ns_variation_b.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_ns_variation_b" self.parts.wpn_fps_snp_siltstone_o_scopemount.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_o_scopemount" self.parts.wpn_fps_snp_siltstone_s_polymer.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_s_polymer" self.parts.wpn_fps_snp_siltstone_s_wood.third_unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone_pts/wpn_third_snp_siltstone_s_wood" self.wpn_fps_snp_siltstone = { unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone/wpn_fps_snp_siltstone", optional_types = { "gadget", "sight" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_docter = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_eotech = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_t1micro = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_cmore = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_acog = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_cs = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_reflex = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_rx01 = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_rx30 = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_box = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_leupold = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_shortdot = { "wpn_fps_snp_siltstone_o_scopemount" }, wpn_fps_upg_o_spot = { "wpn_fps_snp_siltstone_o_scopemount" } }, default_blueprint = { "wpn_fps_snp_siltstone_b_standard", "wpn_fps_snp_siltstone_body_receiver", "wpn_fps_snp_siltstone_dh_standard", "wpn_fps_snp_siltstone_ejector", "wpn_fps_snp_siltstone_fg_wood", "wpn_fps_snp_siltstone_m_standard", "wpn_fps_snp_siltstone_s_wood", "wpn_fps_upg_o_shortdot" }, uses_parts = { "wpn_fps_snp_siltstone_b_standard", "wpn_fps_snp_siltstone_b_silenced", "wpn_fps_snp_siltstone_body_receiver", "wpn_fps_snp_siltstone_dh_standard", "wpn_fps_snp_siltstone_ejector", "wpn_fps_snp_siltstone_fg_polymer", "wpn_fps_snp_siltstone_fg_wood", "wpn_fps_snp_siltstone_m_standard", "wpn_fps_snp_siltstone_ns_variation_b", "wpn_fps_snp_siltstone_o_scopemount", "wpn_fps_snp_siltstone_s_polymer", "wpn_fps_snp_siltstone_s_wood", "wpn_fps_snp_siltstone_iron_sight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_shortdot", "wpn_fps_upg_o_leupold", "wpn_fps_upg_o_45iron", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_box", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_snp_siltstone_npc = deep_clone(self.wpn_fps_snp_siltstone) self.wpn_fps_snp_siltstone_npc.unit = "units/pd2_dlc_grv/weapons/wpn_fps_snp_siltstone/wpn_fps_snp_siltstone_npc" end function WeaponFactoryTweakData:_init_flint() self.parts.wpn_fps_ass_flint_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_flint_b_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_body_upperreceiver = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_flint_body_upperreceiver", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_body_receiver", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_flint_dh_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_flint_fg_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_fg_standard", stats = { value = 1 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_flint_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_flint_g_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_g_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_m_release_standard = { a_obj = "a_m_release", type = "extra", name_id = "bm_wp_flint_m_release_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_m_release_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_flint_m_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_ass_flint_ns_standard = { a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_flint_ns_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_flint_o_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2", "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_ass_flint_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_flint_s_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_s_standard", stats = { value = 1 } } self.parts.wpn_fps_snp_flint_s_adapter = { a_obj = "a_s", type = "stock_adapter", name_id = "bm_wp_flint_s_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint_pts/wpn_fps_ass_flint_s_adapter", stats = { value = 1 } } self.parts.wpn_fps_ass_flint_b_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_b_standard" self.parts.wpn_fps_ass_flint_body_upperreceiver.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_body_receiver" self.parts.wpn_fps_ass_flint_dh_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_dh_standard" self.parts.wpn_fps_ass_flint_fg_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_fg_standard" self.parts.wpn_fps_ass_flint_g_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_g_standard" self.parts.wpn_fps_ass_flint_m_release_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_m_release_standard" self.parts.wpn_fps_ass_flint_m_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_m_standard" self.parts.wpn_fps_ass_flint_ns_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_ns_standard" self.parts.wpn_fps_ass_flint_o_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_o_standard" self.parts.wpn_fps_ass_flint_s_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_ass_flint_pts/wpn_third_ass_flint_s_standard" self.wpn_fps_ass_flint = { unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint/wpn_fps_ass_flint", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, stock_adapter = "wpn_fps_snp_flint_s_adapter", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, default_blueprint = { "wpn_fps_ass_flint_b_standard", "wpn_fps_ass_flint_body_upperreceiver", "wpn_fps_ass_flint_m_standard", "wpn_fps_ass_flint_fg_standard", "wpn_fps_ass_flint_dh_standard", "wpn_fps_ass_flint_ns_standard", "wpn_fps_ass_flint_o_standard", "wpn_fps_ass_flint_s_standard", "wpn_fps_ass_flint_g_standard", "wpn_fps_ass_flint_m_release_standard" }, uses_parts = { "wpn_fps_ass_flint_b_standard", "wpn_fps_ass_flint_body_upperreceiver", "wpn_fps_ass_flint_m_standard", "wpn_fps_ass_flint_m_release_standard", "wpn_fps_ass_flint_fg_standard", "wpn_fps_ass_flint_dh_standard", "wpn_fps_ass_flint_ns_standard", "wpn_fps_ass_flint_o_standard", "wpn_fps_ass_flint_s_standard", "wpn_fps_ass_flint_g_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_ns_ak105", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_ak_m_quad", "wpn_fps_upg_ak_m_uspalm", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_45rds", "wpn_fps_upg_ak_m_quick", "wpn_fps_snp_tti_s_vltor", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_flint_npc = deep_clone(self.wpn_fps_ass_flint) self.wpn_fps_ass_flint_npc.unit = "units/pd2_dlc_grv/weapons/wpn_fps_ass_flint/wpn_fps_ass_flint_npc" end function WeaponFactoryTweakData:_init_coal() self.parts.wpn_fps_smg_coal_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_coal_b_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_body_standard = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_coal_body_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_body_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_coal_dh_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_coal_fg_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_coal_g_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_coal_m_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_coal_mr_standard = { a_obj = "a_mr", type = "extra", name_id = "bm_wp_coal_m_release_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_mr_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_ns_standard = { a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_coal_ns_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_coal_s_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_o_scopemount_standard = { a_obj = "a_o", type = "extra", name_id = "bm_wp_coal_o_scopemount_standard", unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal_pts/wpn_fps_smg_coal_o_scopemount_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_coal_b_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_b_standard" self.parts.wpn_fps_smg_coal_body_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_body_standard" self.parts.wpn_fps_smg_coal_dh_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_dh_standard" self.parts.wpn_fps_smg_coal_fg_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_fg_standard" self.parts.wpn_fps_smg_coal_g_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_g_standard" self.parts.wpn_fps_smg_coal_m_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_m_standard" self.parts.wpn_fps_smg_coal_mr_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_mr_standard" self.parts.wpn_fps_smg_coal_ns_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_ns_standard" self.parts.wpn_fps_smg_coal_s_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_s_standard" self.parts.wpn_fps_smg_coal_o_scopemount_standard.third_unit = "units/pd2_dlc_grv/weapons/wpn_third_smg_coal_pts/wpn_third_smg_coal_o_scopemount_standard" self.wpn_fps_smg_coal = { unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal/wpn_fps_smg_coal", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_coal_o_scopemount_standard" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_coal_o_scopemount_standard" } }, default_blueprint = { "wpn_fps_smg_coal_b_standard", "wpn_fps_smg_coal_body_standard", "wpn_fps_smg_coal_m_standard", "wpn_fps_smg_coal_fg_standard", "wpn_fps_smg_coal_dh_standard", "wpn_fps_smg_coal_ns_standard", "wpn_fps_smg_coal_s_standard", "wpn_fps_smg_coal_g_standard", "wpn_fps_smg_coal_mr_standard" }, uses_parts = { "wpn_fps_smg_coal_b_standard", "wpn_fps_smg_coal_body_standard", "wpn_fps_smg_coal_fg_standard", "wpn_fps_smg_coal_g_standard", "wpn_fps_smg_coal_dh_standard", "wpn_fps_smg_coal_ns_standard", "wpn_fps_smg_coal_s_standard", "wpn_fps_smg_coal_m_standard", "wpn_fps_smg_coal_mr_standard", "wpn_fps_smg_coal_o_scopemount_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ak_ns_ak105", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_ak_g_rk3", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_coal_npc = deep_clone(self.wpn_fps_smg_coal) self.wpn_fps_smg_coal_npc.unit = "units/pd2_dlc_grv/weapons/wpn_fps_smg_coal/wpn_fps_smg_coal_npc" end function WeaponFactoryTweakData:_init_varmods() self.parts.wpn_fps_upg_o_xpsg33_magnifier = { a_obj = "a_magnifier", texture_bundle_folder = "flip", depends_on = "sight", type = "gadget", parent = "sight", sub_type = "second_sight", name_id = "bm_wpn_fps_upg_o_xpsg33_magnifier", unit = "units/pd2_dlc_flip/weapons/wpn_fps_upg_o_xpsg33/wpn_fps_upg_o_xpsg33_magnifier", pcs = { 10, 20, 30, 40 }, stats = { value = 1, gadget_zoom = 9, recoil = 1 }, perks = { "gadget" }, stance_mod = { wpn_fps_ass_m4 = { translation = Vector3(0, 6, -0.58) }, wpn_fps_ass_amcar = { translation = Vector3(0, 6, -0.1) }, wpn_fps_ass_m16 = { translation = Vector3(0, 6, -0.12) }, wpn_fps_smg_olympic = { translation = Vector3(0, 6, -0.12) }, wpn_fps_ass_74 = { translation = Vector3(0, 6, -3.1) }, wpn_fps_ass_akm = { translation = Vector3(0, 6, -3.2) }, wpn_fps_ass_akm_gold = { translation = Vector3(0, 6, -3.2) }, wpn_fps_shot_saiga = { translation = Vector3(0, 6, -3) }, wpn_fps_shot_r870 = { translation = Vector3(0.01, 6, -3.3) }, wpn_fps_shot_serbu = { translation = Vector3(0, 6, -3.3) }, wpn_fps_smg_akmsu = { translation = Vector3(-0.028, 6, -3.35) }, wpn_fps_ass_ak5 = { translation = Vector3(0, 0, -3.5) }, wpn_fps_ass_aug = { translation = Vector3(0, 6, -2.8) }, wpn_fps_ass_g36 = { translation = Vector3(0, 6, -3) }, wpn_fps_smg_p90 = { translation = Vector3(0, 6, -2.97) }, wpn_fps_ass_m14 = { translation = Vector3(-0.04, 6, -3.87) }, wpn_fps_smg_mp9 = { translation = Vector3(0, 6, -3.47) }, wpn_fps_smg_mp5 = { translation = Vector3(0, 6, -3) }, wpn_fps_smg_mac10 = { translation = Vector3(0, -4, -3.1) }, wpn_fps_ass_s552 = { translation = Vector3(-0.08, 6, -2.1) }, wpn_fps_smg_m45 = { translation = Vector3(0, 6, -3.9) }, wpn_fps_smg_mp7 = { translation = Vector3(0, 6, -2.8) }, wpn_fps_ass_scar = { translation = Vector3(0, 6, -0.25) }, wpn_fps_pis_rage = { translation = Vector3(-0.05, -4, -4.65) }, wpn_fps_pis_deagle = { translation = Vector3(0, -9, -4.25), rotation = Rotation(0, -0.5, 0) }, wpn_fps_snp_m95 = { translation = Vector3(0, 10, -3.8) }, wpn_fps_snp_msr = { translation = Vector3(0, -1, -3.55) }, wpn_fps_snp_r93 = { translation = Vector3(-0.022, -1, -3.782) }, wpn_fps_ass_fal = { translation = Vector3(0, 10, -3.5) }, wpn_fps_sho_ben = { translation = Vector3(0, 6, -3.2) }, wpn_fps_sho_striker = { translation = Vector3(0, 6, -2.8) }, wpn_fps_sho_ksg = { translation = Vector3(0, 6, -1.3) }, wpn_fps_smg_scorpion = { translation = Vector3(0, -4, -5.2) }, wpn_fps_smg_tec9 = { translation = Vector3(0, -2, -5), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_uzi = { translation = Vector3(0, -2, -5.1) }, wpn_fps_pis_judge = { translation = Vector3(-0.02, -4, -5.406) }, wpn_fps_ass_g3 = { translation = Vector3(0.025, -2, -3.42) }, wpn_fps_ass_galil = { translation = Vector3(-0.01, 1, -3.25) }, wpn_fps_ass_famas = { translation = Vector3(0, 13, -6.2) }, wpn_fps_sho_spas12 = { translation = Vector3(-0.2, 6, -3.9) }, wpn_fps_smg_sterling = { translation = Vector3(0, -8, -3.61) }, wpn_fps_snp_mosin = { translation = Vector3(0, -22, -4.3) }, wpn_fps_smg_thompson = { translation = Vector3(0, -18, -4.2) }, wpn_fps_ass_l85a2 = { translation = Vector3(0, 12, 1.85) }, wpn_fps_ass_vhs = { translation = Vector3(-0.01, 3, -1.205) }, wpn_fps_rpg7 = { translation = Vector3(0, 11, 0.04), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_aa12 = { translation = Vector3(-0.01, 6, 0.07), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_m32 = { translation = Vector3(0, 11, -3.5), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_polymer = { translation = Vector3(0, 8, -0.65), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_wa2000 = { translation = Vector3(0, -4, 0.75), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_model70 = { translation = Vector3(0, -4, -4.05), rotation = Rotation(0, 0, 0) }, wpn_fps_shot_m37 = { translation = Vector3(0, -4, -4.05), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_sr2 = { translation = Vector3(0, 11, -4.6), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_tecci = { translation = Vector3(-0.01, 11, -1.7), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_hajk = { translation = Vector3(0, 11, -0.5), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_desertfox = { translation = Vector3(0, -6, -3.9), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_schakal = { translation = Vector3(0, 6, -2.8), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_rota = { translation = Vector3(0, 6, -0.4), rotation = Rotation(0, 0, 0) }, wpn_fps_gre_arbiter = { translation = Vector3(0, 6, -0.4), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_contraband = { translation = Vector3(-0.01, 11, -1.7), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_tti = { translation = Vector3(0, 11, -0.1), rotation = Rotation(0, 0, 0) }, wpn_fps_snp_siltstone = { translation = Vector3(0, 11, -4.04), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_flint = { translation = Vector3(0, 11, -2.65), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_coal = { translation = Vector3(0, 11, -4), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_ching = { translation = Vector3(0, 11, -2.8), rotation = Rotation(0, 0, 0) }, wpn_fps_sho_basset = { translation = Vector3(0, 11, -0.68), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_corgi = { translation = Vector3(0, 0, -2.3), rotation = Rotation(0, 0, 0) }, wpn_fps_smg_shepheard = { translation = Vector3(0, 5, -0.45), rotation = Rotation(0, 0, 0) }, wpn_fps_ass_komodo = { translation = Vector3(0, 15, 0), rotation = Rotation(0, 0, 0) } }, visibility = { { condition = function (self, part, npc) return _G.IS_VR and not npc end, objects = { g_vr_lens = true, g_vr_phong = true, g_glass = false, g_screen = true, g_vr_g33 = true } } }, camera = { a_camera = "a_camera", material = "screen", fov = 13, a_screen = "g_screen", channel = "macrodetail_diffuse_texture" } } self.parts.wpn_fps_upg_o_45rds_v2 = { type = "gadget", texture_bundle_folder = "flip", a_obj = "a_o", depends_on = "sight", sub_type = "second_sight", name_id = "bm_wpn_fps_upg_o_45rds_v2", unit = "units/pd2_dlc_flip/weapons/wpn_fps_upg_o_45rds_v2/wpn_fps_upg_o_45rds_v2", pcs = { 10, 20, 30, 40 }, stats = { value = 1, gadget_zoom = 1, recoil = 1 }, perks = { "gadget" }, stance_mod = deep_clone(self.parts.wpn_fps_upg_o_45rds.stance_mod), texture_switch = { material = "gfx_reddot1", channel = "diffuse_texture" }, material_parameters = deep_clone(self.parts.wpn_fps_upg_o_specter.material_parameters) } self.parts.wpn_fps_upg_o_xpsg33_magnifier.third_unit = "units/pd2_dlc_flip/weapons/wpn_fps_upg_o_xpsg33/wpn_third_upg_o_xpsg33_magnifier" self.parts.wpn_fps_upg_o_45rds_v2.third_unit = "units/pd2_dlc_flip/weapons/wpn_fps_upg_o_45rds_v2/wpn_third_upg_o_45rds_v2" end function WeaponFactoryTweakData:_init_lemming() self.parts.wpn_fps_pis_lemming_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_lemming_b_standard", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_lemming_b_nitride = { texture_bundle_folder = "fi7", dlc = "pd2_clan", type = "barrel", name_id = "bm_wp_lemming_b_nitride", a_obj = "a_b", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_b_nitride", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = 1, value = 3 } } self.parts.wpn_fps_pis_lemming_body = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_lemming_b_standard", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_body", stats = { value = 1 } } self.parts.wpn_fps_pis_lemming_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_lemming_b_standard", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_m_standard", bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_lemming_m_ext = { type = "magazine", texture_bundle_folder = "fi7", a_obj = "a_m", dlc = "pd2_clan", name_id = "bm_wp_lemming_m_ext", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_m_ext", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 3, prefix = "g_bullet_" }, stats = { value = 1, extra_ammo = 2 } } self.parts.wpn_fps_pis_lemming_mag_release = { a_obj = "a_mag_release", type = "extra", name_id = "bm_wp_lemming_b_standard", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_mag_release", stats = { value = 1 } } self.parts.wpn_fps_pis_lemming_sl_standard = { a_obj = "a_sl", type = "slide", name_id = "bm_wp_lemming_b_standard", unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_fps_pis_lemming_sl_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_lemming_b_standard.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_b_standard" self.parts.wpn_fps_pis_lemming_b_nitride.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_b_nitride" self.parts.wpn_fps_pis_lemming_body.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_body" self.parts.wpn_fps_pis_lemming_m_standard.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_m_standard" self.parts.wpn_fps_pis_lemming_m_ext.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_m_ext" self.parts.wpn_fps_pis_lemming_mag_release.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_mag_release" self.parts.wpn_fps_pis_lemming_sl_standard.third_unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming_pts/wpn_third_pis_lemming_sl_standard" self.wpn_fps_pis_lemming = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming/wpn_fps_pis_lemming", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_lemming_b_standard", "wpn_fps_pis_lemming_body", "wpn_fps_pis_lemming_m_standard", "wpn_fps_pis_lemming_mag_release", "wpn_fps_pis_lemming_sl_standard" }, uses_parts = { "wpn_fps_pis_lemming_b_standard", "wpn_fps_pis_lemming_b_nitride", "wpn_fps_pis_lemming_body", "wpn_fps_pis_lemming_m_standard", "wpn_fps_pis_lemming_m_ext", "wpn_fps_pis_lemming_mag_release", "wpn_fps_pis_lemming_sl_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_lemming_npc = deep_clone(self.wpn_fps_pis_lemming) self.wpn_fps_pis_lemming_npc.unit = "units/pd2_dlc_fi7/weapons/wpn_fps_pis_lemming/wpn_fps_pis_lemming_npc" end function WeaponFactoryTweakData:_init_shepheard() self.parts.wpn_fps_smg_shepheard_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_shepard_b_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_body = { a_obj = "a_body", type = "foregrip", name_id = "bm_wp_shepheard_body_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_body", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_body_short = { texture_bundle_folder = "joy", a_obj = "a_body", type = "foregrip", dlc = "pd2_clan", name_id = "bm_wp_shepheard_body_short", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_body_short", pcs = { 10, 20, 30, 40 }, override = { wpn_fps_smg_shepheard_b_standard = { third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_b_short", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_b_short" }, wpn_fps_smg_shepheard_o_standard = { third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_o_short", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_o_short" } }, stats = { concealment = 2, value = 1, spread = -2 } } self.parts.wpn_fps_smg_shepheard_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_shepheard_dh_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_shepheard_g_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_g_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_mag_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_shepheard_m_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_mag_standard", bullet_objects = { amount = 20, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_mag_extended = { type = "magazine", texture_bundle_folder = "joy", a_obj = "a_m", dlc = "pd2_clan", name_id = "bm_wp_shepheard_m_extended", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_mag_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 30, prefix = "g_bullet_" }, stats = { value = 1, extra_ammo = 15 } } self.parts.wpn_fps_smg_shepheard_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_shepheard_ns_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_shepheard_s_standard", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_s_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_s_no = { texture_bundle_folder = "joy", dlc = "pd2_clan", type = "stock", name_id = "bm_wp_shepheard_s_no", a_obj = "a_s", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_s_no", pcs = { 10, 20, 30, 40 }, stats = { concealment = 2, recoil = -2, value = 1 } } self.parts.wpn_fps_smg_shepheard_s_adapter = { a_obj = "a_s", type = "stock_adapter", name_id = "bm_wp_m4_s_adapter", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_s_adapter", stats = { value = 1 } } self.parts.wpn_fps_smg_shepheard_bolt_standard = { name_id = "bm_wp_ak_s_skfoldable", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_bolt_standard", a_obj = "a_bolt", type = "bolt" } self.parts.wpn_fps_smg_shepheard_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_ak_s_skfoldable", unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_fps_smg_shepheard_o_standard", forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_smg_shepheard_b_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_b_standard" self.parts.wpn_fps_smg_shepheard_body.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_body" self.parts.wpn_fps_smg_shepheard_body_short.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_body_short" self.parts.wpn_fps_smg_shepheard_dh_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_dh_standard" self.parts.wpn_fps_smg_shepheard_g_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_g_standard" self.parts.wpn_fps_smg_shepheard_mag_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_mag_standard" self.parts.wpn_fps_smg_shepheard_mag_extended.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_mag_extended" self.parts.wpn_fps_smg_shepheard_ns_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_ns_standard" self.parts.wpn_fps_smg_shepheard_s_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_s_standard" self.parts.wpn_fps_smg_shepheard_s_adapter.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_s_adapter" self.parts.wpn_fps_smg_shepheard_bolt_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_bolt_standard" self.parts.wpn_fps_smg_shepheard_o_standard.third_unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard_pts/wpn_third_smg_shepheard_o_standard" self.wpn_fps_smg_shepheard = { unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard/wpn_fps_smg_shepheard", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, optional_types = { "barrel_ext", "gadget" }, stock_adapter = "wpn_fps_smg_shepheard_s_adapter", default_blueprint = { "wpn_fps_smg_shepheard_b_standard", "wpn_fps_smg_shepheard_body", "wpn_fps_smg_shepheard_mag_standard", "wpn_fps_smg_shepheard_dh_standard", "wpn_fps_smg_shepheard_ns_standard", "wpn_fps_smg_shepheard_s_standard", "wpn_fps_smg_shepheard_g_standard", "wpn_fps_smg_shepheard_bolt_standard", "wpn_fps_smg_shepheard_o_standard" }, uses_parts = { "wpn_fps_smg_shepheard_b_standard", "wpn_fps_smg_shepheard_body", "wpn_fps_smg_shepheard_body_short", "wpn_fps_smg_shepheard_g_standard", "wpn_fps_smg_shepheard_dh_standard", "wpn_fps_smg_shepheard_ns_standard", "wpn_fps_smg_shepheard_s_standard", "wpn_fps_smg_shepheard_s_no", "wpn_fps_smg_shepheard_s_adapter", "wpn_fps_smg_shepheard_mag_standard", "wpn_fps_smg_shepheard_mag_extended", "wpn_fps_smg_shepheard_bolt_standard", "wpn_fps_smg_shepheard_o_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_ns_ak105", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_m4_s_ubr", "wpn_fps_upg_m4_s_crane", "wpn_fps_upg_m4_s_mk46", "wpn_fps_upg_m4_s_standard_vanilla", "wpn_fps_upg_m4_s_pts", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_smg_shepheard_npc = deep_clone(self.wpn_fps_smg_shepheard) self.wpn_fps_smg_shepheard_npc.unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_shepheard/wpn_fps_smg_shepheard_npc" end function WeaponFactoryTweakData:_init_x_shepheard() self.parts.wpn_fps_smg_shepheard_s_no_vanilla = deep_clone(self.parts.wpn_fps_smg_shepheard_s_no) self.parts.wpn_fps_smg_shepheard_s_no_vanilla.stats = nil self.parts.wpn_fps_smg_shepheard_s_no_vanilla.pcs = nil self.wpn_fps_smg_x_shepheard = { unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_x_shepheard/wpn_fps_smg_x_shepheard", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, override = { wpn_fps_smg_shepheard_mag_extended = { stats = { value = 1, extra_ammo = 30 } } }, default_blueprint = { "wpn_fps_smg_shepheard_b_standard", "wpn_fps_smg_shepheard_body", "wpn_fps_smg_shepheard_mag_standard", "wpn_fps_smg_shepheard_dh_standard", "wpn_fps_smg_shepheard_ns_standard", "wpn_fps_smg_shepheard_s_no_vanilla", "wpn_fps_smg_shepheard_g_standard", "wpn_fps_smg_shepheard_bolt_standard", "wpn_fps_smg_shepheard_o_standard" }, uses_parts = { "wpn_fps_smg_shepheard_b_standard", "wpn_fps_smg_shepheard_body", "wpn_fps_smg_shepheard_body_short", "wpn_fps_smg_shepheard_g_standard", "wpn_fps_smg_shepheard_dh_standard", "wpn_fps_smg_shepheard_ns_standard", "wpn_fps_smg_shepheard_s_no_vanilla", "wpn_fps_smg_shepheard_mag_standard", "wpn_fps_smg_shepheard_mag_extended", "wpn_fps_smg_shepheard_bolt_standard", "wpn_fps_smg_shepheard_o_standard", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_ak_ns_ak105" } } self.wpn_fps_smg_x_shepheard_npc = deep_clone(self.wpn_fps_smg_x_shepheard) self.wpn_fps_smg_x_shepheard_npc.unit = "units/pd2_dlc_joy/weapons/wpn_fps_smg_x_shepheard/wpn_fps_smg_x_shepheard_npc" end function WeaponFactoryTweakData:_init_chinchilla() self.parts.wpn_fps_pis_chinchilla_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_chinchilla_b_standard", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_b_satan = { texture_bundle_folder = "max", a_obj = "a_b", type = "barrel", name_id = "bm_wp_chinchilla_b_satan", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_b_satan", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 2 }, stance_mod = { wpn_fps_pis_chinchilla = { translation = Vector3(0, 0, -0.58) } } } self.parts.wpn_fps_pis_chinchilla_body = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_chinchilla_body", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_body", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_cylinder = { a_obj = "a_cylinder", type = "cylinder", name_id = "bm_wp_chinchilla_cylinder", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_cylinder", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_dh_hammer = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_chinchilla_dh_standard", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_dh_hammer", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_ejector = { a_obj = "a_ejector", type = "ejector", name_id = "bm_wp_chinchilla_ejector", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_ejector", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_ejectorpin = { a_obj = "a_ejectorpin", type = "ejectorpin", name_id = "bm_wp_chinchilla_ejectorpin", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_ejectorpin", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_g_black = { texture_bundle_folder = "max", a_obj = "a_g", type = "grip", name_id = "bm_wp_chinchilla_g_black", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_g_black", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2 } } self.parts.wpn_fps_pis_chinchilla_g_death = { texture_bundle_folder = "max", a_obj = "a_g", type = "grip", name_id = "bm_wp_chinchilla_g_death", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_g_death", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2 } } self.parts.wpn_fps_pis_chinchilla_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_chinchilla_g_standard", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_lock_arm = { a_obj = "a_lock", type = "lock_arm", name_id = "bm_wp_chinchilla_lock_arm", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_lock_arm", stats = { value = 1 } } self.parts.wpn_fps_pis_chinchilla_m_bullets = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_chinchilla_m_bullet1", unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_fps_pis_chinchilla_m_bullets", bullet_objects = { amount = 6, prefix = "g_bullet_" }, reload_objects = { reload_not_empty = "g_speedloader", reload = "g_speedloader" }, stats = { value = 1 }, animations = { reload_not_empty = "reload", reload = "reload", reload_left = "reload_left" } } self.parts.wpn_fps_pis_chinchilla_b_standard.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_b_standard" self.parts.wpn_fps_pis_chinchilla_b_satan.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_b_satan" self.parts.wpn_fps_pis_chinchilla_body.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_body" self.parts.wpn_fps_pis_chinchilla_cylinder.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_cylinder" self.parts.wpn_fps_pis_chinchilla_dh_hammer.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_dh_hammer" self.parts.wpn_fps_pis_chinchilla_ejector.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_ejector" self.parts.wpn_fps_pis_chinchilla_ejectorpin.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_ejectorpin" self.parts.wpn_fps_pis_chinchilla_g_black.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_g_black" self.parts.wpn_fps_pis_chinchilla_g_death.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_g_death" self.parts.wpn_fps_pis_chinchilla_g_standard.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_g_standard" self.parts.wpn_fps_pis_chinchilla_lock_arm.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_lock_arm" self.parts.wpn_fps_pis_chinchilla_m_bullets.third_unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla_pts/wpn_third_pis_chinchilla_m_bullets" self.wpn_fps_pis_chinchilla = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla/wpn_fps_pis_chinchilla", animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, default_blueprint = { "wpn_fps_pis_chinchilla_b_standard", "wpn_fps_pis_chinchilla_body", "wpn_fps_pis_chinchilla_cylinder", "wpn_fps_pis_chinchilla_dh_hammer", "wpn_fps_pis_chinchilla_ejector", "wpn_fps_pis_chinchilla_ejectorpin", "wpn_fps_pis_chinchilla_g_standard", "wpn_fps_pis_chinchilla_lock_arm", "wpn_fps_pis_chinchilla_m_bullets" }, uses_parts = { "wpn_fps_pis_chinchilla_b_standard", "wpn_fps_pis_chinchilla_b_satan", "wpn_fps_pis_chinchilla_body", "wpn_fps_pis_chinchilla_cylinder", "wpn_fps_pis_chinchilla_dh_hammer", "wpn_fps_pis_chinchilla_ejector", "wpn_fps_pis_chinchilla_ejectorpin", "wpn_fps_pis_chinchilla_g_black", "wpn_fps_pis_chinchilla_g_death", "wpn_fps_pis_chinchilla_g_standard", "wpn_fps_pis_chinchilla_lock_arm", "wpn_fps_pis_chinchilla_m_bullets" } } self.wpn_fps_pis_chinchilla_npc = deep_clone(self.wpn_fps_pis_chinchilla) self.wpn_fps_pis_chinchilla_npc.unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_chinchilla/wpn_fps_pis_chinchilla_npc" end function WeaponFactoryTweakData:_init_x_chinchilla() self.wpn_fps_pis_x_chinchilla = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_x_chinchilla/wpn_fps_pis_x_chinchilla", animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload_not_empty_left = "reload_left", reload = "reload_right", reload_not_empty = "reload_right" }, default_blueprint = { "wpn_fps_pis_chinchilla_b_standard", "wpn_fps_pis_chinchilla_body", "wpn_fps_pis_chinchilla_cylinder", "wpn_fps_pis_chinchilla_dh_hammer", "wpn_fps_pis_chinchilla_ejector", "wpn_fps_pis_chinchilla_ejectorpin", "wpn_fps_pis_chinchilla_g_standard", "wpn_fps_pis_chinchilla_lock_arm", "wpn_fps_pis_chinchilla_m_bullets" }, uses_parts = { "wpn_fps_pis_chinchilla_b_standard", "wpn_fps_pis_chinchilla_b_satan", "wpn_fps_pis_chinchilla_body", "wpn_fps_pis_chinchilla_cylinder", "wpn_fps_pis_chinchilla_dh_hammer", "wpn_fps_pis_chinchilla_ejector", "wpn_fps_pis_chinchilla_ejectorpin", "wpn_fps_pis_chinchilla_g_black", "wpn_fps_pis_chinchilla_g_death", "wpn_fps_pis_chinchilla_g_standard", "wpn_fps_pis_chinchilla_lock_arm", "wpn_fps_pis_chinchilla_m_bullets" } } self.wpn_fps_pis_x_chinchilla_npc = deep_clone(self.wpn_fps_pis_chinchilla) self.wpn_fps_pis_x_chinchilla_npc.unit = "units/pd2_dlc_max/weapons/wpn_fps_pis_x_chinchilla/wpn_fps_pis_x_chinchilla_npc" end function WeaponFactoryTweakData:_init_breech() self.parts.wpn_fps_pis_breech_b_reinforced = { texture_bundle_folder = "old", a_obj = "a_b", type = "barrel", name_id = "bm_wp_breech_b_reinforced", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_b_reinforced", pcs = { 10, 20, 30, 40 }, stats = { value = 1, spread = 2 } } self.parts.wpn_fps_pis_breech_b_short = { texture_bundle_folder = "old", a_obj = "a_b", type = "barrel", name_id = "bm_wp_breech_b_short", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, value = 1, concealment = 2 } } self.parts.wpn_fps_pis_breech_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_breech_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_breech_body = { a_obj = "a_body", type = "body", name_id = "bm_wp_breech_body", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_body", stats = { value = 1 } } self.parts.wpn_fps_pis_breech_dh = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_breech_dh", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_dh", stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" } } self.parts.wpn_fps_pis_breech_g_custom = { texture_bundle_folder = "old", a_obj = "a_g", type = "grip", name_id = "bm_wp_breech_g_custom", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_g_custom", pcs = { 10, 20, 30, 40 }, stats = { value = 1 } } self.parts.wpn_fps_pis_breech_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_breech_g_std", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_breech_mag = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_breech_m", unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_fps_pis_breech_mag", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_breech_b_reinforced.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_b_reinforced" self.parts.wpn_fps_pis_breech_b_short.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_b_short" self.parts.wpn_fps_pis_breech_b_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_b_standard" self.parts.wpn_fps_pis_breech_body.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_body" self.parts.wpn_fps_pis_breech_dh.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_dh" self.parts.wpn_fps_pis_breech_g_custom.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_g_custom" self.parts.wpn_fps_pis_breech_g_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_g_standard" self.parts.wpn_fps_pis_breech_mag.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech_pts/wpn_third_pis_breech_mag" self.wpn_fps_pis_breech = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech/wpn_fps_pis_breech", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = false }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_breech_b_standard", "wpn_fps_pis_breech_body", "wpn_fps_pis_breech_dh", "wpn_fps_pis_breech_g_standard", "wpn_fps_pis_breech_mag" }, uses_parts = { "wpn_fps_pis_breech_b_reinforced", "wpn_fps_pis_breech_b_short", "wpn_fps_pis_breech_b_standard", "wpn_fps_pis_breech_body", "wpn_fps_pis_breech_dh", "wpn_fps_pis_breech_g_custom", "wpn_fps_pis_breech_g_standard", "wpn_fps_pis_breech_mag", "wpn_fps_upg_o_rmr" } } self.wpn_fps_pis_breech_npc = deep_clone(self.wpn_fps_pis_breech) self.wpn_fps_pis_breech_npc.unit = "units/pd2_dlc_old/weapons/wpn_fps_pis_breech/wpn_fps_pis_breech_npc" end function WeaponFactoryTweakData:_init_ching() self.parts.wpn_fps_ass_ching_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_ching_b_short", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_b_short", texture_bundle_folder = "old", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -4, concealment = 4 }, override = { wpn_fps_ass_ching_extra_swiwel = { third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_extra_swiwel_empty", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_extra_swiwel_empty" } } } self.parts.wpn_fps_ass_ching_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_body_standard = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_ching_body_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_body_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_bolt_standard = { a_obj = "a_bolt", type = "bolt", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_extra_swiwel_empty = { a_obj = "a_extra", type = "swiwel_2", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_extra_swiwel_empty", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_extra_swiwel = { a_obj = "a_extra", type = "swiwel_2", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_extra_swiwel", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_extra1_swiwel = { a_obj = "a_extra1", type = "swiwel_1", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_extra1_swiwel", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_fg_railed = { texture_bundle_folder = "old", a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ching_fg_railed", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_fg_railed", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1, concealment = -1 }, forbids = { "wpn_fps_ak_extra_ris" } } self.parts.wpn_fps_ass_ching_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_m_standard", bullet_objects = { amount = 8, prefix = "g_bullet_" }, stats = { value = 1 }, magazine_empty_objects = { "g_clip" } } self.parts.wpn_fps_ass_ching_s_pouch = { texture_bundle_folder = "old", a_obj = "a_s", type = "stock", name_id = "bm_wp_ching_s_pouch", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_s_pouch", pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = 3 } } self.parts.wpn_fps_ass_ching_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_s_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_strip_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_ching_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_s_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_ching_b_short.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_b_short" self.parts.wpn_fps_ass_ching_b_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_b_standard" self.parts.wpn_fps_ass_ching_body_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_body_standard" self.parts.wpn_fps_ass_ching_bolt_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_bolt_standard" self.parts.wpn_fps_ass_ching_dh_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_dh_standard" self.parts.wpn_fps_ass_ching_extra_swiwel_empty.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_fps_ass_ching_extra_swiwel_empty" self.parts.wpn_fps_ass_ching_extra_swiwel.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_extra_swiwel" self.parts.wpn_fps_ass_ching_extra1_swiwel.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_extra1_swiwel" self.parts.wpn_fps_ass_ching_fg_railed.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_fg_railed" self.parts.wpn_fps_ass_ching_fg_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_fg_standard" self.parts.wpn_fps_ass_ching_m_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_m_standard" self.parts.wpn_fps_ass_ching_s_pouch.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_s_pouch" self.parts.wpn_fps_ass_ching_s_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_s_standard" self.parts.wpn_fps_ass_ching_strip_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching_pts/wpn_third_ass_ching_strip_standad" self.wpn_fps_ass_ching = { unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching/wpn_fps_ass_ching", optional_types = { "barrel_ext", "gadget", "sight" }, animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_docter = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cmore = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_acog = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_cs = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_reflex = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ak_extra_ris" }, wpn_fps_upg_o_spot = { "wpn_fps_ak_extra_ris" } }, default_blueprint = { "wpn_fps_ass_ching_b_standard", "wpn_fps_ass_ching_body_standard", "wpn_fps_ass_ching_bolt_standard", "wpn_fps_ass_ching_dh_standard", "wpn_fps_ass_ching_extra_swiwel", "wpn_fps_ass_ching_extra1_swiwel", "wpn_fps_ass_ching_fg_standard", "wpn_fps_ass_ching_m_standard", "wpn_fps_ass_ching_s_standard" }, uses_parts = { "wpn_fps_ass_ching_b_short", "wpn_fps_ass_ching_b_standard", "wpn_fps_ass_ching_body_standard", "wpn_fps_ass_ching_bolt_standard", "wpn_fps_ass_ching_dh_standard", "wpn_fps_ass_ching_extra_swiwel", "wpn_fps_ass_ching_extra1_swiwel", "wpn_fps_ass_ching_fg_railed", "wpn_fps_ass_ching_fg_standard", "wpn_fps_ass_ching_m_standard", "wpn_fps_ass_ching_s_pouch", "wpn_fps_ass_ching_s_standard", "wpn_fps_ass_ching_strip_standard", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_ching_npc = deep_clone(self.wpn_fps_ass_ching) self.wpn_fps_ass_ching_npc.unit = "units/pd2_dlc_old/weapons/wpn_fps_ass_ching/wpn_fps_ass_ching_npc" end function WeaponFactoryTweakData:_init_erma() self.parts.wpn_fps_smg_erma_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_erma_b_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_b_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_body_standard = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_erma_body_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_body_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_bolt_standard = { a_obj = "a_bolt", type = "drag_handle", name_id = "bm_wp_erma_bolt_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_bolt_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_extra_rail = { a_obj = "a_o", type = "extra", name_id = "bm_wp_erma_extra_rail", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_extra_rail", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_mag_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_erma_mag_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_mag_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_smg_erma_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_erma_ns_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_o_ironsight_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_erma_o_ironsight_standard", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_o_ironsight_standard", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_s_folded = { texture_bundle_folder = "old", a_obj = "a_s", type = "stock", name_id = "bm_wp_erma_s_folded", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_s_folded", pcs = { 10, 20, 30, 40 }, stats = { value = 0, recoil = -2, concealment = 3 } } self.parts.wpn_fps_smg_erma_s_unfolded = { a_obj = "a_s", type = "stock", name_id = "bm_wp_erma_s_unfolded", unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_fps_smg_erma_s_unfolded", stats = { value = 1 } } self.parts.wpn_fps_smg_erma_b_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_b_standard" self.parts.wpn_fps_smg_erma_body_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_body_standard" self.parts.wpn_fps_smg_erma_bolt_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_bolt_standard" self.parts.wpn_fps_smg_erma_extra_rail.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_extra_rail" self.parts.wpn_fps_smg_erma_mag_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_mag_standard" self.parts.wpn_fps_smg_erma_ns_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_ns_standard" self.parts.wpn_fps_smg_erma_o_ironsight_standard.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_o_ironsight_standard" self.parts.wpn_fps_smg_erma_s_folded.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_s_folded" self.parts.wpn_fps_smg_erma_s_unfolded.third_unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma_pts/wpn_third_smg_erma_s_unfolded" self.wpn_fps_smg_erma = { unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma/wpn_fps_smg_erma", optional_types = { "barrel_ext", "gadget" }, animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_smg_erma_extra_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_smg_erma_extra_rail" } }, default_blueprint = { "wpn_fps_smg_erma_b_standard", "wpn_fps_smg_erma_body_standard", "wpn_fps_smg_erma_bolt_standard", "wpn_fps_smg_erma_mag_standard", "wpn_fps_smg_erma_ns_standard", "wpn_fps_smg_erma_o_ironsight_standard", "wpn_fps_smg_erma_s_unfolded" }, uses_parts = { "wpn_fps_smg_erma_b_standard", "wpn_fps_smg_erma_body_standard", "wpn_fps_smg_erma_bolt_standard", "wpn_fps_smg_erma_extra_rail", "wpn_fps_smg_erma_mag_standard", "wpn_fps_smg_erma_ns_standard", "wpn_fps_smg_erma_o_ironsight_standard", "wpn_fps_smg_erma_s_folded", "wpn_fps_smg_erma_s_unfolded", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot" } } self.wpn_fps_smg_erma_npc = deep_clone(self.wpn_fps_smg_erma) self.wpn_fps_smg_erma_npc.unit = "units/pd2_dlc_old/weapons/wpn_fps_smg_erma/wpn_fps_smg_erma_npc" end function WeaponFactoryTweakData:_init_ecp() self.parts.wpn_fps_bow_ecp_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_ecp_s_standard", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_s_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_s_bare = { texture_bundle_folder = "ecp", dlc = "ecp", type = "stock", name_id = "bm_wp_ecp_s_bare", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_s_bare", a_obj = "a_s", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -2, concealment = 2 } } self.parts.wpn_fps_bow_ecp_b_dummy = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_ecp_b_dummy", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_b_dummy", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_body_lower = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_ecp_body_lower", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_body_lower", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_body_upper = { a_obj = "a_body", type = "upper_receiver", name_id = "bm_wp_ecp_body_upper", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_body_upper", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_ecp_dh_standard", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_ejector_left = { a_obj = "a_ejector_left", type = "ejector_l", name_id = "bm_wp_ecp_ejector_left", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_ejector_left", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_ejector_right = { a_obj = "a_ejector_right", type = "ejector_r", name_id = "bm_wp_ecp_ejector_right", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_ejector_right", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_m_arrows = { a_obj = "a_m", type = "ammo", name_id = "bm_wp_ecp_m_arrows", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_arrows_standard", bullet_objects = { amount = 6, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_m_arrows_standard = { a_obj = "a_m", type = "ammo", name_id = "bm_wp_ecp_m_arrows", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_arrows_standard", bullet_objects = { amount = 6, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_m_arrows_explosive = { is_a_unlockable = true, texture_bundle_folder = "ecp", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_arrows_explosive", sub_type = "ammo_explosive", dlc = "ecp", name_id = "bm_wp_ecp_m_arrows_explosive", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_arrows_explosive", pcs = {}, bullet_objects = { amount = 6, prefix = "g_bullet_" }, stats = { damage = -15 }, custom_stats = { launcher_grenade = "ecp_arrow_exp" } } self.parts.wpn_fps_bow_ecp_m_arrows_poison = { is_a_unlockable = true, texture_bundle_folder = "ecp", a_obj = "a_m", type = "ammo", third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_arrows_poison", sub_type = "ammo_poison", dlc = "ecp", name_id = "bm_wp_ecp_m_arrows_poison", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_arrows_poison", pcs = {}, bullet_objects = { amount = 6, prefix = "g_bullet_" }, stats = { damage = -60 }, custom_stats = { launcher_grenade = "ecp_arrow_poison", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_bow_ecp_m_casing = { a_obj = "a_clip", type = "magazine", name_id = "bm_wp_ecp_m_casing", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_m_casing", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_meter_left = { a_obj = "a_meter_l", type = "meter_l", name_id = "bm_wp_ecp_meter_left", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_meter_left", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_meter_right = { a_obj = "a_meter_r", type = "meter_r", name_id = "bm_wp_ecp_meter_right", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_meter_right", stats = { value = 1 } } self.parts.wpn_fps_bow_ecp_o_iron = { a_obj = "a_o", type = "sight", name_id = "bm_wp_ecp_meter_right", unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_fps_bow_ecp_o_iron", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_bow_ecp_s_standard.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_s_standard" self.parts.wpn_fps_bow_ecp_s_bare.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_s_bare" self.parts.wpn_fps_bow_ecp_body_lower.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_body_lower" self.parts.wpn_fps_bow_ecp_body_upper.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_body_upper" self.parts.wpn_fps_bow_ecp_dh_standard.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_dh_standard" self.parts.wpn_fps_bow_ecp_ejector_left.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_ejector_left" self.parts.wpn_fps_bow_ecp_ejector_right.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_ejector_right" self.parts.wpn_fps_bow_ecp_m_casing.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_m_casing" self.parts.wpn_fps_bow_ecp_meter_left.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_meter_left" self.parts.wpn_fps_bow_ecp_meter_right.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_meter_right" self.parts.wpn_fps_bow_ecp_o_iron.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_o_iron" self.parts.wpn_fps_bow_ecp_m_arrows_standard.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_m_arrows_standard" self.parts.wpn_fps_bow_ecp_m_arrows_explosive.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_m_arrows_explosive" self.parts.wpn_fps_bow_ecp_m_arrows_poison.third_unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp_pts/wpn_third_bow_ecp_m_arrows_poison" self.wpn_fps_bow_ecp = { optional_types = { "barrel_ext", "gadget", "sight" }, unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp/wpn_fps_bow_ecp", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_bow_ecp_s_standard", "wpn_fps_bow_ecp_b_dummy", "wpn_fps_bow_ecp_body_lower", "wpn_fps_bow_ecp_body_upper", "wpn_fps_bow_ecp_dh_standard", "wpn_fps_bow_ecp_ejector_left", "wpn_fps_bow_ecp_ejector_right", "wpn_fps_bow_ecp_m_arrows_standard", "wpn_fps_bow_ecp_m_casing", "wpn_fps_bow_ecp_meter_left", "wpn_fps_bow_ecp_meter_right", "wpn_fps_bow_ecp_o_iron" }, uses_parts = { "wpn_fps_bow_ecp_s_standard", "wpn_fps_bow_ecp_s_bare", "wpn_fps_bow_ecp_b_dummy", "wpn_fps_bow_ecp_body_lower", "wpn_fps_bow_ecp_body_upper", "wpn_fps_bow_ecp_dh_standard", "wpn_fps_bow_ecp_ejector_left", "wpn_fps_bow_ecp_ejector_right", "wpn_fps_bow_ecp_m_arrows_standard", "wpn_fps_bow_ecp_m_arrows_explosive", "wpn_fps_bow_ecp_m_arrows_poison", "wpn_fps_bow_ecp_m_casing", "wpn_fps_bow_ecp_meter_left", "wpn_fps_bow_ecp_meter_right", "wpn_fps_bow_ecp_o_iron", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs" } } self.wpn_fps_bow_ecp_npc = deep_clone(self.wpn_fps_bow_ecp) self.wpn_fps_bow_ecp_npc.unit = "units/pd2_dlc_ecp/weapons/wpn_fps_bow_ecp/wpn_fps_bow_ecp_npc" end function WeaponFactoryTweakData:_init_shrew() self.parts.wpn_fps_pis_shrew_b_barrel = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_b_barrel", stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_body_frame = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_body_frame", stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_fl_adapter = { a_obj = "a_fl", type = "adapter", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_fl_adapter", stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_g_bling = { texture_bundle_folder = "myh", a_obj = "a_g", type = "grip", name_id = "bm_wp_shrew_g_bling", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_g_bling", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2 } } self.parts.wpn_fps_pis_shrew_g_ergo = { texture_bundle_folder = "myh", a_obj = "a_g", type = "grip", name_id = "bm_wp_shrew_g_ergo", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_g_ergo", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2 } } self.parts.wpn_fps_pis_shrew_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_h_hammer = { a_obj = "a_h", type = "hammer", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_h_hammer", stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_m_extended = { texture_bundle_folder = "myh", type = "magazine", name_id = "bm_wp_shrew_m_extended", a_obj = "a_m", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_m_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { extra_ammo = 2, value = 1, concealment = -2 } } self.parts.wpn_fps_pis_shrew_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_m_standard", bullet_objects = { amount = 2, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_sl_milled = { texture_bundle_folder = "myh", a_obj = "a_sl", type = "slide", name_id = "bm_wp_shrew_sl_milled", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_sl_milled", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 1 } } self.parts.wpn_fps_pis_shrew_sl_standard = { a_obj = "a_sl", type = "slide", name_id = "bm_wp_shrew_b_standard", unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew_pts/wpn_fps_pis_shrew_sl_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_shrew_b_barrel.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_b_barrel" self.parts.wpn_fps_pis_shrew_body_frame.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_body_frame" self.parts.wpn_fps_pis_shrew_fl_adapter.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_fl_adapter" self.parts.wpn_fps_pis_shrew_g_bling.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_g_bling" self.parts.wpn_fps_pis_shrew_g_ergo.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_g_ergo" self.parts.wpn_fps_pis_shrew_g_standard.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_g_standard" self.parts.wpn_fps_pis_shrew_h_hammer.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_h_hammer" self.parts.wpn_fps_pis_shrew_m_extended.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_m_extended" self.parts.wpn_fps_pis_shrew_m_standard.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_m_standard" self.parts.wpn_fps_pis_shrew_sl_milled.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_sl_milled" self.parts.wpn_fps_pis_shrew_sl_standard.third_unit = "units/pd2_dlc_myh/weapons/wpn_third_pis_shrew_pts/wpn_third_pis_shrew_sl_standard" self.wpn_fps_pis_shrew = { unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew/wpn_fps_pis_shrew", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_shrew_fl_adapter" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_ns_ass_filter = { parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { parent = "barrel" }, wpn_fps_upg_pis_ns_flash = { parent = "barrel" }, wpn_fps_upg_ns_pis_large = { parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { parent = "barrel" }, wpn_fps_upg_ns_pis_small = { parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_shrew_b_barrel", "wpn_fps_pis_shrew_body_frame", "wpn_fps_pis_shrew_g_standard", "wpn_fps_pis_shrew_h_hammer", "wpn_fps_pis_shrew_m_standard", "wpn_fps_pis_shrew_sl_standard" }, uses_parts = { "wpn_fps_pis_shrew_b_barrel", "wpn_fps_pis_shrew_body_frame", "wpn_fps_pis_shrew_g_standard", "wpn_fps_pis_shrew_h_hammer", "wpn_fps_pis_shrew_m_standard", "wpn_fps_pis_shrew_sl_standard", "wpn_fps_pis_shrew_g_bling", "wpn_fps_pis_shrew_g_ergo", "wpn_fps_pis_shrew_m_extended", "wpn_fps_pis_shrew_sl_milled", "wpn_fps_pis_shrew_fl_adapter", "wpn_fps_upg_o_rmr", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem" } } self.wpn_fps_pis_shrew_npc = deep_clone(self.wpn_fps_pis_shrew) self.wpn_fps_pis_shrew_npc.unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_shrew/wpn_fps_pis_shrew_npc" end function WeaponFactoryTweakData:_init_x_shrew() self.wpn_fps_pis_x_shrew = { unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_x_shrew/wpn_fps_pis_x_shrew", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty_right", reload_not_empty_left = "reload_not_empty_left", reload_left = "reload_left", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_shrew_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_shrew_fl_adapter" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_ns_ass_filter = { parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { parent = "barrel" }, wpn_fps_upg_pis_ns_flash = { parent = "barrel" }, wpn_fps_upg_ns_pis_large = { parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { parent = "barrel" }, wpn_fps_upg_ns_pis_small = { parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { parent = "barrel" }, wpn_fps_pis_shrew_m_extended = { stats = { extra_ammo = 4, value = 1, concealment = -2 } } }, default_blueprint = { "wpn_fps_pis_shrew_b_barrel", "wpn_fps_pis_shrew_body_frame", "wpn_fps_pis_shrew_g_standard", "wpn_fps_pis_shrew_h_hammer", "wpn_fps_pis_shrew_m_standard", "wpn_fps_pis_shrew_sl_standard" }, uses_parts = { "wpn_fps_pis_shrew_b_barrel", "wpn_fps_pis_shrew_body_frame", "wpn_fps_pis_shrew_g_standard", "wpn_fps_pis_shrew_h_hammer", "wpn_fps_pis_shrew_m_standard", "wpn_fps_pis_shrew_sl_standard", "wpn_fps_pis_shrew_g_bling", "wpn_fps_pis_shrew_g_ergo", "wpn_fps_pis_shrew_m_extended", "wpn_fps_pis_shrew_sl_milled", "wpn_fps_pis_shrew_fl_adapter", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem" } } self.wpn_fps_pis_x_shrew_npc = deep_clone(self.wpn_fps_pis_x_shrew) self.wpn_fps_pis_x_shrew_npc.unit = "units/pd2_dlc_myh/weapons/wpn_fps_pis_x_shrew/wpn_fps_pis_x_shrew_npc" end function WeaponFactoryTweakData:_init_basset() self.parts.wpn_fps_sho_basset_b_short = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_basset_b_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_b_short", stats = { value = 1 } } self.parts.wpn_fps_sho_basset_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_basset_b_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_b_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_basset_body_standard = { a_obj = "a_body", type = "lower_receiver", name_id = "bm_wp_basset_b_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_body_standard", stats = { value = 1 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_sho_basset_bolt = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_basset_b_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_bolt", stats = { value = 1 } } self.parts.wpn_fps_sho_basset_fg_short = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_basset_fg_short", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_fg_short", texture_bundle_folder = "dsg", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = -3, concealment = 3 }, override = { wpn_fps_sho_basset_b_standard = { third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_b_short", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_b_short" }, wpn_fps_sho_basset_o_standard = { third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_o_short", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_o_short" } } } self.parts.wpn_fps_sho_basset_fg_standard = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_basset_b_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_fg_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_basset_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_basset_b_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_g_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_basset_m_extended = { texture_bundle_folder = "dsg", type = "magazine", name_id = "bm_wp_basset_m_extended", a_obj = "a_m", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_m_extended", pcs = { 10, 20, 30, 40 }, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { extra_ammo = 2, value = 1, concealment = -2 } } self.parts.wpn_fps_sho_basset_o_standard = { a_obj = "a_o", type = "sight", name_id = "bm_wp_basset_o_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_o_standard", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_sho_basset_o_short = { a_obj = "a_o", type = "sight", name_id = "bm_wp_basset_o_standard", unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset_pts/wpn_fps_sho_basset_o_short", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_sho_basset_b_short.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_b_short" self.parts.wpn_fps_sho_basset_b_standard.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_b_standard" self.parts.wpn_fps_sho_basset_body_standard.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_body_standard" self.parts.wpn_fps_sho_basset_bolt.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_bolt" self.parts.wpn_fps_sho_basset_fg_short.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_fg_short" self.parts.wpn_fps_sho_basset_fg_standard.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_fg_standard" self.parts.wpn_fps_sho_basset_g_standard.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_g_standard" self.parts.wpn_fps_sho_basset_m_extended.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_m_extended" self.parts.wpn_fps_sho_basset_o_standard.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_o_standard" self.parts.wpn_fps_sho_basset_o_short.third_unit = "units/pd2_dlc_dsg/weapons/wpn_third_sho_basset_pts/wpn_third_sho_basset_o_short" self.wpn_fps_sho_basset = { unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset/wpn_fps_sho_basset", animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload_not_empty" }, default_blueprint = { "wpn_fps_sho_basset_b_standard", "wpn_fps_sho_basset_body_standard", "wpn_fps_sho_basset_bolt", "wpn_fps_sho_basset_fg_standard", "wpn_fps_sho_basset_g_standard", "wpn_fps_shot_saiga_m_5rnd", "wpn_fps_sho_basset_o_standard" }, uses_parts = { "wpn_fps_sho_basset_b_short", "wpn_fps_sho_basset_b_standard", "wpn_fps_sho_basset_body_standard", "wpn_fps_sho_basset_bolt", "wpn_fps_sho_basset_fg_short", "wpn_fps_sho_basset_fg_standard", "wpn_fps_sho_basset_g_standard", "wpn_fps_sho_basset_m_extended", "wpn_fps_shot_saiga_m_5rnd", "wpn_fps_sho_basset_o_standard", "wpn_fps_sho_basset_o_short", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_o_spot", "wpn_fps_upg_ns_duck", "wpn_fps_upg_o_xpsg33_magnifier" } } self.wpn_fps_sho_basset_npc = deep_clone(self.wpn_fps_sho_basset) self.wpn_fps_sho_basset_npc.unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_basset/wpn_fps_sho_basset_npc" end function WeaponFactoryTweakData:_init_x_basset() self.wpn_fps_sho_x_basset = { unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_x_basset/wpn_fps_sho_x_basset", optional_types = { "barrel_ext", "gadget" }, animations = { fire_steelsight = "recoil", fire = "recoil" }, override = { wpn_fps_sho_basset_m_extended = { stats = { extra_ammo = 4, value = 1, concealment = -2 } } }, default_blueprint = { "wpn_fps_sho_basset_b_standard", "wpn_fps_sho_basset_body_standard", "wpn_fps_sho_basset_bolt", "wpn_fps_sho_basset_fg_standard", "wpn_fps_sho_basset_g_standard", "wpn_fps_shot_saiga_m_5rnd", "wpn_fps_sho_basset_o_standard" }, uses_parts = { "wpn_fps_sho_basset_b_short", "wpn_fps_sho_basset_b_standard", "wpn_fps_sho_basset_body_standard", "wpn_fps_sho_basset_bolt", "wpn_fps_sho_basset_fg_short", "wpn_fps_sho_basset_fg_standard", "wpn_fps_sho_basset_g_standard", "wpn_fps_sho_basset_m_extended", "wpn_fps_shot_saiga_m_5rnd", "wpn_fps_sho_basset_o_standard", "wpn_fps_sho_basset_o_short", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_ns_duck" } } self.wpn_fps_sho_x_basset_npc = deep_clone(self.wpn_fps_sho_x_basset) self.wpn_fps_sho_x_basset_npc.unit = "units/pd2_dlc_dsg/weapons/wpn_fps_sho_x_basset/wpn_fps_sho_x_basset_npc" end function WeaponFactoryTweakData:_init_icc() self.parts.wpn_fps_smg_p90_body_boxy = { texture_bundle_folder = "icc", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_90_body_boxy", unit = "units/pd2_dlc_icc/weapons/wpn_fps_smg_p90_body_boxy/wpn_fps_smg_p90_body_boxy", pcs = {}, stats = { value = 1 }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, third_unit = "units/pd2_dlc_icc/weapons/wpn_fps_smg_p90_body_boxy/wpn_third_smg_p90_body_boxy" } self.parts.wpn_fps_smg_mac10_body_modern = { texture_bundle_folder = "icc", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_mac10_body_modern", unit = "units/pd2_dlc_icc/weapons/wpn_fps_smg_mac10_body_modern/wpn_fps_smg_mac10_body_modern", pcs = {}, stats = { value = 1 }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" }, third_unit = "units/pd2_dlc_icc/weapons/wpn_fps_smg_mac10_body_modern/wpn_third_smg_mac10_body_modern" } self.parts.wpn_fps_pis_deagle_b_modern = { texture_bundle_folder = "icc", a_obj = "a_b", type = "slide", name_id = "bm_wp_deagle_b_modern", unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_deagle_b_modern/wpn_fps_pis_deagle_b_modern", pcs = {}, stats = { value = 7, concealment = -3, damage = 2, spread = 2, spread_moving = -3 }, forbids = { "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" }, third_unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_deagle_b_modern/wpn_third_pis_deagle_b_modern" } self.parts.wpn_fps_pis_beretta_body_modern = { texture_bundle_folder = "icc", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_beretta_body_modern", unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_beretta_body_modern/wpn_fps_pis_beretta_body_modern", pcs = {}, stats = { value = 1 }, forbids = { "wpn_fps_pis_beretta_body_rail" }, animations = { fire = "recoil", reload = "reload", fire_steelsight = "recoil" }, third_unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_beretta_body_modern/wpn_third_pis_beretta_body_modern" } self.parts.wpn_fps_pis_judge_body_modern = { texture_bundle_folder = "icc", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_judge_body_modern", unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_judge_body_modern/wpn_fps_pis_judge_body_modern", pcs = {}, stats = { value = 1 }, forbids = { "wpn_fps_addon_ris", "wpn_fps_pis_judge_fl_adapter" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, override = { wpn_fps_pis_judge_g_standard = { third_unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_judge_body_modern/wpn_third_pis_judge_g_modern", unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_judge_body_modern/wpn_fps_pis_judge_g_modern" } }, third_unit = "units/pd2_dlc_icc/weapons/wpn_fps_pis_judge_body_modern/wpn_third_pis_judge_body_modern" } end function WeaponFactoryTweakData:_init_corgi() self.parts.wpn_fps_ass_corgi_body_lower_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_body_lower_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_corgi_body_lower_strap = { texture_bundle_folder = "rvd", a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_corgi_body_strap", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_body_lower_strap", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, concealment = -2 } } self.parts.wpn_fps_ass_corgi_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_body_upper", stats = { value = 1 } } self.parts.wpn_fps_ass_corgi_b_long = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_b_long", stats = { value = 1 } } self.parts.wpn_fps_ass_corgi_b_short = { texture_bundle_folder = "rvd", a_obj = "a_b", type = "barrel", name_id = "bm_wp_corgi_b_short", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_b_short", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, value = 1, concealment = 3 } } self.parts.wpn_fps_ass_corgi_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_corgi_fg_rail = { a_obj = "a_fg", type = "foregrip", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_fg_rail", stats = { value = 1 }, forbids = { "wpn_fps_addon_ris" } } self.parts.wpn_fps_ass_corgi_ns_standard = { parent = "barrel", a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_ns_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_corgi_ejector_standard = { a_obj = "a_ejector", type = "ejector", name_id = "bm_wp_corgi_body", unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi_pts/wpn_fps_ass_corgi_ejector_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_corgi_b_long.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_b_long" self.parts.wpn_fps_ass_corgi_b_short.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_b_short" self.parts.wpn_fps_ass_corgi_body_lower_standard.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_body_lower_standard" self.parts.wpn_fps_ass_corgi_body_lower_strap.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_body_lower_strap" self.parts.wpn_fps_ass_corgi_body_upper.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_body_upper" self.parts.wpn_fps_ass_corgi_dh_standard.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_dh_standard" self.parts.wpn_fps_ass_corgi_ejector_standard.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_ejector_standard" self.parts.wpn_fps_ass_corgi_fg_rail.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_fg_rail" self.parts.wpn_fps_ass_corgi_ns_standard.third_unit = "units/pd2_dlc_rvd/weapons/wpn_third_ass_corgi_pts/wpn_third_ass_corgi_ns_standard" self.wpn_fps_ass_corgi = { unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi/wpn_fps_ass_corgi", optional_types = { "gadget", "sight", "barrel_ext" }, animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, adds = {}, forbids = { "wpn_fps_addon_ris" }, default_blueprint = { "wpn_fps_ass_corgi_body_lower_standard", "wpn_fps_ass_corgi_body_upper", "wpn_fps_ass_corgi_b_long", "wpn_fps_ass_corgi_dh_standard", "wpn_fps_ass_corgi_fg_rail", "wpn_fps_ass_corgi_ns_standard", "wpn_fps_ass_corgi_ejector_standard", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_m4_uupg_m_std_vanilla" }, uses_parts = { "wpn_fps_ass_corgi_body_lower_standard", "wpn_fps_ass_corgi_body_lower_strap", "wpn_fps_ass_corgi_body_upper", "wpn_fps_ass_corgi_b_long", "wpn_fps_ass_corgi_b_short", "wpn_fps_ass_corgi_dh_standard", "wpn_fps_ass_corgi_fg_rail", "wpn_fps_ass_corgi_ns_standard", "wpn_fps_ass_corgi_ejector_standard", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_corgi_npc = deep_clone(self.wpn_fps_ass_corgi) self.wpn_fps_ass_corgi_npc.unit = "units/pd2_dlc_rvd/weapons/wpn_fps_ass_corgi/wpn_fps_ass_corgi_npc" end function WeaponFactoryTweakData:_init_slap() self.parts.wpn_fps_gre_slap_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_gre_slap_barrel", unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_fps_gre_slap_b_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_slap_body_lower = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_gre_slap_barrel", unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_fps_gre_slap_body_lower", stats = { value = 1 } } self.parts.wpn_fps_gre_slap_o_iron = { a_obj = "a_o", type = "sight", name_id = "bm_wp_gre_slap_barrel", unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_fps_gre_slap_o_iron", stats = { value = 1 } } self.parts.wpn_fps_gre_slap_o_adapter = { a_obj = "a_o", type = "extra", name_id = "bm_wp_gre_slap_barrel", unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_fps_gre_slap_o_adapter", stats = { value = 1 } } self.parts.wpn_fps_gre_slap_s_standard = { a_obj = "a_s", type = "stock", name_id = "bm_wp_gre_slap_barrel", unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_fps_gre_slap_s_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_slap_vg_standard = { a_obj = "a_vg", type = "vertical_grip", name_id = "bm_wp_gre_slap_barrel", unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_fps_gre_slap_vg_standard", stats = { value = 1 } } self.parts.wpn_fps_gre_slap_b_standard.third_unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_third_gre_slap_b_standard" self.parts.wpn_fps_gre_slap_body_lower.third_unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_third_gre_slap_body_lower" self.parts.wpn_fps_gre_slap_o_iron.third_unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_third_gre_slap_o_iron" self.parts.wpn_fps_gre_slap_o_adapter.third_unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_third_gre_slap_o_adapter" self.parts.wpn_fps_gre_slap_s_standard.third_unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_third_gre_slap_s_standard" self.parts.wpn_fps_gre_slap_vg_standard.third_unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap_pts/wpn_third_gre_slap_vg_standard" self.wpn_fps_gre_slap = { unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap/wpn_fps_gre_slap", animations = { unequip = "unequip", reload = "reload", equip = "equip" }, override = { wpn_fps_gre_m79_grenade = { third_unit = "units/payday2/weapons/wpn_upg_dummy/wpn_upg_dummy" } }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_gre_slap_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_gre_slap_o_adapter" } }, default_blueprint = { "wpn_fps_gre_slap_b_standard", "wpn_fps_gre_slap_body_lower", "wpn_fps_gre_slap_o_iron", "wpn_fps_gre_slap_s_standard", "wpn_fps_gre_slap_vg_standard", "wpn_fps_gre_m79_grenade" }, uses_parts = { "wpn_fps_gre_slap_b_standard", "wpn_fps_gre_slap_body_lower", "wpn_fps_gre_slap_o_iron", "wpn_fps_gre_slap_s_standard", "wpn_fps_gre_slap_vg_standard", "wpn_fps_gre_slap_o_adapter", "wpn_fps_gre_m79_grenade", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_spot" } } self.wpn_fps_gre_slap_npc = deep_clone(self.wpn_fps_gre_slap) self.wpn_fps_gre_slap_npc.unit = "units/pd2_dlc_fgl/weapons/wpn_fps_gre_slap/wpn_fps_gre_slap_npc" end function WeaponFactoryTweakData:_init_x_coal() self.wpn_fps_smg_x_coal = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_coal/wpn_fps_smg_x_coal", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, animations = { fire_steelsight = "recoil", fire = "recoil" }, default_blueprint = { "wpn_fps_smg_coal_b_standard", "wpn_fps_smg_coal_body_standard", "wpn_fps_smg_coal_m_standard", "wpn_fps_smg_coal_fg_standard", "wpn_fps_smg_coal_dh_standard", "wpn_fps_smg_coal_ns_standard", "wpn_fps_smg_coal_s_standard", "wpn_fps_smg_coal_g_standard", "wpn_fps_smg_coal_mr_standard" }, uses_parts = { "wpn_fps_smg_coal_b_standard", "wpn_fps_smg_coal_body_standard", "wpn_fps_smg_coal_fg_standard", "wpn_fps_smg_coal_g_standard", "wpn_fps_smg_coal_dh_standard", "wpn_fps_smg_coal_ns_standard", "wpn_fps_smg_coal_s_standard", "wpn_fps_smg_coal_m_standard", "wpn_fps_smg_coal_mr_standard", "wpn_fps_smg_coal_o_scopemount_standard", "wpn_fps_upg_ns_ass_pbs1", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_ak_g_hgrip", "wpn_fps_upg_ak_g_pgrip", "wpn_fps_upg_ak_g_wgrip", "wpn_fps_upg_ak_g_rk3" } } self.wpn_fps_smg_x_coal_npc = deep_clone(self.wpn_fps_smg_x_coal) self.wpn_fps_smg_x_coal_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_coal/wpn_fps_smg_x_coal_npc" end function WeaponFactoryTweakData:_init_x_baka() self.parts.wpn_fps_smg_baka_s_folded_vanilla = deep_clone(self.parts.wpn_fps_smg_baka_s_folded) self.parts.wpn_fps_smg_baka_s_folded_vanilla.stats = nil self.parts.wpn_fps_smg_baka_s_folded_vanilla.pcs = nil self.wpn_fps_smg_x_baka = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_baka/wpn_fps_smg_x_baka", adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_smg_baka_fl_adapter" } }, default_blueprint = { "wpn_fps_smg_baka_body_standard", "wpn_fps_smg_baka_m_standard", "wpn_fps_smg_baka_b_standard", "wpn_fps_smg_baka_g_standard", "wpn_fps_smg_baka_s_folded_vanilla" }, uses_parts = { "wpn_fps_smg_baka_body_standard", "wpn_fps_smg_baka_m_standard", "wpn_fps_smg_baka_b_standard", "wpn_fps_smg_baka_g_standard", "wpn_fps_smg_baka_s_folded_vanilla", "wpn_fps_smg_baka_b_comp", "wpn_fps_smg_baka_b_midsupp", "wpn_fps_smg_baka_b_smallsupp", "wpn_fps_smg_baka_b_longsupp", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_pis_m3x" } } self.wpn_fps_smg_x_baka_npc = deep_clone(self.wpn_fps_smg_x_baka) self.wpn_fps_smg_x_baka_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_baka/wpn_fps_smg_x_baka_npc" end function WeaponFactoryTweakData:_init_x_cobray() self.wpn_fps_smg_x_cobray = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_cobray/wpn_fps_smg_x_cobray", animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_smg_cobray_body_lower", "wpn_fps_smg_cobray_body_upper", "wpn_fps_smg_cobray_bolt", "wpn_fps_smg_cobray_m_standard", "wpn_fps_smg_cobray_s_standard", "wpn_fps_smg_cobray_barrel" }, uses_parts = { "wpn_fps_smg_cobray_body_lower", "wpn_fps_smg_cobray_body_upper", "wpn_fps_smg_cobray_body_lower_jacket", "wpn_fps_smg_cobray_body_upper_jacket", "wpn_fps_smg_cobray_bolt", "wpn_fps_smg_cobray_m_standard", "wpn_fps_smg_cobray_ns_barrelextension", "wpn_fps_smg_cobray_ns_silencer", "wpn_fps_smg_cobray_s_standard", "wpn_fps_smg_cobray_barrel", "wpn_fps_smg_cobray_o_adapter", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_cobray_npc = deep_clone(self.wpn_fps_smg_x_cobray) self.wpn_fps_smg_x_cobray_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_cobray/wpn_fps_smg_x_cobray_npc" end function WeaponFactoryTweakData:_init_x_erma() self.parts.wpn_fps_smg_erma_s_folded_vanilla = deep_clone(self.parts.wpn_fps_smg_erma_s_folded) self.parts.wpn_fps_smg_erma_s_folded_vanilla.stats = nil self.parts.wpn_fps_smg_erma_s_folded_vanilla.pcs = nil self.wpn_fps_smg_x_erma = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_erma/wpn_fps_smg_x_erma", animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_smg_erma_b_standard", "wpn_fps_smg_erma_body_standard", "wpn_fps_smg_erma_bolt_standard", "wpn_fps_smg_erma_mag_standard", "wpn_fps_smg_erma_ns_standard", "wpn_fps_smg_erma_o_ironsight_standard", "wpn_fps_smg_erma_s_folded_vanilla" }, uses_parts = { "wpn_fps_smg_erma_b_standard", "wpn_fps_smg_erma_body_standard", "wpn_fps_smg_erma_bolt_standard", "wpn_fps_smg_erma_extra_rail", "wpn_fps_smg_erma_mag_standard", "wpn_fps_smg_erma_ns_standard", "wpn_fps_smg_erma_o_ironsight_standard", "wpn_fps_smg_erma_s_folded_vanilla", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_erma_npc = deep_clone(self.wpn_fps_smg_x_erma) self.wpn_fps_smg_x_erma_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_erma/wpn_fps_smg_x_erma_npc" end function WeaponFactoryTweakData:_init_x_hajk() self.wpn_fps_smg_x_hajk = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_hajk/wpn_fps_smg_x_hajk", adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_smg_baka_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_smg_baka_fl_adapter" } }, override = { wpn_fps_smg_hajk_body_standard = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_ass_l85a2_m_emag = { stats = { value = 1, recoil = 1, extra_ammo = 4 } }, wpn_fps_upg_m4_m_pmag = { stats = { value = 3, spread_moving = 1, concealment = 0, extra_ammo = 4 } }, wpn_fps_upg_m4_m_l5 = { stats = { extra_ammo = 4, recoil = 1, value = 1 } }, wpn_fps_upg_m4_m_quad = { stats = { extra_ammo = 30, value = 3, recoil = 1, spread = -1, concealment = -3, spread_moving = -2 } }, wpn_fps_upg_m4_m_straight = { stats = { value = 2, spread_moving = 2, concealment = 1, extra_ammo = -8 } } }, default_blueprint = { "wpn_fps_smg_hajk_b_standard", "wpn_fps_smg_hajk_fg_standard", "wpn_fps_smg_hajk_g_standard", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_smg_hajk_ns_standard", "wpn_fps_smg_hajk_o_standard", "wpn_fps_smg_hajk_s_standard", "wpn_fps_smg_hajk_body_standard", "wpn_fps_smg_hajk_vg_moe" }, uses_parts = { "wpn_fps_smg_hajk_b_standard", "wpn_fps_smg_hajk_b_short", "wpn_fps_smg_hajk_b_medium", "wpn_fps_smg_hajk_fg_standard", "wpn_fps_smg_hajk_g_standard", "wpn_fps_smg_hajk_ns_standard", "wpn_fps_smg_hajk_o_standard", "wpn_fps_smg_hajk_s_standard", "wpn_fps_smg_hajk_body_standard", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_m4_m_quad", "wpn_fps_upg_m4_m_straight", "wpn_fps_m4_upg_m_quick" } } self.wpn_fps_smg_x_hajk_npc = deep_clone(self.wpn_fps_smg_x_hajk) self.wpn_fps_smg_x_hajk_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_hajk/wpn_fps_smg_x_hajk_npc" end function WeaponFactoryTweakData:_init_x_m45() self.parts.wpn_fps_smg_m45_s_folded_vanilla = deep_clone(self.parts.wpn_fps_smg_m45_s_folded) self.parts.wpn_fps_smg_m45_s_folded_vanilla.stats = nil self.parts.wpn_fps_smg_m45_s_folded_vanilla.pcs = nil self.wpn_fps_smg_x_m45 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_m45/wpn_fps_smg_x_m45", override = { wpn_fps_smg_m45_body_standard = { animations = { fire_steelsight = "recoil", fire = "recoil" } }, wpn_fps_smg_m45_m_extended = { stats = { concealment = -2, value = 4, extra_ammo = 12 } } }, adds = { wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_shot_r870_gadget_rail" } }, default_blueprint = { "wpn_fps_smg_m45_m_mag", "wpn_fps_smg_m45_b_standard", "wpn_fps_smg_m45_body_standard", "wpn_fps_smg_m45_s_folded_vanilla", "wpn_fps_smg_m45_g_standard" }, uses_parts = { "wpn_fps_smg_m45_m_mag", "wpn_fps_smg_m45_b_standard", "wpn_fps_smg_m45_body_standard", "wpn_fps_smg_m45_g_standard", "wpn_fps_smg_m45_m_extended", "wpn_fps_smg_m45_b_small", "wpn_fps_smg_m45_b_green", "wpn_fps_smg_m45_body_green", "wpn_fps_smg_m45_g_bling", "wpn_fps_smg_m45_g_ergo", "wpn_fps_smg_m45_s_folded_vanilla", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_m45_npc = deep_clone(self.wpn_fps_smg_x_m45) self.wpn_fps_smg_x_m45_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_m45/wpn_fps_smg_x_m45_npc" end function WeaponFactoryTweakData:_init_x_m1928() self.parts.wpn_fps_smg_thompson_stock_nostock_vanilla = deep_clone(self.parts.wpn_fps_smg_thompson_stock_nostock) self.parts.wpn_fps_smg_thompson_stock_nostock_vanilla.stats = nil self.parts.wpn_fps_smg_thompson_stock_nostock_vanilla.pcs = nil self.wpn_fps_smg_x_m1928 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_m1928/wpn_fps_smg_x_m1928", adds = { wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_smg_thompson_fl_adapter" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_smg_thompson_fl_adapter" } }, override = { wpn_fps_smg_thompson_body = { animations = { fire_steelsight = "recoil", fire = "recoil" } } }, default_blueprint = { "wpn_fps_smg_thompson_barrel", "wpn_fps_smg_thompson_body", "wpn_fps_smg_thompson_drummag", "wpn_fps_smg_thompson_foregrip", "wpn_fps_smg_thompson_grip", "wpn_fps_smg_thompson_stock_nostock_vanilla", "wpn_fps_smg_thompson_ns_standard" }, uses_parts = { "wpn_fps_smg_thompson_barrel", "wpn_fps_smg_thompson_barrel_long", "wpn_fps_smg_thompson_barrel_short", "wpn_fps_smg_thompson_body", "wpn_fps_smg_thompson_drummag", "wpn_fps_smg_thompson_fl_adapter", "wpn_fps_smg_thompson_foregrip", "wpn_fps_smg_thompson_foregrip_discrete", "wpn_fps_smg_thompson_grip", "wpn_fps_smg_thompson_grip_discrete", "wpn_fps_smg_thompson_ns_standard", "wpn_fps_smg_thompson_o_adapter", "wpn_fps_smg_thompson_stock_nostock_vanilla", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_m1928_npc = deep_clone(self.wpn_fps_smg_x_m1928) self.wpn_fps_smg_x_m1928_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_m1928/wpn_fps_smg_x_m1928_npc" end function WeaponFactoryTweakData:_init_x_mac10() self.wpn_fps_smg_x_mac10 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_mac10/wpn_fps_smg_x_mac10", override = { wpn_fps_smg_mac10_m_extended = { stats = { extra_ammo = 8, value = 2, spread_moving = -2, concealment = -2, recoil = 1 } }, wpn_fps_smg_mac10_m_quick = { stats = { value = 2, reload = 10, extra_ammo = 8 } } }, default_blueprint = { "wpn_fps_smg_mac10_body_mac10", "wpn_fps_smg_mac10_b_dummy", "wpn_fps_smg_mac10_m_short", "wpn_fps_smg_mac10_s_fold" }, uses_parts = { "wpn_fps_smg_mac10_b_dummy", "wpn_fps_smg_mac10_body_ris", "wpn_fps_smg_mac10_ris_dummy", "wpn_fps_smg_mac10_m_extended", "wpn_fps_smg_mac10_m_short", "wpn_fps_smg_mac10_body_mac10", "wpn_fps_smg_mac10_s_fold", "wpn_fps_smg_mac10_s_skel", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_smg_cobray_ns_silencer", "wpn_fps_smg_cobray_ns_barrelextension", "wpn_fps_smg_mac10_m_quick", "wpn_fps_smg_mac10_body_modern" } } self.wpn_fps_smg_x_mac10_npc = deep_clone(self.wpn_fps_smg_x_mac10) self.wpn_fps_smg_x_mac10_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_mac10/wpn_fps_smg_x_mac10_npc" end function WeaponFactoryTweakData:_init_x_mp7() self.wpn_fps_smg_x_mp7 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_mp7/wpn_fps_smg_x_mp7", override = { wpn_fps_smg_mp7_m_extended = { stats = { value = 1, spread_moving = -1, concealment = -3, extra_ammo = 12 } } }, default_blueprint = { "wpn_fps_smg_mp7_m_short", "wpn_fps_smg_mp7_b_standard", "wpn_fps_smg_mp7_body_standard", "wpn_fps_smg_mp7_s_standard" }, uses_parts = { "wpn_fps_smg_mp7_m_short", "wpn_fps_smg_mp7_b_standard", "wpn_fps_smg_mp7_body_standard", "wpn_fps_smg_mp7_s_standard", "wpn_fps_smg_mp7_m_extended", "wpn_fps_smg_mp7_b_suppressed", "wpn_fps_smg_mp7_s_long", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_mp7_npc = deep_clone(self.wpn_fps_smg_x_mp7) self.wpn_fps_smg_x_mp7_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_mp7/wpn_fps_smg_x_mp7_npc" end function WeaponFactoryTweakData:_init_x_mp9() self.wpn_fps_smg_x_mp9 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_mp9/wpn_fps_smg_x_mp9", override = { wpn_fps_smg_mp9_m_extended = { stats = { concealment = -2, spread_moving = -2, value = 4, extra_ammo = 12 } } }, default_blueprint = { "wpn_fps_smg_mp9_body_mp9", "wpn_fps_smg_mp9_s_fold", "wpn_fps_smg_mp9_m_short", "wpn_fps_smg_mp9_b_dummy" }, uses_parts = { "wpn_fps_smg_mp9_b_dummy", "wpn_fps_smg_mp9_b_suppressed", "wpn_fps_smg_mp9_body_mp9", "wpn_fps_smg_mp9_m_extended", "wpn_fps_smg_mp9_m_short", "wpn_fps_smg_mp9_s_fold", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_i_autofire", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg" } } self.wpn_fps_smg_x_mp9_npc = deep_clone(self.wpn_fps_smg_x_mp9) self.wpn_fps_smg_x_mp9_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_mp9/wpn_fps_smg_x_mp9_npc" end function WeaponFactoryTweakData:_init_x_olympic() self.wpn_fps_smg_x_olympic = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_olympic/wpn_fps_smg_x_olympic", stock_adapter = "wpn_fps_upg_m4_s_adapter", override = { wpn_fps_m4_uupg_b_short_vanilla = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_para_b_short" }, wpn_fps_m4_uupg_b_medium = { unit = "units/payday2/weapons/wpn_fps_ass_m4_pts/wpn_fps_para_b_medium" }, wpn_fps_ass_l85a2_m_emag = { stats = { value = 1, recoil = 1, extra_ammo = 4 } }, wpn_fps_upg_m4_m_pmag = { stats = { value = 3, spread_moving = 1, concealment = 0, extra_ammo = 4 } }, wpn_fps_upg_m4_m_l5 = { stats = { extra_ammo = 4, recoil = 1, value = 1 } }, wpn_fps_upg_m4_m_quad = { stats = { extra_ammo = 30, value = 3, recoil = 1, spread = -1, concealment = -3, spread_moving = -2 } }, wpn_fps_m4_uupg_m_std = { stats = { extra_ammo = 8, value = 1, concealment = -1 } } }, animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_smg_olympic_s_short_vanilla", "wpn_fps_m4_uupg_draghandle", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_m4_uupg_b_short_vanilla", "wpn_fps_m4_upper_reciever_round", "wpn_fps_m4_lower_reciever", "wpn_fps_smg_olympic_fg_olympic", "wpn_fps_ass_m16_o_handle_sight", "wpn_fps_amcar_bolt_standard" }, uses_parts = { "wpn_fps_smg_olympic_s_short_vanilla", "wpn_fps_ass_m16_o_handle_sight", "wpn_fps_amcar_bolt_standard", "wpn_fps_m4_lower_reciever", "wpn_fps_upg_ass_m4_lower_reciever_core", "wpn_fps_m4_upper_reciever_edge", "wpn_fps_m4_upper_reciever_round", "wpn_fps_upg_ass_m4_upper_reciever_ballos", "wpn_fps_upg_ass_m4_upper_reciever_core", "wpn_fps_m4_uupg_draghandle", "wpn_fps_m4_uupg_draghandle_ballos", "wpn_fps_m4_uupg_draghandle_core", "wpn_fps_smg_olympic_fg_olympic", "wpn_fps_smg_olympic_fg_railed", "wpn_fps_upg_smg_olympic_fg_lr300", "wpn_fps_m4_uupg_b_short_vanilla", "wpn_fps_m4_uupg_b_medium", "wpn_fps_m4_uupg_m_std", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight_vanilla", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_m4_upg_m_quick", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_m4_g_standard_vanilla", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_snp_tti_g_grippy", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_olympic_npc = deep_clone(self.wpn_fps_smg_x_olympic) self.wpn_fps_smg_x_olympic_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_olympic/wpn_fps_smg_x_olympic_npc" end function WeaponFactoryTweakData:_init_x_p90() self.wpn_fps_smg_x_p90 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_p90/wpn_fps_smg_x_p90", override = { wpn_upg_o_marksmansight_rear_vanilla = { a_obj = "a_or" }, wpn_upg_o_marksmansight_front = { a_obj = "a_of" } }, default_blueprint = { "wpn_fps_smg_p90_body_p90", "wpn_fps_smg_p90_b_short", "wpn_fps_smg_p90_m_std", "wpn_upg_o_marksmansight_rear_vanilla" }, uses_parts = { "wpn_fps_smg_p90_body_p90", "wpn_fps_smg_p90_m_std", "wpn_fps_smg_p90_b_short", "wpn_fps_smg_p90_b_long", "wpn_upg_o_marksmansight_rear_vanilla", "wpn_upg_o_marksmansight_front", "wpn_fps_smg_p90_b_legend", "wpn_fps_smg_p90_b_civilian", "wpn_fps_smg_p90_b_ninja", "wpn_fps_smg_p90_m_strap", "wpn_fps_smg_p90_body_boxy", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_p90_npc = deep_clone(self.wpn_fps_smg_x_p90) self.wpn_fps_smg_x_p90_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_p90/wpn_fps_smg_x_p90_npc" end function WeaponFactoryTweakData:_init_x_polymer() self.wpn_fps_smg_x_polymer = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_polymer/wpn_fps_smg_x_polymer", default_blueprint = { "wpn_fps_smg_polymer_body_standard", "wpn_fps_smg_polymer_bolt_standard", "wpn_fps_smg_polymer_dh_standard", "wpn_fps_smg_polymer_extra_sling", "wpn_fps_smg_polymer_o_iron", "wpn_fps_smg_polymer_fg_standard", "wpn_fps_smg_polymer_barrel_standard", "wpn_fps_smg_polymer_m_standard", "wpn_fps_smg_polymer_s_standard" }, uses_parts = { "wpn_fps_smg_polymer_body_standard", "wpn_fps_smg_polymer_bolt_standard", "wpn_fps_smg_polymer_dh_standard", "wpn_fps_smg_polymer_extra_sling", "wpn_fps_smg_polymer_o_iron", "wpn_fps_smg_polymer_fg_standard", "wpn_fps_smg_polymer_barrel_standard", "wpn_fps_smg_polymer_m_standard", "wpn_fps_smg_polymer_s_standard", "wpn_fps_smg_polymer_barrel_precision", "wpn_fps_smg_polymer_ns_silencer", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_polymer_npc = deep_clone(self.wpn_fps_smg_x_polymer) self.wpn_fps_smg_x_polymer_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_polymer/wpn_fps_smg_x_polymer_npc" end function WeaponFactoryTweakData:_init_x_schakal() self.parts.wpn_fps_smg_schakal_s_folded_vanilla = deep_clone(self.parts.wpn_fps_smg_schakal_s_folded) self.parts.wpn_fps_smg_schakal_s_folded_vanilla.stats = nil self.parts.wpn_fps_smg_schakal_s_folded_vanilla.pcs = nil self.wpn_fps_smg_x_schakal = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_schakal/wpn_fps_smg_x_schakal", override = { wpn_fps_smg_schakal_m_short = { stats = { extra_ammo = -10, value = 1, concealment = -2 } }, wpn_fps_smg_schakal_m_long = { stats = { extra_ammo = 20, value = 1, concealment = 2 } } }, animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_smg_schakal_b_standard", "wpn_fps_smg_schakal_body_lower", "wpn_fps_smg_schakal_body_upper", "wpn_fps_smg_schakal_m_standard", "wpn_fps_smg_schakal_s_folded_vanilla", "wpn_fps_smg_schakal_dh_standard", "wpn_fps_smg_schakal_bolt_standard", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_smg_schakal_extra_magrelease" }, uses_parts = { "wpn_fps_smg_schakal_b_civil", "wpn_fps_smg_schakal_b_standard", "wpn_fps_smg_schakal_body_lower", "wpn_fps_smg_schakal_body_upper", "wpn_fps_smg_schakal_m_long", "wpn_fps_smg_schakal_m_short", "wpn_fps_smg_schakal_m_standard", "wpn_fps_smg_schakal_ns_silencer", "wpn_fps_smg_schakal_s_folded_vanilla", "wpn_fps_smg_schakal_dh_standard", "wpn_fps_smg_schakal_bolt_standard", "wpn_fps_smg_schakal_vg_extra", "wpn_fps_smg_schakal_vg_surefire", "wpn_fps_smg_schakal_extra_magrelease", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_schakal_npc = deep_clone(self.wpn_fps_smg_x_schakal) self.wpn_fps_smg_x_schakal_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_schakal/wpn_fps_smg_x_schakal_npc" end function WeaponFactoryTweakData:_init_x_scorpion() self.wpn_fps_smg_x_scorpion = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_scorpion/wpn_fps_smg_x_scorpion", override = { wpn_fps_smg_scorpion_m_extended = { stats = { concealment = -3, recoil = 2, value = 1, extra_ammo = 20 } } }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_smg_scorpion_extra_rail_gadget" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_smg_scorpion_extra_rail_gadget" } }, default_blueprint = { "wpn_fps_smg_scorpion_body_standard", "wpn_fps_smg_scorpion_b_standard", "wpn_fps_smg_scorpion_m_standard", "wpn_fps_smg_scorpion_s_standard", "wpn_fps_smg_scorpion_g_standard" }, uses_parts = { "wpn_fps_smg_scorpion_b_standard", "wpn_fps_smg_scorpion_b_suppressed", "wpn_fps_smg_scorpion_body_standard", "wpn_fps_smg_scorpion_g_standard", "wpn_fps_smg_scorpion_g_wood", "wpn_fps_smg_scorpion_g_ergo", "wpn_fps_smg_scorpion_m_standard", "wpn_fps_smg_scorpion_m_extended", "wpn_fps_smg_scorpion_s_standard", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_scorpion_npc = deep_clone(self.wpn_fps_smg_x_scorpion) self.wpn_fps_smg_x_scorpion_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_scorpion/wpn_fps_smg_x_scorpion_npc" end function WeaponFactoryTweakData:_init_x_sterling() self.parts.wpn_fps_smg_sterling_s_folded_vanilla = deep_clone(self.parts.wpn_fps_smg_sterling_s_folded) self.parts.wpn_fps_smg_sterling_s_folded_vanilla.stats = nil self.parts.wpn_fps_smg_sterling_s_folded_vanilla.pcs = nil self.wpn_fps_smg_x_sterling = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_sterling/wpn_fps_smg_x_sterling", override = { wpn_fps_smg_sterling_b_standard = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_smg_sterling_b_short = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_smg_sterling_b_long = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_smg_sterling_b_suppressed = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_smg_sterling_b_e11 = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_smg_sterling_m_short = { stats = { extra_ammo = -10, value = 1, concealment = 2 } }, wpn_fps_smg_sterling_m_long = { stats = { extra_ammo = 10, value = 1, concealment = -2 } } }, default_blueprint = { "wpn_fps_smg_sterling_b_standard", "wpn_fps_smg_sterling_body_standard", "wpn_fps_smg_sterling_m_medium", "wpn_fps_smg_sterling_s_folded_vanilla" }, uses_parts = { "wpn_fps_smg_sterling_b_long", "wpn_fps_smg_sterling_b_short", "wpn_fps_smg_sterling_b_standard", "wpn_fps_smg_sterling_b_suppressed", "wpn_fps_smg_sterling_b_e11", "wpn_fps_smg_sterling_body_standard", "wpn_fps_smg_sterling_m_long", "wpn_fps_smg_sterling_m_medium", "wpn_fps_smg_sterling_m_short", "wpn_fps_smg_sterling_s_folded_vanilla", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_sterling_npc = deep_clone(self.wpn_fps_smg_x_sterling) self.wpn_fps_smg_x_sterling_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_sterling/wpn_fps_smg_x_sterling_npc" end function WeaponFactoryTweakData:_init_x_tec9() self.wpn_fps_smg_x_tec9 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_tec9/wpn_fps_smg_x_tec9", override = { wpn_fps_smg_tec9_m_extended = { stats = { extra_ammo = 12, recoil = 2, value = 4, concealment = -2 } } }, default_blueprint = { "wpn_fps_smg_tec9_m_standard", "wpn_fps_smg_tec9_b_long", "wpn_fps_smg_tec9_body_standard" }, uses_parts = { "wpn_fps_smg_tec9_b_long", "wpn_fps_smg_tec9_b_standard", "wpn_fps_smg_tec9_body_standard", "wpn_fps_smg_tec9_m_standard", "wpn_fps_smg_tec9_m_extended", "wpn_fps_smg_tec9_ns_ext", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_tec9_npc = deep_clone(self.wpn_fps_smg_x_tec9) self.wpn_fps_smg_x_tec9_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_tec9/wpn_fps_smg_x_tec9_npc" end function WeaponFactoryTweakData:_init_x_uzi() self.parts.wpn_fps_smg_uzi_s_standard_vanilla = deep_clone(self.parts.wpn_fps_smg_uzi_s_standard) self.parts.wpn_fps_smg_uzi_s_standard_vanilla.stats = nil self.parts.wpn_fps_smg_uzi_s_standard_vanilla.pcs = nil self.wpn_fps_smg_x_uzi = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_uzi/wpn_fps_smg_x_uzi", adds = { wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_laser = { "wpn_fps_shot_r870_gadget_rail" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_shot_r870_gadget_rail" } }, default_blueprint = { "wpn_fps_smg_uzi_b_standard", "wpn_fps_smg_uzi_body_standard", "wpn_fps_smg_uzi_fg_standard", "wpn_fps_smg_uzi_g_standard", "wpn_fps_smg_uzi_m_standard", "wpn_fps_smg_uzi_s_standard_vanilla" }, uses_parts = { "wpn_fps_smg_uzi_b_standard", "wpn_fps_smg_uzi_b_suppressed", "wpn_fps_smg_uzi_body_standard", "wpn_fps_smg_uzi_fg_rail", "wpn_fps_smg_uzi_fg_standard", "wpn_fps_smg_uzi_g_standard", "wpn_fps_smg_uzi_m_standard", "wpn_fps_smg_uzi_s_standard_vanilla", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_vg_ass_smg_verticalgrip", "wpn_fps_upg_vg_ass_smg_stubby", "wpn_fps_upg_vg_ass_smg_afg", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_smg_x_uzi_npc = deep_clone(self.wpn_fps_smg_x_uzi) self.wpn_fps_smg_x_uzi_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_smg_x_uzi/wpn_fps_smg_x_uzi_npc" end function WeaponFactoryTweakData:_init_x_2006m() self.wpn_fps_pis_x_2006m = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_2006m/wpn_fps_pis_x_2006m", animations = { fire_steelsight = "recoil", fire = "recoil" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_2006m_fl_adapter" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_2006m_fl_adapter" } }, override = { wpn_fps_pis_2006m_body_standard = { animations = { fire_steelsight = "recoil", fire = "recoil" } }, wpn_fps_pis_2006m_m_standard = { animations = {} } }, default_blueprint = { "wpn_fps_pis_2006m_b_standard", "wpn_fps_pis_2006m_body_standard", "wpn_fps_pis_2006m_g_standard", "wpn_fps_pis_2006m_m_standard" }, uses_parts = { "wpn_fps_pis_2006m_b_long", "wpn_fps_pis_2006m_b_medium", "wpn_fps_pis_2006m_b_short", "wpn_fps_pis_2006m_b_standard", "wpn_fps_pis_2006m_body_standard", "wpn_fps_pis_2006m_fl_adapter", "wpn_fps_pis_2006m_g_bling", "wpn_fps_pis_2006m_g_standard", "wpn_fps_pis_2006m_m_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_fl_pis_m3x" } } self.wpn_fps_pis_x_2006m_npc = deep_clone(self.wpn_fps_pis_x_2006m) self.wpn_fps_pis_x_2006m_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_2006m/wpn_fps_pis_x_2006m_npc" end function WeaponFactoryTweakData:_init_x_breech() self.wpn_fps_pis_x_breech = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_breech/wpn_fps_pis_x_breech", optional_types = { "barrel_ext", "gadget" }, animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = false }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_pis_breech_dh = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } }, default_blueprint = { "wpn_fps_pis_breech_b_standard", "wpn_fps_pis_breech_body", "wpn_fps_pis_breech_dh", "wpn_fps_pis_breech_g_standard", "wpn_fps_pis_breech_mag" }, uses_parts = { "wpn_fps_pis_breech_b_reinforced", "wpn_fps_pis_breech_b_short", "wpn_fps_pis_breech_b_standard", "wpn_fps_pis_breech_body", "wpn_fps_pis_breech_dh", "wpn_fps_pis_breech_g_custom", "wpn_fps_pis_breech_g_standard", "wpn_fps_pis_breech_mag" } } self.wpn_fps_pis_x_breech_npc = deep_clone(self.wpn_fps_pis_x_breech) self.wpn_fps_pis_x_breech_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_breech/wpn_fps_pis_x_breech_npc" end function WeaponFactoryTweakData:_init_x_c96() self.wpn_fps_pis_x_c96 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_c96/wpn_fps_pis_x_c96", optional_types = { "barrel_ext", "gadget" }, animations = { fire_steelsight = "recoil", fire = "recoil" }, override = { wpn_fps_pis_c96_m_standard = { animations = {} }, wpn_fps_pis_c96_m_extended = { animations = {}, stats = { concealment = -2, value = 1, extra_ammo = 10 } }, wpn_fps_pis_c96_b_standard = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } }, wpn_fps_pis_c96_b_long = { animations = { fire = "recoil", fire_steelsight = "recoil", magazine_empty = "last_recoil" } } }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_c96_rail" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_c96_rail" }, wpn_fps_pis_c96_sight = { "wpn_fps_pis_c96_rail" } }, default_blueprint = { "wpn_fps_pis_c96_b_standard", "wpn_fps_pis_c96_body_standard", "wpn_fps_pis_c96_g_standard", "wpn_fps_pis_c96_m_standard" }, uses_parts = { "wpn_fps_pis_c96_b_long", "wpn_fps_pis_c96_b_standard", "wpn_fps_pis_c96_body_standard", "wpn_fps_pis_c96_g_standard", "wpn_fps_pis_c96_m_extended", "wpn_fps_pis_c96_m_standard", "wpn_fps_pis_c96_nozzle", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_c96_npc = deep_clone(self.wpn_fps_pis_x_c96) self.wpn_fps_pis_x_c96_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_c96/wpn_fps_pis_x_c96_npc" end function WeaponFactoryTweakData:_init_x_g18c() self.wpn_fps_pis_x_g18c = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_g18c/wpn_fps_pis_x_g18c", override = { wpn_fps_pis_g18c_m_mag_33rnd = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" }, stats = { value = 3, spread_moving = -2, concealment = -1, extra_ammo = 12 } }, wpn_fps_pis_g18c_m_mag_17rnd = { animations = { reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_left = "reload_left", reload_not_empty_left = "reload_not_empty_left" } }, wpn_fps_pis_g18c_b_standard = { animations = { reload_left = "reload_left", fire = "recoil", reload_not_empty = "reload_not_empty_right", reload = "reload_right", reload_not_empty_left = "reload_not_empty_left", magazine_empty = "last_recoil" } } }, optional_types = { "barrel_ext", "gadget" }, default_blueprint = { "wpn_fps_pis_g18c_body_frame", "wpn_fps_pis_g18c_b_standard", "wpn_fps_pis_g18c_m_mag_17rnd" }, uses_parts = { "wpn_fps_pis_g18c_body_frame", "wpn_fps_pis_g18c_b_standard", "wpn_fps_pis_g18c_co_1", "wpn_fps_pis_g18c_co_comp_2", "wpn_fps_pis_g18c_m_mag_33rnd", "wpn_fps_pis_g18c_m_mag_17rnd", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_pis_g18c_g_ergo", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_pis_g26_g_gripforce", "wpn_fps_pis_g26_g_laser", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_g18c_npc = deep_clone(self.wpn_fps_pis_x_g18c) self.wpn_fps_pis_x_g18c_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_g18c/wpn_fps_pis_x_g18c_npc" end function WeaponFactoryTweakData:_init_x_hs2000() self.wpn_fps_pis_x_hs2000 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_hs2000/wpn_fps_pis_x_hs2000", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_pis_hs2000_m_extended = { stats = { extra_ammo = 8, spread_moving = -2, value = 1 } } }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_pis_hs2000_body_standard", "wpn_fps_pis_hs2000_m_standard", "wpn_fps_pis_hs2000_sl_standard" }, uses_parts = { "wpn_fps_pis_hs2000_body_standard", "wpn_fps_pis_hs2000_m_standard", "wpn_fps_pis_hs2000_m_extended", "wpn_fps_pis_hs2000_sl_standard", "wpn_fps_pis_hs2000_sl_custom", "wpn_fps_pis_hs2000_sl_long", "wpn_fps_pis_hs2000_b_standard", "wpn_fps_pis_hs2000_b_custom", "wpn_fps_pis_hs2000_b_long", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_hs2000_npc = deep_clone(self.wpn_fps_pis_x_hs2000) self.wpn_fps_pis_x_hs2000_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_hs2000/wpn_fps_pis_x_hs2000_npc" end function WeaponFactoryTweakData:_init_x_p226() self.wpn_fps_pis_x_p226 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_p226/wpn_fps_pis_x_p226", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_pis_p226_m_extended = { stats = { extra_ammo = 8, spread_moving = -2, value = 1 } } }, default_blueprint = { "wpn_fps_pis_p226_b_standard", "wpn_fps_pis_p226_body_standard", "wpn_fps_pis_p226_g_standard", "wpn_fps_pis_p226_m_standard", "wpn_fps_pis_p226_o_standard" }, uses_parts = { "wpn_fps_pis_p226_b_standard", "wpn_fps_pis_p226_b_equinox", "wpn_fps_pis_p226_b_long", "wpn_fps_pis_p226_body_standard", "wpn_fps_pis_p226_g_standard", "wpn_fps_pis_p226_g_ergo", "wpn_fps_pis_p226_m_standard", "wpn_fps_pis_p226_m_extended", "wpn_fps_pis_p226_o_standard", "wpn_fps_pis_p226_o_long", "wpn_fps_pis_p226_co_comp_1", "wpn_fps_pis_p226_co_comp_2", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_p226_npc = deep_clone(self.wpn_fps_pis_x_p226) self.wpn_fps_pis_x_p226_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_p226/wpn_fps_pis_x_p226_npc" end function WeaponFactoryTweakData:_init_x_pl14() self.wpn_fps_pis_x_pl14 = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_pl14/wpn_fps_pis_x_pl14", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_pis_pl14_m_extended = { stats = { extra_ammo = 2, value = 1, concealment = -1 } } }, default_blueprint = { "wpn_fps_pis_pl14_b_standard", "wpn_fps_pis_pl14_body_standard", "wpn_fps_pis_pl14_m_standard", "wpn_fps_pis_pl14_sl_standard" }, uses_parts = { "wpn_fps_pis_pl14_b_comp", "wpn_fps_pis_pl14_b_standard", "wpn_fps_pis_pl14_body_standard", "wpn_fps_pis_pl14_m_extended", "wpn_fps_pis_pl14_m_standard", "wpn_fps_pis_pl14_sl_standard", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_pl14_npc = deep_clone(self.wpn_fps_pis_x_pl14) self.wpn_fps_pis_x_pl14_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_pl14/wpn_fps_pis_x_pl14_npc" end function WeaponFactoryTweakData:_init_x_ppk() self.wpn_fps_pis_x_ppk = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_ppk/wpn_fps_pis_x_ppk", optional_types = { "barrel_ext", "gadget" }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_ppk_fl_mount" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_ppk_fl_mount" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_ppk_b_standard", "wpn_fps_pis_ppk_body_standard", "wpn_fps_pis_ppk_g_standard", "wpn_fps_pis_ppk_m_standard" }, uses_parts = { "wpn_fps_pis_ppk_b_standard", "wpn_fps_pis_ppk_b_long", "wpn_fps_pis_ppk_b_barrel_standard", "wpn_fps_pis_ppk_b_barrel_long", "wpn_fps_pis_ppk_dh_standard", "wpn_fps_pis_ppk_body_standard", "wpn_fps_pis_ppk_g_standard", "wpn_fps_pis_ppk_g_laser", "wpn_fps_pis_ppk_m_standard", "wpn_fps_pis_ppk_fl_mount", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_ppk_npc = deep_clone(self.wpn_fps_pis_x_ppk) self.wpn_fps_pis_x_ppk_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_ppk/wpn_fps_pis_x_ppk_npc" end function WeaponFactoryTweakData:_init_x_rage() self.wpn_fps_pis_x_rage = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_rage/wpn_fps_pis_x_rage", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_pis_rage_body_standard = { animations = { fire_steelsight = "recoil", fire = "recoil" } }, wpn_fps_pis_rage_body_smooth = { animations = { fire_steelsight = "recoil", fire = "recoil" } } }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_pis_rage_body_standard", "wpn_fps_pis_rage_b_standard", "wpn_fps_pis_rage_g_standard" }, uses_parts = { "wpn_fps_pis_rage_body_standard", "wpn_fps_pis_rage_body_smooth", "wpn_fps_pis_rage_b_standard", "wpn_fps_pis_rage_b_short", "wpn_fps_pis_rage_b_long", "wpn_fps_pis_rage_b_comp1", "wpn_fps_pis_rage_b_comp2", "wpn_fps_pis_rage_g_standard", "wpn_fps_pis_rage_g_ergo", "wpn_fps_upg_pis_ns_flash", "wpn_fps_pis_rage_lock" } } self.wpn_fps_pis_x_rage_npc = deep_clone(self.wpn_fps_pis_x_rage) self.wpn_fps_pis_x_rage_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_rage/wpn_fps_pis_x_rage_npc" end function WeaponFactoryTweakData:_init_x_sparrow() self.wpn_fps_pis_x_sparrow = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_sparrow/wpn_fps_pis_x_sparrow", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_sparrow_fl_dummy" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_sparrow_fl_dummy" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_pis_sparrow_b_rpl", "wpn_fps_pis_sparrow_body_rpl", "wpn_fps_pis_sparrow_g_dummy", "wpn_fps_pis_sparrow_m_standard", "wpn_fps_pis_sparrow_sl_rpl" }, uses_parts = { "wpn_fps_pis_sparrow_b_941", "wpn_fps_pis_sparrow_b_rpl", "wpn_fps_pis_sparrow_b_comp", "wpn_fps_pis_sparrow_b_threaded", "wpn_fps_pis_sparrow_body_941", "wpn_fps_pis_sparrow_body_rpl", "wpn_fps_pis_sparrow_fl_rail", "wpn_fps_pis_sparrow_fl_dummy", "wpn_fps_pis_sparrow_g_941", "wpn_fps_pis_sparrow_g_cowboy", "wpn_fps_pis_sparrow_g_dummy", "wpn_fps_pis_sparrow_m_standard", "wpn_fps_pis_sparrow_sl_941", "wpn_fps_pis_sparrow_sl_rpl", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_sparrow_npc = deep_clone(self.wpn_fps_pis_x_sparrow) self.wpn_fps_pis_x_sparrow_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_pis_x_sparrow/wpn_fps_pis_x_sparrow_npc" end function WeaponFactoryTweakData:_init_x_judge() self.wpn_fps_pis_x_judge = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_sho_x_judge/wpn_fps_pis_x_judge", optional_types = { "barrel_ext", "gadget" }, override = { wpn_fps_upg_ns_shot_shark = { parent = "slide" }, wpn_fps_upg_ns_shot_thick = { parent = "slide" }, wpn_fps_upg_shot_ns_king = { parent = "slide" }, wpn_fps_upg_ns_sho_salvo_large = { parent = "slide" }, wpn_fps_upg_ns_duck = { parent = "slide" }, wpn_fps_upg_a_piercing = { custom_stats = { damage_near_mul = 2, armor_piercing_add = 1, damage_far_mul = 1.7 } }, wpn_fps_upg_a_explosive = { custom_stats = { ignore_statistic = true, damage_far_mul = 2.5, damage_near_mul = 2, bullet_class = "InstantExplosiveBulletBase", rays = 1 } }, wpn_fps_pis_judge_body_standard = { animations = {} }, wpn_fps_pis_judge_body_modern = { animations = {} } }, adds = { wpn_fps_upg_fl_ass_laser = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_peq15 = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_smg_sho_peqbox = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_smg_sho_surefire = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_fl_ass_utg = { "wpn_fps_pis_judge_fl_adapter" }, wpn_fps_upg_o_specter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_docter = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_t1micro = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cmore = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_acog = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_cs = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_reflex = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx01 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_rx30 = { "wpn_fps_pis_rage_o_adapter" }, wpn_fps_upg_o_spot = { "wpn_fps_pis_rage_o_adapter" } }, animations = { reload = "reload_right", fire = "recoil", fire_steelsight = "recoil", reload_left = "reload_left", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_pis_judge_body_standard", "wpn_fps_pis_judge_b_standard", "wpn_fps_pis_judge_g_standard" }, uses_parts = { "wpn_fps_pis_judge_body_standard", "wpn_fps_pis_judge_b_standard", "wpn_fps_pis_judge_g_standard", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_pis_judge_b_legend", "wpn_fps_pis_judge_g_legend", "wpn_fps_upg_ns_duck", "wpn_fps_pis_judge_body_modern" } } self.wpn_fps_pis_x_judge_npc = deep_clone(self.wpn_fps_pis_x_judge) self.wpn_fps_pis_x_judge_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_sho_x_judge/wpn_fps_pis_x_judge_npc" end function WeaponFactoryTweakData:_init_x_rota() self.wpn_fps_sho_x_rota = { unit = "units/pd2_dlc_osa/weapons/wpn_fps_sho_x_rota/wpn_fps_sho_x_rota", optional_types = { "barrel_ext", "gadget", "vertical_grip" }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", reload_not_empty = "reload" }, default_blueprint = { "wpn_fps_sho_rota_b_long", "wpn_fps_sho_rota_body_lower", "wpn_fps_sho_rota_body_upper", "wpn_fps_sho_rota_fg_standard", "wpn_fps_sho_rota_g_standard", "wpn_fps_sho_rota_m_standard", "wpn_fps_sho_rota_mag_realese", "wpn_fps_sho_rota_o_standard", "wpn_fps_smg_hajk_vg_moe" }, uses_parts = { "wpn_fps_sho_rota_b_long", "wpn_fps_sho_rota_b_short", "wpn_fps_sho_rota_b_silencer", "wpn_fps_sho_rota_body_lower", "wpn_fps_sho_rota_body_upper", "wpn_fps_sho_rota_fg_standard", "wpn_fps_sho_rota_g_standard", "wpn_fps_sho_rota_m_standard", "wpn_fps_sho_rota_mag_realese", "wpn_fps_sho_rota_o_standard", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_shot_thick", "wpn_fps_upg_ns_shot_shark", "wpn_fps_upg_shot_ns_king", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_ns_sho_salvo_large", "wpn_fps_upg_ns_duck" } } self.wpn_fps_sho_x_rota_npc = deep_clone(self.wpn_fps_sho_x_rota) self.wpn_fps_sho_x_rota_npc.unit = "units/pd2_dlc_osa/weapons/wpn_fps_sho_x_rota/wpn_fps_sho_x_rota_npc" end function WeaponFactoryTweakData:_init_shuno() self.parts.wpn_fps_lmg_shuno_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_shuno_body", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_body_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_shuno_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_shuno_m_standard", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_m_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_shuno_b_standard = { a_obj = "a_b", type = "upper_reciever", name_id = "bm_wp_shuno_barrel", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_standard", stats = { value = 1 } } self.parts.wpn_fps_lmg_shuno_b_short = { a_obj = "a_b", type = "upper_reciever", name_id = "bm_wp_shuno_b_short", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_short", texture_bundle_folder = "dmg", pcs = { 10, 20, 30, 40 }, stats = { spread = -2, recoil = 4, value = 1, concealment = 2 }, override = { wpn_fps_lmg_shuno_b_dummy_long = { unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_dummy_short" } } } self.parts.wpn_fps_lmg_shuno_b_heat_short = { a_obj = "a_b", type = "upper_reciever", name_id = "bm_wp_shuno_b_heat_short", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_heat_short", texture_bundle_folder = "dmg", pcs = { 10, 20, 30, 40 }, stats = { spread = -1, recoil = 2, value = 1, concealment = 2 }, override = { wpn_fps_lmg_shuno_b_dummy_long = { unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_dummy_short" } } } self.parts.wpn_fps_lmg_shuno_b_heat_long = { texture_bundle_folder = "dmg", a_obj = "a_b", type = "upper_reciever", name_id = "bm_wp_shuno_b_heat_long", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_heat_long", pcs = { 10, 20, 30, 40 }, stats = { spread = 1, recoil = -2, value = 1, concealment = -2 } } self.parts.wpn_fps_lmg_shuno_b_dummy_long = { name_id = "bm_wp_shuno_b_dummy_long", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_dummy_long", a_obj = "a_b_dumb", type = "barrel" } self.parts.wpn_fps_lmg_shuno_b_dummy_short = { name_id = "bm_wp_shuno_b_dummy_short", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_b_dummy_short", a_obj = "a_b_dumb", type = "barrel" } self.parts.wpn_fps_lmg_shuno_s_standard = { name_id = "bm_wp_shuno_s_standard", unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno_pts/wpn_fps_lmg_shuno_s_standard", a_obj = "a_body", type = "stock" } self.parts.wpn_fps_lmg_shuno_body_standard.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_body_standard" self.parts.wpn_fps_lmg_shuno_m_standard.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_m_standard" self.parts.wpn_fps_lmg_shuno_s_standard.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_s_standard" self.parts.wpn_fps_lmg_shuno_b_standard.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_b_standard" self.parts.wpn_fps_lmg_shuno_b_short.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_b_short" self.parts.wpn_fps_lmg_shuno_b_heat_short.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_b_heat_short" self.parts.wpn_fps_lmg_shuno_b_heat_long.third_unit = "units/pd2_dlc_dmg/weapons/wpn_third_lmg_shuno_pts/wpn_third_lmg_shuno_b_heat_long" self.wpn_fps_lmg_shuno = { unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno/wpn_fps_lmg_shuno", animations = { reload_not_empty = "reload", reload = "reload", fire_steelsight = "recoil", fire = "recoil" }, optional_types = { "gadget", "sight", "barrel_ext" }, default_blueprint = { "wpn_fps_lmg_shuno_body_standard", "wpn_fps_lmg_shuno_b_standard", "wpn_fps_lmg_shuno_m_standard", "wpn_fps_lmg_shuno_s_standard", "wpn_fps_lmg_shuno_b_dummy_long" }, uses_parts = { "wpn_fps_lmg_shuno_body_standard", "wpn_fps_lmg_shuno_m_standard", "wpn_fps_lmg_shuno_s_standard", "wpn_fps_lmg_shuno_b_standard", "wpn_fps_lmg_shuno_b_short", "wpn_fps_lmg_shuno_b_heat_long", "wpn_fps_lmg_shuno_b_heat_short", "wpn_fps_lmg_shuno_b_dummy_short", "wpn_fps_lmg_shuno_b_dummy_long", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_lmg_shuno_npc = deep_clone(self.wpn_fps_lmg_shuno) self.wpn_fps_lmg_shuno_npc.unit = "units/pd2_dlc_dmg/weapons/wpn_fps_lmg_shuno/wpn_fps_lmg_shuno_npc" end function WeaponFactoryTweakData:_init_system() self.parts.wpn_fps_fla_system_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_system_body_standard", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_b_standard", stats = { value = 1 } } self.parts.wpn_fps_fla_system_b_wtf = { texture_bundle_folder = "sft", a_obj = "a_b", type = "barrel", name_id = "bm_wp_system_b_wtf", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_b_wtf", pcs = { 10, 20, 30, 40 }, stats = { concealment = 5, total_ammo_mod = -5, value = 1 } } self.parts.wpn_fps_fla_system_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_system_body_standard", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_body_standard", stats = { value = 1 } } self.parts.wpn_fps_fla_system_body_upper = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_system_body_standard", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_body_upper", stats = { value = 1 } } self.parts.wpn_fps_fla_system_dh_standard = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_system_body_standard", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_dh_standard", stats = { value = 1 } } self.parts.wpn_fps_fla_system_m_high = { texture_bundle_folder = "sft", a_obj = "a_m", type = "magazine", name_id = "bm_wp_system_m_high", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_m_high", pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = -5, damage = 7 } } self.parts.wpn_fps_fla_system_m_low = { texture_bundle_folder = "sft", a_obj = "a_m", type = "magazine", name_id = "bm_wp_system_m_low", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_m_low", pcs = { 10, 20, 30, 40 }, stats = { value = 1, total_ammo_mod = 5, damage = -4 } } self.parts.wpn_fps_fla_system_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_system_body_standard", unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_fps_fla_system_m_standard", stats = { value = 1 } } self.parts.wpn_fps_fla_system_b_standard.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_b_standard" self.parts.wpn_fps_fla_system_b_wtf.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_b_wtf" self.parts.wpn_fps_fla_system_body_standard.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_body_standard" self.parts.wpn_fps_fla_system_body_upper.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_body_upper" self.parts.wpn_fps_fla_system_dh_standard.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_dh_standard" self.parts.wpn_fps_fla_system_m_high.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_m_high" self.parts.wpn_fps_fla_system_m_low.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_m_low" self.parts.wpn_fps_fla_system_m_standard.third_unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system_pts/wpn_third_fla_system_m_standard" self.wpn_fps_fla_system = { unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system/wpn_fps_fla_system", animations = { reload_not_empty = "reload", reload = "reload" }, default_blueprint = { "wpn_fps_fla_system_b_standard", "wpn_fps_fla_system_body_standard", "wpn_fps_fla_system_body_upper", "wpn_fps_fla_system_dh_standard", "wpn_fps_fla_system_m_standard" }, uses_parts = { "wpn_fps_fla_system_b_standard", "wpn_fps_fla_system_b_wtf", "wpn_fps_fla_system_body_standard", "wpn_fps_fla_system_body_upper", "wpn_fps_fla_system_dh_standard", "wpn_fps_fla_system_m_high", "wpn_fps_fla_system_m_low", "wpn_fps_fla_system_m_standard", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_fl_ass_utg" } } self.wpn_fps_fla_system_npc = deep_clone(self.wpn_fps_fla_system) self.wpn_fps_fla_system_npc.unit = "units/pd2_dlc_sft/weapons/wpn_fps_fla_system/wpn_fps_fla_system_npc" end function WeaponFactoryTweakData:_init_komodo() self.parts.wpn_fps_ass_komodo_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_komodo_barrel_standard", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_b_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_komodo_body = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_komodo_body", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_body", stats = { value = 1 } } self.parts.wpn_fps_ass_komodo_grip_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_komodo_grip", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_grip_standard", stats = { value = 1 } } self.parts.wpn_fps_ass_komodo_ns = { a_obj = "a_ns", type = "barrel_ext", name_id = "bm_wp_komodo_nozzle", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_ns", stats = { value = 1 } } self.parts.wpn_fps_ass_komodo_dh = { a_obj = "a_dh", type = "drag_handle", name_id = "bm_wp_komodo_dh", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_dh", stats = { value = 1 } } self.parts.wpn_fps_ass_komodo_o_flipups_down = { a_obj = "a_o", type = "extra", name_id = "bm_wp_komodo_o_flipups_down", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_o_flipups_down", stats = { value = 1 } } self.parts.wpn_fps_ass_komodo_o_flipups_up = { a_obj = "a_o", type = "sight", name_id = "bm_wp_komodo_o_flipups_up", unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_fps_ass_komodo_o_flipups_up", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_45rds_v2", "wpn_fps_ass_komodo_o_flipups_down" } } self.parts.wpn_fps_ass_komodo_b_standard.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_b_standard" self.parts.wpn_fps_ass_komodo_body.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_body" self.parts.wpn_fps_ass_komodo_grip_standard.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_grip_standard" self.parts.wpn_fps_ass_komodo_ns.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_ns" self.parts.wpn_fps_ass_komodo_dh.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_dh" self.parts.wpn_fps_ass_komodo_o_flipups_up.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_o_flipups_up" self.parts.wpn_fps_ass_komodo_o_flipups_down.third_unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo_pts/wpn_third_ass_komodo_o_flipups_down" self.wpn_fps_ass_komodo = { unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo/wpn_fps_ass_komodo", animations = { reload_not_empty = "reload_not_empty", reload = "reload" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_docter = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_eotech = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_t1micro = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_cmore = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_reflex = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_rx01 = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_rx30 = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_acog = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_cs = { "wpn_fps_ass_komodo_o_flipups_down" }, wpn_fps_upg_o_spot = { "wpn_fps_ass_komodo_o_flipups_down" } }, default_blueprint = { "wpn_fps_ass_komodo_b_standard", "wpn_fps_ass_komodo_body", "wpn_fps_ass_komodo_grip_standard", "wpn_fps_ass_komodo_ns", "wpn_fps_ass_komodo_dh", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_ass_komodo_o_flipups_up" }, uses_parts = { "wpn_fps_ass_komodo_b_standard", "wpn_fps_ass_komodo_body", "wpn_fps_ass_komodo_grip_standard", "wpn_fps_ass_komodo_ns", "wpn_fps_ass_komodo_dh", "wpn_fps_ass_komodo_o_flipups_up", "wpn_fps_ass_komodo_o_flipups_down", "wpn_fps_smg_hajk_vg_moe", "wpn_fps_m4_uupg_m_std_vanilla", "wpn_fps_upg_m4_m_drum", "wpn_fps_upg_m4_m_pmag", "wpn_fps_upg_m4_m_straight", "wpn_fps_upg_m4_m_quad", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_m_l5", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_fl_ass_smg_sho_peqbox", "wpn_fps_upg_fl_ass_smg_sho_surefire", "wpn_fps_upg_ns_ass_smg_large", "wpn_fps_upg_ns_ass_smg_medium", "wpn_fps_upg_ns_ass_smg_small", "wpn_fps_upg_ns_ass_smg_firepig", "wpn_fps_upg_ns_ass_smg_stubby", "wpn_fps_upg_ns_ass_smg_tank", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_cs", "wpn_fps_upg_ass_ns_jprifles", "wpn_fps_upg_ass_ns_linear", "wpn_fps_upg_ass_ns_surefire", "wpn_fps_upg_fl_ass_peq15", "wpn_fps_upg_fl_ass_laser", "wpn_fps_upg_i_singlefire", "wpn_fps_upg_i_autofire", "wpn_fps_upg_ass_ns_battle", "wpn_fps_upg_fl_ass_utg", "wpn_fps_upg_o_45rds", "wpn_fps_upg_o_spot", "wpn_fps_m4_upg_m_quick", "wpn_fps_upg_o_xpsg33_magnifier", "wpn_fps_upg_o_45rds_v2" } } self.wpn_fps_ass_komodo_npc = deep_clone(self.wpn_fps_ass_komodo) self.wpn_fps_ass_komodo_npc.unit = "units/pd2_dlc_tar/weapons/wpn_fps_ass_komodo/wpn_fps_ass_komodo_npc" end function WeaponFactoryTweakData:_init_elastic() self.parts.wpn_fps_bow_elastic_bow = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_elastic_body_standard", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_bow", stats = { value = 1 }, animations = { reload = "reload", fire = "recoil", fire_steelsight = "recoil", charge = "charge" } } self.parts.wpn_fps_bow_elastic_body_regular = { a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_elastic_body_standard", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_body_regular", stats = { value = 1 } } self.parts.wpn_fps_bow_elastic_body_tactic = { texture_bundle_folder = "ram", a_obj = "a_body", type = "upper_reciever", name_id = "bm_wp_elastic_body_tactic", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_body_tactic", pcs = { 10, 20, 30, 40 }, stats = { concealment = 1, recoil = -1, value = 3, spread = -1 } } self.parts.wpn_fps_bow_elastic_g_1 = { a_obj = "a_g", type = "grip", name_id = "bm_wp_elastic_g_standard", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_g_1", stats = { value = 1 } } self.parts.wpn_fps_bow_elastic_g_2 = { texture_bundle_folder = "ram", a_obj = "a_g", type = "grip", name_id = "bm_wp_elastic_g_wood", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_g_2", pcs = { 10, 20, 30, 40 }, stats = { value = 1, recoil = 2, spread = 1 } } self.parts.wpn_fps_bow_elastic_g_3 = { texture_bundle_folder = "ram", a_obj = "a_g", type = "grip", name_id = "bm_wp_elastic_g_ergo", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_g_3", pcs = { 10, 20, 30, 40 }, stats = { concealment = 1, value = 1, spread = 1 } } self.parts.wpn_fps_bow_elastic_pin = { a_obj = "a_body", type = "ejector", name_id = "bm_wp_elastic_body_standard", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_pin", stats = { value = 1 } } self.parts.wpn_fps_bow_elastic_rail = { a_obj = "a_o", type = "rail", name_id = "bm_wp_elastic_rail", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_rail", stats = { value = 1 } } self.parts.wpn_fps_bow_elastic_whisker = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_elastic_whisker", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_whisker", stats = { value = 1 } } self.parts.wpn_fps_bow_elastic_sight = { a_obj = "a_o", type = "sight", name_id = "bm_wp_ecp_meter_right", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_sight", stats = { value = 1 }, forbids = { "wpn_fps_upg_o_xpsg33_magnifier" } } self.parts.wpn_fps_bow_elastic_m_standard = { parent = "lower_reciever", type = "ammo", name_id = "bm_wp_elastic_m_standard", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_m_standard", a_obj = "a_m", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_bow_elastic_m_explosive = { is_a_unlockable = true, texture_bundle_folder = "ram", a_obj = "a_m", sub_type = "ammo_explosive", type = "ammo", parent = "lower_reciever", name_id = "bm_wp_elastic_m_explosive", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_m_explosive", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -6 }, custom_stats = { launcher_grenade = "elastic_arrow_exp" } } self.parts.wpn_fps_bow_elastic_m_poison = { is_a_unlockable = true, texture_bundle_folder = "ram", a_obj = "a_m", sub_type = "ammo_poison", type = "ammo", parent = "lower_reciever", name_id = "bm_wp_elastic_m_poison", unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_fps_bow_elastic_m_poison", pcs = {}, bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { damage = -17, total_ammo_mod = -6 }, custom_stats = { launcher_grenade = "elastic_arrow_poison", dot_data = { type = "poison", custom_data = {} } } } self.parts.wpn_fps_bow_elastic_body_regular.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_body_regular" self.parts.wpn_fps_bow_elastic_bow.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_bow" self.parts.wpn_fps_bow_elastic_body_tactic.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_body_tactic" self.parts.wpn_fps_bow_elastic_g_1.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_g_1" self.parts.wpn_fps_bow_elastic_g_2.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_g_2" self.parts.wpn_fps_bow_elastic_g_3.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_g_3" self.parts.wpn_fps_bow_elastic_pin.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_pin" self.parts.wpn_fps_bow_elastic_rail.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_rail" self.parts.wpn_fps_bow_elastic_whisker.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_whisker" self.parts.wpn_fps_bow_elastic_sight.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_sight" self.parts.wpn_fps_bow_elastic_m_standard.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_m_standard" self.parts.wpn_fps_bow_elastic_m_explosive.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_m_explosive" self.parts.wpn_fps_bow_elastic_m_poison.third_unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic_pts/wpn_third_bow_elastic_m_poison" self.wpn_fps_bow_elastic = { unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic/wpn_fps_bow_elastic", optional_types = { "ammo" }, adds = { wpn_fps_upg_o_specter = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_aimpoint = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_aimpoint_2 = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_docter = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_eotech = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_t1micro = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_cmore = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_acog = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_cs = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_eotech_xps = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_reflex = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_rx01 = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_rx30 = { "wpn_fps_bow_elastic_rail" }, wpn_fps_upg_o_spot = { "wpn_fps_bow_elastic_rail" } }, default_blueprint = { "wpn_fps_bow_elastic_bow", "wpn_fps_bow_elastic_body_regular", "wpn_fps_bow_elastic_g_1", "wpn_fps_bow_elastic_pin", "wpn_fps_bow_elastic_whisker", "wpn_fps_bow_elastic_m_standard", "wpn_fps_bow_elastic_sight" }, uses_parts = { "wpn_fps_bow_elastic_bow", "wpn_fps_bow_elastic_body_regular", "wpn_fps_bow_elastic_body_tactic", "wpn_fps_bow_elastic_g_1", "wpn_fps_bow_elastic_g_2", "wpn_fps_bow_elastic_g_3", "wpn_fps_bow_elastic_pin", "wpn_fps_bow_elastic_rail", "wpn_fps_bow_elastic_whisker", "wpn_fps_bow_elastic_m_standard", "wpn_fps_bow_elastic_m_explosive", "wpn_fps_bow_elastic_m_poison", "wpn_fps_bow_elastic_sight", "wpn_fps_upg_o_specter", "wpn_fps_upg_o_aimpoint", "wpn_fps_upg_o_docter", "wpn_fps_upg_o_eotech", "wpn_fps_upg_o_t1micro", "wpn_fps_upg_o_rx30", "wpn_fps_upg_o_rx01", "wpn_fps_upg_o_reflex", "wpn_fps_upg_o_eotech_xps", "wpn_fps_upg_o_cmore", "wpn_fps_upg_o_aimpoint_2", "wpn_fps_upg_o_acog", "wpn_fps_upg_o_cs", "wpn_fps_upg_o_spot" } } self.wpn_fps_bow_elastic_npc = deep_clone(self.wpn_fps_bow_elastic) self.wpn_fps_bow_elastic_npc.unit = "units/pd2_dlc_ram/weapons/wpn_fps_bow_elastic/wpn_fps_bow_elastic_npc" self.wpn_fps_bow_elastic_npc.skip_thq_parts = true end function WeaponFactoryTweakData:_init_legacy() self.parts.wpn_fps_pis_legacy_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_b_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_b_threaded = { texture_bundle_folder = "khp", a_obj = "a_b", type = "barrel", name_id = "bm_wp_legacy_b_threaded", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_b_threaded", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = -1, spread = 1, concealment = -1 } } self.parts.wpn_fps_pis_legacy_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_body_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_firepin_standard = { a_obj = "a_firepin", type = "firepin", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_firepin_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_g_standard = { a_obj = "a_g", type = "grip", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_g_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_g_wood = { texture_bundle_folder = "khp", a_obj = "a_g", type = "grip", name_id = "bm_wp_legacy_g_wood", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_g_wood", pcs = { 10, 20, 30, 40 }, stats = { value = 2, recoil = 2 } } self.parts.wpn_fps_pis_legacy_m_standard = { a_obj = "a_m", type = "magazine", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_m_standard", bullet_objects = { amount = 1, prefix = "g_bullet_" }, stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_safety_standard = { a_obj = "a_safety", type = "safety", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_safety_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_sl_standard = { a_obj = "a_sl", type = "slide", name_id = "bm_wp_legacy_b_standard", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_sl_standard", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_fl_mount = { a_obj = "a_fl", type = "extra", name_id = "bm_wp_serbu_s_solid_short", unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_fps_pis_legacy_fl_mount", stats = { value = 1 } } self.parts.wpn_fps_pis_legacy_b_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_b_standard" self.parts.wpn_fps_pis_legacy_b_threaded.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_b_threaded" self.parts.wpn_fps_pis_legacy_body_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_body_standard" self.parts.wpn_fps_pis_legacy_firepin_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_firepin_standard" self.parts.wpn_fps_pis_legacy_g_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_g_standard" self.parts.wpn_fps_pis_legacy_g_wood.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_g_wood" self.parts.wpn_fps_pis_legacy_m_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_m_standard" self.parts.wpn_fps_pis_legacy_safety_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_safety_standard" self.parts.wpn_fps_pis_legacy_sl_standard.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_sl_standard" self.parts.wpn_fps_pis_legacy_fl_mount.third_unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy_pts/wpn_third_pis_legacy_fl_mount" self.wpn_fps_pis_legacy = { unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy/wpn_fps_pis_legacy", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_legacy_fl_mount" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, default_blueprint = { "wpn_fps_pis_legacy_b_standard", "wpn_fps_pis_legacy_body_standard", "wpn_fps_pis_legacy_firepin_standard", "wpn_fps_pis_legacy_g_standard", "wpn_fps_pis_legacy_m_standard", "wpn_fps_pis_legacy_safety_standard", "wpn_fps_pis_legacy_sl_standard" }, uses_parts = { "wpn_fps_pis_legacy_b_standard", "wpn_fps_pis_legacy_b_threaded", "wpn_fps_pis_legacy_body_standard", "wpn_fps_pis_legacy_firepin_standard", "wpn_fps_pis_legacy_g_standard", "wpn_fps_pis_legacy_g_wood", "wpn_fps_pis_legacy_m_standard", "wpn_fps_pis_legacy_safety_standard", "wpn_fps_pis_legacy_sl_standard", "wpn_fps_pis_legacy_fl_mount", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_o_rmr", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_legacy_npc = deep_clone(self.wpn_fps_pis_legacy) self.wpn_fps_pis_legacy_npc.unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_legacy/wpn_fps_pis_legacy_npc" end function WeaponFactoryTweakData:_init_x_legacy() self.wpn_fps_pis_x_legacy = { unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_x_legacy/wpn_fps_pis_x_legacy", optional_types = { "barrel_ext", "gadget" }, adds = { wpn_fps_upg_fl_pis_laser = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_tlr1 = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_crimson = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_x400v = { "wpn_fps_pis_legacy_fl_mount" }, wpn_fps_upg_fl_pis_m3x = { "wpn_fps_pis_legacy_fl_mount" } }, override = { wpn_fps_upg_o_rmr = { parent = "slide" }, wpn_fps_upg_pis_ns_flash = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_slim = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_ass_filter = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_jungle = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_small = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_large_kac = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_medium_gem = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_ipsccomp = { a_obj = "a_ns", parent = "barrel" }, wpn_fps_upg_ns_pis_meatgrinder = { a_obj = "a_ns", parent = "barrel" } }, animations = { reload_left = "reload_left", fire = "recoil", fire_steelsight = "recoil", reload_not_empty_left = "reload_not_empty_left", reload = "reload_right", reload_not_empty = "reload_not_empty_right", magazine_empty = "last_recoil" }, default_blueprint = { "wpn_fps_pis_legacy_b_standard", "wpn_fps_pis_legacy_body_standard", "wpn_fps_pis_legacy_firepin_standard", "wpn_fps_pis_legacy_g_standard", "wpn_fps_pis_legacy_m_standard", "wpn_fps_pis_legacy_safety_standard", "wpn_fps_pis_legacy_sl_standard" }, uses_parts = { "wpn_fps_pis_legacy_b_standard", "wpn_fps_pis_legacy_b_threaded", "wpn_fps_pis_legacy_body_standard", "wpn_fps_pis_legacy_firepin_standard", "wpn_fps_pis_legacy_g_standard", "wpn_fps_pis_legacy_g_wood", "wpn_fps_pis_legacy_m_standard", "wpn_fps_pis_legacy_safety_standard", "wpn_fps_pis_legacy_sl_standard", "wpn_fps_pis_legacy_fl_mount", "wpn_fps_upg_fl_pis_laser", "wpn_fps_upg_fl_pis_tlr1", "wpn_fps_upg_ns_pis_large", "wpn_fps_upg_ns_pis_medium", "wpn_fps_upg_ns_pis_small", "wpn_fps_upg_ns_pis_large_kac", "wpn_fps_upg_ns_pis_medium_gem", "wpn_fps_upg_ns_pis_medium_slim", "wpn_fps_upg_pis_ns_flash", "wpn_fps_upg_fl_pis_crimson", "wpn_fps_upg_fl_pis_x400v", "wpn_fps_upg_ns_pis_meatgrinder", "wpn_fps_upg_ns_pis_ipsccomp", "wpn_fps_upg_fl_pis_m3x", "wpn_fps_upg_ns_ass_filter", "wpn_fps_upg_ns_pis_jungle" } } self.wpn_fps_pis_x_legacy_npc = deep_clone(self.wpn_fps_pis_x_legacy) self.wpn_fps_pis_x_legacy_npc.unit = "units/pd2_dlc_khp/weapons/wpn_fps_pis_x_legacy/wpn_fps_pis_x_legacy_npc" end function WeaponFactoryTweakData:_init_coach() self.parts.wpn_fps_sho_coach_barrel_lock = { name_id = "bm_wp_coach_barrel_lock", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_barrel_lock", a_obj = "a_barrel_lock", type = "barrel_lock" } self.parts.wpn_fps_sho_coach_right_hammer = { name_id = "bm_wp_coach_right_hammer", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_right_hammer", a_obj = "a_right_hammer", type = "right_hammer" } self.parts.wpn_fps_sho_coach_left_hammer = { name_id = "bm_wp_coach_left_hammer", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_left_hammer", a_obj = "a_left_hammer", type = "left_hammer" } self.parts.wpn_fps_sho_coach_b_standard = { a_obj = "a_b", type = "barrel", name_id = "bm_wp_coach_b_standard", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_b_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_coach_b_short = { texture_bundle_folder = "sdb", a_obj = "a_b", type = "barrel", name_id = "bm_wp_coach_b_short", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_b_short", pcs = { 10, 20, 30, 40 }, stats = { recoil = -4, value = 1, concealment = 10, spread = -4, spread_moving = 3 } } self.parts.wpn_fps_sho_coach_s_long = { a_obj = "a_s", type = "stock", name_id = "bm_wp_coach_s_long", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_s_long", stats = { value = 1 } } self.parts.wpn_fps_sho_coach_s_short = { texture_bundle_folder = "sdb", a_obj = "a_s", type = "stock", name_id = "bm_wp_coach_s_short", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_s_short", pcs = { 10, 20, 30, 40 }, stats = { recoil = -4, value = 1, concealment = 10, spread = -4, spread_moving = 3 } } self.parts.wpn_fps_sho_coach_body_standard = { a_obj = "a_body", type = "lower_reciever", name_id = "bm_wp_coach_body_standard", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_body_standard", stats = { value = 1 } } self.parts.wpn_fps_sho_coach_right_slug = { name_id = "bm_wp_coach_right_slug", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_right_slug", a_obj = "a_right_slug", type = "right_slug" } self.parts.wpn_fps_sho_coach_left_slug = { name_id = "bm_wp_coach_left_slug", unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_fps_sho_coach_left_slug", a_obj = "a_left_slug", type = "left_slug" } self.parts.wpn_fps_sho_coach_barrel_lock.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_barrel_lock" self.parts.wpn_fps_sho_coach_right_hammer.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_right_hammer" self.parts.wpn_fps_sho_coach_left_hammer.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_left_hammer" self.parts.wpn_fps_sho_coach_b_standard.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_b_standard" self.parts.wpn_fps_sho_coach_b_short.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_b_short" self.parts.wpn_fps_sho_coach_s_long.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_s_long" self.parts.wpn_fps_sho_coach_s_short.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_s_short" self.parts.wpn_fps_sho_coach_body_standard.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_body_standard" self.parts.wpn_fps_sho_coach_right_slug.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_right_slug" self.parts.wpn_fps_sho_coach_left_slug.third_unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach_pts/wpn_third_sho_coach_left_slug" self.wpn_fps_sho_coach = { unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach/wpn_fps_sho_coach", animations = { reload_not_empty = "reload_not_empty", fire = "recoil", fire_steelsight = "recoil", reload = "reload", magazine_empty = "last_recoil" }, optional_types = {}, override = { wpn_fps_upg_a_explosive = { custom_stats = { ignore_statistic = true, damage_far_mul = 2.5, damage_near_mul = 2, bullet_class = "InstantExplosiveBulletBase", rays = 1 } } }, default_blueprint = { "wpn_fps_sho_coach_b_standard", "wpn_fps_sho_coach_body_standard", "wpn_fps_sho_coach_right_hammer", "wpn_fps_sho_coach_left_hammer", "wpn_fps_sho_coach_barrel_lock", "wpn_fps_sho_coach_s_long", "wpn_fps_sho_coach_right_slug", "wpn_fps_sho_coach_left_slug" }, uses_parts = { "wpn_fps_sho_coach_b_short", "wpn_fps_sho_coach_s_short", "wpn_fps_sho_coach_b_standard", "wpn_fps_sho_coach_body_standard", "wpn_fps_sho_coach_right_hammer", "wpn_fps_sho_coach_left_hammer", "wpn_fps_sho_coach_barrel_lock", "wpn_fps_sho_coach_s_long", "wpn_fps_sho_coach_right_slug", "wpn_fps_sho_coach_left_slug" } } self.wpn_fps_sho_coach_npc = deep_clone(self.wpn_fps_sho_coach) self.wpn_fps_sho_coach_npc.unit = "units/pd2_dlc_sdb/weapons/wpn_fps_sho_coach/wpn_fps_sho_coach_npc" end