From 23789d4113a259b8e55aeebdc96194a8281bd964 Mon Sep 17 00:00:00 2001 From: Cody Brittain <1779662+Generalcamo@users.noreply.github.com> Date: Wed, 25 Mar 2026 11:37:50 -0400 Subject: [PATCH] Sorts out existing projectile weapons (#22059) This PR is intended to sort out our existing guns into something resembling organization. In addition, ancient decrepit guns are removed, and abstract paths are labeled as such. In addition, all guns are now standardized to refer to their model. Considering the huge number of weapons we have, a `pistol` is not descriptive enough. NOTE: At over 200 files touched, this is being split. Not everything was sorted, but this is already a monster to sort through. The rest can wait. --- aurorastation.dme | 1 - code/__DEFINES/sound.dm | 1 + code/__HELPERS/game.dm | 2 +- code/datums/outfits/ert/zenghu.dm | 6 +- code/datums/outfits/event/outfit_megacorps.dm | 6 +- code/datums/trading/unique.dm | 2 +- .../highly visible and dangerous weapons.dm | 2 +- code/game/gamemodes/objective.dm | 2 +- code/game/machinery/portable_turret.dm | 4 +- .../objects/items/weapons/storage/boxes.dm | 8 +- .../objects/items/weapons/storage/lockbox.dm | 2 +- code/game/objects/random/loot.dm | 6 +- code/game/objects/random/weapon.dm | 29 +--- code/game/objects/random/weapon_and_ammo.dm | 13 +- .../crates_lockers/closets/gimmick.dm | 12 +- code/game/sound/sound_keys/sound_keys.dm | 8 + code/modules/cargo/items/weaponry.dm | 10 +- code/modules/clothing/chameleon.dm | 4 +- .../clothing/spacesuits/rig/modules/combat.dm | 2 +- .../modules/heavy_vehicle/equipment/combat.dm | 4 +- code/modules/item_worth/worths_list.dm | 11 +- .../mob/living/silicon/robot/robot_modules.dm | 8 +- .../living/simple_animal/hostile/pirate.dm | 2 +- code/modules/projectiles/ammunition/boxes.dm | 8 +- .../modules/projectiles/ammunition/bullets.dm | 6 +- code/modules/projectiles/gun.dm | 11 +- code/modules/projectiles/guns/alien.dm | 107 ------------ code/modules/projectiles/guns/bang.dm | 154 ++++++++++++++---- code/modules/projectiles/guns/bang/pistol.dm | 107 ++++++------ .../modules/projectiles/guns/bang/revolver.dm | 4 +- code/modules/projectiles/guns/energy.dm | 4 +- .../projectiles/guns/energy/blaster.dm | 22 +-- code/modules/projectiles/guns/energy/crank.dm | 4 +- .../projectiles/guns/energy/freezeray.dm | 4 +- code/modules/projectiles/guns/energy/laser.dm | 145 ++--------------- .../projectiles/guns/energy/lawgiver.dm | 24 +-- .../projectiles/guns/energy/nuclear.dm | 34 ++-- code/modules/projectiles/guns/energy/pulse.dm | 48 +++++- code/modules/projectiles/guns/energy/rifle.dm | 148 ++++++++++------- .../projectiles/guns/energy/special.dm | 62 ++----- code/modules/projectiles/guns/energy/stun.dm | 12 +- code/modules/projectiles/guns/launcher.dm | 2 +- .../projectiles/guns/launcher/crossbow.dm | 13 -- .../projectiles/guns/launcher/rocket.dm | 4 +- code/modules/projectiles/guns/projectile.dm | 4 +- .../projectiles/guns/projectile/automatic.dm | 132 +++++++-------- .../projectiles/guns/projectile/cannon.dm | 14 +- .../projectiles/guns/projectile/improvised.dm | 6 +- .../projectiles/guns/projectile/pistol.dm | 111 +++++++------ .../projectiles/guns/projectile/plasma.dm | 14 +- .../projectiles/guns/projectile/revolver.dm | 38 ++--- .../projectiles/guns/projectile/rifle.dm | 69 +++++--- .../projectiles/guns/projectile/shotgun.dm | 20 +-- .../projectiles/guns/projectile/sniper.dm | 18 +- code/modules/projectiles/projectile/beams.dm | 2 +- code/modules/projectiles/suppressor.dm | 2 +- code/modules/random_map/drop/drop_types.dm | 6 +- .../reagents/reagent_containers/spray.dm | 2 +- config/example/custom_items.json | 2 +- .../GeneralCamo - Gun Organization.yml | 63 +++++++ icons/obj/bang_flag.dmi | Bin 256 -> 751 bytes icons/obj/guns/{ => attachments}/bayonet.dmi | Bin icons/obj/guns/attachments/suppressor.dmi | Bin 0 -> 417 bytes icons/obj/guns/bfg.dmi | Bin 1123 -> 0 bytes icons/obj/guns/colt.dmi | Bin 691 -> 0 bytes .../guns/{ => faction/antique}/caplaser.dmi | Bin .../obj/guns/{ => faction/antique}/deagle.dmi | Bin .../guns/{ => faction/antique}/detective.dmi | Bin .../obj/guns/{ => faction/antique}/retro.dmi | Bin .../{ => faction/antique}/springfield.dmi | Bin .../guns/{ => faction/antique}/tommygun.dmi | Bin .../{c20r.dmi => faction/caisc/ca-25e.dmi} | Bin .../guns/{l6.dmi => faction/caisc/ca-75e.dmi} | Bin .../caisc/ornamental_pattern_5.dmi} | Bin icons/obj/guns/faction/caisc/pattern_5.dmi | Bin 0 -> 722 bytes .../caisc/pattern_5_auto.dmi} | Bin .../{ => faction/dna_defense}/xanu_pistol.dmi | Bin .../{ => faction/dna_defense}/xanu_rifle.dmi | Bin .../dna_defense}/xanu_shotgun.dmi | Bin .../dna_defense}/xanu_shotgun_mags.dmi | Bin .../{ => faction/dna_defense}/xanu_smg.dmi | Bin .../dominian_empire}/dominia_bolt_action.dmi | Bin .../dominian_empire}/dominia_carbine.dmi | Bin .../dominian_empire}/dominia_lmg.dmi | Bin .../dominian_empire}/dominia_pistol.dmi | Bin .../dominian_empire}/dominia_rifle.dmi | Bin .../dominian_empire}/dominia_smg.dmi | Bin .../{ => faction/dpra}/golden_mrrazhak.dmi | Bin .../obj/guns/{ => faction/dpra}/mrrazhak.dmi | Bin .../dpra/mrrazhakulii_suppressed_pistol.dmi} | Bin .../{ => faction/dpra}/recoilless_rifle.dmi | Bin .../{ => faction/elyran_republic}/bolter.dmi | Bin .../elyran_republic}/plasma_pistol.dmi | Bin .../{ => faction/elyran_republic}/slammer.dmi | Bin .../eridani_federation}/assassin_smg.dmi | Bin .../eridani_federation}/autorevolver.dmi | Bin .../guns/{ => faction/frontier}/arifle.dmi | Bin .../guns/{ => faction/frontier}/bcarbine.dmi | Bin .../guns/{ => faction/frontier}/derringer.dmi | Bin .../{ => faction/frontier}/gauss_carbine.dmi | Bin .../{ => faction/frontier}/heavysniper.dmi | Bin .../obj/guns/{ => faction/frontier}/lemat.dmi | Bin .../obj/guns/faction/frontier/leveraction.dmi | Bin 0 -> 1387 bytes .../guns/{ => faction/frontier}/overunder.dmi | Bin .../guns/{ => faction/frontier}/pockrifle.dmi | Bin .../guns/{ => faction/frontier}/shorty.dmi | Bin .../guns/{ => faction/frontier}/shotgun.dmi | Bin .../guns/{ => faction/frontier}/zipgun.dmi | Bin .../galatean_technocracy}/galatea_laser.dmi | Bin .../galatean_technocracy}/galatea_nitro.dmi | Bin .../golden_deep}/goldendeep_ornatepistol.dmi | Bin .../hephaestus_industries}/cshotgun.dmi | Bin .../himeo_free_consortium}/himeo_blaster.dmi | Bin .../himeo_free_consortium}/himeo_pistol.dmi | Bin .../guns/{ => faction/improvised}/ipistol.dmi | Bin .../{ => faction/improvised}/ishotgun.dmi | Bin .../guns/{ => faction/improvised}/ismg.dmi | Bin .../izweski_hegemony}/hegemony_pistol.dmi | Bin .../izweski_hegemony}/hegemony_rifle.dmi | Bin .../izweski_hegemony}/unathi_ballistics.dmi | Bin .../izweski_hegemony}/unathi_slugger.dmi | Bin .../{ => faction/konyang}/konyang_weapons.dmi | Bin .../blaster_carbine.dmi | Bin .../blaster_pistol.dmi | Bin .../blaster_revolver.dmi | Bin .../nanotrasen_corporation}/blaster_rifle.dmi | Bin .../nanotrasen_corporation}/burst_rifle.dmi | Bin .../nanotrasen_corporation}/detgun.dmi | Bin .../nanotrasen_corporation}/ecarbine.dmi | Bin .../nanotrasen_corporation}/epistol.dmi | Bin .../nanotrasen_corporation}/erifle.dmi | Bin .../nanotrasen_corporation/everyman.dmi} | Bin .../nanotrasen_corporation}/gauss_thumper.dmi | Bin .../nanotrasen_corporation}/ionrifle.dmi | Bin .../nanotrasen_corporation}/lasercannon.dmi | Bin .../nanotrasen_corporation}/laserrifle.dmi | Bin .../nanotrasen_corporation}/lasershotgun.dmi | Bin .../nt_laser_sniper.dmi} | Bin .../nanotrasen_corporation}/pestishock.dmi | Bin .../nanotrasen_corporation}/pulse.dmi | Bin .../nanotrasen_corporation}/pulse_carbine.dmi | Bin .../nanotrasen_corporation}/pulse_pistol.dmi | Bin .../nanotrasen_corporation}/secgun.dmi | Bin .../nanotrasen_corporation}/secgun_wood.dmi | Bin .../nanotrasen_corporation/stunpistol.dmi} | Bin .../nanotrasen_corporation}/stunrevolver.dmi | Bin .../nanotrasen_corporation/tanto.dmi} | Bin .../nanotrasen_corporation}/x9.dmi | Bin .../nanotrasen_corporation}/xenogun.dmi | Bin .../nanotrasen_corporation}/xray.dmi | Bin .../nanotrasen_corporation}/xrifle.dmi | Bin .../{ => faction/nka}/adhomian_revolver.dmi | Bin icons/obj/guns/{ => faction/nka}/cannon.dmi | Bin .../nralakk_federation}/nralakkpistol.dmi | Bin .../nralakk_federation}/nralakksmg.dmi | Bin .../{ => faction/pra}/adhomian_pistol.dmi | Bin icons/obj/guns/faction/pra/bolt.dmi | Bin 0 -> 1577 bytes .../obj/guns/{ => faction/pra}/bolt_scope.dmi | Bin .../{tesla.dmi => faction/pra/elektrotek.dmi} | Bin .../{dragunov.dmi => faction/pra/hotaki.dmi} | Bin icons/obj/guns/{ => faction/pra}/icelance.dmi | Bin .../pra/maidhaztha.dmi} | Bin .../pra/naltor_heavy_pistol.dmi} | Bin .../{ => faction/sol_alliance}/sol_pistol.dmi | Bin .../{ => faction/sol_alliance}/sol_rifle.dmi | Bin .../sol_alliance}/sol_shotgun.dmi | Bin .../{ => faction/sol_alliance}/sol_smg.dmi | Bin .../combipistol.dmi} | Bin .../erepeater.dmi | Bin .../stellar_corporate_conglomerate}/peac.dmi | Bin .../sccpistol.dmi | Bin icons/obj/guns/{ => faction/toy}/bluetag.dmi | Bin icons/obj/guns/{ => faction/toy}/redtag.dmi | Bin .../guns/{ => faction/toy}/xenoblaster.dmi | Bin .../vaurca_hives/gatling_laser.dmi} | Bin .../{ => faction/vaurca_hives}/megaglaive.dmi | Bin .../vaurca_hives/thermic_blaster.dmi} | Bin .../assaultshotgun.dmi | Bin .../zavodskoi_interstellar}/blaster_ar.dmi | Bin .../captain_revolver.dmi | Bin .../zavodskoi_interstellar}/carbine.dmi | Bin .../zavodskoi_interstellar}/crew_laser.dmi | Bin .../zavodskoi_interstellar}/crew_rifle.dmi | Bin .../faction/zavodskoi_interstellar/pistol.dmi | Bin 0 -> 1070 bytes .../zavodskoi_interstellar}/revolver.dmi | Bin .../zavodskoi_interstellar}/tranqsniper.dmi | Bin .../zavodskoi_interstellar}/w556.dmi | Bin .../zavodskoi_interstellar}/wt550.dmi | Bin icons/obj/guns/leveraction.dmi | Bin 1447 -> 0 bytes icons/obj/guns/moistnugget.dmi | Bin 1457 -> 0 bytes icons/obj/guns/noisecannon.dmi | Bin 788 -> 0 bytes icons/obj/guns/oldenergy.dmi | Bin 11661 -> 0 bytes icons/obj/guns/oldlaser.dmi | Bin 5432 -> 0 bytes icons/obj/guns/pistol.dmi | Bin 1055 -> 0 bytes icons/obj/guns/spikethrower.dmi | Bin 877 -> 0 bytes icons/obj/guns/suppressor.dmi | Bin 416 -> 0 bytes icons/obj/guns/taserold.dmi | Bin 1462 -> 0 bytes icons/obj/guns/toxgun.dmi | Bin 782 -> 0 bytes icons/obj/guns/{ => unused}/energy.dmi | Bin icons/obj/guns/{ => unused}/incinerator.dmi | Bin icons/obj/guns/{ => unused}/m1911.dmi | Bin icons/obj/guns/{ => unused}/p08.dmi | Bin icons/obj/random.dmi | Bin 60425 -> 64634 bytes .../away_site/abandoned_mining/cursed.dmm | 2 +- .../away_site/first_aurora/first_aurora.dmm | 4 +- .../away_site/hivebot_hub/hivebot_hub.dmm | 2 +- .../treasure_trove/treasure_trove.dmm | 6 +- .../enviro_testing_facility_submaps_main.dmm | 2 +- .../nuclear_silo/nuclear_silo_submaps.dmm | 2 +- maps/dungeon_spawns/vault_unique.dmm | 2 +- maps/event/generic_dock/generic_dock-1.dmm | 10 +- maps/event/idris_cruise/idris_cruise-1.dmm | 2 +- maps/sccv_horizon/sccv_horizon.dmm | 12 +- sound/weapons/empty/dryfire_plastic_01.ogg | Bin 0 -> 5659 bytes sound/weapons/empty/dryfire_plastic_02.ogg | Bin 0 -> 4988 bytes sound/weapons/empty/dryfire_plastic_03.ogg | Bin 0 -> 5033 bytes 216 files changed, 797 insertions(+), 818 deletions(-) delete mode 100644 code/modules/projectiles/guns/alien.dm create mode 100644 html/changelogs/GeneralCamo - Gun Organization.yml rename icons/obj/guns/{ => attachments}/bayonet.dmi (100%) create mode 100644 icons/obj/guns/attachments/suppressor.dmi delete mode 100644 icons/obj/guns/bfg.dmi delete mode 100644 icons/obj/guns/colt.dmi rename icons/obj/guns/{ => faction/antique}/caplaser.dmi (100%) rename icons/obj/guns/{ => faction/antique}/deagle.dmi (100%) rename icons/obj/guns/{ => faction/antique}/detective.dmi (100%) rename icons/obj/guns/{ => faction/antique}/retro.dmi (100%) rename icons/obj/guns/{ => faction/antique}/springfield.dmi (100%) rename icons/obj/guns/{ => faction/antique}/tommygun.dmi (100%) rename icons/obj/guns/{c20r.dmi => faction/caisc/ca-25e.dmi} (100%) rename icons/obj/guns/{l6.dmi => faction/caisc/ca-75e.dmi} (100%) rename icons/obj/guns/{coltsuper.dmi => faction/caisc/ornamental_pattern_5.dmi} (100%) create mode 100644 icons/obj/guns/faction/caisc/pattern_5.dmi rename icons/obj/guns/{coltauto.dmi => faction/caisc/pattern_5_auto.dmi} (100%) rename icons/obj/guns/{ => faction/dna_defense}/xanu_pistol.dmi (100%) rename icons/obj/guns/{ => faction/dna_defense}/xanu_rifle.dmi (100%) rename icons/obj/guns/{ => faction/dna_defense}/xanu_shotgun.dmi (100%) rename icons/obj/guns/{ => faction/dna_defense}/xanu_shotgun_mags.dmi (100%) rename icons/obj/guns/{ => faction/dna_defense}/xanu_smg.dmi (100%) rename icons/obj/guns/{ => faction/dominian_empire}/dominia_bolt_action.dmi (100%) rename icons/obj/guns/{ => faction/dominian_empire}/dominia_carbine.dmi (100%) rename icons/obj/guns/{ => faction/dominian_empire}/dominia_lmg.dmi (100%) rename icons/obj/guns/{ => faction/dominian_empire}/dominia_pistol.dmi (100%) rename icons/obj/guns/{ => faction/dominian_empire}/dominia_rifle.dmi (100%) rename icons/obj/guns/{ => faction/dominian_empire}/dominia_smg.dmi (100%) rename icons/obj/guns/{ => faction/dpra}/golden_mrrazhak.dmi (100%) rename icons/obj/guns/{ => faction/dpra}/mrrazhak.dmi (100%) rename icons/obj/guns/{silenced_pistol.dmi => faction/dpra/mrrazhakulii_suppressed_pistol.dmi} (100%) rename icons/obj/guns/{ => faction/dpra}/recoilless_rifle.dmi (100%) rename icons/obj/guns/{ => faction/elyran_republic}/bolter.dmi (100%) rename icons/obj/guns/{ => faction/elyran_republic}/plasma_pistol.dmi (100%) rename icons/obj/guns/{ => faction/elyran_republic}/slammer.dmi (100%) rename icons/obj/guns/{ => faction/eridani_federation}/assassin_smg.dmi (100%) rename icons/obj/guns/{ => faction/eridani_federation}/autorevolver.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/arifle.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/bcarbine.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/derringer.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/gauss_carbine.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/heavysniper.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/lemat.dmi (100%) create mode 100644 icons/obj/guns/faction/frontier/leveraction.dmi rename icons/obj/guns/{ => faction/frontier}/overunder.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/pockrifle.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/shorty.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/shotgun.dmi (100%) rename icons/obj/guns/{ => faction/frontier}/zipgun.dmi (100%) rename icons/obj/guns/{ => faction/galatean_technocracy}/galatea_laser.dmi (100%) rename icons/obj/guns/{ => faction/galatean_technocracy}/galatea_nitro.dmi (100%) rename icons/obj/guns/{ => faction/golden_deep}/goldendeep_ornatepistol.dmi (100%) rename icons/obj/guns/{ => faction/hephaestus_industries}/cshotgun.dmi (100%) rename icons/obj/guns/{ => faction/himeo_free_consortium}/himeo_blaster.dmi (100%) rename icons/obj/guns/{ => faction/himeo_free_consortium}/himeo_pistol.dmi (100%) rename icons/obj/guns/{ => faction/improvised}/ipistol.dmi (100%) rename icons/obj/guns/{ => faction/improvised}/ishotgun.dmi (100%) rename icons/obj/guns/{ => faction/improvised}/ismg.dmi (100%) rename icons/obj/guns/{ => faction/izweski_hegemony}/hegemony_pistol.dmi (100%) rename icons/obj/guns/{ => faction/izweski_hegemony}/hegemony_rifle.dmi (100%) rename icons/obj/guns/{ => faction/izweski_hegemony}/unathi_ballistics.dmi (100%) rename icons/obj/guns/{ => faction/izweski_hegemony}/unathi_slugger.dmi (100%) rename icons/obj/guns/{ => faction/konyang}/konyang_weapons.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/blaster_carbine.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/blaster_pistol.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/blaster_revolver.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/blaster_rifle.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/burst_rifle.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/detgun.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/ecarbine.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/epistol.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/erifle.dmi (100%) rename icons/obj/guns/{leyon.dmi => faction/nanotrasen_corporation/everyman.dmi} (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/gauss_thumper.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/ionrifle.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/lasercannon.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/laserrifle.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/lasershotgun.dmi (100%) rename icons/obj/guns/{sniper.dmi => faction/nanotrasen_corporation/nt_laser_sniper.dmi} (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/pestishock.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/pulse.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/pulse_carbine.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/pulse_pistol.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/secgun.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/secgun_wood.dmi (100%) rename icons/obj/guns/{taser.dmi => faction/nanotrasen_corporation/stunpistol.dmi} (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/stunrevolver.dmi (100%) rename icons/obj/guns/{c05r.dmi => faction/nanotrasen_corporation/tanto.dmi} (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/x9.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/xenogun.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/xray.dmi (100%) rename icons/obj/guns/{ => faction/nanotrasen_corporation}/xrifle.dmi (100%) rename icons/obj/guns/{ => faction/nka}/adhomian_revolver.dmi (100%) rename icons/obj/guns/{ => faction/nka}/cannon.dmi (100%) rename icons/obj/guns/{ => faction/nralakk_federation}/nralakkpistol.dmi (100%) rename icons/obj/guns/{ => faction/nralakk_federation}/nralakksmg.dmi (100%) rename icons/obj/guns/{ => faction/pra}/adhomian_pistol.dmi (100%) create mode 100644 icons/obj/guns/faction/pra/bolt.dmi rename icons/obj/guns/{ => faction/pra}/bolt_scope.dmi (100%) rename icons/obj/guns/{tesla.dmi => faction/pra/elektrotek.dmi} (100%) rename icons/obj/guns/{dragunov.dmi => faction/pra/hotaki.dmi} (100%) rename icons/obj/guns/{ => faction/pra}/icelance.dmi (100%) rename icons/obj/guns/{blockbuster.dmi => faction/pra/maidhaztha.dmi} (100%) rename icons/obj/guns/{adhomian_heavy_pistol.dmi => faction/pra/naltor_heavy_pistol.dmi} (100%) rename icons/obj/guns/{ => faction/sol_alliance}/sol_pistol.dmi (100%) rename icons/obj/guns/{ => faction/sol_alliance}/sol_rifle.dmi (100%) rename icons/obj/guns/{ => faction/sol_alliance}/sol_shotgun.dmi (100%) rename icons/obj/guns/{ => faction/sol_alliance}/sol_smg.dmi (100%) rename icons/obj/guns/{lawgiver.dmi => faction/stellar_corporate_conglomerate/combipistol.dmi} (100%) rename icons/obj/guns/{ => faction/stellar_corporate_conglomerate}/erepeater.dmi (100%) rename icons/obj/guns/{ => faction/stellar_corporate_conglomerate}/peac.dmi (100%) rename icons/obj/guns/{ => faction/stellar_corporate_conglomerate}/sccpistol.dmi (100%) rename icons/obj/guns/{ => faction/toy}/bluetag.dmi (100%) rename icons/obj/guns/{ => faction/toy}/redtag.dmi (100%) rename icons/obj/guns/{ => faction/toy}/xenoblaster.dmi (100%) rename icons/obj/guns/{gatling.dmi => faction/vaurca_hives/gatling_laser.dmi} (100%) rename icons/obj/guns/{ => faction/vaurca_hives}/megaglaive.dmi (100%) rename icons/obj/guns/{blaster.dmi => faction/vaurca_hives/thermic_blaster.dmi} (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/assaultshotgun.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/blaster_ar.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/captain_revolver.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/carbine.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/crew_laser.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/crew_rifle.dmi (100%) create mode 100644 icons/obj/guns/faction/zavodskoi_interstellar/pistol.dmi rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/revolver.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/tranqsniper.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/w556.dmi (100%) rename icons/obj/guns/{ => faction/zavodskoi_interstellar}/wt550.dmi (100%) delete mode 100644 icons/obj/guns/leveraction.dmi delete mode 100644 icons/obj/guns/moistnugget.dmi delete mode 100644 icons/obj/guns/noisecannon.dmi delete mode 100644 icons/obj/guns/oldenergy.dmi delete mode 100644 icons/obj/guns/oldlaser.dmi delete mode 100644 icons/obj/guns/pistol.dmi delete mode 100644 icons/obj/guns/spikethrower.dmi delete mode 100644 icons/obj/guns/suppressor.dmi delete mode 100644 icons/obj/guns/taserold.dmi delete mode 100644 icons/obj/guns/toxgun.dmi rename icons/obj/guns/{ => unused}/energy.dmi (100%) rename icons/obj/guns/{ => unused}/incinerator.dmi (100%) rename icons/obj/guns/{ => unused}/m1911.dmi (100%) rename icons/obj/guns/{ => unused}/p08.dmi (100%) create mode 100644 sound/weapons/empty/dryfire_plastic_01.ogg create mode 100644 sound/weapons/empty/dryfire_plastic_02.ogg create mode 100644 sound/weapons/empty/dryfire_plastic_03.ogg diff --git a/aurorastation.dme b/aurorastation.dme index 21ea9ff4797..d6fde039da4 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -3398,7 +3398,6 @@ #include "code\modules\projectiles\ammunition\ammo_pile.dm" #include "code\modules\projectiles\ammunition\boxes.dm" #include "code\modules\projectiles\ammunition\bullets.dm" -#include "code\modules\projectiles\guns\alien.dm" #include "code\modules\projectiles\guns\bang.dm" #include "code\modules\projectiles\guns\energy.dm" #include "code\modules\projectiles\guns\launcher.dm" diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 4e8a7d8684d..33692f821ef 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -182,3 +182,4 @@ #define SFX_SWITCH "switch" #define SFX_TRAY_HIT "tray_hit" #define SFX_WIELD "wield" +#define SFX_PLASTIC_DRY_FIRE "plastic_dry_fire" diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 7dba034d7f6..133cb294e36 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -435,7 +435,7 @@ visual.appearance = passed_appearance visual.mouse_opacity = MOUSE_OPACITY_TRANSPARENT // I hate /area - lies_to_children.vis_contents += visual + lies_to_children.add_vis_contents(visual) QDEL_IN_CLIENT_TIME(visual, duration) return visual diff --git a/code/datums/outfits/ert/zenghu.dm b/code/datums/outfits/ert/zenghu.dm index d833af273da..2baaeaf2307 100644 --- a/code/datums/outfits/ert/zenghu.dm +++ b/code/datums/outfits/ert/zenghu.dm @@ -15,7 +15,7 @@ suit_store = /obj/item/gun/energy/rifle accessory = /obj/item/clothing/accessory/holster/hip accessory_contents = list( - /obj/item/gun/energy/toxgun = 1 + /obj/item/gun/energy/pistol = 1 ) belt_contents = list( /obj/item/shield/energy = 1, @@ -44,7 +44,7 @@ /obj/item/stack/medical/advanced/ointment = 1, /obj/item/melee/baton/loaded = 1, /obj/item/shield/energy = 1, - /obj/item/gun/energy/toxgun = 1 + /obj/item/gun/energy/pistol = 1 ) belt_contents = list( @@ -72,7 +72,7 @@ /obj/item/handcuffs/ziptie = 1, /obj/item/melee/baton/loaded = 1, /obj/item/clothing/glasses/welding/superior = 1, - /obj/item/gun/energy/toxgun = 1 + /obj/item/gun/energy/pistol = 1 ) belt_contents = null diff --git a/code/datums/outfits/event/outfit_megacorps.dm b/code/datums/outfits/event/outfit_megacorps.dm index 33c2baaed6c..c926a86f56b 100644 --- a/code/datums/outfits/event/outfit_megacorps.dm +++ b/code/datums/outfits/event/outfit_megacorps.dm @@ -7,7 +7,7 @@ shoes = /obj/item/clothing/shoes/magboots belt = /obj/item/storage/belt/military l_ear = /obj/item/radio/headset/syndicate - suit_store = /obj/item/gun/energy/laser + suit_store = /obj/item/gun/energy/rifle/laser suit = /obj/item/clothing/suit/space/void/hephaestus head = /obj/item/clothing/head/helmet/space/void/hephaestus id = /obj/item/card/id/syndicate @@ -50,7 +50,7 @@ shoes = /obj/item/clothing/shoes/magboots belt = /obj/item/storage/belt/military l_ear = /obj/item/radio/headset/syndicate - suit_store = /obj/item/gun/energy/laser + suit_store = /obj/item/gun/energy/rifle/laser suit = /obj/item/clothing/suit/space/void/zenghu head = /obj/item/clothing/head/helmet/space/void/zenghu id = /obj/item/card/id/syndicate @@ -60,7 +60,7 @@ r_pocket = /obj/item/crowbar/red accessory = /obj/item/clothing/accessory/holster/hip/brown - accessory_contents = list(/obj/item/gun/energy/toxgun = 1) + accessory_contents = list(/obj/item/gun/energy/pistol = 1) belt_contents = list( /obj/item/shield/energy = 1, diff --git a/code/datums/trading/unique.dm b/code/datums/trading/unique.dm index ec5e2fb0ec1..9e4d697a7b6 100644 --- a/code/datums/trading/unique.dm +++ b/code/datums/trading/unique.dm @@ -52,7 +52,7 @@ /obj/item/rig/light/stealth = TRADER_THIS_TYPE, /obj/item/rig/light/hacker = TRADER_THIS_TYPE, /obj/item/gun/launcher/grenade = TRADER_THIS_TYPE, - /obj/item/gun/energy/sniperrifle = TRADER_THIS_TYPE, + /obj/item/gun/energy/rifle/laser/sniper = TRADER_THIS_TYPE, /obj/item/gun/projectile/automatic = TRADER_SUBTYPES_ONLY, /mob/living/heavy_vehicle/premade/combat = TRADER_THIS_TYPE ) diff --git a/code/datums/uplink/highly visible and dangerous weapons.dm b/code/datums/uplink/highly visible and dangerous weapons.dm index 3d398bf9ce6..ecb856ad214 100644 --- a/code/datums/uplink/highly visible and dangerous weapons.dm +++ b/code/datums/uplink/highly visible and dangerous weapons.dm @@ -253,7 +253,7 @@ /datum/uplink_item/item/visible_weapons/laser_cannon name = "Laser Cannon" telecrystal_cost = 12 - path = /obj/item/gun/energy/lasercannon + path = /obj/item/gun/energy/rifle/laser/heavy /datum/uplink_item/item/visible_weapons/derringer name = "Derringer" diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 77e1ad50c89..1d1a74d792a 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -694,7 +694,7 @@ GLOBAL_LIST_EMPTY(process_objectives) target_amount = 4 loot = "four energy guns" if(7) - target = /obj/item/gun/energy/laser + target = /obj/item/gun/energy/rifle/laser target_amount = 2 loot = "two laser guns" if(8) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index d8f792b2249..13c9b217112 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -159,7 +159,7 @@ lethal = 1 lethal_icon = 1 egun = 0 - installation = /obj/item/gun/energy/laser + installation = /obj/item/gun/energy/rifle/laser sprite_set = "laser" /obj/machinery/porta_turret/Initialize(mapload) @@ -1172,7 +1172,7 @@ req_one_access = list(ACCESS_SYNDICATE) /obj/machinery/porta_turret/sniper - installation = /obj/item/gun/energy/sniperrifle + installation = /obj/item/gun/energy/rifle/laser/sniper lethal = 1 lethal_icon = 1 egun = 0 diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index d6234bddd7c..dc9df7b941a 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -287,10 +287,10 @@ foldable = null chewable = FALSE -/obj/item/storage/box/ammo/tungstenslugs - name = "box of compact tungsten slugs" - desc = "A box with several compact tungsten slugs, aimed for use in gauss carbines." - starts_with = list(/obj/item/ammo_casing/gauss/carbine = 4) +/obj/item/storage/box/ammo/duslugs + name = "box of depleted uranium slugs" + desc = "A box with several depleted uranium slugs, aimed for use in older gauss rifles." + starts_with = list(/obj/item/ammo_casing/gauss/old = 4) /obj/item/storage/box/ammo/sniperammo name = "box of 14.5mm shells" diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index 50603433227..1c1792e17e9 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -101,7 +101,7 @@ name = "weapons lockbox" desc = "A high security weapons lockbox" req_access = list(ACCESS_ARMORY) - starts_with = list(/obj/item/gun/energy/lawgiver = 1) + starts_with = list(/obj/item/gun/energy/acp = 1) /obj/item/storage/lockbox/medal name = "medal box" diff --git a/code/game/objects/random/loot.dm b/code/game/objects/random/loot.dm index fc2e123e91b..93c8e4ede21 100644 --- a/code/game/objects/random/loot.dm +++ b/code/game/objects/random/loot.dm @@ -177,7 +177,7 @@ /obj/random/telecrystals = 0.1, /obj/item/gun/projectile/automatic/rifle/shotgun = 0.1, /obj/random/melee = 0.3, - /obj/item/gun/energy/lawgiver = 0.1, + /obj/item/gun/energy/acp = 0.1, /obj/item/gun/projectile/automatic/terminator = 0.1, /obj/item/personal_shield = 0.4, /obj/random/safe_rig = 0.4, @@ -192,7 +192,7 @@ /obj/item/clothing/glasses/thermal = 0.5, /obj/item/gun/projectile/automatic/rifle/shotgun = 0.5, /obj/random/sword = 0.5, - /obj/item/gun/energy/lawgiver = 0.5, + /obj/item/gun/energy/acp = 0.5, /obj/item/melee/energy/axe = 0.5, /obj/item/gun/projectile/automatic/terminator = 0.5, /obj/item/rig/military = 0.5, @@ -240,7 +240,7 @@ /obj/random/melee/highvalue = 0.3, /obj/item/gun/energy/disruptorpistol/magnum = 0.3, /obj/item/gun/projectile/shotgun/pump/combat = 0.2, - /obj/item/gun/energy/lawgiver = 0.1, + /obj/item/gun/energy/acp = 0.1, /obj/item/gun/projectile/automatic/terminator = 0.1, /obj/item/gun/projectile/automatic/rifle/shotgun = 0.1 ) diff --git a/code/game/objects/random/weapon.dm b/code/game/objects/random/weapon.dm index a73727f43d0..86089ce0de9 100644 --- a/code/game/objects/random/weapon.dm +++ b/code/game/objects/random/weapon.dm @@ -1,8 +1,7 @@ /obj/random/energy name = "random energy weapon" desc = "This is a random energy weapon." - icon = 'icons/obj/guns/ecarbine.dmi' - icon_state = "energykill100" + icon_state = "energy_gun" problist = list( /obj/item/gun/energy/rifle/laser = 2, /obj/item/gun/energy/gun = 2, @@ -12,8 +11,7 @@ /obj/random/projectile name = "random projectile weapon" desc = "This is a random projectile weapon." - icon = 'icons/obj/guns/cshotgun.dmi' - icon_state = "cshotgun" + icon_state = "rifle" problist = list( /obj/item/gun/projectile/shotgun/pump = 3, /obj/item/gun/projectile/automatic/wt550 = 2, @@ -23,8 +21,7 @@ /obj/random/handgun name = "random handgun" desc = "This is a random handgun." - icon = 'icons/obj/guns/secgun.dmi' - icon_state = "secgun" + icon_state = "pistol" problist = list( /obj/item/gun/projectile/sec = 3, /obj/item/gun/projectile/sec/wood = 1 @@ -33,8 +30,7 @@ /obj/random/ammo name = "random ammunition" desc = "This is some random ammunition." - icon = 'icons/obj/ammo.dmi' - icon_state = "45-10" + icon_state = "needsprite" problist = list( /obj/item/storage/box/shells/beanbags = 6, /obj/item/storage/box/shells/slugs = 2, @@ -50,8 +46,7 @@ /obj/random/melee name = "random melee weapon" desc = "This is a random melee weapon." - icon = 'icons/obj/weapons.dmi' - icon_state = "baton" + icon_state = "melee" spawnlist = list( /obj/item/melee/telebaton, /obj/item/melee/energy/sword, @@ -75,8 +70,7 @@ /obj/random/melee/highvalue name = "random high value melee weapon" desc = "This is a random high value melee weapon." - icon = 'icons/obj/weapons.dmi' - icon_state = "baton" + icon_state = "melee" spawnlist = list( /obj/item/melee/energy/sword, /obj/item/melee/energy/glaive, @@ -88,15 +82,13 @@ /obj/random/energy_antag name = "random energy weapon" desc = "This is a random energy weapon." - icon = 'icons/obj/guns/retro.dmi' - icon_state = "retro100" + icon_state = "energy_gun" spawnlist = list( /obj/item/gun/energy/retro, /obj/item/gun/energy/xray, /obj/item/gun/energy/gun, /obj/item/gun/energy/pistol, /obj/item/gun/energy/mindflayer, - /obj/item/gun/energy/toxgun, /obj/item/gun/energy/vaurca/gatlinglaser, /obj/item/gun/energy/vaurca/blaster, /obj/item/gun/energy/crossbow/largecrossbow, @@ -129,7 +121,6 @@ /obj/random/civgun name = "random civilian handgun" desc = "This is a random civilian gun." - icon = 'icons/obj/random.dmi' icon_state = "pistol" has_postspawn = TRUE spawnlist = list( @@ -177,7 +168,6 @@ /obj/random/civgun/rifle name = "random civilian longarm" desc = "This is a random civilian long gun." - icon = 'icons/obj/random.dmi' icon_state = "rifle" has_postspawn = TRUE spawnlist = list( @@ -194,7 +184,7 @@ /obj/item/gun/projectile/shotgun/pump/rifle/vintage, /obj/item/gun/projectile/shotgun/pump/lever_action, /obj/item/gun/projectile/gauss, - /obj/item/gun/projectile/gauss/carbine, + /obj/item/gun/projectile/gauss/old, /obj/item/gun/projectile/shotgun/pump, /obj/item/gun/projectile/shotgun/doublebarrel, /obj/item/gun/projectile/shotgun/doublebarrel/sawn, @@ -217,8 +207,7 @@ /obj/random/vault_weapon name = "random vault weapon" desc = "This is a random vault weapon." - icon = 'icons/obj/guns/caplaser.dmi' - icon_state = "caplaser" + icon_state = "needsprite" spawnlist = list( /obj/item/gun/custom_ka/frameA/prebuilt = 1, /obj/item/gun/custom_ka/frameB/prebuilt = 0.5, diff --git a/code/game/objects/random/weapon_and_ammo.dm b/code/game/objects/random/weapon_and_ammo.dm index da222743277..74c489f5552 100644 --- a/code/game/objects/random/weapon_and_ammo.dm +++ b/code/game/objects/random/weapon_and_ammo.dm @@ -2,8 +2,8 @@ /obj/random/weapon_and_ammo name = "random weapon and ammo" desc = "Summons a random weapon, with ammo if applicable." - icon = 'icons/obj/guns/xenoblaster.dmi' - icon_state = "xenoblaster" + icon = 'icons/obj/random.dmi' + icon_state = "pistol" var/chosen_rarity //Can be set to force certain rarity var/concealable = FALSE //If the gun should fit in a backpack has_postspawn = TRUE @@ -11,7 +11,6 @@ var/list/Shoddy = list( /obj/item/gun/energy/blaster = 1, /obj/item/gun/energy/retro = 0.5, - /obj/item/gun/energy/toxgun = 0.5, /obj/item/gun/projectile/automatic/improvised = 1, /obj/item/gun/projectile/contender = 0.5, /obj/item/gun/projectile/leyon = 1, @@ -25,7 +24,7 @@ var/list/Common = list( /obj/item/gun/energy/blaster/carbine = 1, /obj/item/gun/energy/crossbow/largecrossbow = 1, - /obj/item/gun/energy/laser = 0.5, + /obj/item/gun/energy/rifle/laser = 0.5, /obj/item/gun/energy/pistol = 1, /obj/item/gun/energy/rifle = 1, /obj/item/gun/projectile/automatic/c20r = 1, @@ -57,7 +56,7 @@ /obj/item/gun/energy/rifle/ionrifle = 0.5, /obj/item/gun/energy/vaurca/blaster = 1, /obj/item/gun/energy/xray = 1, - /obj/item/gun/energy/lasercannon = 1, + /obj/item/gun/energy/rifle/laser/heavy = 1, /obj/item/gun/projectile/automatic/rifle/sts35 = 1, /obj/item/gun/projectile/automatic/rifle/shorty = 1, /obj/item/gun/projectile/automatic/rifle/carbine = 1, @@ -81,7 +80,7 @@ /obj/item/gun/energy/decloner = 0.5, /obj/item/gun/energy/rifle/laser/xray = 1, /obj/item/gun/energy/rifle/laser/tachyon = 1, - /obj/item/gun/energy/sniperrifle = 1, + /obj/item/gun/energy/rifle/laser/sniper = 1, /obj/item/gun/energy/tesla = 1, /obj/item/gun/energy/laser/shotgun = 1, /obj/item/gun/energy/vaurca/gatlinglaser = 1, @@ -95,7 +94,7 @@ ) var/list/Legendary = list( - /obj/item/gun/energy/lawgiver = 1, + /obj/item/gun/energy/acp = 1, /obj/item/gun/energy/pulse = 1, /obj/item/gun/energy/pulse/pistol = 1, /obj/item/gun/energy/rifle/pulse = 1, diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index 663530c5baa..4e321df648c 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -85,9 +85,9 @@ new /obj/item/melee/energy/sword(src) new /obj/item/melee/energy/sword(src) new /obj/item/melee/energy/sword(src) - new /obj/item/gun/energy/laser(src) - new /obj/item/gun/energy/laser(src) - new /obj/item/gun/energy/laser(src) + new /obj/item/gun/energy/rifle/laser(src) + new /obj/item/gun/energy/rifle/laser(src) + new /obj/item/gun/energy/rifle/laser(src) new /obj/item/melee/baton(src) new /obj/item/melee/baton(src) new /obj/item/melee/baton(src) @@ -109,9 +109,9 @@ new /obj/item/melee/energy/sword(src) new /obj/item/melee/energy/sword(src) new /obj/item/melee/energy/sword(src) - new /obj/item/gun/energy/laser(src) - new /obj/item/gun/energy/laser(src) - new /obj/item/gun/energy/laser(src) + new /obj/item/gun/energy/rifle/laser(src) + new /obj/item/gun/energy/rifle/laser(src) + new /obj/item/gun/energy/rifle/laser(src) new /obj/item/melee/baton(src) new /obj/item/melee/baton(src) new /obj/item/melee/baton(src) diff --git a/code/game/sound/sound_keys/sound_keys.dm b/code/game/sound/sound_keys/sound_keys.dm index a980eb9ee92..e5dc716c81d 100644 --- a/code/game/sound/sound_keys/sound_keys.dm +++ b/code/game/sound/sound_keys/sound_keys.dm @@ -419,6 +419,14 @@ 'sound/weapons/empty/empty_shotgun1.ogg' ) +/datum/sound_effect/plastic_dry_fire + key = SFX_PLASTIC_DRY_FIRE + file_paths = list( + 'sound/weapons/empty/dryfire_plastic_01.ogg', + 'sound/weapons/empty/dryfire_plastic_02.ogg', + 'sound/weapons/empty/dryfire_plastic_03.ogg' + ) + /datum/sound_effect/metal_slide_reload key = SFX_RELOAD_METAL_SLIDE file_paths = list( diff --git a/code/modules/cargo/items/weaponry.dm b/code/modules/cargo/items/weaponry.dm index 5d759f30507..fceadb5b833 100644 --- a/code/modules/cargo/items/weaponry.dm +++ b/code/modules/cargo/items/weaponry.dm @@ -145,7 +145,7 @@ description = "The HI L.W.A.P. is an older design of Hephaestus Industries. A designated marksman rifle capable of shooting powerful ionized bolts." price = 2100 items = list( - /obj/item/gun/energy/sniperrifle + /obj/item/gun/energy/rifle/laser/sniper ) access = ACCESS_ARMORY container_type = "crate" @@ -546,14 +546,14 @@ groupable = TRUE spawn_amount = 1 -/singleton/cargo_item/compacttungstenslug +/singleton/cargo_item/duslug category = "weaponry" - name = "compact tungsten gauss slugs" + name = "depleted uranium gauss slugs" supplier = "virgo" - description = "A box with several compact tungsten slugs, aimed for use in gauss carbines." + description = "A box with several depleted uranium slugs, aimed for use in older gauss rifles." price = 125 items = list( - /obj/item/storage/box/ammo/tungstenslugs + /obj/item/storage/box/ammo/duslugs ) access = ACCESS_ARMORY container_type = "crate" diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 1adedcdcf90..68ee686fc8e 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -479,9 +479,9 @@ //**Chameleon Gun** //***************** /obj/item/gun/energy/chameleon - name = "desert eagle" + name = "\improper Desert Eagle pistol" desc = null - icon = 'icons/obj/guns/deagle.dmi' + icon = 'icons/obj/guns/faction/antique/deagle.dmi' icon_state = "deagle" w_class = WEIGHT_CLASS_NORMAL origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 8) diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index 47792f336f8..0b298620152 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -126,7 +126,7 @@ interface_name = "mounted laser cannon" interface_desc = "A shoulder-mounted cell-powered laser cannon." - var/gun_type = /obj/item/gun/energy/lasercannon/mounted + var/gun_type = /obj/item/gun/energy/rifle/laser/heavy/mounted var/obj/item/gun/gun /obj/item/rig_module/mounted/New() diff --git a/code/modules/heavy_vehicle/equipment/combat.dm b/code/modules/heavy_vehicle/equipment/combat.dm index 568d76cd05f..931219f1c8c 100644 --- a/code/modules/heavy_vehicle/equipment/combat.dm +++ b/code/modules/heavy_vehicle/equipment/combat.dm @@ -37,7 +37,7 @@ desc = "An exosuit-mounted laser rifle. Handle with care." icon_state = "mecha_laser" restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND) - holding_type = /obj/item/gun/energy/laser/mounted/mech + holding_type = /obj/item/gun/energy/rifle/laser/mounted/mech /obj/item/mecha_equipment/mounted_system/combat/smg name = "mounted submachinegun" @@ -107,7 +107,7 @@ name = "mounted riot submachine gun" projectile_type = /obj/projectile/bullet/pistol/rubber -/obj/item/gun/energy/laser/mounted/mech +/obj/item/gun/energy/rifle/laser/mounted/mech use_external_power = TRUE self_recharge = TRUE has_safety = FALSE diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 8fcc9df47ec..1f58d1aa3dc 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -32,12 +32,12 @@ var/list/worths = list( /obj/item/gun/energy/gun = 70, /obj/item/gun/energy/pistol = 55, /obj/item/gun/energy/laser/shotgun = 480, - /obj/item/gun/energy/laser/practice = 50, - /obj/item/gun/energy/laser = 100, + /obj/item/gun/energy/rifle/laser/practice = 50, + /obj/item/gun/energy/rifle/laser = 100, /obj/item/gun/energy/retro = 140, /obj/item/gun/energy/captain = 850, /obj/item/gun/energy/xray = 350, - /obj/item/gun/energy/sniperrifle = 640, + /obj/item/gun/energy/rifle/laser/sniper = 640, /obj/item/gun/energy/lasertag = 1, /obj/item/gun/energy/pulse/pistol = 450, /obj/item/gun/energy/pulse = 500, @@ -45,10 +45,8 @@ var/list/worths = list( /obj/item/gun/energy/decloner = 650, /obj/item/gun/energy/floragun = 150, /obj/item/gun/energy/mindflayer = 450, - /obj/item/gun/energy/toxgun = 350, /obj/item/gun/energy/mousegun = 200, /obj/item/gun/energy/net = 350, - /obj/item/gun/energy/vaurca/bfg = 2000, /obj/item/gun/energy/vaurca/gatlinglaser = 600, /obj/item/gun/energy/vaurca/blaster = 450, /obj/item/gun/energy/vaurca/thermaldrill = 500, @@ -57,7 +55,7 @@ var/list/worths = list( /obj/item/gun/energy/crossbow/largecrossbow = 160, /obj/item/gun/energy/crossbow = 75, /obj/item/gun/energy/temperature = 300, - /obj/item/gun/energy/lawgiver = 700, + /obj/item/gun/energy/acp = 700, /obj/item/gun/custom_ka/frame01/prebuilt = 250, /obj/item/gun/custom_ka/frame02/prebuilt = 350, /obj/item/gun/custom_ka/frame03/prebuilt = 450, @@ -69,7 +67,6 @@ var/list/worths = list( /obj/item/gun/energy/gravity_gun = 450, /obj/item/gun/energy = 210, //LAUNCHERS, - /obj/item/gun/launcher/spikethrower = 350, /obj/item/gun/launcher/rocket = 800, /obj/item/gun/launcher/crossbow = 12, /obj/item/gun/launcher/pneumatic = 20, diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 7f3b4da951d..64f32b1e707 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -953,7 +953,7 @@ GLOBAL_LIST_INIT(robot_modules, list( /obj/item/robot_module/military/Initialize() . = ..() - modules += new /obj/item/gun/energy/laser/mounted(src) + modules += new /obj/item/gun/energy/rifle/laser/mounted(src) modules += new /obj/item/melee/hammer/powered(src) modules += new /obj/item/borg/combat/shield(src) modules += new /obj/item/borg/combat/mobility(src) @@ -962,7 +962,7 @@ GLOBAL_LIST_INIT(robot_modules, list( modules += new /obj/item/extinguisher(src) // For navigating space and/or low grav, and just being useful. modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws. modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to. - emag = new /obj/item/gun/energy/lasercannon/mounted(src) + emag = new /obj/item/gun/energy/rifle/laser/heavy/mounted(src) /obj/item/robot_module/drone name = "drone module" @@ -1216,7 +1216,7 @@ GLOBAL_LIST_INIT(robot_modules, list( modules += new /obj/item/handcuffs/cyborg(src) modules += new /obj/item/melee/baton/robot(src) modules += new /obj/item/melee/hammer/powered(src) - modules += new /obj/item/gun/energy/lasercannon/mounted/cyborg/overclocked(src) + modules += new /obj/item/gun/energy/rifle/laser/heavy/mounted/cyborg/overclocked(src) modules += new /obj/item/borg/combat/shield(src) modules += new /obj/item/borg/combat/mobility(src) // BST @@ -1347,7 +1347,7 @@ GLOBAL_LIST_INIT(robot_modules, list( modules += new /obj/item/healthanalyzer(src) modules += new /obj/item/borg/sight/thermal(src) modules += new /obj/item/gun/energy/pulse/mounted(src) - modules += new /obj/item/gun/energy/lasercannon/mounted/cyborg/overclocked(src) + modules += new /obj/item/gun/energy/rifle/laser/heavy/mounted/cyborg/overclocked(src) modules += new /obj/item/handcuffs/cyborg(src) modules += new /obj/item/melee/baton/robot(src) modules += new /obj/item/tank/jetpack/carbondioxide(src) diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index ea9417a4b7d..93191e6f1bc 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -46,7 +46,7 @@ rapid = 1 projectiletype = /obj/projectile/beam corpse = /obj/effect/landmark/mobcorpse/pirate/ranged - weapon1 = /obj/item/gun/energy/laser + weapon1 = /obj/item/gun/energy/rifle/laser /mob/living/simple_animal/hostile/pirate/death() diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index cded65a7f2d..a761452cf30 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -151,7 +151,7 @@ If nothing is chosen, reload sounds revert to the default, which is metal_slide_ /obj/item/ammo_magazine/c45m/dominia name = "dominian service pistol magazine (.45)" desc = "A magazine specifically designed for a Dominian service pistol." - icon = 'icons/obj/guns/dominia_pistol.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_pistol.dmi' icon_state = "dom_pistol_mag" max_ammo = 11 @@ -445,7 +445,7 @@ If nothing is chosen, reload sounds revert to the default, which is metal_slide_ /obj/item/ammo_magazine/a556/dlmg name = "MPR-24/5 light machine gun magazine (5.56mm)" max_ammo = 50 - icon = 'icons/obj/guns/dominia_lmg.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_lmg.dmi' icon_state = "dom_lmg_mag" /obj/item/ammo_magazine/a65 @@ -524,7 +524,7 @@ If nothing is chosen, reload sounds revert to the default, which is metal_slide_ /obj/item/ammo_magazine/c762/dominia name = "mpr-24/5 carbine magazine (7.62mm)" - icon = 'icons/obj/guns/dominia_carbine.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_carbine.dmi' icon_state = "dom_carbine_mag" /obj/item/ammo_magazine/boltaction @@ -648,7 +648,7 @@ If nothing is chosen, reload sounds revert to the default, which is metal_slide_ /obj/item/ammo_magazine/xanan_shotgun name = "magazine" desc = "A magazine for the dNAC-12 combat shotgun." - icon = 'icons/obj/guns/xanu_shotgun_mags.dmi' + icon = 'icons/obj/guns/faction/dna_defense/xanu_shotgun_mags.dmi' icon_state = "xanu_shell_magazine" caliber = "shotgun" insert_sound = SFX_RELOAD_RIFLE_SLIDE diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm index 6058f16b269..6dfa5756749 100644 --- a/code/modules/projectiles/ammunition/bullets.dm +++ b/code/modules/projectiles/ammunition/bullets.dm @@ -407,9 +407,9 @@ projectile_type = /obj/projectile/bullet/gauss max_stack = 2 -/obj/item/ammo_casing/gauss/carbine - name = "compact tungsten slug" - desc = "A heavy tungsten gauss slug. This one has a casing adapated for carbine models." +/obj/item/ammo_casing/gauss/old + name = "depleted uranium slug" + desc = "A depleted uranium gauss slug. It seems quite old." projectile_type = /obj/projectile/bullet/gauss/carbine /obj/item/ammo_casing/gauss/emp diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f951090e3ef..b349ca4511f 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -40,10 +40,10 @@ original_settings = null /// Parent gun type. Guns are weapons that can be aimed at mobs and act over a distance. -/obj/item/gun +ABSTRACT_TYPE(/obj/item/gun) name = "gun" desc = "It's a gun. It's pretty terrible, though." - icon = 'icons/obj/guns/pistol.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/pistol.dmi' var/gun_gui_icons = 'icons/obj/guns/gun_gui.dmi' icon_state = "pistol" item_state = "pistol" @@ -258,7 +258,7 @@ underlays.Cut() if(bayonet) var/image/I - I = image(icon = 'icons/obj/guns/bayonet.dmi', icon_state = "bayonet") + I = image(icon = 'icons/obj/guns/attachments/bayonet.dmi', icon_state = "bayonet") I.pixel_x = knife_x_offset I.pixel_y = knife_y_offset underlays += I @@ -407,7 +407,9 @@ if(user.a_intent == I_HURT) toggle_safety(user) else + var/safety_cooldown = 5 // Half a second handle_click_empty(user) + user.setClickCooldown(safety_cooldown) return FALSE if(!special_check(user)) @@ -762,6 +764,7 @@ return new_mode /obj/item/gun/attack_self(mob/user) + . = ..() if(is_wieldable) toggle_wield(usr) update_held_icon() @@ -1012,7 +1015,7 @@ /obj/item/gun/proc/critical_fail(var/mob/user) return -/obj/item/gun/attackby(obj/item/attacking_item, mob/user) +/obj/item/gun/attackby(obj/item/attacking_item, mob/user, params) if(istype(attacking_item, /obj/item/material/knife/bayonet)) if(!can_bayonet) balloon_alert(user, "doesn't fit!") diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm deleted file mode 100644 index c097d6da7fe..00000000000 --- a/code/modules/projectiles/guns/alien.dm +++ /dev/null @@ -1,107 +0,0 @@ -//Alien pinning weapon. -/obj/item/gun/launcher/spikethrower - name = "spike thrower" - desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." - var/last_regen = 0 - var/spike_gen_time = 100 - var/max_spikes = 3 - var/spikes = 3 - release_force = 30 - slot_flags = SLOT_BELT|SLOT_BACK - icon = 'icons/obj/guns/spikethrower.dmi' - icon_state = "spikethrower3" - item_state = "spikethrower" - fire_sound_text = "a strange noise" - fire_sound = 'sound/weapons/bladeslice.ogg' - needspin = FALSE - -/obj/item/gun/launcher/spikethrower/feedback_hints(mob/user, distance, is_adjacent) - . += ..() - if(distance > 1) - return - . += "It has [spikes] spike\s remaining." - -/obj/item/gun/launcher/spikethrower/Initialize() - . = ..() - last_regen = world.time - -/obj/item/gun/launcher/spikethrower/Destroy() - return ..() - -/obj/item/gun/launcher/spikethrower/process() - if(spikes < max_spikes && world.time > last_regen + spike_gen_time) - spikes++ - last_regen = world.time - update_icon() - -/obj/item/gun/launcher/spikethrower/proc/regen_spike() - spikes++ - update_icon() - if (spikes < max_spikes) - addtimer(CALLBACK(src, PROC_REF(regen_spike)), spike_gen_time, TIMER_UNIQUE) - -/obj/item/gun/launcher/spikethrower/update_icon() - icon_state = "spikethrower[spikes]" - -/obj/item/gun/launcher/spikethrower/special_check(user) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.species && H.species.name != SPECIES_VAURCA_WARRIOR || SPECIES_VAURCA_ATTENDANT) - to_chat(user, SPAN_WARNING("\The [src] does not respond to you!")) - return FALSE - return ..() - -/obj/item/gun/launcher/spikethrower/update_release_force() - return - -/obj/item/gun/launcher/spikethrower/consume_next_projectile() - if(spikes < 1) return null - spikes-- - addtimer(CALLBACK(src, PROC_REF(regen_spike)), spike_gen_time, TIMER_UNIQUE) - return new /obj/item/spike(src) - -//This gun only functions for vaurca warriors. The on-sprite is too huge to render properly on other sprites. -/obj/item/gun/energy/noisecannon - name = "alien heavy cannon" - desc = "It's some kind of enormous alien weapon, as long as a man is tall." - - icon = 'icons/obj/guns/noisecannon.dmi' - icon_state = "noisecannon" - item_state = "noisecannon" - recoil = 1 - - force = 15 - projectile_type = /obj/projectile/energy/sonic - cell_type = /obj/item/cell/super - fire_delay = 40 - fire_sound = 'sound/effects/basscannon.ogg' - needspin = FALSE - - var/mode = 1 - -/obj/item/gun/energy/noisecannon/attack_hand(mob/user as mob) - if(loc != user) - var/mob/living/carbon/human/H = user - if(istype(H)) - if(H.species.name == SPECIES_VAURCA_WARRIOR || SPECIES_VAURCA_ATTENDANT) - ..() - return - to_chat(user, SPAN_WARNING("\The [src] is far too large for you to pick up.")) - return - -/obj/item/gun/energy/noisecannon/update_icon() - return - -//Projectile. -/obj/projectile/energy/sonic - name = "distortion" - icon = 'icons/obj/machinery/particle_accelerator2.dmi' - icon_state = "particle" - damage = 60 - damage_type = DAMAGE_BRUTE - check_armor = BULLET - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - - embed = 0 - weaken = 5 - stun = 5 diff --git a/code/modules/projectiles/guns/bang.dm b/code/modules/projectiles/guns/bang.dm index 3f86204de9b..b627ca54b0a 100644 --- a/code/modules/projectiles/guns/bang.dm +++ b/code/modules/projectiles/guns/bang.dm @@ -1,55 +1,145 @@ -/obj/item/gun/bang - name = "some shitty-ass gun" +#define FRAME_ANIM_TIME 3 +ABSTRACT_TYPE(/obj/item/gun/bang) + name = "flag gun" desc = "This is a gun. Neat!" - icon = 'icons/obj/guns/revolver.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/revolver.dmi' icon_state = "revolver" item_state = "revolver" - fire_sound = 'sound/misc/sadtrombone.ogg' + fire_sound = 'sound/machines/crate_close.ogg' + suppressed_sound = 'sound/machines/crate_close.ogg' + var/empty_sound_flag = SFX_PLASTIC_DRY_FIRE needspin = FALSE var/fakecaliber = "357" - var/image/bang_flag - var/fired_gun = 0 - var/pixel_offset_x = -2 - var/pixel_offset_y = 13 + var/fired_gun = FALSE + var/pixel_offset_x = 28 + var/pixel_offset_y = 12 + /// Caches offset matrix for use later + VAR_PRIVATE/matrix/TM + var/obj/effect/overlay/vis/bang_flag + ///Pixel offset for the suppressor overlay on the x axis. + var/suppressor_x_offset + ///Pixel offset for the suppressor overlay on the y axis. + var/suppressor_y_offset + +/obj/item/gun/bang/update_icon() + ..() + if(suppressed) + var/mutable_appearance/MA = mutable_appearance('icons/obj/guns/attachments/suppressor.dmi', "suppressor") + if(suppressor_x_offset) + MA.pixel_x = suppressor_x_offset + if(suppressor_y_offset) + MA.pixel_y = suppressor_y_offset + underlays += MA /obj/item/gun/bang/mechanics_hints(mob/user, distance, is_adjacent) . += ..() - . += "This is a ballistic weapon. It fires [fakecaliber] ammunition. To reload most guns, click the gun with an empty hand to remove any spent casings or magazines, and then insert new ones." + if(!fired_gun) + . += "This is a ballistic weapon. It fires [fakecaliber] ammunition. To reload most guns, click the gun with an empty hand to remove any spent casings or magazines, and then insert new ones." + else + . += "This is a fake weapon. It won't do you much good. Click to retract the flag." + +/obj/item/gun/bang/feedback_hints(mob/user, distance, is_adjacent) + . = ..() + if(fired_gun) + . += SPAN_NOTICE("A flag is sticking out of the barrel!") /obj/item/gun/bang/Initialize() . = ..() - bang_flag = image('icons/obj/bang_flag.dmi', "bang_flag") - bang_flag.pixel_x = pixel_offset_x - bang_flag.pixel_y = pixel_offset_y + TM = matrix() + TM.Translate(pixel_offset_x, pixel_offset_y) -/obj/item/gun/bang/handle_click_empty(mob/user) - if (user) - to_chat(user, SPAN_DANGER("The flag is already out!")) +// Doesn't send a signal +/obj/item/gun/bang/proc/handle_click_empty_flag(mob/user) + playsound(loc, empty_sound_flag, 30, TRUE) + balloon_alert_to_viewers("*click*") -/obj/item/gun/bang/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0) - if(!user || !target) return +/obj/item/gun/bang/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0, accuracy_decrease=0, is_offhand=0) + if(!fire_checks(target,user,clickparams,pointblank,reflex)) + return FALSE if(fired_gun) - handle_click_empty(user) - return + handle_click_empty_flag(user) + return FALSE - add_fingerprint(user) + balloon_alert_to_viewers("*pop*") if (user) - user.visible_message(SPAN_DANGER("A flag pops out of the barrel!")) + user.visible_message(SPAN_NOTICE("A flag pops out of the barrel of \the [src.name]'s barrel!"), SPAN_WARNING("A flag pops out of the barrel!")) else - src.visible_message(SPAN_DANGER("A flag pops out of the barrel of \the [src.name]'s barrel!")) - playsound(src, fire_sound, 20, 1) - src.AddOverlays(bang_flag) - fired_gun = 1 + visible_message(SPAN_NOTICE("A flag pops out of the barrel of \the [src.name]'s barrel!")) -/obj/item/gun/bang/attack_hand(mob/user as mob) - if(user.get_inactive_hand() == src && fired_gun) - src.CutOverlays(bang_flag) + appearance_flags &= KEEP_TOGETHER + play_fire_sound() + add_vis_contents(return_flag()) + fired_gun = TRUE + + addtimer(CALLBACK(src, PROC_REF(play_sad_sound)), 4) //4 deciseconds + +/obj/item/gun/bang/attack_self(mob/user) + . = ..() + if(fired_gun) user.visible_message(SPAN_NOTICE("\The [user] pushes the flag back into the barrel of \the [src.name]."), SPAN_NOTICE("You push the flag back into the barrel of \the [src.name].")) - + bang_flag.icon_state = "bang_flag_rew" + addtimer(CALLBACK(src, PROC_REF(remove_flag)), FRAME_ANIM_TIME) playsound(src.loc, 'sound/weapons/TargetOff.ogg', 50,1) - fired_gun = 0 - else - return ..() + return TRUE + +/obj/item/gun/bang/attackby(obj/item/attacking_item, mob/user, params) + . = ..() + if(astype(attacking_item, /obj/item/suppressor)) + if(!can_suppress) + balloon_alert(user, "doesn't fit!") + return + + if(suppressed) + balloon_alert(user, "already has a suppressor!") + return + + if(user.l_hand != attacking_item && user.r_hand != attacking_item) + balloon_alert(user, "not in hand!") + return + + user.drop_from_inventory(suppressor, src) + balloon_alert(user, "[attacking_item.name] attached") + install_suppressor(attacking_item) + return + +/obj/item/gun/bang/proc/return_flag() + PRIVATE_PROC(TRUE) + bang_flag = new(src) + bang_flag.icon = 'icons/obj/bang_flag.dmi' + bang_flag.icon_state = "bang_flag" + bang_flag.layer = FLOAT_LAYER + bang_flag.plane = FLOAT_PLANE + bang_flag.transform = TM + return bang_flag + +/obj/item/gun/bang/proc/remove_flag() + if(!(initial(appearance_flags) & KEEP_TOGETHER)) + appearance_flags &= ~KEEP_TOGETHER + remove_vis_contents(bang_flag) + QDEL_NULL(bang_flag) + fired_gun = FALSE + +/obj/item/gun/bang/proc/play_sad_sound() + PRIVATE_PROC(TRUE) + playsound(src, 'sound/misc/sadtrombone.ogg', 20, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) + + +//This stuff only exists to avoid suppressors from revealing a fake gun. Eventually, we should add a base-level attachments system to replace this mess +///Installs a new suppressor, assumes that the suppressor is already in the contents of src +/obj/item/gun/bang/proc/install_suppressor(obj/item/suppressor/S) + suppressed = TRUE + w_class += S.w_class //Add our weight class to the item's weight class + suppressor = S + update_icon() + +/obj/item/gun/bang/clear_suppressor() + if(!can_unsuppress) + return + if(istype(suppressor)) + w_class -= suppressor.w_class + return ..() + +#undef FRAME_ANIM_TIME diff --git a/code/modules/projectiles/guns/bang/pistol.dm b/code/modules/projectiles/guns/bang/pistol.dm index e2a8a3027d3..6eab65abb5d 100644 --- a/code/modules/projectiles/guns/bang/pistol.dm +++ b/code/modules/projectiles/guns/bang/pistol.dm @@ -1,93 +1,106 @@ /obj/item/gun/bang/colt - name = "vintage .45 pistol" - desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds." - icon = 'icons/obj/guns/colt.dmi' + name = "\improper Pattern 5 combat pistol" + desc = "A robust metal-framed semi-automatic pistol chambered in .45 produced in the system of San Colette." + desc_extended = "The Pattern 5 Pistol is the standard-issue sidearm for the Civil Guard, San Colette’s local military force. Loosely based on the standard 9mm pistol of the Solarian Army, the P5 fires a larger .45 round intended for use against heavier targets. \ + The P5 is produced by the San Colette Interstellar Armaments Company (CAISC) and is often found abroad due to its rugged construction." + icon = 'icons/obj/guns/faction/caisc/pattern_5.dmi' icon_state = "colt" item_state = "colt" - pixel_offset_x = 30 - pixel_offset_y = 18 + pixel_offset_x = 29 + pixel_offset_y = 12 fakecaliber = ".45" /obj/item/gun/bang/sec - name = "\improper .45 pistol" - desc = "A NanoTrasen designed sidearm, found among law enforcement and security forces. Uses .45 rounds." - desc_extended = "The NT Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. It uses .45 rounds." - icon = 'icons/obj/guns/secgun.dmi' + name = "\improper Mk58 pistol" + desc = "A NanoTrasen-designed .45 sidearm, found among law enforcement and security forces." + desc_extended = "The Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. It uses .45 rounds." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/secgun.dmi' icon_state = "secgun" item_state = "secgun" - pixel_offset_x = 28 - pixel_offset_y = 14 + pixel_offset_x = 26 + pixel_offset_y = 12 fakecaliber = ".45" + /obj/item/gun/bang/sec/flash name = ".45 signal pistol" fakecaliber = ".45 signal" /obj/item/gun/bang/sec/wood - name = "custom .45 pistol" - desc = "A NanoTrasen designed sidearm, found among law enforcement and security forces. It has a wooden grip. Uses .45 rounds." - desc_extended = "The NT Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. This one has a wooden grip. It uses .45 rounds." - icon = 'icons/obj/guns/secgun_wood.dmi' + name = "custom Mk58 pistol" + desc = "A NanoTrasen-designed .45 sidearm, found among law enforcement and security forces. It has a wooden grip." + desc_extended = "The Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. This one has a faux wooden grip. It uses .45 rounds." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/secgun_wood.dmi' icon_state = "secgunwood" item_state = "secgunwood" fakecaliber = ".45" + /obj/item/gun/bang/x9 - name = "automatic .45 pistol" - desc = "The x9 tactical pistol is a lightweight fast firing handgun. Uses .45 rounds." - icon = 'icons/obj/guns/x9.dmi' - icon_state = "x9tactical" - item_state = "x9" - pixel_offset_x = 28 - pixel_offset_y = 13 + name = "\improper Mk58-A machine pistol" + desc = "A NanoTrasen-designed .45 sidearm, modified for fully-automatic fire. Issued to select security and law enforcement groups." + desc_extended = "The Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security \ + forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. \ + A trademark of NanoTrasen security forces. This one has been modified for fully-automatic fire from the factory and sports a collapsible shoulder stock for better control. It uses .45 rounds." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/x9.dmi' + icon_state = "secgunauto" + item_state = "secgunauto" + pixel_offset_x = 32 + pixel_offset_y = 14 fakecaliber = ".45" /obj/item/gun/bang/tanto - desc = "A crude-looking open-bolt machine pistol manufactured by a multitude of arms companies, or in some cases, particularly handy individuals. \ - Owing to their low cost and relative effectiveness, weapons like these are very common all across the Spur, from the tunnels of Oran to fringe colonies along the frontier. \ - This pistol is made almost entirely from sheet metal and has cloth wrappings around the grip for shooter comfort." - name = "10mm pistol" - icon = 'icons/obj/guns/c05r.dmi' + name = "\improper Mk1-A Tanto machine pistol" + desc = "An automatic variant of the NanoTrasen Mk1 Everyman handgun that has been built to accept detachable magazines, negating one of the original \ + weapon's biggest shortcomings. It is marketed towards lower-echelon security companies as a machine pistol named the Tanto, and features a burst-fire selector \ + and sturdier barrel with heatshield to better take advantage of the higher capacity." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/tanto.dmi' icon_state = "c05r" item_state = "c05r" - pixel_offset_x = 31 - pixel_offset_y = 14 + pixel_offset_x = 28 + pixel_offset_y = 12 fakecaliber = "10mm" /obj/item/gun/bang/silenced - name = "silenced pistol" - desc = "A small, quiet, easily concealable gun. Uses .45 rounds." - icon = 'icons/obj/guns/silenced_pistol.dmi' + name = "\improper Mrrazhakulii suppressed pistol" + desc = "A small, quiet, easily concealable gun." + desc_extended = "Created as a disposable and concealable weapon, the Mrrazhakulii suppressed pistol is a firearm with a suppressor integrated as part of its barrel. \ + Carried by guerrilla forces and spies, those guns are used in assassination and subterfuge operations. Due to using cheap and available materials, such as \ + recycled iron and tires, countless of those pistols were distributed among cells and ALA soldiers." + icon = 'icons/obj/guns/faction/dpra/mrrazhakulii_suppressed_pistol.dmi' icon_state = "silenced_pistol" item_state = "silenced_pistol" - pixel_offset_x = -4 - pixel_offset_y = 15 + pixel_offset_x = 32 + pixel_offset_y = 12 fakecaliber = ".45" /obj/item/gun/bang/deagle - name = ".50 magnum pistol" - desc = "A robust handgun that uses .50 AE ammo." - icon = 'icons/obj/guns/deagle.dmi' + name = "\improper Desert Eagle pistol" + desc = "An antique, usually impractical handgun firing .50 Action Express rounds. This one is still in good condition, if a bit rough around the edges." + icon = 'icons/obj/guns/faction/antique/deagle.dmi' icon_state = "deagle" item_state = "deagle" - pixel_offset_x = -4 - pixel_offset_y = 16 + pixel_offset_x = 28 + pixel_offset_y = 12 fakecaliber = ".50" /obj/item/gun/bang/pistol - name = "9mm pistol" - desc = "500 years since its creation and the Stechkin automatic pistol is still a common sight throughout the Frontier." - icon = 'icons/obj/guns/pistol.dmi' + name = "\improper Moonlight pistol" + desc = "An extremely popular compact handgun, used throughout human space." + desc_extended = "The Zavodskoi Interstellar Moonlight 9mm can be found in the hands of just about anyone imaginable - special operatives, common criminals, police officers, the average Joe - on account of the time-tested design, low price point, reliability, and ease of concealment. Having a threaded barrel helps, too, and it isn't uncommon to see the Moonlight as a prop in spy films, suppressed." + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/pistol.dmi' icon_state = "pistol" item_state = "pistol" - pixel_offset_x = 26 - pixel_offset_y = 14 + pixel_offset_x = 28 + pixel_offset_y = 13 fakecaliber = "9mm" + can_suppress = TRUE + suppressor_x_offset = 3 /obj/item/gun/bang/pirate name = "zip gun" desc = "Little more than a barrel, handle, and firing mechanism, cheap makeshift firearms like this one are not uncommon in frontier systems." - icon = 'icons/obj/guns/zipgun.dmi' + icon = 'icons/obj/guns/faction/frontier/zipgun.dmi' icon_state = "zipgun" item_state = "zipgun" - pixel_offset_x = 0 - pixel_offset_y = 12 + pixel_offset_x = 32 + pixel_offset_y = 10 fakecaliber = "7.62mm" diff --git a/code/modules/projectiles/guns/bang/revolver.dm b/code/modules/projectiles/guns/bang/revolver.dm index 6bc51d02632..5a7accbba77 100644 --- a/code/modules/projectiles/guns/bang/revolver.dm +++ b/code/modules/projectiles/guns/bang/revolver.dm @@ -1,4 +1,4 @@ /obj/item/gun/bang/revolver - name = "revolver" - desc = "The classic Zavodskoi Interstellar .357 revolver, for when you only want to shoot once." + name = "\improper Mark II revolver" + desc = "The revised Mark II Zavodskoi Interstellar revolver, utilizing a robust firing mechanism to deliver deadly rounds downrange. This is a monster of a hand cannon, with a beautiful cedar grip and a transparent plastic cover (so as to not splinter your hands while firing)." fakecaliber = ".357" diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index d64cdf54a0a..641d839abda 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -1,7 +1,7 @@ -/obj/item/gun/energy +ABSTRACT_TYPE(/obj/item/gun/energy) name = "energy gun" desc = "A basic energy-based gun." - icon = 'icons/obj/guns/ecarbine.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/ecarbine.dmi' icon_state = "energykill100" item_state = "energykill100" fire_sound = 'sound/weapons/Taser.ogg' diff --git a/code/modules/projectiles/guns/energy/blaster.dm b/code/modules/projectiles/guns/energy/blaster.dm index b9c721e09b0..580c6321c6e 100644 --- a/code/modules/projectiles/guns/energy/blaster.dm +++ b/code/modules/projectiles/guns/energy/blaster.dm @@ -1,7 +1,7 @@ /obj/item/gun/energy/blaster name = "blaster pistol" desc = "A tiny energy pistol converted to fire off energy bolts rather than lasers beams." - icon = 'icons/obj/guns/blaster_pistol.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/blaster_pistol.dmi' icon_state = "blaster_pistol" item_state = "blaster_pistol" has_item_ratio = FALSE @@ -48,7 +48,7 @@ /obj/item/gun/energy/blaster/revolver name = "blaster revolver" desc = "A robust eight-shot blaster." - icon = 'icons/obj/guns/blaster_revolver.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/blaster_revolver.dmi' icon_state = "blaster_revolver" item_state = "blaster_revolver" fire_sound = 'sound/weapons/laserstrong.ogg' @@ -63,7 +63,7 @@ /obj/item/gun/energy/blaster/carbine name = "blaster carbine" desc = "A short-barreled blaster carbine meant for easy handling and comfort when in combat." - icon = 'icons/obj/guns/blaster_carbine.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/blaster_carbine.dmi' icon_state = "blaster_carbine" item_state = "blaster_carbine" max_shots = 16 @@ -76,7 +76,7 @@ /obj/item/gun/energy/blaster/rifle name = "bolt slinger" desc = "A blaster rifle which seems to work by accelerating particles and flinging them out in destructive bolts." - icon = 'icons/obj/guns/blaster_rifle.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/blaster_rifle.dmi' icon_state = "blaster_rifle" item_state = "blaster_rifle" max_shots = 20 @@ -110,10 +110,10 @@ to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) /obj/item/gun/energy/blaster/tcaf - name = "blaster rifle" - desc = "Developed by Zavodskoi Interstellar, the Z.I. Guardian is a burst-fire blaster rifle designed for the armed forces of the Republic of Biesel. Cheap, reliable and easy to mass-produce, these weapons can be seen across the branches of the TCAF." + name = "\improper Guardian blaster rifle" + desc = "Developed by Zavodskoi Interstellar, the Guardian is a burst-fire blaster rifle designed for the armed forces of the Republic of Biesel. Cheap, reliable and easy to mass-produce, these weapons can be seen across the branches of the TCAF." desc_extended = "Released in early 2464, the Guardian is a modernisation of the outdated blasters previously used by the TCFL developed in conjunction with the Zo'ra Hive. Since its release, it has been widely adopted by Biesel, leading to a slight fall in NanoTrasen market share as Zavodskoi took their place as the main arms supplier of the TCAF." - icon = 'icons/obj/guns/blaster_ar.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/blaster_ar.dmi' icon_state = "blaster_ar" item_state = "blaster_ar" max_shots = 24 @@ -137,12 +137,12 @@ ) /obj/item/gun/energy/blaster/himeo - name = "himean assault blaster" + name = "\improper Type-11 assault blaster" desc = "The standard infantry blaster of the Himean Planetary Guard. 'TO RESIST EVIL BY FORCE' is stamped on the side." desc_extended = "Originally developed in 2351, the Type-11 \"Guthrie\" is a descendant of the first Himean-made weapons; haphazardly overcharged mining equipment. If it ain't broke, don't fix it; variants \ of this rifle have served in the United Syndicates' arsenal for generations, although none have matched modern improvements 'borrowed' from Zavodskoi Interstellar. Waterproof, spaceproof, idiot-proof; it's here to stay, even as advanced Xanan ballistics \ creep their way into the market. Ironically, lend-lease aid to the now-defunct League of Independent Corporate-Free Systems have seen a great deal of these end up in the hands of pirates." - icon = 'icons/obj/guns/himeo_blaster.dmi' + icon = 'icons/obj/guns/faction/himeo_free_consortium/himeo_blaster.dmi' icon_state = "himeoblaster" item_state = "himeoblaster" projectile_type = /obj/projectile/energy/blaster/heavy @@ -220,11 +220,11 @@ update_icon() /obj/item/gun/energy/blaster/himeo/pistol - name = "himean heavy blaster pistol" + name = "\improper Type-45 heavy blaster pistol" desc = "The standard sidearm of the Himean Planetary Guard. For those revolutions you cannot fight with fists." desc_extended = "A plasma cutter gave its life for the first Type-45 \"Sabo-Tabby\" pistol. Powered by the same hydrogen cells as the Type-11 \"Guthrie\" rifle, this robust model has earned the nickname of \ the 'One Big Handgun' in those foreign markets it has cropped up. What was initially seen as a flaw in the power converter led to its 'magnum'-sized blaster bolts." - icon = 'icons/obj/guns/himeo_pistol.dmi' + icon = 'icons/obj/guns/faction/himeo_free_consortium/himeo_pistol.dmi' icon_state = "himeopistol" item_state = "himeopistol" projectile_type = /obj/projectile/energy/blaster/heavy diff --git a/code/modules/projectiles/guns/energy/crank.dm b/code/modules/projectiles/guns/energy/crank.dm index c3774038fe0..b1d5b857442 100644 --- a/code/modules/projectiles/guns/energy/crank.dm +++ b/code/modules/projectiles/guns/energy/crank.dm @@ -1,7 +1,7 @@ /obj/item/gun/energy/rifle/icelance - name = "icelance rifle" + name = "\improper Tui'ad icelance rifle" desc = "A Tajaran made rifle, it houses a crank-chargable internal battery. It only holds three shots and each shot must be cranked manually." - icon = 'icons/obj/guns/icelance.dmi' + icon = 'icons/obj/guns/faction/pra/icelance.dmi' icon_state = "icelance" item_state = "icelance" has_item_ratio = FALSE diff --git a/code/modules/projectiles/guns/energy/freezeray.dm b/code/modules/projectiles/guns/energy/freezeray.dm index a1c384ca494..05ef2191e65 100644 --- a/code/modules/projectiles/guns/energy/freezeray.dm +++ b/code/modules/projectiles/guns/energy/freezeray.dm @@ -1,6 +1,6 @@ /obj/item/gun/energy/freeze - name = "freeze ray gun" - desc = "A portable freezing ray gun designated to quickly lower temperatures." + name = "freeze ray" + desc = "A portable freezing ray designed to quickly lower temperatures." icon = 'icons/obj/guns/freezeray.dmi' icon_state = "icer" item_state = "icer" diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index b3a78ee530c..20fc2309ae6 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,43 +1,6 @@ -/obj/item/gun/energy/laser - name = "laser carbine" - desc = "A NanoTrasen G40E carbine, designed to kill with concentrated energy blasts." - icon = 'icons/obj/guns/laserrifle.dmi' - icon_state = "laserrifle100" - item_state = "laserrifle100" - has_item_ratio = FALSE // the back and suit slots have ratio sprites but the in-hands dont - fire_sound = 'sound/weapons/laser1.ogg' - slot_flags = SLOT_BELT|SLOT_BACK - accuracy = 1 - w_class = WEIGHT_CLASS_NORMAL - force = 20 - origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) - matter = list(DEFAULT_WALL_MATERIAL = 2000) - projectile_type = /obj/projectile/beam/midlaser - can_turret = TRUE - turret_is_lethal = TRUE - turret_sprite_set = "laser" - - modifystate = "laserrifle" - -/obj/item/gun/energy/laser/mounted - name = "mounted laser carbine" - has_safety = FALSE - self_recharge = TRUE - use_external_power = TRUE - can_turret = FALSE - -/obj/item/gun/energy/laser/mounted/cyborg/overclocked - max_shots = 15 - recharge_time = 1 - -/obj/item/gun/energy/laser/practice - name = "practice laser carbine" - desc = "A modified version of the NT G40E, this one fires less concentrated energy bolts designed for target practice." - projectile_type = /obj/projectile/beam/practice - /obj/item/gun/energy/retro - name = "retro laser" - icon = 'icons/obj/guns/retro.dmi' + name = "\improper L104 laser gun" + icon = 'icons/obj/guns/faction/antique/retro.dmi' icon_state = "retro" item_state = "retro" has_item_ratio = FALSE @@ -57,9 +20,9 @@ modifystate = "retro" /obj/item/gun/energy/captain - name = "antique laser gun" - icon = 'icons/obj/guns/caplaser.dmi' - desc = "This is an antique laser gun. All craftsmanship is of the highest quality. The object menaces with spikes of energy." + name = "\improper X-00 laser gun" + icon = 'icons/obj/guns/faction/antique/caplaser.dmi' + desc = "This is the X-00, an antique laser gun, out of production for decades and well beyond anyone's capacity to recreate. All craftsmanship is of the highest quality. The gun menaces with spikes of energy." icon_state = "caplaser" item_state = "caplaser" has_item_ratio = FALSE @@ -80,42 +43,11 @@ . += ..() . += "Unlike most energy weapons, this weapon recharges itself." -/obj/item/gun/energy/lasercannon - name = "laser cannon" - desc = "A NanoTrasen designed laser cannon capable of acting as a powerful support weapon." - desc_extended = "The NT LC-4 is a laser cannon developed and produced by NanoTrasen. Produced and sold to organizations both in need of a highly powerful support weapon and can afford its high unit cost. In spite of the low capacity, it is a highly capable tool, cutting down fortifications and armored targets with ease." - icon = 'icons/obj/guns/lasercannon.dmi' - icon_state = "lasercannon100" - item_state = "lasercannon100" - fire_sound = 'sound/weapons/lasercannonfire.ogg' - origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3) - slot_flags = SLOT_BELT|SLOT_BACK - projectile_type = /obj/projectile/beam/heavylaser - charge_cost = 400 - max_shots = 5 - fire_delay = 20 - can_turret = TRUE - turret_is_lethal = TRUE - turret_sprite_set = "cannon" - - modifystate = "lasercannon" - -/obj/item/gun/energy/lasercannon/mounted - name = "mounted laser cannon" - self_recharge = TRUE - use_external_power = TRUE - recharge_time = 10 - can_turret = FALSE - -/obj/item/gun/energy/lasercannon/mounted/cyborg/overclocked - recharge_time = 1 - max_shots = 15 - /obj/item/gun/energy/xray - name = "xray laser gun" - desc = "A NanoTrasen designed high-power laser sidearm capable of expelling concentrated xray blasts." - desc_extended = "The NT XG-1 is a laser sidearm developed and produced by NanoTrasen. A recent invention, used for specialist operations, it is presently being produced and sold in limited capacity over the galaxy. Designed for precision strikes, releasing concentrated xray blasts that are capable of hitting targets behind cover. It is compact with relatively high capacity to other sidearms." - icon = 'icons/obj/guns/xray.dmi' + name = "\improper XG-1 X-Ray laser pistol" + desc = "A NanoTrasen designed high-power laser sidearm capable of expelling concentrated X-Ray blasts." + desc_extended = "The XG-1 is a laser sidearm developed and produced by NanoTrasen. A recent invention, used for specialist operations, it is presently being produced and sold in limited capacity over the galaxy. Designed for precision strikes, releasing concentrated xray blasts that are capable of hitting targets behind cover. It is compact with relatively high capacity to other sidearms." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/xray.dmi' icon_state = "xray" item_state = "xray" has_item_ratio = FALSE @@ -138,52 +70,11 @@ recharge_time = 5 can_turret = FALSE -/obj/item/gun/energy/sniperrifle - name = "marksman energy rifle" - desc = "The HI L.W.A.P. is an older NanoTrasen design. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance." - icon = 'icons/obj/guns/sniper.dmi' - icon_state = "sniper" - item_state = "sniper" - has_item_ratio = FALSE // same as the laserrifle - fire_sound = 'sound/weapons/marauder.ogg' - origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4) - projectile_type = /obj/projectile/beam/sniper - slot_flags = SLOT_BACK - charge_cost = 400 - max_shots = 4 - fire_delay = 45 - force = 15 - w_class = WEIGHT_CLASS_BULKY - accuracy = -3 //shooting at the hip - scoped_accuracy = 4 - can_turret = TRUE - turret_sprite_set = "sniper" - turret_is_lethal = TRUE - - is_wieldable = TRUE - - fire_delay_wielded = 35 - accuracy_wielded = 0 - -/obj/item/gun/energy/sniperrifle/mechanics_hints(mob/user, distance, is_adjacent) - . += ..() - . += "To use the scope, use the appropriate verb in the object tab." - -/obj/item/gun/energy/sniperrifle/verb/scope() - set category = "Object.Held" - set name = "Use Scope" - set src in usr - - if(wielded) - toggle_scope(2.0, usr) - else - to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) - /obj/item/gun/energy/laser/shotgun - name = "laser shotgun" + name = "\improper QB-2 laser shotgun" desc = "A NanoTrasen designed laser weapon, designed to split a single amplified beam four times." - desc_extended = "The NT QB-2 is a laser weapon developed and produced by NanoTrasen. Designed to fill in the niche that ballistic shotguns do, but in the form of laser weaponry. It is equipped with a special crystal lens that splits a single laser beam into four." - icon = 'icons/obj/guns/lasershotgun.dmi' + desc_extended = "The QB-2 is a laser weapon developed and produced by NanoTrasen. Designed to fill in the niche that ballistic shotguns do, but in the form of laser weaponry. It is equipped with a special crystal lens that splits a single laser beam into four." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/lasershotgun.dmi' icon_state = "lasershotgun" item_state = "lasershotgun" modifystate = null @@ -209,13 +100,13 @@ turret_sprite_set = "laser" /obj/item/gun/energy/laser/shotgun/research - name = "expedition shotgun" + name = "\improper QB-2E laser shotgun" desc = "A NanoTrasen designed laser weapon, designed to split a single amplified beam four times. This one is marked for expeditionary use." pin = /obj/item/firing_pin/away_site ////////Laser Tag//////////////////// -/obj/item/gun/energy/lasertag +ABSTRACT_TYPE(/obj/item/gun/energy/lasertag) name = "laser tag gun" desc = "A simple low-power laser gun, outfitted for use in laser tag arenas." item_state = "laser" @@ -249,16 +140,16 @@ pin = new pin_path(src) switch(set_color) if("red") - icon = 'icons/obj/guns/redtag.dmi' + icon = 'icons/obj/guns/faction/toy/redtag.dmi' if("blue") - icon = 'icons/obj/guns/bluetag.dmi' + icon = 'icons/obj/guns/faction/toy/bluetag.dmi' icon_state = "[set_color]tag" item_state = icon_state modifystate = item_state update_held_icon() /obj/item/gun/energy/lasertag/blue - icon = 'icons/obj/guns/bluetag.dmi' + icon = 'icons/obj/guns/faction/toy/bluetag.dmi' icon_state = "bluetag" item_state = "bluetag" projectile_type = /obj/projectile/beam/laser_tag/blue @@ -266,6 +157,6 @@ turret_sprite_set = "blue" /obj/item/gun/energy/lasertag/red - icon = 'icons/obj/guns/redtag.dmi' + icon = 'icons/obj/guns/faction/toy/redtag.dmi' icon_state = "redtag" item_state = "redtag" diff --git a/code/modules/projectiles/guns/energy/lawgiver.dm b/code/modules/projectiles/guns/energy/lawgiver.dm index df0314627c9..b31c567f9d3 100644 --- a/code/modules/projectiles/guns/energy/lawgiver.dm +++ b/code/modules/projectiles/guns/energy/lawgiver.dm @@ -1,6 +1,6 @@ -/obj/item/gun/energy/lawgiver - name = "advanced combi-pistol mk2" - icon = 'icons/obj/guns/lawgiver.dmi' +/obj/item/gun/energy/acp + name = "\improper ACP-2" + icon = 'icons/obj/guns/faction/stellar_corporate_conglomerate/combipistol.dmi' icon_state = "lawgiver" item_state = "lawgiver" has_item_ratio = FALSE @@ -86,17 +86,17 @@ ) ) -/obj/item/gun/energy/lawgiver/Initialize() +/obj/item/gun/energy/acp/Initialize() . = ..() become_hearing_sensitive() power_supply = new /obj/item/cell/device/variable(src, 2000) var/datum/firemode/new_mode = firemodes[sel_mode] new_mode.apply_to(src) -/obj/item/gun/energy/lawgiver/Destroy() +/obj/item/gun/energy/acp/Destroy() return ..() -/obj/item/gun/energy/lawgiver/proc/play_message() +/obj/item/gun/energy/acp/proc/play_message() while (message_enabled && !message_disable) //Shut down command issued. Inform user that boardcasting has been stopped usr.audible_message(SPAN_WARNING("[usr]'s [src.name] broadcasts: [message]"),"") playsound(get_turf(src), 'sound/voice/halt.ogg', 100, 1, vary = 0) @@ -105,7 +105,7 @@ message_enabled = 0 message_disable = 0 -/obj/item/gun/energy/lawgiver/unique_action(mob/living/carbon/user) //can probably remove this in favor of the DNA locked firing pins. not touching that now though. edit: lol nevermind snowflake code of the year +/obj/item/gun/energy/acp/unique_action(mob/living/carbon/user) //can probably remove this in favor of the DNA locked firing pins. not touching that now though. edit: lol nevermind snowflake code of the year if(dna != null) return else @@ -115,7 +115,7 @@ desc += "
Linked to: [user.real_name]" return -/obj/item/gun/energy/lawgiver/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, pointblank=0, reflex = 0) +/obj/item/gun/energy/acp/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, pointblank=0, reflex = 0) if(src.dna != user.dna.unique_enzymes && !emagged) if(istype(user, /mob/living/carbon/human)) //Save the users active hand @@ -136,18 +136,18 @@ return 0 ..() -/obj/item/gun/energy/lawgiver/proc/Emag(mob/user as mob) +/obj/item/gun/energy/acp/proc/Emag(mob/user as mob) to_chat(usr, SPAN_WARNING("You short out [src]'s id check")) emagged = 1 return 1 -/obj/item/gun/energy/lawgiver/attackby(obj/item/attacking_item, mob/user) +/obj/item/gun/energy/acp/attackby(obj/item/attacking_item, mob/user) if (istype(attacking_item, /obj/item/card/emag) && !emagged) Emag(user) else ..() -/obj/item/gun/energy/lawgiver/hear_talk(mob/living/M in range(0,src), msg) +/obj/item/gun/energy/acp/hear_talk(mob/living/M in range(0,src), msg) var/mob/living/carbon/human/H = M if (!H || !istype(H)) return @@ -155,7 +155,7 @@ hear(msg) return -/obj/item/gun/energy/lawgiver/proc/hear(var/msg) +/obj/item/gun/energy/acp/proc/hear(var/msg) var/datum/firemode/old_mode = firemodes[sel_mode] var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = ""," " = "") diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 1e767485412..bd6dd6dcfa4 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -1,8 +1,8 @@ /obj/item/gun/energy/gun - name = "energy carbine" + name = "\improper EC-4 energy carbine" desc = "A NanoTrasen designed energy-based carbine with two settings: Stun and kill." desc_extended = "The NT EC-4 is an energy carbine developed and produced by NanoTrasen. Compact, light and durable, used by security forces and law enforcement for its ability to fire stun or lethal beams, depending on selection. It is widely sold and distributed across the galaxy." - icon = 'icons/obj/guns/ecarbine.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/ecarbine.dmi' icon_state = "energystun" item_state = "energystun" fire_sound = 'sound/weapons/Taser.ogg' @@ -123,10 +123,10 @@ update_mode() /obj/item/gun/energy/pistol - name = "energy pistol" + name = "\improper EP-3 energy pistol" desc = "A NanoTrasen energy-based pistol gun with two settings: Stun and kill." - desc_extended = "The NT EP-3 is an energy sidearm developed and produced by NanoTrasen. Compact, light and durable, used by security forces and law enforcement for its ability to fire stun or lethal beams, depending on selection. It is widely sold and distributed across the galaxy." - icon = 'icons/obj/guns/epistol.dmi' + desc_extended = "The EP-3 is an energy sidearm developed and produced by NanoTrasen. Compact, light and durable, used by security forces and law enforcement for its ability to fire stun or lethal beams, depending on selection. It is widely sold and distributed across the galaxy." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/epistol.dmi' icon_state = "epistolstun100" item_state = "epistolstun100" fire_sound = 'sound/weapons/Taser.ogg' @@ -150,10 +150,10 @@ ) /obj/item/gun/energy/pistol/hegemony - name = "hegemony energy pistol" + name = "\improper Zkrehk-Guild Beamgun" desc = "An upgraded variant of the standard energy pistol with two settings: Incapacitate and Smite." desc_extended = "This is the Zkrehk-Guild Beamgun, an energy-based sidearm designed and manufactured on Moghes. A special crystal used in its design allows it to penetrate armor with pinpoint accuracy." - icon = 'icons/obj/guns/hegemony_pistol.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/hegemony_pistol.dmi' icon_state = "hegemony_pistol" item_state = "hegemony_pistol" has_item_ratio = FALSE @@ -179,7 +179,7 @@ name = "golden deep ornate energy pistol" desc = "An intricate golden energy pistol, engraved with a quality unlike no other. If you had to describe this pistol in one word, it would be expensive." desc_extended = "Possessed by only the most affluent affiliates of the Golden Deep, this ornate energy pistol covered in gold is the result of a commission, which had the artistic quality of Ultra Maz combined with the scientific technology acquired by the Estriconian to produce a weapon that many outsiders see as a firearm more valuable than the assets it was made to protect." - icon = 'icons/obj/guns/goldendeep_ornatepistol.dmi' + icon = 'icons/obj/guns/faction/golden_deep/goldendeep_ornatepistol.dmi' icon_state = "ornatepistolstun100" item_state = "ornatepistolstun100" has_item_ratio = FALSE @@ -202,10 +202,10 @@ ) /obj/item/gun/energy/repeater - name = "energy repeater" + name = "\improper SCC-ER1 energy repeater" desc = "A Stellar Corporate Conglomerate created energy repeater, extremely lightweight. It has three settings: Single, Three-Burst, and Full-Auto." desc_extended = "The SCC-ER1 was designed to be a reliable yet concealable firearm, capable of defending SCC assets and agents from various attackers." - icon = 'icons/obj/guns/erepeater.dmi' + icon = 'icons/obj/guns/faction/stellar_corporate_conglomerate/erepeater.dmi' icon_state = "energysmg100" item_state = "energysmg100" modifystate = "energysmg" @@ -227,10 +227,10 @@ ) /obj/item/gun/energy/repeater/pistol - name = "Energy Pistol" + name = "\improper SCC-ER1-2 energy pistol" desc = "A more compact and portable version of the Stellar Corporate Conglomerate Energy Repeater. It has two settings: Stun, and Lethal." desc_extended = "The SCC-ER1-2 was designed to be a reliable yet more compact version of the SCC-ER1, capable of defending Staff and Assets." - icon = 'icons/obj/guns/sccpistol.dmi' + icon = 'icons/obj/guns/faction/stellar_corporate_conglomerate/sccpistol.dmi' icon_state = "sccpistolstun100" item_state = "sccpistolstun" has_item_ratio = FALSE @@ -251,7 +251,7 @@ list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol/scc/weak, modifystate="sccpistolkill", fire_sound='sound/weapons/energy_repeater.ogg') ) -/obj/item/gun/energy/gun/skrell +ABSTRACT_TYPE(/obj/item/gun/energy/gun/skrell) self_recharge = TRUE fire_sound = 'sound/weapons/Laser2.ogg' modifystate = null @@ -266,7 +266,7 @@ /obj/item/gun/energy/gun/skrell/pistol name = "nralakk particle pistol" desc = "A Nralakk Federation particle-beam pistol with two settings: Disable and Lethal." - icon = 'icons/obj/guns/nralakkpistol.dmi' + icon = 'icons/obj/guns/faction/nralakk_federation/nralakkpistol.dmi' icon_state = "particlepistol" item_state = "particlepistol" slot_flags = SLOT_BELT|SLOT_HOLSTER @@ -282,7 +282,7 @@ /obj/item/gun/energy/gun/skrell/smg name = "nralakk particle submachinegun" desc = "A Nralakk Federation particle-beam submachine gun with two settings: Disable and Lethal." - icon = 'icons/obj/guns/nralakksmg.dmi' + icon = 'icons/obj/guns/faction/nralakk_federation/nralakksmg.dmi' icon_state = "particlesmg" item_state = "particlesmg" slot_flags = SLOT_BELT|SLOT_HOLSTER|SLOT_BACK @@ -297,7 +297,7 @@ ) /obj/item/gun/energy/gun/qukala - name = "tqi-qop carbine" + name = "\improper Tqi-Qop carbine" desc = "The Tqi-Qop Carbine is the main weapon of the Qukala. Its compact light frame and excellent ammo capacity make it a superb weapon for the Skrell." desc_extended = "" icon = 'icons/obj/item/gun/energy/gun/qukala.dmi' @@ -329,7 +329,7 @@ can_turret = FALSE /obj/item/gun/energy/fedpistol - name = "nralakk energy pistol" + name = "\improper Xuqm-3 energy pistol" desc = "A Skrell-made pistol that utilises a psionic control mechanism. It's made from a lightweight alloy." desc_extended = "A sidearm usually seen in the hands of Nralakk Federation officials and law enforcement, the Xuqm-3 energy pistol has a psionically-linked firing pin that checks for a developed Zona Bovinae in its user before it can be fired. A wire can be attached to the user's wrist to allow for mode switching using psionics rather than changing it physically. For non-psionic users, a small dial for mode switching has been attached." icon = 'icons/obj/guns/psi_pistol.dmi' diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 6f12ad5cd19..3adee8264e8 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -1,7 +1,45 @@ +/obj/item/gun/energy/rifle/pulse + name = "\improper PL-10 pulse rifle" + desc = "A top-of-the-line, heavy-duty, multifaceted energy rifle with three firing modes. The gold standard for NanoTrasen's heavier security specialists." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/pulse.dmi' + icon_state = "pulse" + item_state = "pulse" + fire_sound = 'sound/weapons/laser1.ogg' + projectile_type = /obj/projectile/beam + sel_mode = 2 + origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_MAGNET = 4) + secondary_projectile_type = /obj/projectile/beam/pulse + secondary_fire_sound = 'sound/weapons/pulse.ogg' + can_switch_modes = FALSE + turret_sprite_set = "pulse" + turret_is_lethal = TRUE + + modifystate = null + + firemodes = list( + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg'), + list(mode_name="DESTROY", projectile_type=/obj/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg') + ) + +/obj/item/gun/energy/rifle/pulse/destroyer + name = "\improper PL-10D pulse destroyer" + desc = "A heavy-duty, pulse-based energy weapon. Because of its complexity and cost, it is rarely seen in use except by specialists." + fire_sound = 'sound/weapons/pulse.ogg' + projectile_type = /obj/projectile/beam/pulse + burst_delay = 5 + burst = 3 + max_shots = 30 + secondary_projectile_type = null + secondary_fire_sound = null + +/obj/item/gun/energy/rifle/pulse/destroyer/toggle_firing_mode(mob/living/user) + to_chat(user, SPAN_WARNING("[src.name] has three settings, and they are all DESTROY.")) + /obj/item/gun/energy/pulse - name = "pulse carbine" - desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. Because of its complexity and cost, it is rarely seen in use except by specialists." - icon = 'icons/obj/guns/pulse_carbine.dmi' + name = "\improper PL-4 pulse carbine" + desc = "A next-generation pulse weapon for NanoTrasen's security forces. High production costs and logistical issues have limited its deployment to specialist Loss Prevention and Emergency Response units." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/pulse_carbine.dmi' icon_state = "pulse_carbine" item_state = "pulse_carbine" slot_flags = SLOT_BELT @@ -33,10 +71,10 @@ can_turret = FALSE /obj/item/gun/energy/pulse/pistol - name = "pulse pistol" + name = "\improper PL-7 pulse pistol" desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. This one is a really compact model." slot_flags = SLOT_BELT|SLOT_HOLSTER - icon = 'icons/obj/guns/pulse_pistol.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/pulse_pistol.dmi' icon_state = "pulse_pistol" item_state = "pulse_pistol" offhand_accuracy = 1 diff --git a/code/modules/projectiles/guns/energy/rifle.dm b/code/modules/projectiles/guns/energy/rifle.dm index 4a745a25930..d18ca6f72c7 100644 --- a/code/modules/projectiles/guns/energy/rifle.dm +++ b/code/modules/projectiles/guns/energy/rifle.dm @@ -1,8 +1,8 @@ /obj/item/gun/energy/rifle - name = "energy rifle" + name = "\improper ER-2 energy rifle" desc = "A NanoTrasen designed energy-based rifle with two settings: Stun and Kill." - desc_extended = "The NT ER-2 is an energy rifle developed and produced by NanoTrasen. Widely produced and sold across the galaxy. Designed to both stun and kill with concentrated energy blasts of varying strengths based on the fire mode, focused through a crystal lens. Considered to be a dual-purpose rifle with prolonged combat capability." - icon = 'icons/obj/guns/erifle.dmi' + desc_extended = "The ER-2 is an energy rifle developed and produced by NanoTrasen. Widely produced and sold across the galaxy. Designed to both stun and kill with concentrated energy blasts of varying strengths based on the fire mode, focused through a crystal lens. Considered to be a dual-purpose rifle with prolonged combat capability." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/erifle.dmi' icon_state = "eriflestun" item_state = "eriflestun" fire_sound = 'sound/weapons/Taser.ogg' @@ -38,10 +38,10 @@ ) /obj/item/gun/energy/rifle/laser - name = "laser rifle" + name = "\improper LR-6 laser rifle" desc = "A NanoTrasen designed laser weapon, designed to kill with concentrated energy blasts." - desc_extended = "The NT LR-6 is a laser rifle developed and produced by NanoTrasen. Designed to kill with concentrated energy blasts focused through a crystal lens. It is considered to be the template of other standard laser weaponry." - icon = 'icons/obj/guns/laserrifle.dmi' + desc_extended = "The LR-6 is a laser rifle developed and produced by NanoTrasen. Designed to kill with concentrated energy blasts focused through a crystal lens. It is considered to be the template of other standard laser weaponry." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/laserrifle.dmi' icon_state = "laserrifle" item_state = "laserrifle" has_item_ratio = FALSE // the back and suit slots have ratio sprites but the in-hands dont @@ -60,15 +60,68 @@ modifystate = null /obj/item/gun/energy/rifle/laser/practice - name = "practice laser rifle" - desc = "A modified version of the NT LR-6. It fires less concentrated laser beams that are visible, but ultimately harmless, designed for target practice." + name = "\improper LR-6P practice laser rifle" + desc = "A modified version of the LR-6. It fires less concentrated laser beams that are visible, but ultimately harmless, designed for target practice." projectile_type = /obj/projectile/beam/practice + +/obj/item/gun/energy/rifle/laser/mounted + name = "mounted laser rifle" + has_safety = FALSE + self_recharge = TRUE + use_external_power = TRUE + can_turret = FALSE + +/obj/item/gun/energy/rifle/laser/mounted/cyborg/overclocked + max_shots = 15 + recharge_time = 1 + +/obj/item/gun/energy/rifle/laser/sniper + name = "\improper HI L.W.A.P. marksman energy rifle" + desc = "The HI L.W.A.P. is an older NanoTrasen design. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/nt_laser_sniper.dmi' + icon_state = "sniper" + item_state = "sniper" + has_item_ratio = FALSE // same as the laserrifle + fire_sound = 'sound/weapons/marauder.ogg' + origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4) + projectile_type = /obj/projectile/beam/sniper + slot_flags = SLOT_BACK + charge_cost = 400 + max_shots = 4 + fire_delay = 45 + force = 15 + w_class = WEIGHT_CLASS_BULKY + accuracy = -3 //shooting at the hip + scoped_accuracy = 4 + can_turret = TRUE + turret_sprite_set = "sniper" + turret_is_lethal = TRUE + + is_wieldable = TRUE + + fire_delay_wielded = 35 + accuracy_wielded = 0 + +/obj/item/gun/energy/rifle/laser/sniper/mechanics_hints(mob/user, distance, is_adjacent) + . += ..() + . += "To use the scope, use the appropriate verb in the object tab." + +/obj/item/gun/energy/rifle/laser/sniper/verb/scope() + set category = "Object.Held" + set name = "Use Scope" + set src in usr + + if(wielded) + toggle_scope(2.0, usr) + else + to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) + /obj/item/gun/energy/rifle/laser/noctiluca - name = "combat laser rifle" + name = "\improper Noctiluca XM/24 combat laser rifle" desc = "The Noctiluca XM/24 is a brand new model of laser rifle, developed entirely by Kumar Arms, a Zavodskoi Interstellar subsidiary. Easy to handle for users with minimal training, reliable and with a reasonable form factor, it is poised to become the new standard for laser weaponry." desc_extended = "The Noctiluca XM/24 was unveiled at the tail end of 2463 in the SCC Future Firearms contest and was released by Zavodskoi in June 2464 after achieving a stunning victory over the other competitors. Zavodskoi installations are prioritized for acquisition of this new rifle, with along the SCCV Horizon. The Noctiluca's specialty lies in its revolutionary dual-function laser diffuser, which is able to modulate the laser into either a standard beam or an armor-piercing super-concentrated beam." - icon = 'icons/obj/guns/crew_laser.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/crew_laser.dmi' icon_state = "trilaser" item_state = "trilaser" max_shots = 15 @@ -90,10 +143,10 @@ it has a secondary armor-piercing mode, which does less damage but has extremely high armor piercing." /obj/item/gun/energy/rifle/laser/heavy - name = "laser cannon" - desc = "A nanotrasen designed laser cannon capable of acting as a powerful support weapon." - desc_extended = "The NT LC-4 is a laser cannon developed and produced by NanoTrasen. Produced and sold to organizations both in need of a highly powerful support weapon and can afford its high unit cost. In spite of the low capacity, it is a highly capable tool, cutting down fortifications and armored targets with ease." - icon = 'icons/obj/guns/lasercannon.dmi' + name = "\improper LC-4 laser cannon" + desc = "A NanoTrasen designed laser cannon capable of acting as a powerful support weapon." + desc_extended = "The LC-4 is a laser cannon developed and produced by NanoTrasen. Produced and sold to organizations both in need of a highly powerful support weapon and can afford its high unit cost. In spite of the low capacity, it is a highly capable tool, cutting down fortifications and armored targets with ease." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/lasercannon.dmi' icon_state = "lasercannon100" item_state = "lasercannon100" has_item_ratio = TRUE @@ -115,11 +168,22 @@ accuracy_wielded = 2 fire_delay_wielded = 20 +/obj/item/gun/energy/rifle/laser/heavy/mounted + name = "mounted laser cannon" + self_recharge = TRUE + use_external_power = TRUE + recharge_time = 10 + can_turret = FALSE + +/obj/item/gun/energy/rifle/laser/heavy/mounted/cyborg/overclocked + recharge_time = 1 + max_shots = 15 + /obj/item/gun/energy/rifle/laser/xray - name = "xray laser rifle" - desc = "A NanoTrasen designed high-power laser rifle capable of expelling concentrated xray blasts." - desc_extended = "The NT XR-1 is a laser firearm developed and produced by NanoTrasen. A recent innovation, used for specialist operations, it is presently being produced and sold in limited capacity over the galaxy. Designed for precision strikes, releasing concentrated xray blasts that are capable of hitting targets behind cover, all the while having a large ammo capacity." - icon = 'icons/obj/guns/xrifle.dmi' + name = "\improper XR-1 X-Ray laser rifle" + desc = "A NanoTrasen designed high-power laser rifle capable of expelling concentrated X-Ray blasts." + desc_extended = "The XR-1 is a laser firearm developed and produced by NanoTrasen. A recent innovation, used for specialist operations, it is presently being produced and sold in limited capacity over the galaxy. Designed for precision strikes, releasing concentrated xray blasts that are capable of hitting targets behind cover, all the while having a large ammo capacity." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/xrifle.dmi' icon_state = "xrifle" item_state = "xrifle" fire_sound = 'sound/weapons/laser3.ogg' @@ -134,44 +198,6 @@ turret_sprite_set = "xray" turret_is_lethal = TRUE -/obj/item/gun/energy/rifle/pulse - name = "pulse rifle" - desc = "A weapon that uses advanced pulse-based beam generation technology to emit powerful laser blasts. Because of its complexity and cost, it is rarely seen in use except by specialists." - icon = 'icons/obj/guns/pulse.dmi' - icon_state = "pulse" - item_state = "pulse" - fire_sound = 'sound/weapons/laser1.ogg' - projectile_type = /obj/projectile/beam - sel_mode = 2 - origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_MAGNET = 4) - secondary_projectile_type = /obj/projectile/beam/pulse - secondary_fire_sound = 'sound/weapons/pulse.ogg' - can_switch_modes = FALSE - turret_sprite_set = "pulse" - turret_is_lethal = TRUE - - modifystate = null - - firemodes = list( - list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg'), - list(mode_name="DESTROY", projectile_type=/obj/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg') - ) - -/obj/item/gun/energy/rifle/pulse/destroyer - name = "pulse destroyer" - desc = "A heavy-duty, pulse-based energy weapon. Because of its complexity and cost, it is rarely seen in use except by specialists." - fire_sound = 'sound/weapons/pulse.ogg' - projectile_type = /obj/projectile/beam/pulse - burst_delay = 5 - burst = 3 - max_shots = 30 - secondary_projectile_type = null - secondary_fire_sound = null - -/obj/item/gun/energy/rifle/pulse/destroyer/toggle_firing_mode(mob/living/user) - to_chat(user, SPAN_WARNING("[src.name] has three settings, and they are all DESTROY.")) - /obj/item/gun/energy/rifle/laser/tachyon name = "tachyon rifle" desc = "A Vaurcan rifle that fires a beam of concentrated faster than light particles, capable of passing through most forms of matter." @@ -200,9 +226,9 @@ to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) /obj/item/gun/energy/rifle/ionrifle - name = "ion rifle" - desc = "The NT Mk70 EW Halicon is a man portable anti-armor weapon designed to disable mechanical threats, produced by NanoTrasen." - icon = 'icons/obj/guns/ionrifle.dmi' + name = "\improper Mk70 EW ion rifle" + desc = "The Mk70 EW \"Halicon\" is a man portable anti-armor weapon designed to disable mechanical threats, produced by NanoTrasen." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/ionrifle.dmi' icon_state = "ionrifle" item_state = "ionrifle" has_item_ratio = FALSE @@ -242,10 +268,10 @@ projectile_type = /obj/projectile/beam/midlaser/skrell/heavy /obj/item/gun/energy/rifle/hegemony - name = "hegemony energy rifle" + name = "\improper Zkrehk-Guild heavy beamgun" desc = "An upgraded variant of the standard laser rifle. It does not have a stun setting." desc_extended = "The Zkrehk-Guild Heavy Beamgun, an energy-based rifle designed and manufactured on Moghes. A special crystal used in its design allows it to penetrate armor with pinpoint accuracy." - icon = 'icons/obj/guns/hegemony_rifle.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/hegemony_rifle.dmi' icon_state = "hegemonyrifle" item_state = "hegemonyrifle" has_item_ratio = FALSE diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 4f138cf1756..08281747573 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -92,7 +92,7 @@ /obj/item/gun/energy/mindflayer name = "mind flayer" desc = "A custom-built weapon of some kind." - icon = 'icons/obj/guns/xray.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/xray.dmi' icon_state = "xray" item_state = "xray" has_item_ratio = FALSE @@ -101,25 +101,10 @@ can_turret = TRUE turret_sprite_set = "xray" -/obj/item/gun/energy/toxgun - name = "phoron pistol" - desc = "A specialized firearm designed to fire lethal bolts of phoron." - icon = 'icons/obj/guns/toxgun.dmi' - icon_state = "toxgun" - item_state = "toxgun" - has_item_ratio = FALSE - fire_sound = 'sound/effects/stealthoff.ogg' - w_class = WEIGHT_CLASS_NORMAL - origin_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4) - projectile_type = /obj/projectile/energy/phoron - can_turret = TRUE - turret_is_lethal = FALSE - turret_sprite_set = "net" - /obj/item/gun/energy/mousegun - name = "pest gun" + name = "\improper Arodentia Pesti-Shock gun" desc = "The NT \"Arodentia\" Pesti-Shock is a highly sophisticated and probably safe beamgun designed for rapid pest-control." - icon = 'icons/obj/guns/pestishock.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/pestishock.dmi' icon_state = "pestishock" item_state = "pestishock" has_item_ratio = FALSE @@ -153,9 +138,9 @@ return TRUE /obj/item/gun/energy/mousegun/xenofauna - name = "xenofauna gun" + name = "\improper Xenovermino Zap-Blast xenofauna gun" desc = "The NT \"Xenovermino\" Zap-Blast is a highly sophisticated and probably safe beamgun designed to deal with hostile xenofauna." - icon = 'icons/obj/guns/xenogun.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/xenogun.dmi' icon_state = "xenogun" item_state = "xenogun" projectile_type = /obj/projectile/beam/mousegun/xenofauna @@ -193,32 +178,13 @@ desc = "Vaurcae weapons tend to be specialized and highly lethal. This one doesn't do much" var/is_charging = 0 //special var for sanity checks in the three guns that currently use charging as a special_check -/obj/item/gun/energy/vaurca/bfg - name = "BFG 9000" - desc = "'Bio-Force Gun'. Yeah, right." - icon = 'icons/obj/guns/bfg.dmi' - icon_state = "bfg" - item_state = "bfg" - has_item_ratio = FALSE - charge_meter = 0 - w_class = WEIGHT_CLASS_BULKY - fire_sound = 'sound/magic/LightningShock.ogg' - force = 33 - projectile_type = /obj/projectile/energy/bfg - slot_flags = SLOT_BACK - max_shots = 3 - sel_mode = 1 - fire_delay = 10 - accuracy = 20 - muzzle_flash = 10 - #define GATLINGLASER_DISPERSION_CONCENTRATED list(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) #define GATLINGLASER_DISPERSION_SPRAY list(0, 5, 5, 10, 10, 15, 15, 20, 20, 25, 25, 25, 30, 30, 35, 40) /obj/item/gun/energy/vaurca/gatlinglaser name = "gatling laser" desc = "A highly sophisticated rapid fire laser weapon." - icon = 'icons/obj/guns/gatling.dmi' + icon = 'icons/obj/guns/faction/vaurca_hives/gatling_laser.dmi' icon_state = "gatling" item_state = "gatling" has_item_ratio = FALSE @@ -274,7 +240,7 @@ name = "\improper thermic blaster" desc = "An opulent Vaurceisan pistol, handcrafted for each wielder by the Court of Queen's master weaponsmiths. For those Ta and few notable Warriors who wield it, the Thermic Blaster is as much a badge of office as it is a fiercely deadly weapon." desc_extended = "The Thermic Blaster is a weapon with a history dating back as far as the Vaurcesian Court of Queens, for since its founding, it has forged one of these blasters for every newborn Ta, bestowed as a coming-of-age gift. With every major advancement in technology, the Court's weaponsmiths have gathered together to upgrade the existing batch, resulting in many Thermic Blasters being millennia old, and many Ta add personal flourishes. This iteration of the firearm was developed after the Zo'rane arrival in the Spur and distributed as a celebration for the refounding of the Court of Queens. The Court may occasionally bestow this exceptionally expensive Blaster on an accomplished Warrior, but very few ever leave Vaurca hands and those that do are fiercely prized." - icon = 'icons/obj/guns/blaster.dmi' + icon = 'icons/obj/guns/faction/vaurca_hives/thermic_blaster.dmi' icon_state = "blaster" item_state = "blaster" has_item_ratio = FALSE @@ -298,8 +264,8 @@ /obj/item/gun/energy/vaurca/typec name = "thermal lance" desc = "A powerful piece of Zo'rane energy artillery, converted to be portable...if you weigh a metric tonne, that is." - icon = 'icons/obj/guns/megaglaive.dmi' - sprite_sheets = list(BODYTYPE_VAURCA_BREEDER = 'icons/obj/guns/megaglaive.dmi') + icon = 'icons/obj/guns/faction/vaurca_hives/megaglaive.dmi' + sprite_sheets = list(BODYTYPE_VAURCA_BREEDER = 'icons/obj/guns/faction/vaurca_hives/megaglaive.dmi') icon_state = "megaglaive0" item_state = "megaglaive" origin_tech = list(TECH_COMBAT = 6, TECH_PHORON = 8) @@ -464,9 +430,9 @@ can_turret = FALSE /obj/item/gun/energy/tesla - name = "tesla gun" + name = "\improper Elektrotek Model anti-personnel rifle" desc = "A gun that shoots a projectile that bounces from living thing to living thing. Keep your distance from whatever you are shooting at." - icon = 'icons/obj/guns/tesla.dmi' + icon = 'icons/obj/guns/faction/pra/elektrotek.dmi' icon_state = "tesla" item_state = "tesla" has_item_ratio = FALSE @@ -511,7 +477,7 @@ /obj/item/laserpack name = "galatean bioelectrical reactor backpack" desc = "An ominously-thrumming backpack-mounted machine, powering an O61 Infantry Laser Rifle." - icon = 'icons/obj/guns/galatea_laser.dmi' + icon = 'icons/obj/guns/faction/galatean_technocracy/galatea_laser.dmi' icon_state = "laserpack_holstered" item_state = "laserpack_holstered" contained_sprite = 1 @@ -614,12 +580,12 @@ return ..() /obj/item/gun/energy/galatea - name = "galatean laser rifle" + name = "\improper O61-B laser rifle" desc = "The Galatean O61-B, an export model of their advanced Mark 61 Infantry Rifle." desc_extended = "Galatean soldiers are heavily bioaugmented, combining soldier and weapon into a cohesive unit. The Mark 61 Infantry Rifle is one such example, drawing on the bioelectricity of the human body \ through an implant with which to power the gun. Unaugmented users complained of headaches, lethargy, and impossible dreams; The O61B has integrated the bioaugments into the firing mechanism, preventing 'baselines' \ from even using it. Luckily, this is an export version, the O61-B, which allows foreign users a taste of advanced Technocracy weaponry for the low price of a single bioaugment." - icon = 'icons/obj/guns/galatea_laser.dmi' + icon = 'icons/obj/guns/faction/galatean_technocracy/galatea_laser.dmi' icon_state = "galatealaser" item_state = "galatealaser" slot_flags = 0 diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 719bb290630..65a261a19e5 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -1,7 +1,7 @@ /obj/item/gun/energy/taser - name = "taser gun" - desc = "The NT Mk30 NL is a small, low capacity gun used for non-lethal takedowns." - icon = 'icons/obj/guns/taser.dmi' + name = "\improper Mk30 NL stun pistol" + desc = "The Mk30 NL is a small, low capacity pistol produced by NanoTrasen used for non-lethal takedowns." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/stunpistol.dmi' icon_state = "taser" item_state = "taser" fire_sound = 'sound/weapons/Taser.ogg' @@ -13,16 +13,16 @@ turret_is_lethal = FALSE /obj/item/gun/energy/taser/mounted - name = "mounted taser gun" + name = "mounted stun gun" self_recharge = TRUE use_external_power = TRUE can_turret = FALSE /obj/item/gun/energy/stunrevolver - name = "stun revolver" + name = "\improper ST-30 stun revolver" desc = "A NanoTrasen designed high-tech revolver that fires rechargeable stun bolts." desc_extended = "The ST-30 is a highly advanced sidearm produced by NanoTrasen. It is designed for self-defense in a less-than-lethal manner. While the weapon design itself is not groundbreaking, it fires high velocity energy bolts with rechargeable cartridges, possessing unusual high stopping power." - icon = 'icons/obj/guns/stunrevolver.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/stunrevolver.dmi' icon_state = "stunrevolver" item_state = "stunrevolver" has_item_ratio = FALSE diff --git a/code/modules/projectiles/guns/launcher.dm b/code/modules/projectiles/guns/launcher.dm index 65a875fedcc..a9a817f2c54 100644 --- a/code/modules/projectiles/guns/launcher.dm +++ b/code/modules/projectiles/guns/launcher.dm @@ -1,4 +1,4 @@ -/obj/item/gun/launcher +ABSTRACT_TYPE(/obj/item/gun/launcher) name = "launcher" desc = "A device that launches things." w_class = WEIGHT_CLASS_HUGE diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm index 528930a4604..cbc6deb9fbf 100644 --- a/code/modules/projectiles/guns/launcher/crossbow.dm +++ b/code/modules/projectiles/guns/launcher/crossbow.dm @@ -16,19 +16,6 @@ /obj/item/arrow/proc/removed() //Helper for metal rods falling apart. return -/obj/item/spike - name = "alloy spike" - desc = "It's about a foot of weird silver metal with a wicked point." - sharp = TRUE - edge = FALSE - throwforce = 5 - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/weapons.dmi' - icon_state = "metal-rod" - item_state = "bolt" - drop_sound = 'sound/items/drop/sword.ogg' - pickup_sound = SFX_PICKUP_SWORD - /obj/item/arrow/quill name = "alien quill" desc = "A wickedly barbed quill from some bizarre animal." diff --git a/code/modules/projectiles/guns/launcher/rocket.dm b/code/modules/projectiles/guns/launcher/rocket.dm index fd2a31ced2a..1deb4304e6e 100644 --- a/code/modules/projectiles/guns/launcher/rocket.dm +++ b/code/modules/projectiles/guns/launcher/rocket.dm @@ -53,9 +53,9 @@ ..() /obj/item/gun/launcher/rocket/konyang - name = "konyang rocket launcher" + name = "\improper KGM-701D rocket launcher" desc = "An unguided rocket launcher often used by the armed forces of Konyang." desc_extended = "The KGM-701 is a heavy anti-tank guided missile in use by the Konyang Army, another carryover from their old Solarian stockpiles. Capable of handling any tank that wouldn't get bogged down on Konyang's soft terrain, the KGM-701 is expected to soldier on for many years to come. This however, is not a KGM-701, but the KGM-701D, the unguided discount variation of the old Solarian ATGM, typically issued to colonial garrisons and not rated against any modern vehicles." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "kgm" item_state = "kgm" diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 65a748abc67..e03cbfbf61c 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -1,4 +1,4 @@ -/obj/item/gun/projectile +ABSTRACT_TYPE(/obj/item/gun/projectile) name = "gun" desc = "A gun that fires bullets." origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) @@ -71,7 +71,7 @@ /obj/item/gun/projectile/update_icon() ..() if(suppressed) - var/mutable_appearance/MA = mutable_appearance('icons/obj/guns/suppressor.dmi', "suppressor") + var/mutable_appearance/MA = mutable_appearance('icons/obj/guns/attachments/suppressor.dmi', "suppressor") if(suppressor_x_offset) MA.pixel_x = suppressor_x_offset if(suppressor_y_offset) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index c6bc54f437a..b614d1dbdc0 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -51,12 +51,12 @@ icon_state = (ammo_magazine)? "mini-uzi" : "mini-uzi-e" /obj/item/gun/projectile/automatic/c20r - name = "submachine gun" + name = "\improper CA-25E submachine gun" desc = "A conventional bullpup submachine gun with an extendable stock." desc_extended = "The Colettish Armaments Model 25 SMG is a typical product of the San Colette Interstellar Armaments Company (CAISC). Rejected by the Solarian military due to competition with the Zavodskoi M470-L, the CA-M25 was repurposed \ into the Colettish Armaments Model 25 Export (CA-25E) and has found reasonable success in mercenary groups across the Orion Spur. Recently many have found their ways into the hands of violent non-state actors in the Corporate Reconstruction Zone, where \ they contribute to the further destabilization of the region. Curiously, these models typically have a filed-off serial number or no serial number at all." - icon = 'icons/obj/guns/c20r.dmi' + icon = 'icons/obj/guns/faction/caisc/ca-25e.dmi' icon_state = "c20r" item_state = "c20r" w_class = WEIGHT_CLASS_NORMAL @@ -83,10 +83,10 @@ return /obj/item/gun/projectile/automatic/c20r/sol - name = "solarian submachine gun" + name = "\improper M470-L submachine gun" desc = "Designed by Zavodskoi as a scaled-down version of their M469, the M470-L is a personal defense weapon intended for use by second-line personnel from all branches of the Solarian military, such as support troops and Navy crewmen." desc_extended = null - icon = 'icons/obj/guns/sol_smg.dmi' + icon = 'icons/obj/guns/faction/sol_alliance/sol_smg.dmi' icon_state = "vityaz" item_state = "vityaz" suppressor_x_offset = 10 @@ -96,9 +96,9 @@ icon_state = (ammo_magazine)? "vityaz" : "vityaz-empty" /obj/item/gun/projectile/automatic/c20r/sol/siib - name = "solarian SIIB submachine gun" + name = "\improper M470-SIIB submachine gun" desc = "Based off the standard solarian M470-L, this SMG is used by SIIB Operatives during raids and specialist operations. Officially, this variant of the SMG does not exist." - icon = 'icons/obj/guns/sol_smg.dmi' + icon = 'icons/obj/guns/faction/sol_alliance/sol_smg.dmi' icon_state = "vityaz-siib" item_state = "vityaz-siib" @@ -107,12 +107,12 @@ icon_state = (ammo_magazine)? "vityaz-siib" : "vityaz-siib-empty" /obj/item/gun/projectile/automatic/xanusmg - name = "\improper Xanan submachine gun" + name = "dNAC-4.6 II submachine gun" desc = "A sleek metal-framed submachine gun, produced by d.N.A Defense for the All-Xanu Armed Forces." desc_extended = "The dNAC-4.6 II submachine gun is a custom-made submachine gun for the All-Xanu Armed Forces, designed to use the same 4.6mm rounds as the dNAC-4.6 pistol. It mainly sees use as a personal defensive weapon for pilots and drivers, but has also been used aboard the spacefleet's vessels for close quarters combat." magazine_type = /obj/item/ammo_magazine/c46m/extended allowed_magazines = list(/obj/item/ammo_magazine/c46m/extended) - icon = 'icons/obj/guns/xanu_smg.dmi' + icon = 'icons/obj/guns/faction/dna_defense/xanu_smg.dmi' icon_state = "xanu_smg" item_state = "xanu_smg" caliber = "4.6mm" @@ -130,9 +130,9 @@ /obj/item/gun/projectile/automatic/wt550 - name = "machine pistol" - desc = "The ZI 550 Saber is a cheap self-defense weapon, mass-produced by Zavodskoi Interstellar for paramilitary and private use." - icon = 'icons/obj/guns/wt550.dmi' + name = "\improper 550 Saber machine pistol" + desc = "The 550 Saber is a cheap self-defense weapon, mass-produced by Zavodskoi Interstellar for paramilitary and private use." + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/wt550.dmi' icon_state = "wt550" item_state = "wt550" w_class = WEIGHT_CLASS_NORMAL @@ -189,10 +189,10 @@ //Ballistic rifles, go. -/obj/item/gun/projectile/automatic/rifle +ABSTRACT_TYPE(/obj/item/gun/projectile/automatic/rifle) name = "automatic rifle" desc = "A weapon firing an intermediate caliber round, or larger." - icon = 'icons/obj/guns/arifle.dmi' + icon = 'icons/obj/guns/faction/frontier/arifle.dmi' icon_state = "arifle" item_state = "arifle" w_class = WEIGHT_CLASS_BULKY @@ -226,7 +226,7 @@ accuracy_wielded = 2 /obj/item/gun/projectile/automatic/rifle/sts35 - name = "assault rifle" + name = "\improper STS35 assault rifle" desc = "A durable, rugged-looking automatic weapon of a make popular on the frontier worlds. It is unmarked." desc_extended = "The STS35 is a durable, reliable and cheap to buy fully automatic assault rifle with many licensed manufacturers across \ the galaxy. It comes in different versions and calibres, this one uses 7.62 rounds. The manufacturer markings have been filed off." @@ -239,7 +239,7 @@ icon_state = (ammo_magazine)? "arifle" : "arifle-empty" /obj/item/gun/projectile/automatic/rifle/shorty - name = "short-barreled assault rifle" + name = "\improper STS35 short-barreled assault rifle" desc = "A durable, rugged-looking automatic weapon that has been heavily modified. \ Key changes include significant shortening of the barrel and the addition of an improvised vertical foregrip, \ condensing heavy firepower into a relatively small and maneuverable package intended for close-in \ @@ -251,7 +251,7 @@ extensive experience fighting in claustrophobic environments aboard ships and stations, weapons like these are common among Coalition Rangers conducting high-risk boarding operations \ along the Frontier, who rely on its ability to rapidly gain fire superiority in the event of an ambush. While no formal name exists for it, \ and no two examples are quite alike, weapons of this type are commonly just referred to as the \"Shorty\"." - icon = 'icons/obj/guns/shorty.dmi' + icon = 'icons/obj/guns/faction/frontier/shorty.dmi' icon_state = "shorty" item_state = "shorty" can_bayonet = TRUE @@ -269,12 +269,12 @@ icon_state = (ammo_magazine)? "shorty" : "shorty-empty" /obj/item/gun/projectile/automatic/rifle/carbine - name = "ballistic carbine" + name = "\improper ST24 carbine" desc = "A durable, rugged-looking semi-automatic weapon of a make popular on the frontier worlds. Doesn't accept large-capacity magazines. It is unmarked." desc_extended = "The ST24 is often considered the little brother of its larger and fully automatic counterpart, the STS35. It is a \ reliable and cheap to buy carbine with many licensed manufacturers across the galaxy. It comes in different versions and calibres, \ some even boasting select fire functionality. This one uses 5.56 rounds and is semi-automatic. The manufacturer markings have been filed off." - icon = 'icons/obj/guns/bcarbine.dmi' + icon = 'icons/obj/guns/faction/frontier/bcarbine.dmi' icon_state = "bcarbine" item_state = "bcarbine" caliber = "a556" @@ -292,11 +292,11 @@ icon_state = (ammo_magazine)? "bcarbine" : "bcarbine-empty" /obj/item/gun/projectile/automatic/rifle/carbine/civcarbine - name = "bullpup carbine" - desc = "A variant of the ZI Bulldog assault carbine, the ZI Terrier is a slimmer and lighter version, only capable of accepting smaller magazines. \ + name = "\improper Terrier bullpup carbine" + desc = "A variant of the Bulldog assault carbine, the ZI Terrier is a slimmer and lighter version, only capable of accepting smaller magazines. \ It also lacks the integrated grenade launcher and burst fire of the Bulldog." desc_extended = "It makes you feel like a corporate goon when you hold it." - icon = 'icons/obj/guns/crew_rifle.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/crew_rifle.dmi' magazine_type = /obj/item/ammo_magazine/a556/carbine/polymer allowed_magazines = list(/obj/item/ammo_magazine/a556/carbine, /obj/item/ammo_magazine/a556/carbine/polymer) icon_state = "civcarbine" @@ -308,10 +308,10 @@ icon_state = (ammo_magazine)? "civcarbine" : "civcarbine-empty" /obj/item/gun/projectile/automatic/rifle/sol - name = "solarian assault rifle" + name = "\improper M469 assault rifle" desc = "A reliable assault rifle manufactured by Zavodskoi Interstellar, the M469 is the standard service rifle of the Solarian Armed Forces, most commonly associated with its ground forces. \ Though the design is old, it continues to see widespread use in the Alliance and its breakaway states and likely will for years to come." - icon = 'icons/obj/guns/sol_rifle.dmi' + icon = 'icons/obj/guns/faction/sol_alliance/sol_rifle.dmi' icon_state = "battlerifle" item_state = "battlerifle" origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 3, TECH_ILLEGAL = 2) @@ -331,12 +331,12 @@ var/use_launcher = 0 /obj/item/gun/projectile/automatic/rifle/dominia - name = "dominian rifle" + name = "\improper MPR-24/5 rifle" desc = "The standard-issue rifle of the Empire of Dominia's Imperial Army. Loads from 30 round 5.56 magazines." desc_extended = "The Moroz Pattern Rifle, Year of 2424 has been the standard-issue rifle of the Imperial Army for decades thanks to its durable construction and ease \ of use. The Imperial Army has repeatedly modernized and updated the MPR-24 over the past 40 years, and the rifle is now in its fifth modernization: \ one that they hope will keep it competitive well into the 2470s." - icon = 'icons/obj/guns/dominia_rifle.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_rifle.dmi' icon_state = "acr" item_state = "acr" caliber = "a556" @@ -349,10 +349,10 @@ icon_state = (ammo_magazine)? "acr" : "acr-empty" /obj/item/gun/projectile/automatic/rifle/z8 - name = "bullpup assault carbine" - desc = "The ZI Bulldog bullpup assault carbine, Zavodskoi Industries' answer to any problem that can be solved by an assault rifle." + name = "\improper Bulldog bullpup assault carbine" + desc = "The Bulldog bullpup assault carbine, Zavodskoi Industries' answer to any problem that can be solved by an assault rifle." desc_extended = "It makes you feel like a corporate commando when you hold it." - icon = 'icons/obj/guns/carbine.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/carbine.dmi' icon_state = "carbine" item_state = "carbine" w_class = WEIGHT_CLASS_BULKY @@ -426,10 +426,10 @@ icon_state = "carbine-empty" /obj/item/gun/projectile/automatic/rifle/jingya - name = "burst rifle" + name = "\improper Jingya A-1 burst rifle" desc = "The Jingya A-1 is the first of a new line of NanoTrasen rifles, developed in cooperation with Zavodskoi Interstellar's Kumar Arms subsidiary. Primarily made of high strength polymers, the rifle is designed to be cheap to mass produce while remaining reliable." desc_extended = "The Jingya A-1 won a hard-fought victory in the ballistic side of the SCC Future Firearms contest hosted in 2463, which was also its first unveiling: this rifle is made to function where laser weaponry may be either too risky or not functional for the engagement at hand. It is slated to be deployed for trial usage by a select few special TCFL regiments in Mictlan." - icon = 'icons/obj/guns/burst_rifle.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/burst_rifle.dmi' icon_state = "arx" item_state = "arx" w_class = WEIGHT_CLASS_BULKY @@ -460,11 +460,11 @@ icon_state = "arx-empty" /obj/item/gun/projectile/automatic/rifle/l6_saw - name = "light machine gun" + name = "\improper CA-75E LMG" desc = "A squad machine gun with a clunky, outdated loading mechanism. Loads from 7.62mm ammunition boxes. Gentlemen, lock and load." desc_extended = "Created by the San Colette Interstellar Armaments Company (CAISC) explicitly for export, the Colettish Armaments Model 75 Export machine gun is a cheap yet outdated method of providing large amounts of firepower to a squad. \ The CA-75E is not used by San Colette’s Civil Guard and is typically sold to mercenary groups or other Solarian systems. Since the Solarian Collapse more and more CA-75Es have found themselves in the hands of pirates and rebels in the Corporate Reconstruction Zone, and captured models curiously often have no serial number." - icon = 'icons/obj/guns/l6.dmi' + icon = 'icons/obj/guns/faction/caisc/ca-75e.dmi' icon_state = "l6closed100" item_state = "l6closedmag" w_class = WEIGHT_CLASS_BULKY @@ -534,7 +534,7 @@ ..() /obj/item/gun/projectile/automatic/rifle/adhomian - name = "adhomian automatic rifle" + name = "\improper Tsarrayut'yan assault rifle" desc = "The Tsarrayut'yan rifle is a select-fire automatic rifle producted by the People's Republic of Adhomai." icon = 'icons/obj/guns/tsarrayut.dmi' icon_state = "tsarrayut" @@ -575,10 +575,10 @@ ..() /obj/item/gun/projectile/automatic/rifle/dpra - name = "adhomian assault rifle" + name = "\improper Mrrazhak Model-1 assault rifle" desc = "The Mrrazhak Model-1 is the newest Al'mariist automatic rifle. The Mrrazhak is notorious for its simple and reliable design; it can be fabricated and assembled without the \ need of a specialized industry or a highly trained workforce." - icon = 'icons/obj/guns/mrrazhak.dmi' + icon = 'icons/obj/guns/faction/dpra/mrrazhak.dmi' icon_state = "mrrazhak" item_state = "mrrazhak" contained_sprite = TRUE @@ -609,9 +609,9 @@ icon_state = (ammo_magazine)? "mrrazhak" : "mrrazhak_nomag" /obj/item/gun/projectile/automatic/tommygun - name = "submachine gun" - desc = "An Adhomian-made submachine gun." - icon = 'icons/obj/guns/tommygun.dmi' + name = "\improper Thompson submachine gun" + desc = "An antique submachine gun. Still working, if a bit rough around the edges." + icon = 'icons/obj/guns/faction/antique/tommygun.dmi' icon_state = "tommygun" item_state = "tommygun" w_class = WEIGHT_CLASS_NORMAL @@ -634,11 +634,11 @@ icon_state = (ammo_magazine)? "tommygun" : "tommygun-empty" /obj/item/gun/projectile/automatic/tommygun/dom - name = "dominian submachine gun" + name = "\improper MPMC-30 submachine gun" desc = "A submachine gun featuring a novel top loading configuration, used by the Empire of Dominia's armed forces." desc_extended = "The Moroz Pattern Machine Carbine, Model of 2430 is a lightweight, handy weapon intended for use by vehicle crews, airborne troops, and other units that do not require a full-length rifle. \ Simplistic in design and function, the MPMC-30 is highly reliable in nearly all environments, lending itself well to use by colonial forces. In particular, the Imperial Fisanduhian Gendarmerie are known to make heavy use of the weapon." - icon = 'icons/obj/guns/dominia_smg.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_smg.dmi' icon_state = "owen" item_state = "owen" max_shells = 20 @@ -649,10 +649,10 @@ icon_state = (ammo_magazine)? "owen" : "owen-empty" /obj/item/gun/projectile/automatic/tommygun/assassin - name = "integrally suppressed machine pistol" + name = "\improper APCC RatAway machine pistol" desc = "An Eridanian ā€œrat huntingā€ gun manufactured by the Amon Pest Control Company. Commonly used by corporate assassins, uncommonly used by pest control workers. Chambered in 6mm." - desc_extended = "The APCC RatAway SMG is manufactured by a shell company of Ringspire for use in corporate assassination duties. Extremely quiet and firing caseless ammunition, it is an ideal weapon for putting down those who dare to threaten megacorporate interests." - icon = 'icons/obj/guns/assassin_smg.dmi' + desc_extended = "The APCC RatAway machine pistol is manufactured by a shell company of Ringspire for use in corporate assassination duties. Extremely quiet and firing caseless ammunition, it is an ideal weapon for putting down those who dare to threaten megacorporate interests." + icon = 'icons/obj/guns/faction/eridani_federation/assassin_smg.dmi' icon_state = "assassin_smg" item_state = "assassin_smg" magazine_type = /obj/item/ammo_magazine/submachinemag/assassin @@ -670,13 +670,13 @@ icon_state = (ammo_magazine) ? "assassin_smg" : "assassin_smg-empty" /obj/item/gun/projectile/automatic/tommygun/konyang - name = "konyang police submachine gun" + name = "\improper K45 police submachine gun" desc = "A compact submachine gun made specifically for the Konyang National Police. Takes .45 ammo." desc_extended = "Produced by one of Einstein Engines' local subsidiaries on Konyang, the K45 \"Pogpung\" submachine gun is Taepung Arms' entry into the submachine gun market. \ The National Police purchased a large number of K45s for their patrol units due to reports that service revolvers were inadequate at stopping rampant IPCs. The K45-P variant \ specially designed for the police forces is chambered in the organization's preferred .45 caliber and is limited to 3-round bursts due to the relatively limited firearms training of \ National Police officers." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "k45carbine" item_state = "k45carbine" w_class = WEIGHT_CLASS_NORMAL @@ -697,7 +697,7 @@ /obj/item/gun/projectile/automatic/rifle/dnac name = "dNAC-6.5 assault rifle" desc = "A durable, sleek-looking bullpup rifle manufactured by d.N.A Defense & Aerospace for the All-Xanu Armed Forces. This model has been adopted by a majority of the Coalition's military forces as well due to its simplicity and reliability." - icon = 'icons/obj/guns/xanu_rifle.dmi' + icon = 'icons/obj/guns/faction/dna_defense/xanu_rifle.dmi' icon_state = "xanu_rifle" item_state = "xanu_rifle" magazine_type = /obj/item/ammo_magazine/a65 @@ -787,10 +787,10 @@ to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) /obj/item/gun/projectile/automatic/rifle/konyang/k556 - name = "konyang assault rifle" + name = "\improper K556 assault rifle" desc = "The K556 is the standard assault rifle of the Konyang Armed Forces. Sturdy and reliable." - desc_extended = "The K556 assault rifle is a new design in use by elements of the Konyang Armed Forces, designed in-house by the military in partnership with Einstein Engines'local subsidiaries. It has yet to see widespread service as the government is reluctant to spend money on new small arms when they already possess large stockpiles from the colonial period. This has not stopped the Aerospace Forces from making the transition to the new weapon however, as its compact design, light weight, and accuracy make it ideal for use aboard a spacecraft." - icon = 'icons/obj/guns/konyang_weapons.dmi' + desc_extended = "The K556 assault rifle is a new design in use by elements of the Konyang Armed Forces, designed in-house by the military in partnership with Einstein Engines' local subsidiaries. It has yet to see widespread service as the government is reluctant to spend money on new small arms when they already possess large stockpiles from the colonial period. This has not stopped the Aerospace Forces from making the transition to the new weapon however, as its compact design, light weight, and accuracy make it ideal for use aboard a spacecraft." + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "k556rifle" item_state = "k556rifle" slot_flags = SLOT_BACK|SLOT_OCLOTHING @@ -807,10 +807,10 @@ icon_state = (ammo_magazine)? "k556rifle" : "k556rifle-e" /obj/item/gun/projectile/automatic/rifle/konyang/konyang47 - name = "konyang assault carbine" + name = "\improper Dering-K1 assault carbine" desc = "The Dering-K1 is the carbine version of the K556. Intended to be used by vehicle crews, second line infantry, support crew and staff or when you have limited space to work with." desc_extended = "The Dering K1 battle rifle is a standard Solarian M469 given a service extension package by Zavodskoi Interstellar. Many of the rifles bear Konyanger proof marks right next to old Solarian ones, indicating their heritage. Its more robust design is tailored for naval and swamp warfare, while still maintaining the firepower needed for frontline combat operations." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "k47" item_state = "k47" slot_flags = SLOT_BACK|SLOT_OCLOTHING @@ -829,7 +829,7 @@ /obj/item/gun/projectile/automatic/rifle/konyang/pirate_rifle name = "re-bored rifle" desc = "A wooden rifle, repaired and re-bored to actually work again. Fires eight rounds of .308 in semi-auto." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "poacher" item_state = "poacher" slot_flags = SLOT_BACK|SLOT_OCLOTHING @@ -842,11 +842,11 @@ max_shells = 8 /obj/item/gun/projectile/automatic/rifle/dominia_carbine - name = "dominian carbine" + name = "\improper MPC-24/5 carbine" desc = "A carbine variant of the MPR-24/5 with a shorter barrel and folding stock. Loads from 20 round 7.62 magazines." desc_extended = "The carbine variant of the MPR-24/5 is commonly seen in the hands of vehicle crews, airborne troops, and other units that do not require a \ full-length rifle. Paramilitary units, such as the Imperial Fisanduhian Gendarmerie, are armed with these rather than full-length rifles." - icon = 'icons/obj/guns/dominia_carbine.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_carbine.dmi' icon_state = "dom_carbine" item_state = "dom_carbine" slot_flags = SLOT_BACK|SLOT_OCLOTHING @@ -863,12 +863,12 @@ icon_state = (ammo_magazine)? "dom_carbine" : "dom_carbine-empty" /obj/item/gun/projectile/automatic/rifle/dominia_lmg - name = "dominian light machine gun" + name = "\improper MPMG-24/5 platoon machine gun" desc = "A machine gun based on the MPR-24/5 platform." desc_extended = "Originally developed as a platoon-level weapon but later converted to squad-level use, the MPR-24/5 PMG (Platoon Machine Gun) is \ the most commonly-issued machine gun in the Imperial Army. The PMG is reliable and capable yet fairly heavy, and most non-geneboosted soldiers \ issued it receive a special load-bearing harness to make using it easier." - icon = 'icons/obj/guns/dominia_lmg.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_lmg.dmi' icon_state = "dom_lmg" item_state = "dom_lmg" caliber = "a556" @@ -885,9 +885,9 @@ icon_state = (ammo_magazine)? "dom_lmg" : "dom_lmg-empty" /obj/item/gun/projectile/automatic/rifle/shotgun - name = "assault shotgun" - desc = "A experimental, semi-automatic combat shotgun, designed for boarding operations and law enforcement agencies." - icon = 'icons/obj/guns/assaultshotgun.dmi' + name = "Mastiff assault shotgun" + desc = "Designed by Zavodskoi Interstellar to be the end-all-be-all for boarding attempts, the Mastiff wasn't as successful as outlooks claimed." + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/assaultshotgun.dmi' icon_state = "assaultshotgun" item_state = "assaultshotgun" w_class = WEIGHT_CLASS_BULKY @@ -921,7 +921,7 @@ name = "dNAC-12 combat shotgun" desc = "A magazine-fed semi-automatic combat shotgun, designed by d.N.A Defense on Xanu Prime." desc_extended = "The dNAC-12 combat shotgun was designed for the All-Xanu Grand Army and the All-Xanu National Militia for its law enforcement duties and military police. Due to its reliability, ease of use, and flexibility however, it has been adopted by the Air Corps and Spacefleet as well for defensive purposes." - icon = 'icons/obj/guns/xanu_shotgun.dmi' + icon = 'icons/obj/guns/faction/dna_defense/xanu_shotgun.dmi' icon_state = "xanu_shotgun" item_state = "xanu_shotgun" magazine_type = /obj/item/ammo_magazine/xanan_shotgun/shells @@ -937,7 +937,7 @@ ) /obj/item/gun/projectile/automatic/rifle/shotgun/konyang - name = "magazine-fed shotgun" + name = "\improper RCG-1 shotgun" desc = "A compact semi-automatic shotgun, fed by a magazine. Unsuspectic, but powerful and not to be underestimated. Takes standard 12g shotgun ammo." desc_extended = "The RCG-1, locally produced on Konyang, also nicknamed \"The Showstopper\" for its wide variety of applications. It uses a compact design with a newly developed type of double spring mechanism in the magazine \ to eradicate all kinds of feeding malfunctions, as well as groundbreaking caseless shotgun ammunition. Favoured by the Commandos of Konyang's Special Forces." @@ -964,11 +964,11 @@ icon_state = (ammo_magazine)? "mshotgun" : "mshotgun-empty" /obj/item/gun/projectile/automatic/rifle/hook_mg - name = "unathi hook machine gun" + name = "\improper Hook machine gun" desc = "A ballistic machine gun of Unathi manufacture, often used by the forces of the Traditionalist Coalition during the Contact War." desc_extended = "The Hook Machinegun is a heavy automatic machinegun of Moghesian manufacture. Though the name of the creators of this weapon was lost to the destruction of the nuclear exchange, the Hook was known to be found in the hands of some of the better-equipped forces of the Traditionalist Coalition during the Contact War. \ This machine gun is carried on one's shoulder and thus can be used with a single hand. Though it can fire heavy cartridges, it is quite lacking in accuracy." - icon = 'icons/obj/guns/unathi_ballistics.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi' icon_state = "hookmg" item_state = "hookmg" caliber = "5.8mm" @@ -989,11 +989,11 @@ icon_state = (ammo_magazine)? "hookmg" : "hookmg-empty" /obj/item/gun/projectile/automatic/tempestsmg - name = "tempest submachine gun" - desc = "The tempest sub-machine gun is a Hegemonic design dating back to the 2350s, though still produced in ample numbers to this day. While rather large and heavy for a weapon of its class, its simplicity and reliability have made it a popular weapon among Unathi for over a century, and the aging weapon was even used as the basis for future designs." + name = "\improper Tempest submachine gun" + desc = "The Tempest sub-machine gun is a Hegemonic design dating back to the 2350s, though still produced in ample numbers to this day. While rather large and heavy for a weapon of its class, its simplicity and reliability have made it a popular weapon among Unathi for over a century, and the aging weapon was even used as the basis for future designs." magazine_type = /obj/item/ammo_magazine/tempestsmg allowed_magazines = list(/obj/item/ammo_magazine/tempestsmg) - icon = 'icons/obj/guns/unathi_ballistics.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi' icon_state = "tempestsmg" item_state = "tempestsmg" caliber = "11.6mm" diff --git a/code/modules/projectiles/guns/projectile/cannon.dm b/code/modules/projectiles/guns/projectile/cannon.dm index e4654d32c84..c30b00ceb25 100644 --- a/code/modules/projectiles/guns/projectile/cannon.dm +++ b/code/modules/projectiles/guns/projectile/cannon.dm @@ -1,7 +1,7 @@ /obj/item/gun/projectile/cannon - name = "hand cannon" + name = "culverin" desc = "An amalgamation of ancient and modern tajaran technology. This old naval cannon was turned into a portable firearm." - icon = 'icons/obj/guns/cannon.dmi' + icon = 'icons/obj/guns/faction/nka/cannon.dmi' icon_state = "cannon" item_state = "cannon" caliber = "cannon" @@ -29,9 +29,9 @@ return ..() /obj/item/gun/projectile/nuke - name = "nuclear launcher" + name = "\improper Mai'Dhaztha Model anti-material nuclear warhead launcher" desc = "A launcher weapon designated to fire miniaturized nuclear warheads." - icon = 'icons/obj/guns/blockbuster.dmi' // hoh + icon = 'icons/obj/guns/faction/pra/maidhaztha.dmi' icon_state = "blockbuster" item_state = "blockbuster" caliber = "nuke" @@ -69,7 +69,7 @@ /obj/item/gun/projectile/recoilless_rifle name = "adhomian recoilless rifle" desc = "An inexpensive, one use anti-tank weapon used extensively by the Tajaran armed forces." - icon = 'icons/obj/guns/recoilless_rifle.dmi' + icon = 'icons/obj/guns/faction/dpra/recoilless_rifle.dmi' icon_state = "recoilless_rifle" item_state = "recoilless_rifle" caliber = "recoilless_rifle" @@ -110,9 +110,9 @@ return FALSE /obj/item/gun/projectile/peac - name = "point entry anti-materiel cannon" + name = "\improper SCC-PEAC-1 anti-materiel cannon" desc = "An SCC-designed, man-portable cannon meant to neutralize mechanized threats. The disgustingly large accelerator capacitors make room for only one shot, so make it count." - icon = 'icons/obj/guns/peac.dmi' + icon = 'icons/obj/guns/faction/stellar_corporate_conglomerate/peac.dmi' icon_state = "peac" item_state = "peac" caliber = "peac" diff --git a/code/modules/projectiles/guns/projectile/improvised.dm b/code/modules/projectiles/guns/projectile/improvised.dm index 8f591bf36b1..5eac6ccf0c0 100644 --- a/code/modules/projectiles/guns/projectile/improvised.dm +++ b/code/modules/projectiles/guns/projectile/improvised.dm @@ -3,7 +3,7 @@ /obj/item/gun/projectile/shotgun/improvised //similar to the double barrel, but without the option to fire both barrels name = "improvised shotgun" desc = "An improvised pipe assembly that can fire shotgun shells." - icon = 'icons/obj/guns/ishotgun.dmi' + icon = 'icons/obj/guns/faction/improvised/ishotgun.dmi' icon_state = "ishotgun" item_state = "ishotgun" max_shells = 2 @@ -164,7 +164,7 @@ accuracy = -1 offhand_accuracy = 1 fire_delay = ROF_PISTOL - icon = 'icons/obj/guns/ipistol.dmi' + icon = 'icons/obj/guns/faction/improvised/ipistol.dmi' icon_state = "ipistol" item_state = "ipistol" caliber = ".45" @@ -231,7 +231,7 @@ /obj/item/gun/projectile/automatic/improvised name = "improvised machine pistol" desc = "An improvised automatic handgun." - icon = 'icons/obj/guns/ismg.dmi' + icon = 'icons/obj/guns/faction/improvised/ismg.dmi' icon_state = "ismg" item_state = "ismg" load_method = MAGAZINE diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index f01546d4dc5..1d20f2036c4 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -1,11 +1,11 @@ /obj/item/gun/projectile/colt - name = ".45 combat pistol" - desc = "A robust metal-framed semi-automatic pistol produced in the system of San Colette." + name = "\improper Pattern 5 pistol" + desc = "A robust metal-framed semi-automatic pistol chambered in .45 produced in the system of San Colette." desc_extended = "The Pattern 5 Pistol is the standard-issue sidearm for the Civil Guard, San Colette’s local military force. Loosely based on the standard 9mm pistol of the Solarian Army, the P5 fires a larger .45 round intended for use against heavier targets. \ The P5 is produced by the San Colette Interstellar Armaments Company (CAISC) and is often found abroad due to its rugged construction." magazine_type = /obj/item/ammo_magazine/c45m allowed_magazines = list(/obj/item/ammo_magazine/c45m) - icon = 'icons/obj/guns/colt.dmi' + icon = 'icons/obj/guns/faction/caisc/pattern_5.dmi' icon_state = "colt" item_state = "colt" caliber = ".45" @@ -46,12 +46,12 @@ return 1 /obj/item/gun/projectile/colt/super - name = "ornamental .45 combat pistol" - desc = "A robust metal-framed semi-automatic pistol produced in the system of San Colette. This example sports a short slide, wood-paneled grips, and few signs of use, likely belonging to someone of higher stature." + name = "ornamental Pattern 5 pistol" + desc = "A robust metal-framed semi-automatic pistol chambered in .45 produced in the system of San Colette. This example sports a short slide, wood-paneled grips, and few signs of use, likely belonging to someone of higher stature." desc_extended = "The Pattern 5 Pistol is the standard-issue sidearm for the Civil Guard, San Colette’s local military force. Loosely based on the standard 9mm pistol of the Solarian Army, the P5 fires a larger .45 round intended for use against heavier targets. \ The P5 is produced by the San Colette Interstellar Armaments Company (CAISC) and is often found abroad due to its rugged construction." magazine_type = /obj/item/ammo_magazine/c45m/stendo - icon = 'icons/obj/guns/coltsuper.dmi' + icon = 'icons/obj/guns/faction/caisc/ornamental_pattern_5.dmi' icon_state = "coltsuper" item_state = "coltsuper" @@ -63,12 +63,12 @@ icon_state = "coltsuper-e" /obj/item/gun/projectile/automatic/lebman - name = "automatic .45 combat pistol" - desc = "A robust metal-framed semi-automatic pistol produced in the system of San Colette. This example has been modified to allow fully-automatic fire, and sports a prominent vertical grip and muzzle compensator to aid in control." + name = "automatic Pattern 5 pistol" + desc = "A robust metal-framed semi-automatic pistol chambered in .45 produced in the system of San Colette. This example has been modified to allow fully-automatic fire, and sports a prominent vertical grip and muzzle compensator to aid in control." desc_extended = "The Pattern 5 Pistol is the standard-issue sidearm for the Civil Guard, San Colette’s local military force. Loosely based on the standard 9mm pistol of the Solarian Army, the P5 fires a larger .45 round intended for use against heavier targets. \ The P5 is produced by the San Colette Interstellar Armaments Company (CAISC) and is often found abroad due to its rugged construction." magazine_type = /obj/item/ammo_magazine/c45m/lebman - icon = 'icons/obj/guns/coltauto.dmi' + icon = 'icons/obj/guns/faction/caisc/pattern_5_auto.dmi' icon_state = "coltauto" item_state = "coltauto" w_class = WEIGHT_CLASS_NORMAL @@ -90,10 +90,10 @@ icon_state = "coltauto-e" /obj/item/gun/projectile/sec - name = "\improper .45 pistol" - desc = "A NanoTrasen designed sidearm, found among law enforcement and security forces." - desc_extended = "The NT Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. It uses .45 rounds." - icon = 'icons/obj/guns/secgun.dmi' + name = "\improper Mk58 pistol" + desc = "A NanoTrasen-designed .45 sidearm, found among law enforcement and security forces." + desc_extended = "The Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. It uses .45 rounds." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/secgun.dmi' icon_state = "secgun" item_state = "secgun" magazine_type = /obj/item/ammo_magazine/c45m/rubber @@ -124,10 +124,10 @@ magazine_type = /obj/item/ammo_magazine/c45m/flash /obj/item/gun/projectile/sec/wood - name = "custom .45 pistol" - desc = "A NanoTrasen designed sidearm, found among law enforcement and security forces. It has a wooden grip." - desc_extended = "The NT Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. This one has a faux wooden grip. It uses .45 rounds." - icon = 'icons/obj/guns/secgun_wood.dmi' + name = "custom Mk58 pistol" + desc = "A NanoTrasen-designed .45 sidearm, found among law enforcement and security forces. It has a wooden grip." + desc_extended = "The Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. A trademark of NanoTrasen security forces. This one has a faux wooden grip. It uses .45 rounds." + icon = 'icons/obj/guns/faction/nanotrasen_corporation/secgun_wood.dmi' icon_state = "secgunwood" item_state = "secgunwood" @@ -139,12 +139,12 @@ icon_state = "secgunwood-e" /obj/item/gun/projectile/automatic/x9 - name = "automatic .45 pistol" - desc = "A NanoTrasen-designed sidearm, modified for fully-automatic fire. Issued to select security and law enforcement groups." - desc_extended = "The NT Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security \ + name = "\improper Mk58-A machine pistol" + desc = "A NanoTrasen-designed .45 sidearm, modified for fully-automatic fire. Issued to select security and law enforcement groups." + desc_extended = "The Mk58 is a ballistic sidearm developed and produced by NanoTrasen. Bulky and heavy, the Mk58 is nonetheless used by security \ forces and law enforcement for its ease of use, low maintenance requirement, longevity, reliability - and most of all, extremely inexpensive price tag. \ A trademark of NanoTrasen security forces. This one has been modified for fully-automatic fire from the factory and sports a collapsible shoulder stock for better control. It uses .45 rounds." - icon = 'icons/obj/guns/x9.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/x9.dmi' icon_state = "secgunauto" item_state = "secgunauto" w_class = WEIGHT_CLASS_NORMAL @@ -170,11 +170,11 @@ icon_state = "secgunauto-e" /obj/item/gun/projectile/tanto + name = "\improper Mk1-A Tanto machine pistol" desc = "An automatic variant of the NanoTrasen Mk1 Everyman handgun that has been built to accept detachable magazines, negating one of the original \ weapon's biggest shortcomings. It is marketed towards lower-echelon security companies as a machine pistol named the Tanto, and features a burst-fire selector \ and sturdier barrel with heatshield to better take advantage of the higher capacity." - name = "10mm auto-pistol" - icon = 'icons/obj/guns/c05r.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/tanto.dmi' icon_state = "c05r" item_state = "c05r" magazine_type = /obj/item/ammo_magazine/mc10mm @@ -201,12 +201,12 @@ icon_state = "c05r-e" /obj/item/gun/projectile/silenced - name = "suppressed pistol" + name = "\improper Mrrazhakulii suppressed pistol" desc = "A small, quiet, easily concealable gun." desc_extended = "Created as a disposable and concealable weapon, the Mrrazhakulii suppressed pistol is a firearm with a suppressor integrated as part of its barrel. \ Carried by guerrilla forces and spies, those guns are used in assassination and subterfuge operations. Due to using cheap and available materials, such as \ recycled iron and tires, countless of those pistols were distributed among cells and ALA soldiers." - icon = 'icons/obj/guns/silenced_pistol.dmi' + icon = 'icons/obj/guns/faction/dpra/mrrazhakulii_suppressed_pistol.dmi' icon_state = "silenced_pistol" item_state = "silenced_pistol" fire_sound = 'sound/weapons/gunshot/gunshot_suppressed.ogg' @@ -230,9 +230,9 @@ icon_state = "[initial(icon_state)]-e" /obj/item/gun/projectile/deagle - name = ".50 magnum pistol" - desc = "A very robust handgun." - icon = 'icons/obj/guns/deagle.dmi' + name = "\improper Desert Eagle pistol" + desc = "An antique, usually impractical handgun firing .50 Action Express rounds. This one is still in good condition, if a bit rough around the edges." + icon = 'icons/obj/guns/faction/antique/deagle.dmi' icon_state = "deagle" item_state = "deagle" force = 15 @@ -253,9 +253,9 @@ icon_state = "[initial(icon_state)]-e" /obj/item/gun/projectile/deagle/adhomai - name = "adhomian heavy pistol" + name = "\improper Nal'tor heavy pistol" desc = "A bulky handgun used by republican commissars and high-ranking members of the Hadiist Party." - icon = 'icons/obj/guns/adhomian_heavy_pistol.dmi' + icon = 'icons/obj/guns/faction/pra/naltor_heavy_pistol.dmi' icon_state = "adhomian_heavy_pistol" item_state = "adhomian_heavy_pistol" desc_extended = "Given to Republican Commissars and high ranking Party members, the Nal'tor Model Pistol is notable for its large caliber. Unlike the Adar'Mazy pistol, only a \ @@ -289,10 +289,10 @@ icon_state = "gyropistol" /obj/item/gun/projectile/pistol - name = "9mm pistol" + name = "\improper Moonlight pistol" desc = "An extremely popular compact handgun, used throughout human space." desc_extended = "The Zavodskoi Interstellar Moonlight 9mm can be found in the hands of just about anyone imaginable - special operatives, common criminals, police officers, the average Joe - on account of the time-tested design, low price point, reliability, and ease of concealment. Having a threaded barrel helps, too, and it isn't uncommon to see the Moonlight as a prop in spy films, suppressed." - icon = 'icons/obj/guns/pistol.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/pistol.dmi' icon_state = "pistol" item_state = "pistol" w_class = WEIGHT_CLASS_SMALL @@ -307,18 +307,18 @@ magazine_type = /obj/item/ammo_magazine/mc9mm allowed_magazines = list(/obj/item/ammo_magazine/mc9mm) fire_delay = ROF_PISTOL - suppressor_x_offset = 5 + suppressor_x_offset = 3 /obj/item/gun/projectile/pistol/flash name = "9mm signal pistol" magazine_type = /obj/item/ammo_magazine/mc9mm/flash /obj/item/gun/projectile/pistol/detective + name = "\improper Mk21 Blackjack pistol" desc = "A compact NanoTrasen designed sidearm, popular with law enforcement personnel for concealed carry purposes. It has a faux wooden grip." - desc_extended = "The NT Mk21 Blackjack is a ballistic sidearm developed and produced by NanoTrasen. Unlike the related Mk58, the Blackjack is a rather high quality piece - typically issued to higher ranking law enforcement personnel, the Mk21 is compact and chambered in 9mm caliber. With all the bells and whistles of a modern, quality police pistol, the Blackjack's main drawback is the notoriously nippy recoil - 9mm in such a small package can be unpleasant for the average shooter." - name = "compact 9mm pistol" + desc_extended = "The Mk21 Blackjack is a ballistic sidearm developed and produced by NanoTrasen. Unlike the related Mk58, the Blackjack is a rather high quality piece - typically issued to higher ranking law enforcement personnel, the Mk21 is compact and chambered in 9mm caliber. With all the bells and whistles of a modern, quality police pistol, the Blackjack's main drawback is the notoriously nippy recoil - 9mm in such a small package can be unpleasant for the average shooter." magazine_type = /obj/item/ammo_magazine/mc9mm - icon = 'icons/obj/guns/detgun.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/detgun.dmi' icon_state = "detgun" item_state = "detgun" can_suppress = FALSE @@ -353,7 +353,7 @@ /obj/item/gun/projectile/pirate name = "zip gun" desc = "Little more than a barrel, handle, and firing mechanism, cheap makeshift firearms like this one are not uncommon in frontier systems." - icon = 'icons/obj/guns/zipgun.dmi' + icon = 'icons/obj/guns/faction/frontier/zipgun.dmi' icon_state = "zipgun" item_state = "zipgun" handle_casings = CYCLE_CASINGS //player has to take the old casing out manually before reloading @@ -379,11 +379,11 @@ . = ..() /obj/item/gun/projectile/leyon - name = "10mm pistol" + name = "\improper Mk1 Everyman pistol" desc = "NanoTrasen's first marketed firearm design, the Mk1, better known as the Everyman, was an instant hit - though it is a crude, \ stripper clip-fed design with a very small capacity, the Everyman is absurdly inexpensive and famously reliable, and is now one of the most \ common weapons found in the Orion Spur." - icon = 'icons/obj/guns/leyon.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/everyman.dmi' icon_state = "leyon" item_state = "leyon" caliber = "10mm" @@ -404,14 +404,14 @@ icon_state = "leyon-e" /obj/item/gun/projectile/pistol/sol - name = "solarian service pistol" + name = "\improper M8 pistol" desc = "Manufactured by Zavodskoi Interstellar and based off of a full-sized variant of their 9mm design, the compact M8 is the standard service pistol of the Solarian Armed Forces." - icon = 'icons/obj/guns/sol_pistol.dmi' + icon = 'icons/obj/guns/faction/sol_alliance/sol_pistol.dmi' icon_state = "m8" item_state = "m8" can_suppress = TRUE - suppressor_x_offset = 9 - suppressor_y_offset = 3 + suppressor_x_offset = 3 + suppressor_y_offset = -2 /obj/item/gun/projectile/pistol/sol/update_icon() ..() @@ -421,9 +421,8 @@ icon_state = "m8-empty" /obj/item/gun/projectile/pistol/sol/siib - name = "solarian SIIB silenced pistol" + name = "\improper M8-SIIB suppressed pistol" desc = "A variant of the M8 solarian service pistol, this paticular variant comes with an integrated recoil compensator and are used by SIIB agents and operatives. Officially, this pistol does not exist." - icon = 'icons/obj/guns/sol_pistol.dmi' icon_state = "m8-siib" item_state = "m8-siib" suppressed = FALSE @@ -437,10 +436,10 @@ icon_state = "m8-siib-empty" /obj/item/gun/projectile/pistol/sol/konyang - name = "konyang service pistol" + name = "\improper K8 pistol" desc = "The compact M8, redesignated as the K8, is the standard service pistol of the Konyanger Armed Forces. Inherited from the Solarian military, Zavodskoi has since given these handguns \ a service extension package, including laser sights and replacement of worn-out parts." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "k8" item_state = "k8" @@ -452,9 +451,9 @@ icon_state = "k8-empty" /obj/item/gun/projectile/pistol/adhomai - name = "adhomian service pistol" + name = "\improper Adar'Mazy pistol" desc = "The Adar'Mazy pistol is an Adhomian firearm commonly issued to People's Republic officers, government officials and low-ranking Party members." - icon = 'icons/obj/guns/adhomian_pistol.dmi' + icon = 'icons/obj/guns/faction/pra/adhomian_pistol.dmi' icon_state = "adhomian_pistol" item_state = "adhomian_pistol" can_suppress = FALSE @@ -469,7 +468,7 @@ icon_state = "adhomian_pistol-e" /obj/item/gun/projectile/pistol/super_heavy - name = "super-heavy pistol" + name = "\improper Kumar Arms 2557 super-heavy pistol" desc = "A big, bulky, and extremely powerful pistol, intended to pierce even your strongest enemy. You should wield this thing with two hands, if you want your wrists to stay intact." desc_extended = "The Kumar Arms 2557 is a newly designed type of \"super-heavy\" pistol. \ It features a light-weight polymer pistol grip, a bulky plasteel frame and an extra long barrel. \ @@ -536,12 +535,12 @@ RH.take_damage(30) /obj/item/gun/projectile/xanupistol - name = "\improper Xanan service pistol" + name = "dNAC-4.6 service pistol" desc = "A sleek metal-framed semi-automatic pistol, produced by d.N.A Defense for the All-Xanu Armed Forces." desc_extended = "The dNAC-4.6 pistol is the standard issue sidearm for the All-Xanu Armed Forces. Designed to use 4.6x30mm rounds with less weight but better armor penetration than the 9mm pistols it replaced, the dNAC-4.6 has seen great success in Xanu Prime and beyond, as it has been adopted as a standard sidearm for police forces, military units, and other entities across the Coalition of Colonies and beyond." magazine_type = /obj/item/ammo_magazine/c46m allowed_magazines = list(/obj/item/ammo_magazine/c46m, /obj/item/ammo_magazine/c46m/extended) - icon = 'icons/obj/guns/xanu_pistol.dmi' + icon = 'icons/obj/guns/faction/dna_defense/xanu_pistol.dmi' icon_state = "xanu_pistol" item_state = "xanu_pistol" caliber = "4.6mm" @@ -567,13 +566,13 @@ icon_state = "xanu_pistol-e" /obj/item/gun/projectile/pistol/dominia - name = "dominian service pistol" + name = "\improper MPP-50 pistol" desc = "The Imperial Army's standard-issue handgun. Cheap, reliable, and easy to use." desc_extended = "The Moroz Pattern Pistol, Year of 2450 (MPP-50) is a reliable handgun chambered in 7.62 \ Imperial Short which features an unusual magazine. Zavodskoi Interstellar is a major producer of these handguns." magazine_type = /obj/item/ammo_magazine/c45m/dominia allowed_magazines = list(/obj/item/ammo_magazine/c45m/dominia) - icon = 'icons/obj/guns/dominia_pistol.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_pistol.dmi' icon_state = "dom_pistol" item_state = "dom_pistol" caliber = ".45" @@ -589,13 +588,13 @@ icon_state = "dom_pistol-e" /obj/item/gun/projectile/pistol/spitter - name = "unathi spitter pistol" + name = "\improper Relzi-5 Spitter pistol" desc = "The venerable 'spitter' pistol is an Unathi design nearly three centuries old. Though no longer in use by the Hegemony's forces, these guns are still commonplace in the hands of criminals, Wastelanders, and former Traditionalists." desc_extended = "The Relzi-5 pistol, colloquially referred to as the 'spitter' was a common Unathi sidearm for centuries, though the design was already being phased out of Izweski use by the start of the Contact War due to superior-quality energy weapons becoming available.\ In the modern day, they are no longer produced, but the sheer volume of them in service means they can be found all over Moghes, and even in the wider Orion Spur." magazine_type = /obj/item/ammo_magazine/spitterpistol allowed_magazines = list(/obj/item/ammo_magazine/spitterpistol) - icon = 'icons/obj/guns/unathi_ballistics.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi' icon_state = "spitterpistol" item_state = "spitterpistol" caliber = "11.6mm" diff --git a/code/modules/projectiles/guns/projectile/plasma.dm b/code/modules/projectiles/guns/projectile/plasma.dm index 2ddcc53e45a..fba32a7aa45 100644 --- a/code/modules/projectiles/guns/projectile/plasma.dm +++ b/code/modules/projectiles/guns/projectile/plasma.dm @@ -1,7 +1,7 @@ /obj/item/gun/projectile/plasma - name = "plasma shotgun" + name = "OEI-2 plasma shotgun" desc = "A marvel of Elyran weapons technology which utilizes superheated plasma to pierce thick armor with gruesome results." - icon = 'icons/obj/guns/slammer.dmi' + icon = 'icons/obj/guns/faction/elyran_republic/slammer.dmi' icon_state = "slammer" item_state = "slammer" w_class = WEIGHT_CLASS_BULKY @@ -23,9 +23,9 @@ icon_state = "[initial(icon_state)]-empty" /obj/item/gun/projectile/plasma/bolter - name = "plasma bolter" + name = "\improper OEI-2M plasma bolter" desc = "A miniaturized, less efficient version of the infamous plasma slammer. Sacrifices much of its power for a more compact frame." - icon = 'icons/obj/guns/bolter.dmi' + icon = 'icons/obj/guns/faction/elyran_republic/bolter.dmi' icon_state = "bolter" item_state = "bolter" w_class = WEIGHT_CLASS_NORMAL @@ -37,7 +37,7 @@ fire_delay = ROF_RIFLE /obj/item/gun/energy/mountedplasma - name = "plasma cannon" + name = "mounted plasma cannon" fire_sound = 'sound/weapons/gunshot/slammer.ogg' burst = 2 burst_delay = 3 @@ -48,9 +48,9 @@ projectile_type = /obj/projectile/plasma /obj/item/gun/projectile/plasma/bolter/pistol - name = "plasma pistol" + name = "\improper OEI-7 plasma pistol" desc = "An Elyran designed firearm, used for diplomatic protection and high-value escort, which fires super heated bolts of plasma. Rare outside of Elyra due to the maintenance and production costs." - icon = 'icons/obj/guns/plasma_pistol.dmi' + icon = 'icons/obj/guns/faction/elyran_republic/plasma_pistol.dmi' icon_state = "plasma" item_state = "plasma" magazine_type = /obj/item/ammo_magazine/plasma/light/pistol diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 4d23742b93d..c0117cc58c0 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -1,7 +1,7 @@ /obj/item/gun/projectile/revolver - name = "revolver" - desc = "The revised Mark II Zavodskoi Interstellar revolver, utilizing a robust firing mechanism to deliver deadly rounds downrange. This is a monster of a hand cannon, with a beautiful cedar grip and a transparent plastic cover(so as to not splinter your hands while firing)." - icon = 'icons/obj/guns/revolver.dmi' + name = "\improper Mark II revolver" + desc = "The revised Mark II Zavodskoi Interstellar revolver, utilizing a robust firing mechanism to deliver deadly rounds downrange. This is a monster of a hand cannon, with a beautiful cedar grip and a transparent plastic cover (so as to not splinter your hands while firing)." + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/revolver.dmi' icon_state = "revolver" item_state = "revolver" accuracy = 1 @@ -44,9 +44,9 @@ return ..() /obj/item/gun/projectile/revolver/mateba - name = "automatic revolver" + name = "\improper Hammerhead autorevolver" desc = "The Hammerhead .454 autorevolver, a very rare weapon typical of special ops teams and mercenary teams. It packs quite the punch." - icon = 'icons/obj/guns/autorevolver.dmi' + icon = 'icons/obj/guns/faction/eridani_federation/autorevolver.dmi' icon_state = "autorevolver" item_state = "autorevolver" max_shells = 7 @@ -58,13 +58,13 @@ magazine_type = /obj/item/ammo_magazine/a454 /obj/item/gun/projectile/revolver/mateba/captain - name = "\improper SCC command autorevolver" + name = "\improper Protektor autorevolver" desc = "A ludicrously powerful .454 autorevolver with equally ludicrous recoil which is issued by the SCC to the administrators of critical facilities and vessels. While revolvers may be a thing of the past, the stopping power displayed by this weapon is second to none." desc_extended = "A Zavodskoi Interstellar design from the mid 2450s intended for export to the Eridani Corporate Federation and the Republic of Biesel, the Protektor \ revolver was never designed with practicality in mind. The .454 rounds fired from this weapon are liable to snap the wrist of an unprepared shooter and \ any following shots will be difficult to place onto a human-sized target due to the recoil, let alone a skrell. But nobody buys a Protektor for the purpose of \ practicality: they buy it due to having too much money and wanting a revolver large enough for their ego." - icon = 'icons/obj/guns/captain_revolver.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/captain_revolver.dmi' icon_state = "captain_revolver" item_state = "captain_revolver" is_wieldable = TRUE @@ -96,7 +96,7 @@ /obj/item/gun/projectile/revolver/detective name = "antique revolver" desc = "An old, obsolete revolver. It has no identifying marks, and is chambered in an equally antiquated caliber." - icon = 'icons/obj/guns/detective.dmi' + icon = 'icons/obj/guns/faction/antique/detective.dmi' icon_state = "detective" item_state = "detective" max_shells = 6 @@ -130,7 +130,7 @@ /obj/item/gun/projectile/revolver/derringer name = "derringer" desc = "A small pocket pistol, easily concealed." - icon = 'icons/obj/guns/derringer.dmi' + icon = 'icons/obj/guns/faction/frontier/derringer.dmi' icon_state = "derringer" item_state = "derringer" accuracy = -1 @@ -160,7 +160,7 @@ if(attacking_item.tool_behaviour != TOOL_WIRECUTTER || icon_state == "revolver") return ..() to_chat(user, SPAN_NOTICE("You snip off the toy markings off the [src].")) - icon = 'icons/obj/guns/revolver.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/revolver.dmi' name = "revolver" icon_state = "revolver" item_state = "revolvers" @@ -168,9 +168,9 @@ return 1 /obj/item/gun/projectile/revolver/lemat - name = "grapeshot revolver" - desc = "A six shot revolver, with a secondary firing barrel for loading shotgun shells." - icon = 'icons/obj/guns/lemat.dmi' + name = "\improper P100 Mako revolver" + desc = "The P100 Mako is a 6-shot .38 Special revolver with a secondary firing barrel that can load shotgun shells." + icon = 'icons/obj/guns/faction/frontier/lemat.dmi' icon_state = "lemat" item_state = "lemat" origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) @@ -267,9 +267,9 @@ . += "\The [src] has a secondary barrel that is empty." /obj/item/gun/projectile/revolver/adhomian - name = "adhomian service revolver" - desc = "The Royal Firearms Service Revolver is a simple and reliable design, favored by the nobility of the New Kingdom of Adhomai." - icon = 'icons/obj/guns/adhomian_revolver.dmi' + name = "\improper Royal Firearms Model 1 revolver" + desc = "The Royal Firearms Model 1 service Revolver is a simple and reliable design, favored by the nobility of the New Kingdom of Adhomai." + icon = 'icons/obj/guns/faction/nka/adhomian_revolver.dmi' icon_state = "adhomian_revolver" item_state = "adhomian_revolver" caliber = "38" @@ -312,7 +312,7 @@ name = "reclaimed revolver" desc = "A revolver, made out of cheap scrap metal. Often used by Konyang's pirates." desc_extended = "A six-shot revolver, crudely hacked together out of different kinds of scrap metal and wood. Made working by the ingenuity Konyang's pirates often need to show. Chambered in .38 ammo." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "38_revolver" item_state = "38_revolver" caliber = "38" @@ -328,12 +328,12 @@ icon_state = "38_revolver-e" /obj/item/gun/projectile/revolver/konyang/police - name = "police service revolver" + name = "\improper Nam-Kawada revolver" desc = "A compact and reliable .45 caliber revolver. This one has Konyang National Police markings as well as a lanyard attached to it." desc_extended = "The Nam-Kawada model .45 caliber revolver, named after its two inventors, is an adaptation of an old Zavodskoi design designed to be easily made from colony ship autolathes. \ The original design was first introduced in 2307 due to a growing need to arm the nascent Konyang National Police (then known as the Suwon Colonial Constabulary) in the face of both wildlife and the occasional criminal activity.\ The lack of a need for an upgrade, as well as institutional attachment to the design, has led to its continued use for almost two centuries." - icon = 'icons/obj/guns/konyang_weapons.dmi' + icon = 'icons/obj/guns/faction/konyang/konyang_weapons.dmi' icon_state = "police_gun" item_state = "police_gun" w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/projectiles/guns/projectile/rifle.dm b/code/modules/projectiles/guns/projectile/rifle.dm index 15103c5d1f9..1c07238494f 100644 --- a/code/modules/projectiles/guns/projectile/rifle.dm +++ b/code/modules/projectiles/guns/projectile/rifle.dm @@ -1,7 +1,7 @@ /obj/item/gun/projectile/shotgun/pump/rifle - name = "bolt action rifle" + name = "\improper Harrzhak pattern bolt action rifle" desc = "A cheap ballistic rifle, often found in the hands of Tajaran conscripts." - icon = 'icons/obj/guns/moistnugget.dmi' + icon = 'icons/obj/guns/faction/pra/bolt.dmi' icon_state = "moistnugget" item_state = "moistnugget" origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) @@ -40,9 +40,9 @@ ammo_type = /obj/item/ammo_casing/a68/blank /obj/item/gun/projectile/shotgun/pump/rifle/scope - name = "sniper bolt action rifle" + name = "scoped Harrzhak pattern bolt action rifle" desc = "A cheap ballistic rifle, often found in the hands of Tajaran conscripts. This one has a telescopic sight attached to it." - icon = 'icons/obj/guns/bolt_scope.dmi' + icon = 'icons/obj/guns/faction/pra/bolt_scope.dmi' /obj/item/gun/projectile/shotgun/pump/rifle/scope/verb/scope() set category = "Object.Held" @@ -135,11 +135,11 @@ jam_chance = min(jam_chance + 5, 100) /obj/item/gun/projectile/shotgun/pump/rifle/dominia - name = "dominian sniper rifle" + name = "\improper MPMR-08/2 sniper rifle" desc = "A precision rifle used by snipers and sharpshooters of the Imperial Army. One of the few modern military-grade weapons to use a bolt for its action." desc_extended = "The MPMR-08/2 is a precisely machined and meticulously designed rifle which prioritizes accuracy and precision over rate of fire. \ Outside of the Imperial Army, it is commonly seen in the hands of competition shooters." - icon = 'icons/obj/guns/dominia_bolt_action.dmi' + icon = 'icons/obj/guns/faction/dominian_empire/dominia_bolt_action.dmi' icon_state = "dom_bolt_action" item_state = "dom_bolt_action" caliber = "a762" @@ -158,9 +158,9 @@ to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) /obj/item/gun/projectile/contender - name = "pocket rifle" + name = "\improper H-H Gram pocket rifle" desc = "A perfect, pristine replica of an ancient one-shot hand-cannon. This one has been modified to work almost like a bolt-action." - icon = 'icons/obj/guns/pockrifle.dmi' + icon = 'icons/obj/guns/faction/frontier/pockrifle.dmi' icon_state = "pockrifle" item_state = "pockrifle" caliber = "a556" @@ -224,9 +224,9 @@ ..() /obj/item/gun/projectile/shotgun/pump/rifle/vintage - name = "vintage bolt action rifle" + name = "\improper M1903 Springfield rifle" desc = "An extremely old-looking rifle. Words you can't read are stamped on the gun. Doesn't look like it'll take any modern rounds." - icon = 'icons/obj/guns/springfield.dmi' + icon = 'icons/obj/guns/faction/antique/springfield.dmi' icon_state = "springfield" item_state = "springfield" origin_tech = list(TECH_COMBAT = 1, TECH_MATERIAL = 3) @@ -321,13 +321,20 @@ ..() /obj/item/gun/projectile/gauss - name = "gauss thumper" - desc = "An outdated gauss weapon which sees sparing use in modern times." + name = "\improper NGS-01 gauss thumper" + desc = "An outdated model of gauss weapon which sees sparing use in modern times." + desc_extended = "Designed by NanoTrasen in 2398, the NGS-01 was an offshoot of the venerable HeS-05 gauss rifle. After purchasing \ + the defunct Henricus company’s designs, work began on an upgrade. Trading in the depleted uranium rounds for tungsten that was more \ + common in the Solarian core worlds, the power equipment was also made more compact thanks to the usage of phoron components pioneered by NT. \ + This allowed for a magazine-based ammo loading system, no longer requiring the simple break-action that isolated the ammo from the hot temperatures. \ + The result was the ā€œThumperā€ model of gauss gun. Its popularity quickly established NanoTrasen as a new player in the firearms \ + industry. While at this point obsolete compared to newer models, its cheapness led it to be established as the official weapon of the \ + then-recently established Tau Ceti Foreign Legion in 2459, providing it a new lease of life despite its obvious shortcomings due to its age." w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BACK magazine_type = /obj/item/ammo_magazine/gauss allowed_magazines = list(/obj/item/ammo_magazine/gauss) - icon = 'icons/obj/guns/gauss_thumper.dmi' + icon = 'icons/obj/guns/faction/nanotrasen_corporation/gauss_thumper.dmi' icon_state = "gauss_thumper" item_state = "gauss_thumper" caliber = "gauss" @@ -356,7 +363,8 @@ /obj/item/gun/energy/gauss/mounted/mech name = "heavy gauss cannon" desc = "An outdated and power hungry gauss cannon, modified to deliver high explosive rounds at high velocities." - icon = 'icons/obj/guns/gauss_thumper.dmi' + desc_extended = null + icon = 'icons/obj/guns/faction/nanotrasen_corporation/gauss_thumper.dmi' //TODO: Needs a proper sprite icon_state = "gauss_thumper" fire_sound = SFX_SHOOT_GAUSS fire_delay = ROF_UNWIELDY @@ -369,15 +377,20 @@ recharge_time = 12 needspin = FALSE -/obj/item/gun/projectile/gauss/carbine - name = "gauss carbine" - desc = "A simple gun utilizing the gauss technology. It is still reliable and cheap despite being outdated." - icon = 'icons/obj/guns/gauss_carbine.dmi' +/obj/item/gun/projectile/gauss/old + name = "\improper Henricus HeS-05 gauss rifle" + desc = "A simple break-action gun utilizing gauss technology. It is still reliable and cheap despite being an out of date model." + desc_extended = "The Henricus company was de Namur Defense Systems’s chief rival throughout the 23rd and 24th centuries. While de Namur primarily \ + focused on projectile weapons and armor, the Henricus company was known for its innovative at the time gauss weaponry. While popular throughout the \ + Coalition, competition by megacorporations allowed in by the Solarian Reproachment chipped at their market share as the weapons became \ + considered dated, and upgrades were slow to come. The Henricus company eventually shuttered its doors in 2391, its last production facilities \ + being sold to de Namur." + icon = 'icons/obj/guns/faction/frontier/gauss_carbine.dmi' icon_state = "gauss_carbine" item_state = "gauss_carbine" w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK - ammo_type = /obj/item/ammo_casing/gauss/carbine + ammo_type = /obj/item/ammo_casing/gauss/old load_method = SINGLE_CASING handle_casings = HOLD_CASINGS max_shells = 1 @@ -385,23 +398,27 @@ fire_delay_wielded = ROF_INTERMEDIATE accuracy_wielded = 1 -/obj/item/gun/projectile/gauss/carbine/update_icon() +/obj/item/gun/projectile/gauss/old/update_icon() ..() if(loaded.len) icon_state = "gauss_carbine" else icon_state = "gauss_carbine-e" -/obj/item/gun/projectile/gauss/carbine/special_check(mob/user) +/obj/item/gun/projectile/gauss/old/special_check(mob/user) if(!wielded) to_chat(user, SPAN_WARNING("You can't fire without stabilizing \the [src]!")) return 0 return ..() /obj/item/gun/projectile/shotgun/pump/lever_action - name = "lever action rifle" - desc = "A lever action rifle with a side-loading port, these are still popular with frontiersmen for hunting and self-defense purposes." - icon = 'icons/obj/guns/leveraction.dmi' + name = "\improper Harrier-Elrond Zalen lever action rifle" + desc = "A lever action rifle from the frontier with a side-loading port, the Zalen is popular with frontiersmen for hunting and self-defense purposes." + desc_extended = "The Harrier-Elrond company is not well-known outside of the human frontier, and the outskirts of the Coalition. Mostly providing cheap \ + firearms for those not readily served by the mega-corporations, a single factory is able to provide for an entire standard years’ demand. \ + Despite this, the nearly century of business the company have been in have allowed for numerous copies to be found throughout the human frontier, \ + and in many cases even beyond." + icon = 'icons/obj/guns/faction/frontier/leveraction.dmi' icon_state = "leveraction" item_state = "leveraction" origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) @@ -420,12 +437,12 @@ can_sawoff = FALSE /obj/item/gun/projectile/shotgun/pump/rifle/magazine_fed/crackrifle - name = "crack rifle" + name = "\improper Azarak-96 crack rifle" desc = "A heavy bolt-action rifle of Moghesian manufacture." desc_extended = "Manufactured by the Azarak Kingdom in 2350, the Azarak-96 'Crack Rifle' is a bolt-action rifle of Moghesian manufacture, easily recognizable by its long bayonet and large magazine wrapped around its trigger guard.\ This heavy but powerful weapon is mostly known for its use by the common warrior of the Traditionalist Coalition during the Contact War.\ Many of these rifles survived the ravages of the Contact War, a testament to their reliability." - icon = 'icons/obj/guns/unathi_ballistics.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi' icon_state = "crackrifle" item_state = "crackrifle" caliber = "5.8mm" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 5bf1d8f1b4e..40e1bbafe99 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -1,4 +1,4 @@ -/obj/item/gun/projectile/shotgun +ABSTRACT_TYPE(/obj/item/gun/projectile/shotgun) name = "strange shotgun" desc = DESC_PARENT accuracy = -1 @@ -48,7 +48,7 @@ /obj/item/gun/projectile/shotgun/pump name = "pump shotgun" desc = "An ubiquitous unbranded shotgun. Useful for sweeping alleys." - icon = 'icons/obj/guns/shotgun.dmi' + icon = 'icons/obj/guns/faction/frontier/shotgun.dmi' icon_state = "shotgun" item_state = "shotgun" max_shells = 7 // max of 8 @@ -114,9 +114,9 @@ ammo_type = null /obj/item/gun/projectile/shotgun/pump/combat - name = "combat shotgun" + name = "\improper KS-40 combat shotgun" desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders." - icon = 'icons/obj/guns/cshotgun.dmi' + icon = 'icons/obj/guns/faction/hephaestus_industries/cshotgun.dmi' icon_state = "cshotgun" item_state = "cshotgun" origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2) @@ -127,9 +127,9 @@ cycle_anim = FALSE /obj/item/gun/projectile/shotgun/pump/combat/sol - name = "solarian combat shotgun" + name = "\improper M63 combat shotgun" desc = "A compact combat shotgun manufactured by Zavodskoi Interstellar for the Solarian Armed Forces, the M63 is most frequently employed by assaulters fighting in close-quarters environments, though it is also uncommonly used as a defensive weapon by Navy crewmen. Chambered in 12 gauge." - icon = 'icons/obj/guns/sol_shotgun.dmi' + icon = 'icons/obj/guns/faction/sol_alliance/sol_shotgun.dmi' icon_state = "malella" item_state = "malella" origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 3, TECH_ILLEGAL = 2) @@ -216,11 +216,11 @@ force = 11 /obj/item/gun/projectile/shotgun/doublebarrel/nitro - name = "gauss express rifle" + name = "\improper Pattern Nine gauss express rifle" desc = "A Galatean nitro express rifle. Loaded with tungsten slugs." desc_extended = "While Galatea almost universally uses lasers for their weapons, gauss weapons see some use in the hands of expeditionary forces and military specialist units. The Pattern Nine is a single-barrel, double-shot \ rifle designed for intermediate range anti-infantry specialists just as much as it is for Tsukuyomian game wardens." - icon = 'icons/obj/guns/galatea_nitro.dmi' + icon = 'icons/obj/guns/faction/galatean_technocracy/galatea_nitro.dmi' icon_state = "nitrorifle" item_state = "nitrorifle" //SPEEDLOADER because rapid unloading. @@ -245,7 +245,7 @@ /obj/item/gun/projectile/shotgun/foldable name = "foldable shotgun" desc = "A single-shot shotgun that can be folded for easy concealment." - icon = 'icons/obj/guns/overunder.dmi' + icon = 'icons/obj/guns/faction/frontier/overunder.dmi' icon_state = "overunder" item_state = "overunder" accuracy = 0 @@ -316,7 +316,7 @@ name = "wall gun" desc = "A small yet powerful shotgun of Unathi make." desc_extended = "The Moghesian wall gun, a classic Hegemonic weapon that saw plenty of service before and during the Contact War. This small-sized, break-action shotgun manages to pack a serious punch despite being barely larger than a pistol, however, it comes at the cost of extremely limited capacity. The wall gun is still produced and distributed nowadays, generally given to vehicle and ship crews and law enforcers." - icon = 'icons/obj/guns/unathi_ballistics.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi' icon_state = "wallgun" item_state = "wallgun" accuracy = 0 diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index 6dc0db9206c..01ce484b856 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -1,10 +1,10 @@ /obj/item/gun/projectile/heavysniper - name = "anti-materiel rifle" + name = "\improper PTR-7 anti-materiel rifle" desc = "The PTR-7 is man-portable anti-armor rifle fitted with a high-powered scope, capable of penetrating through most windows, airlocks, and non-reinforced walls with ease." desc_extended = "A single-shot, bolt-action anachronism in an age of energy weapons, the PTR-7 was originally developed to combat exosuits, either by disabling critical systems \ or killing the pilot. Firing a high-velocity 14.5mm cartridge designed to defeat heavy armor, the PTR-7 boasts penetrative power unmatched by most in its class, though recent advancements \ in composites have rendered the weapon less effective at its intended purpose. Nonetheless, it still sees use among some groups as a general-purpose anti-materiel rifle." - icon = 'icons/obj/guns/heavysniper.dmi' + icon = 'icons/obj/guns/faction/frontier/heavysniper.dmi' icon_state = "heavysniper" item_state = "heavysniper" w_class = WEIGHT_CLASS_BULKY @@ -100,7 +100,7 @@ /obj/item/gun/projectile/heavysniper/unathi name = "hegemony slugger" desc = "An incredibly large firearm, produced by an Ouerean Guild. Uses custom slugger rounds." - icon = 'icons/obj/guns/unathi_slugger.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/unathi_slugger.dmi' icon_state = "slugger" item_state = "slugger" origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 2, TECH_ILLEGAL = 4) @@ -146,7 +146,7 @@ desc_extended = "Designed and sold by Zeng-Hu Pharmaceuticals and produced on contract by Zavodskoi's Kumar Arms subsidiary, the rifle has quietly become ubiquitous among xenobiological researchers. \ While the weapon platform itself is expensive for a dart gun, users have come to adore it thanks to the benefit of its conditionally cheap ammo. Pricey off the shelf, facilities often pay a fraction \ of the cost thanks to rebates and bulk order discounts." - icon = 'icons/obj/guns/tranqsniper.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/tranqsniper.dmi' icon_state = "tranqsniper" item_state = "tranqsniper" w_class = WEIGHT_CLASS_BULKY @@ -176,9 +176,9 @@ icon_state = "tranqsniper" /obj/item/gun/projectile/dragunov - name = "adhomian marksman rifle" + name = "\improper Ho'taki marksman rifle" desc = "A semi-automatic marksman rifle." - icon = 'icons/obj/guns/dragunov.dmi' + icon = 'icons/obj/guns/faction/pra/hotaki.dmi' icon_state = "dragunov" item_state = "dragunov" @@ -231,11 +231,11 @@ to_chat(usr, SPAN_WARNING("You can't look through the scope without stabilizing the rifle!")) /obj/item/gun/projectile/automatic/rifle/w556 - name = "scout rifle" - desc = "The ZI Greyhound, the designated marksman rifle variant of Zavodskoi's ZI Bulldog carbine. Features a longer, heavier barrel \ + name = "\improper Greyhound marksman rifle" + desc = "The Greyhound, the designated marksman rifle variant of Zavodskoi's Bulldog carbine. Features a longer, heavier barrel \ with a low-power fixed-magnification optic. A vertical grip has been attached under the forend, to help offset the change in balance \ and improve handling." - icon = 'icons/obj/guns/w556.dmi' + icon = 'icons/obj/guns/faction/zavodskoi_interstellar/w556.dmi' icon_state = "w556rifle" item_state = "w556rifle" w_class = WEIGHT_CLASS_BULKY diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 10e9be42194..46a575ed569 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -46,7 +46,7 @@ impact_type = /obj/effect/projectile/impact/laser/scc /obj/projectile/beam/pistol/hegemony - icon = 'icons/obj/guns/hegemony_pistol.dmi' + icon = 'icons/obj/guns/faction/izweski_hegemony/hegemony_pistol.dmi' icon_state = "hegemony_pistol" damage = 30 diff --git a/code/modules/projectiles/suppressor.dm b/code/modules/projectiles/suppressor.dm index 46c07c56c61..3711e8aac08 100644 --- a/code/modules/projectiles/suppressor.dm +++ b/code/modules/projectiles/suppressor.dm @@ -1,7 +1,7 @@ /obj/item/suppressor name = "suppressor" desc = "A suppressor" - icon = 'icons/obj/guns/suppressor.dmi' + icon = 'icons/obj/guns/attachments/suppressor.dmi' icon_state = "suppressor_item" origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 3) w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/random_map/drop/drop_types.dm b/code/modules/random_map/drop/drop_types.dm index b42d908acd5..182f6c3772c 100644 --- a/code/modules/random_map/drop/drop_types.dm +++ b/code/modules/random_map/drop/drop_types.dm @@ -31,9 +31,9 @@ GLOBAL_LIST_INIT_TYPED(supply_drop, /datum/supply_drop_loot, null) /datum/supply_drop_loot/lasers/New() ..() contents = list( - /obj/item/gun/energy/laser, - /obj/item/gun/energy/laser, - /obj/item/gun/energy/sniperrifle, + /obj/item/gun/energy/rifle/laser, + /obj/item/gun/energy/rifle/laser, + /obj/item/gun/energy/rifle/laser/sniper, /obj/item/gun/energy/rifle/ionrifle) /datum/supply_drop_loot/ballistics diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 3e7c0dc357e..5ffd9f589b8 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -261,7 +261,7 @@ /obj/item/reagent_containers/spray/chemsprayer/xenobiology name = "xenoblaster" desc = "A child's plastic watergun repurposed for the use in pacifying slimes. Has an adjustable nozzle that controls precision as well as strength." - icon = 'icons/obj/guns/xenoblaster.dmi' + icon = 'icons/obj/guns/faction/toy/xenoblaster.dmi' icon_state = "xenoblaster" item_state = "xenoblaster" contained_sprite = TRUE diff --git a/config/example/custom_items.json b/config/example/custom_items.json index 8184d32b8f6..81ab8a396be 100644 --- a/config/example/custom_items.json +++ b/config/example/custom_items.json @@ -28,7 +28,7 @@ { "ckey": "arrow768", "character_name": "John Doe", - "item_path": "/obj/item/gun/energy/lawgiver", + "item_path": "/obj/item/gun/energy/acp", "item_name": "Executioner", "item_desc": "When you really need to motivate your crew." } diff --git a/html/changelogs/GeneralCamo - Gun Organization.yml b/html/changelogs/GeneralCamo - Gun Organization.yml new file mode 100644 index 00000000000..c69c64bce50 --- /dev/null +++ b/html/changelogs/GeneralCamo - Gun Organization.yml @@ -0,0 +1,63 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: GeneralCamo + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - code_imp: "Repathed, reorganized, and cleaned up the guns." + - refactor: "Removed redundant guns, and marked abstract weapons as such." + - rscadd: "Fake guns now use new sprites, and updated code." + - rscadd: "All guns are now referred to by their model, in addition to a basic descriptor." + - rscdel: "Removed the spike thrower, sonic gun, and phoron pistol." + - qol: "Retooled a few existing gun sprites to better match their intended descriptions." diff --git a/icons/obj/bang_flag.dmi b/icons/obj/bang_flag.dmi index 9cdd6fe026006d3849a4d458b61c93a758b5e0c8..00c45eae37f55a202fe7105e3e0a84b1ee08ebdb 100644 GIT binary patch delta 693 zcmV;m0!saW0`CQXiBL{Q4GJ0x0000DNk~Le0002M0002M2m=5B0A&K4H2?qrMNmvs zMZmzoYa=P9A}D2OCssKgGaL!e&r8hAO2x%T*Vj(aG&IFAG1}Ts(ls^G(oE3MOWoa2 z)ipKY;ZfH%Hss_}*)}%W*-q4=EL;Ep00DGTPE!Ct=GbNg0001@kxfW{Nr{UyC9|j) z$TZ~QOe;#vO@*-G3X&4@(&N)|64P<0v;YdH<|I}E*#>%sI>cZjAZdXW15M7!&o98? zg7~7;avZKOM|Op=4t7kO>p&RU9m)!>elFm!1pusWRm!QUtvLVy0jfzvK~#90?cM8c zft z?p!wTShUOf{ohLXznRN^yPYn@8Kp=lMM5bON|m6vZvX%Q0001g004maDlxyVL_#GJ zDv?l$gi0mUqJdf@)FPo43AIS5RRRD200000008f&=I`%`k6wz)`FrZ|o7K8muZ(!R z={Btq@3+miH{;#Tj?44SxYX{Oz16_s*c}f>{B&;4Co|r)cHBNcSift`D?Aiv7I3*X z*NYkNKCJlc=5BC*aiI++Pc;Yt00000fPW`+KL1>NzV(I0=lhY?2h`|J&FAM{A5iNP za(FuTd|$0EsP&29`Mf$`U7+CMZSn;w$rq?3U!anFfdBvi0001pEXw>|><=XN7ZUpu z$^C;O%`(O6-a_jC0{{R3000000K}xm?`pUxt!Ce9G%gERLtq!mDzg&9aThNK?{Qv3lvA+84w9MIL({r{ig zzp?TE|7poLGEV@d7)yfuf*Bm1-ADs+awj%>WNT^~>f74ssvE|3b{ng1ULm28cH-#F zuqiWUb0unP@A$Q|p_h$eTd4FLXI|bIpe8j>7sn8diOC5Ptj;1FTwDvdG_eukTAW;zSx}OhpU1#ZF(){zps4iw zm*9erU!Q1s>uQ}lb3S-OsKG_!2aj~l`)HnIDC+6mVPPC(eA(DbVa}sTM<#_R1h3q& zWx)cCtvf9Cdvtait8QK)p^l9Eb=()<+JE*vDr)%WF ztLItY_%lQ}y8lh^Umpl`%}P%f$B>BDw>J#=nhkhZFDz-=Td41FmwU?-CLWmu-scW| z<#uw+Ra7f#iTEci5O&5tVPlISL%q)Dy&4Z5)mFdbTvNPGgW-WlXjuD&(9+$E$?p1V zyt6kZ*NX!Uw{ZAg8qZx@y6A`GLr1QPeDT^<>8dK+K#7j0FII6Y$eXTu-hNx?LkKHN zRGeca(*x^a~OlAPSrBZ`Xdzf_~Ev0pt%g5u6{1- HoD!M8S36F)B(tE;P%lanVWCnF;x7Y_#r2nZV+8*y=Q zJ3BjXZ*OX9YIt~fb8~ZlQ!i*}W?5NTiima5fKp=6Aup! z3vF#}CL|stA{!ziB1lL`5DW<&8yXQ25C#SYH8nLVCm$IU4-^y>5f2U*5D60v2Z3En zwg3PC0d!JMQvg8b*k%9#0Caj(Sad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1ygzQ!15cTS+U;%GfaGvsrDyG#5zX?yB1BudA{$(jQ~2;NXDr;u1I@ zlfiOP!8j)?3a-eKBq{UDx?vbuMCjKqXa&FEOOW+KhT^6S`|F0L$p{4ptgONV(14k$ zQc7t7k1HF4IbcPngx?a6f1wS=z)k(@I6@H*sOa;>dbk65i|6|np<;b z5e-5RVc&yoi?XxZXpRmx8?cp3i8_6(x=SFWfAKs4d;6_ct8Lqsbx=F>R*oG8u_fy6 zi~H~uE@0SBuakH_z<8J-8!zMB109t%l zJFqOsJ}36E)fWJ#eMEhL3{FJKL0Iu9bc=uK&TyQIbI%q(QVzn3 zy*xcS=%I|zy=RLLlmm7#10=k^dA9g*HoQ19kua002ovPDHLkV1g%C*e?J8 diff --git a/icons/obj/guns/colt.dmi b/icons/obj/guns/colt.dmi deleted file mode 100644 index 63370405e63137eaef50080200f367e7a927a9c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)?AkJ;1=g5`{pX00001 zbW%=J06^y0W&i*HdU{k?bVOxyV{&P5bZKvH004NLQ&w5~VCYCj+6*1dqBRoa&SnT>V_Yo&f-ctUIxo?#P+|00FB>L_t(&f$f;x zmV+P+giYd#m2ThvaW{&mTa|zy>&?z*FRY`?1b@y6T?YUF0pi0U=2Kz=ggO!-BI%WR zhlH6$cq8(BY%4Z`g{3Fm_)Fpb4Q<4Q4^gOL0$R3Sl%C#5Ql!3F0OH_5OJ(!mD@n28 z40OU#PU~0E8hLPT42AJ${ipN>33zx6gIfzdj-1mQBzO#3Ba`0N=)~sq%Q!7?7~BzE2r=APhS{dF3{Oy=k!Q|?HtViQknDyhZ(NackcSzCYYXj=-W;Z z3bY^YoSsWCJ-tuPKYO83H)KtG#H(J=Mn)jx{)BVXRv-;|K<|| z00000005|=w7G6hqPaFZ|KcTq6#M4-Q!%pnSK*34U4qH-pNjnFbJG*%;|bO__voem z>Hd2=`n*!`sz}hte_cPwCOC{|w)w%okbHtOnKD8qLGe}Q1$8e#)7J(7000000B{et zEE^=+eE+&5fZgYpb>LSL7)t|p_%F?OJV8|l+%UmS{%eXzg1Qd8K0#!0;6{IR?g0EV ZegGA^4#f18x9R`@002ovPDHLkV1ft3FlGP% diff --git a/icons/obj/guns/caplaser.dmi b/icons/obj/guns/faction/antique/caplaser.dmi similarity index 100% rename from icons/obj/guns/caplaser.dmi rename to icons/obj/guns/faction/antique/caplaser.dmi diff --git a/icons/obj/guns/deagle.dmi b/icons/obj/guns/faction/antique/deagle.dmi similarity index 100% rename from icons/obj/guns/deagle.dmi rename to icons/obj/guns/faction/antique/deagle.dmi diff --git a/icons/obj/guns/detective.dmi b/icons/obj/guns/faction/antique/detective.dmi similarity index 100% rename from icons/obj/guns/detective.dmi rename to icons/obj/guns/faction/antique/detective.dmi diff --git a/icons/obj/guns/retro.dmi b/icons/obj/guns/faction/antique/retro.dmi similarity index 100% rename from icons/obj/guns/retro.dmi rename to icons/obj/guns/faction/antique/retro.dmi diff --git a/icons/obj/guns/springfield.dmi b/icons/obj/guns/faction/antique/springfield.dmi similarity index 100% rename from icons/obj/guns/springfield.dmi rename to icons/obj/guns/faction/antique/springfield.dmi diff --git a/icons/obj/guns/tommygun.dmi b/icons/obj/guns/faction/antique/tommygun.dmi similarity index 100% rename from icons/obj/guns/tommygun.dmi rename to icons/obj/guns/faction/antique/tommygun.dmi diff --git a/icons/obj/guns/c20r.dmi b/icons/obj/guns/faction/caisc/ca-25e.dmi similarity index 100% rename from icons/obj/guns/c20r.dmi rename to icons/obj/guns/faction/caisc/ca-25e.dmi diff --git a/icons/obj/guns/l6.dmi b/icons/obj/guns/faction/caisc/ca-75e.dmi similarity index 100% rename from icons/obj/guns/l6.dmi rename to icons/obj/guns/faction/caisc/ca-75e.dmi diff --git a/icons/obj/guns/coltsuper.dmi b/icons/obj/guns/faction/caisc/ornamental_pattern_5.dmi similarity index 100% rename from icons/obj/guns/coltsuper.dmi rename to icons/obj/guns/faction/caisc/ornamental_pattern_5.dmi diff --git a/icons/obj/guns/faction/caisc/pattern_5.dmi b/icons/obj/guns/faction/caisc/pattern_5.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5077bba73d9053050803b38a03c2c2fcd82e7e62 GIT binary patch literal 722 zcmV;@0xkWCP)?AkJ;1=g)%SrW00001bW%=J06^y0W&i*H zdU{k?bVOxyV{&P5bZKvH004NLQ&w5~VCY zCj+6*1dqBRoa&SnT>V_Yo&f-ctUIxo?#P+|00GuXL_t(oh3%F*a)U4!gayo?)-<_1fKm7ayUA?r2oa5 zP1GwtG0z+&Ska8+<(3e^WP&nJ63SSnHe6U4_#%(vhv%oVVTCv^ibuxQjVdxL2Tm#7 z%A7Q8ke_8)E@jau8e17e${;QaLZy@&@JARMX1_BuYGRL2l>^;cnu3KPFtTWY9rOB-B0lG-Xf_ZMB1f zjDLb}mk2vlY5ToYH!yV{0M*C#NBE9Ev?FQ>wAYmrI{Nx5+(me;jRdv^sEZJuDq}ZO ziw-p>G(n@_y5HyqOkZ*)#e_i@-3)-#H*5FDcQ_ml$8TcyQvfFDZ*Bkpc$}S)&kBPu z493sRQxv^!;@{&gLm3|CD@bQE8|WOgW#Zefy2CEYaEHK`kMEZR67q9(sT*EiYj~lt z^c?t!=TQu7BSU@ z*O|<_sKqqfhd3&hN}>Xo!I1{JIkwg6J2C%##Ym_n%AHti{@bz-Yj0v#+}f>p$g8GY zzWWCLi;@*e!4sAM00ZMmL_t(|ob8(nQ>!o(gn8If6s*?Ns%R;#_y7OJo6zDNG08~| zLGZetW2c49W=S8TnQasS00000%#m1kFiFx`DdRXzl30?)eUf-aN|imny1Gi@WU*{n zq-mO@>Ly91R%Q!DmPui@?5-tUwnrCBb&Z|Rw92SUpQ$^G^FpU-mVFq^M0vR;m0zA( zB*~X2WG2dP@zqb3N|o-tI7F!)yDKAO&a+mkvP^2^3)d{ggNUUsfh ziOtK|Q?^=L(2J0ooTF@KcUDr`QK2u2D-Mg#)ajH9>O(r=f&u^l00000003YDR=M$1 zz6$L)#QWMfWR+k0nh}nJyl z_kHav!f_1ceQS9X!ZEBj0000000000@GDt=r@`9#(8}GJd-=P`^M{8#iiB_++6_0H zZ+)a=zPU`$*Y@X*Y;)gBw%hIIakty7*LnUV3W<2uX`jEkY}I(ZR@$gL`Fg$C?H)IB zlD@V#w>o5;yW>R-s8+94Rf)1J#G6j^=D5^nZBe#6U$3i5g?ypsR`-o_e?q2|w|j*? z=-wl!a`|WKICo^68vpRx)ei$R!6zDP?ut8$m%G&7V1(A4Okr= zPz!Y^hK8$-4y=U|#ZX$|I{%n;OBaRf{9&q_{G_Ok0ssI20000003)EOc7|`7dONDt zW^QYGD!PNFx~Rs}+8*`nk6xOdg?P#>O;1JJ_WYX1&@`pnqu%||w&^LVs-l~o8ca=7 z=k}<3f3$6Ss;Z}B)AKW?rm0_h6#Y>E0002A)T4~@cO^&sl%RF(@lB-UgA}k}{F%3>a*zT5007|s!v3!i zXIFt9!`iF(DM5vGlk&jXrXt7Gb>Z(y{1-e*Q09sboHWcB8UzhZ^Fx9*M=B_1E0t0( z-b_d8sXzICNv~-f-u2!ePtB3~!1oO*pMZMk7Z7!})NWaQS020!)y;_;$Kp!{6=ihr zF;q8G1dRk^MMrq*>5Wpsn3dY1vb0001-_zO$TPPxxBz!d-h002ovPDHLkV1jnCc$WYG literal 0 HcmV?d00001 diff --git a/icons/obj/guns/overunder.dmi b/icons/obj/guns/faction/frontier/overunder.dmi similarity index 100% rename from icons/obj/guns/overunder.dmi rename to icons/obj/guns/faction/frontier/overunder.dmi diff --git a/icons/obj/guns/pockrifle.dmi b/icons/obj/guns/faction/frontier/pockrifle.dmi similarity index 100% rename from icons/obj/guns/pockrifle.dmi rename to icons/obj/guns/faction/frontier/pockrifle.dmi diff --git a/icons/obj/guns/shorty.dmi b/icons/obj/guns/faction/frontier/shorty.dmi similarity index 100% rename from icons/obj/guns/shorty.dmi rename to icons/obj/guns/faction/frontier/shorty.dmi diff --git a/icons/obj/guns/shotgun.dmi b/icons/obj/guns/faction/frontier/shotgun.dmi similarity index 100% rename from icons/obj/guns/shotgun.dmi rename to icons/obj/guns/faction/frontier/shotgun.dmi diff --git a/icons/obj/guns/zipgun.dmi b/icons/obj/guns/faction/frontier/zipgun.dmi similarity index 100% rename from icons/obj/guns/zipgun.dmi rename to icons/obj/guns/faction/frontier/zipgun.dmi diff --git a/icons/obj/guns/galatea_laser.dmi b/icons/obj/guns/faction/galatean_technocracy/galatea_laser.dmi similarity index 100% rename from icons/obj/guns/galatea_laser.dmi rename to icons/obj/guns/faction/galatean_technocracy/galatea_laser.dmi diff --git a/icons/obj/guns/galatea_nitro.dmi b/icons/obj/guns/faction/galatean_technocracy/galatea_nitro.dmi similarity index 100% rename from icons/obj/guns/galatea_nitro.dmi rename to icons/obj/guns/faction/galatean_technocracy/galatea_nitro.dmi diff --git a/icons/obj/guns/goldendeep_ornatepistol.dmi b/icons/obj/guns/faction/golden_deep/goldendeep_ornatepistol.dmi similarity index 100% rename from icons/obj/guns/goldendeep_ornatepistol.dmi rename to icons/obj/guns/faction/golden_deep/goldendeep_ornatepistol.dmi diff --git a/icons/obj/guns/cshotgun.dmi b/icons/obj/guns/faction/hephaestus_industries/cshotgun.dmi similarity index 100% rename from icons/obj/guns/cshotgun.dmi rename to icons/obj/guns/faction/hephaestus_industries/cshotgun.dmi diff --git a/icons/obj/guns/himeo_blaster.dmi b/icons/obj/guns/faction/himeo_free_consortium/himeo_blaster.dmi similarity index 100% rename from icons/obj/guns/himeo_blaster.dmi rename to icons/obj/guns/faction/himeo_free_consortium/himeo_blaster.dmi diff --git a/icons/obj/guns/himeo_pistol.dmi b/icons/obj/guns/faction/himeo_free_consortium/himeo_pistol.dmi similarity index 100% rename from icons/obj/guns/himeo_pistol.dmi rename to icons/obj/guns/faction/himeo_free_consortium/himeo_pistol.dmi diff --git a/icons/obj/guns/ipistol.dmi b/icons/obj/guns/faction/improvised/ipistol.dmi similarity index 100% rename from icons/obj/guns/ipistol.dmi rename to icons/obj/guns/faction/improvised/ipistol.dmi diff --git a/icons/obj/guns/ishotgun.dmi b/icons/obj/guns/faction/improvised/ishotgun.dmi similarity index 100% rename from icons/obj/guns/ishotgun.dmi rename to icons/obj/guns/faction/improvised/ishotgun.dmi diff --git a/icons/obj/guns/ismg.dmi b/icons/obj/guns/faction/improvised/ismg.dmi similarity index 100% rename from icons/obj/guns/ismg.dmi rename to icons/obj/guns/faction/improvised/ismg.dmi diff --git a/icons/obj/guns/hegemony_pistol.dmi b/icons/obj/guns/faction/izweski_hegemony/hegemony_pistol.dmi similarity index 100% rename from icons/obj/guns/hegemony_pistol.dmi rename to icons/obj/guns/faction/izweski_hegemony/hegemony_pistol.dmi diff --git a/icons/obj/guns/hegemony_rifle.dmi b/icons/obj/guns/faction/izweski_hegemony/hegemony_rifle.dmi similarity index 100% rename from icons/obj/guns/hegemony_rifle.dmi rename to icons/obj/guns/faction/izweski_hegemony/hegemony_rifle.dmi diff --git a/icons/obj/guns/unathi_ballistics.dmi b/icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi similarity index 100% rename from icons/obj/guns/unathi_ballistics.dmi rename to icons/obj/guns/faction/izweski_hegemony/unathi_ballistics.dmi diff --git a/icons/obj/guns/unathi_slugger.dmi b/icons/obj/guns/faction/izweski_hegemony/unathi_slugger.dmi similarity index 100% rename from icons/obj/guns/unathi_slugger.dmi rename to icons/obj/guns/faction/izweski_hegemony/unathi_slugger.dmi diff --git a/icons/obj/guns/konyang_weapons.dmi b/icons/obj/guns/faction/konyang/konyang_weapons.dmi similarity index 100% rename from icons/obj/guns/konyang_weapons.dmi rename to icons/obj/guns/faction/konyang/konyang_weapons.dmi diff --git a/icons/obj/guns/blaster_carbine.dmi b/icons/obj/guns/faction/nanotrasen_corporation/blaster_carbine.dmi similarity index 100% rename from icons/obj/guns/blaster_carbine.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/blaster_carbine.dmi diff --git a/icons/obj/guns/blaster_pistol.dmi b/icons/obj/guns/faction/nanotrasen_corporation/blaster_pistol.dmi similarity index 100% rename from icons/obj/guns/blaster_pistol.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/blaster_pistol.dmi diff --git a/icons/obj/guns/blaster_revolver.dmi b/icons/obj/guns/faction/nanotrasen_corporation/blaster_revolver.dmi similarity index 100% rename from icons/obj/guns/blaster_revolver.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/blaster_revolver.dmi diff --git a/icons/obj/guns/blaster_rifle.dmi b/icons/obj/guns/faction/nanotrasen_corporation/blaster_rifle.dmi similarity index 100% rename from icons/obj/guns/blaster_rifle.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/blaster_rifle.dmi diff --git a/icons/obj/guns/burst_rifle.dmi b/icons/obj/guns/faction/nanotrasen_corporation/burst_rifle.dmi similarity index 100% rename from icons/obj/guns/burst_rifle.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/burst_rifle.dmi diff --git a/icons/obj/guns/detgun.dmi b/icons/obj/guns/faction/nanotrasen_corporation/detgun.dmi similarity index 100% rename from icons/obj/guns/detgun.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/detgun.dmi diff --git a/icons/obj/guns/ecarbine.dmi b/icons/obj/guns/faction/nanotrasen_corporation/ecarbine.dmi similarity index 100% rename from icons/obj/guns/ecarbine.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/ecarbine.dmi diff --git a/icons/obj/guns/epistol.dmi b/icons/obj/guns/faction/nanotrasen_corporation/epistol.dmi similarity index 100% rename from icons/obj/guns/epistol.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/epistol.dmi diff --git a/icons/obj/guns/erifle.dmi b/icons/obj/guns/faction/nanotrasen_corporation/erifle.dmi similarity index 100% rename from icons/obj/guns/erifle.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/erifle.dmi diff --git a/icons/obj/guns/leyon.dmi b/icons/obj/guns/faction/nanotrasen_corporation/everyman.dmi similarity index 100% rename from icons/obj/guns/leyon.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/everyman.dmi diff --git a/icons/obj/guns/gauss_thumper.dmi b/icons/obj/guns/faction/nanotrasen_corporation/gauss_thumper.dmi similarity index 100% rename from icons/obj/guns/gauss_thumper.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/gauss_thumper.dmi diff --git a/icons/obj/guns/ionrifle.dmi b/icons/obj/guns/faction/nanotrasen_corporation/ionrifle.dmi similarity index 100% rename from icons/obj/guns/ionrifle.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/ionrifle.dmi diff --git a/icons/obj/guns/lasercannon.dmi b/icons/obj/guns/faction/nanotrasen_corporation/lasercannon.dmi similarity index 100% rename from icons/obj/guns/lasercannon.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/lasercannon.dmi diff --git a/icons/obj/guns/laserrifle.dmi b/icons/obj/guns/faction/nanotrasen_corporation/laserrifle.dmi similarity index 100% rename from icons/obj/guns/laserrifle.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/laserrifle.dmi diff --git a/icons/obj/guns/lasershotgun.dmi b/icons/obj/guns/faction/nanotrasen_corporation/lasershotgun.dmi similarity index 100% rename from icons/obj/guns/lasershotgun.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/lasershotgun.dmi diff --git a/icons/obj/guns/sniper.dmi b/icons/obj/guns/faction/nanotrasen_corporation/nt_laser_sniper.dmi similarity index 100% rename from icons/obj/guns/sniper.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/nt_laser_sniper.dmi diff --git a/icons/obj/guns/pestishock.dmi b/icons/obj/guns/faction/nanotrasen_corporation/pestishock.dmi similarity index 100% rename from icons/obj/guns/pestishock.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/pestishock.dmi diff --git a/icons/obj/guns/pulse.dmi b/icons/obj/guns/faction/nanotrasen_corporation/pulse.dmi similarity index 100% rename from icons/obj/guns/pulse.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/pulse.dmi diff --git a/icons/obj/guns/pulse_carbine.dmi b/icons/obj/guns/faction/nanotrasen_corporation/pulse_carbine.dmi similarity index 100% rename from icons/obj/guns/pulse_carbine.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/pulse_carbine.dmi diff --git a/icons/obj/guns/pulse_pistol.dmi b/icons/obj/guns/faction/nanotrasen_corporation/pulse_pistol.dmi similarity index 100% rename from icons/obj/guns/pulse_pistol.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/pulse_pistol.dmi diff --git a/icons/obj/guns/secgun.dmi b/icons/obj/guns/faction/nanotrasen_corporation/secgun.dmi similarity index 100% rename from icons/obj/guns/secgun.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/secgun.dmi diff --git a/icons/obj/guns/secgun_wood.dmi b/icons/obj/guns/faction/nanotrasen_corporation/secgun_wood.dmi similarity index 100% rename from icons/obj/guns/secgun_wood.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/secgun_wood.dmi diff --git a/icons/obj/guns/taser.dmi b/icons/obj/guns/faction/nanotrasen_corporation/stunpistol.dmi similarity index 100% rename from icons/obj/guns/taser.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/stunpistol.dmi diff --git a/icons/obj/guns/stunrevolver.dmi b/icons/obj/guns/faction/nanotrasen_corporation/stunrevolver.dmi similarity index 100% rename from icons/obj/guns/stunrevolver.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/stunrevolver.dmi diff --git a/icons/obj/guns/c05r.dmi b/icons/obj/guns/faction/nanotrasen_corporation/tanto.dmi similarity index 100% rename from icons/obj/guns/c05r.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/tanto.dmi diff --git a/icons/obj/guns/x9.dmi b/icons/obj/guns/faction/nanotrasen_corporation/x9.dmi similarity index 100% rename from icons/obj/guns/x9.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/x9.dmi diff --git a/icons/obj/guns/xenogun.dmi b/icons/obj/guns/faction/nanotrasen_corporation/xenogun.dmi similarity index 100% rename from icons/obj/guns/xenogun.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/xenogun.dmi diff --git a/icons/obj/guns/xray.dmi b/icons/obj/guns/faction/nanotrasen_corporation/xray.dmi similarity index 100% rename from icons/obj/guns/xray.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/xray.dmi diff --git a/icons/obj/guns/xrifle.dmi b/icons/obj/guns/faction/nanotrasen_corporation/xrifle.dmi similarity index 100% rename from icons/obj/guns/xrifle.dmi rename to icons/obj/guns/faction/nanotrasen_corporation/xrifle.dmi diff --git a/icons/obj/guns/adhomian_revolver.dmi b/icons/obj/guns/faction/nka/adhomian_revolver.dmi similarity index 100% rename from icons/obj/guns/adhomian_revolver.dmi rename to icons/obj/guns/faction/nka/adhomian_revolver.dmi diff --git a/icons/obj/guns/cannon.dmi b/icons/obj/guns/faction/nka/cannon.dmi similarity index 100% rename from icons/obj/guns/cannon.dmi rename to icons/obj/guns/faction/nka/cannon.dmi diff --git a/icons/obj/guns/nralakkpistol.dmi b/icons/obj/guns/faction/nralakk_federation/nralakkpistol.dmi similarity index 100% rename from icons/obj/guns/nralakkpistol.dmi rename to icons/obj/guns/faction/nralakk_federation/nralakkpistol.dmi diff --git a/icons/obj/guns/nralakksmg.dmi b/icons/obj/guns/faction/nralakk_federation/nralakksmg.dmi similarity index 100% rename from icons/obj/guns/nralakksmg.dmi rename to icons/obj/guns/faction/nralakk_federation/nralakksmg.dmi diff --git a/icons/obj/guns/adhomian_pistol.dmi b/icons/obj/guns/faction/pra/adhomian_pistol.dmi similarity index 100% rename from icons/obj/guns/adhomian_pistol.dmi rename to icons/obj/guns/faction/pra/adhomian_pistol.dmi diff --git a/icons/obj/guns/faction/pra/bolt.dmi b/icons/obj/guns/faction/pra/bolt.dmi new file mode 100644 index 0000000000000000000000000000000000000000..a14c4790a933afc0533104f3e14dea0bc7999a62 GIT binary patch literal 1577 zcmV+^2G;qBP)fFDZ*Bkpc$`yKaB_9`^iy#0_2eo` zEh^5;&r`5fFwryM;w;ZhDainFjJP;6QZv&tN`M?=Bd+3-#FA7XQz#Q*%;MQ%JN0u8lO?;*%0d zQeIq)OS!UwtDg%v8UPb0dLgB;>kj|`1pY}xK~#90?VOF0qaYB3jUkx$@B6>(0&Yy) zAkzc5CcE?1)uk?u<20Z-X{9IxK@bE%5Cq|~IF;vfc`ogrXUumgS(VCFUj*glR9?!{ zxxB0}-z6kfx;jqN^>(@4>f7zsTpRmQH>a6%LN6Ib6{0DlY*T$*H_f$ZjE1tQ?LX`0 zdTko}rJt6O-*%GL3_0C=YeN>r*6z8?*wFQi5B-^G!X&w$kenZphX*Z>X^^) zXuH!JMG>d6>g>K`Sk+RRkQTin+7q-hUDy&97;jH*x2l-i=NOv#F7O%oBb)tBil`oc67 z=^00xhKlj_WsVj-4sTy(Y0=|A`ce=CK@bE%5Cq{}In*}V1(kcU=5SP1?WT!N+pa#4 z`*(7#U0KU$H%U}pt#xbYErS8Mr>Fb_UFohzwu`dpQ z&GM}~)ctNlWt(#Wn>M2S1EUDa^9*gXEM{1sx!jgn5%2K9d1;rEm(N1lERY$dmcN(; z{Da;eHpVieZHpF}#Lw@W#Crz^SVuoA@D`Bdh5**lzCYeR{~*x~`CaSC!>fOg?1pSx zX1}87)j!DKhHP18`OUDc0@nUP4mZSaneAYP{USb_<+IH&FCT7(34$O9f*=TjAP9#N zdrP_L@{GRi#L=Aet&5)>CDGtj$P?+ zX8TG=5pa2I!oGV7Sa$MB`Wfszq>W%(*kg9g=H2p_#`Po`^{(6eN?6F{8K1W~F@c%K zb+FUF6|BA`KYauGOC2H!a(R{@WHR;900BwVn^0SOc0mhCZ4IITuqPF?kch&9dBZ!# z7)*JB|K8IUf*=TjAPBC?;iA2Ik$rp&zoR%*xPn=W0e;(y>nz@S9Z8 zl8(J)BFgjd_LBJHUUkGiee|t*9(wL#IEAVxNe3=IWoV-$1!r8_gC&`P$A0=5=q3I$ z)p=nqZ3PazLp8A_5i|X575%VyE_jmE|CPiVczIl-2Rli^Q|5Aw?&%^Vh2NoRHA7NX z*XSF*q>fsJOjo$ckl8g_Wrb_#e)>l*=nDV&-o-WI4m+}wSPLHR;u`U;wf0ORV>oW^ z-mVdlj_xF$q&I**m3S*{z5$BjyQ z2Rj#Wt`S-%;PJq5uo)EP8liO-fFW`RkObaQMOiFxot)6mkwkes3sf9z21U6>c%AfA z`yDb4c21%!7PwB@<5{5MU^6JrH3I8&^I4dBa|4>Qmw2ubUZ=~7g(6RWGY1~7iBacl zbWl_64n$ImO5$29j5_m60#BwLB`G*`2TAOK2VKREl?25)*piTS(ySz6O3j)( z$br}C0A{8ONRl;!urfKW(E?VdgPxe4%b=^(6{v~h8ZCfzx=?WCCP)*uXj0VVJ!6F_ zjfMhY;Mo*4c@Njg3Z-*lBX4g>8J7&RCleC)HUkeyh2`3P;N=^4@PDskT%*6XzONt% bf>3+`fATkuB3~+@00000NkvXXu0mjff=}0g literal 0 HcmV?d00001 diff --git a/icons/obj/guns/bolt_scope.dmi b/icons/obj/guns/faction/pra/bolt_scope.dmi similarity index 100% rename from icons/obj/guns/bolt_scope.dmi rename to icons/obj/guns/faction/pra/bolt_scope.dmi diff --git a/icons/obj/guns/tesla.dmi b/icons/obj/guns/faction/pra/elektrotek.dmi similarity index 100% rename from icons/obj/guns/tesla.dmi rename to icons/obj/guns/faction/pra/elektrotek.dmi diff --git a/icons/obj/guns/dragunov.dmi b/icons/obj/guns/faction/pra/hotaki.dmi similarity index 100% rename from icons/obj/guns/dragunov.dmi rename to icons/obj/guns/faction/pra/hotaki.dmi diff --git a/icons/obj/guns/icelance.dmi b/icons/obj/guns/faction/pra/icelance.dmi similarity index 100% rename from icons/obj/guns/icelance.dmi rename to icons/obj/guns/faction/pra/icelance.dmi diff --git a/icons/obj/guns/blockbuster.dmi b/icons/obj/guns/faction/pra/maidhaztha.dmi similarity index 100% rename from icons/obj/guns/blockbuster.dmi rename to icons/obj/guns/faction/pra/maidhaztha.dmi diff --git a/icons/obj/guns/adhomian_heavy_pistol.dmi b/icons/obj/guns/faction/pra/naltor_heavy_pistol.dmi similarity index 100% rename from icons/obj/guns/adhomian_heavy_pistol.dmi rename to icons/obj/guns/faction/pra/naltor_heavy_pistol.dmi diff --git a/icons/obj/guns/sol_pistol.dmi b/icons/obj/guns/faction/sol_alliance/sol_pistol.dmi similarity index 100% rename from icons/obj/guns/sol_pistol.dmi rename to icons/obj/guns/faction/sol_alliance/sol_pistol.dmi diff --git a/icons/obj/guns/sol_rifle.dmi b/icons/obj/guns/faction/sol_alliance/sol_rifle.dmi similarity index 100% rename from icons/obj/guns/sol_rifle.dmi rename to icons/obj/guns/faction/sol_alliance/sol_rifle.dmi diff --git a/icons/obj/guns/sol_shotgun.dmi b/icons/obj/guns/faction/sol_alliance/sol_shotgun.dmi similarity index 100% rename from icons/obj/guns/sol_shotgun.dmi rename to icons/obj/guns/faction/sol_alliance/sol_shotgun.dmi diff --git a/icons/obj/guns/sol_smg.dmi b/icons/obj/guns/faction/sol_alliance/sol_smg.dmi similarity index 100% rename from icons/obj/guns/sol_smg.dmi rename to icons/obj/guns/faction/sol_alliance/sol_smg.dmi diff --git a/icons/obj/guns/lawgiver.dmi b/icons/obj/guns/faction/stellar_corporate_conglomerate/combipistol.dmi similarity index 100% rename from icons/obj/guns/lawgiver.dmi rename to icons/obj/guns/faction/stellar_corporate_conglomerate/combipistol.dmi diff --git a/icons/obj/guns/erepeater.dmi b/icons/obj/guns/faction/stellar_corporate_conglomerate/erepeater.dmi similarity index 100% rename from icons/obj/guns/erepeater.dmi rename to icons/obj/guns/faction/stellar_corporate_conglomerate/erepeater.dmi diff --git a/icons/obj/guns/peac.dmi b/icons/obj/guns/faction/stellar_corporate_conglomerate/peac.dmi similarity index 100% rename from icons/obj/guns/peac.dmi rename to icons/obj/guns/faction/stellar_corporate_conglomerate/peac.dmi diff --git a/icons/obj/guns/sccpistol.dmi b/icons/obj/guns/faction/stellar_corporate_conglomerate/sccpistol.dmi similarity index 100% rename from icons/obj/guns/sccpistol.dmi rename to icons/obj/guns/faction/stellar_corporate_conglomerate/sccpistol.dmi diff --git a/icons/obj/guns/bluetag.dmi b/icons/obj/guns/faction/toy/bluetag.dmi similarity index 100% rename from icons/obj/guns/bluetag.dmi rename to icons/obj/guns/faction/toy/bluetag.dmi diff --git a/icons/obj/guns/redtag.dmi b/icons/obj/guns/faction/toy/redtag.dmi similarity index 100% rename from icons/obj/guns/redtag.dmi rename to icons/obj/guns/faction/toy/redtag.dmi diff --git a/icons/obj/guns/xenoblaster.dmi b/icons/obj/guns/faction/toy/xenoblaster.dmi similarity index 100% rename from icons/obj/guns/xenoblaster.dmi rename to icons/obj/guns/faction/toy/xenoblaster.dmi diff --git a/icons/obj/guns/gatling.dmi b/icons/obj/guns/faction/vaurca_hives/gatling_laser.dmi similarity index 100% rename from icons/obj/guns/gatling.dmi rename to icons/obj/guns/faction/vaurca_hives/gatling_laser.dmi diff --git a/icons/obj/guns/megaglaive.dmi b/icons/obj/guns/faction/vaurca_hives/megaglaive.dmi similarity index 100% rename from icons/obj/guns/megaglaive.dmi rename to icons/obj/guns/faction/vaurca_hives/megaglaive.dmi diff --git a/icons/obj/guns/blaster.dmi b/icons/obj/guns/faction/vaurca_hives/thermic_blaster.dmi similarity index 100% rename from icons/obj/guns/blaster.dmi rename to icons/obj/guns/faction/vaurca_hives/thermic_blaster.dmi diff --git a/icons/obj/guns/assaultshotgun.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/assaultshotgun.dmi similarity index 100% rename from icons/obj/guns/assaultshotgun.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/assaultshotgun.dmi diff --git a/icons/obj/guns/blaster_ar.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/blaster_ar.dmi similarity index 100% rename from icons/obj/guns/blaster_ar.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/blaster_ar.dmi diff --git a/icons/obj/guns/captain_revolver.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/captain_revolver.dmi similarity index 100% rename from icons/obj/guns/captain_revolver.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/captain_revolver.dmi diff --git a/icons/obj/guns/carbine.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/carbine.dmi similarity index 100% rename from icons/obj/guns/carbine.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/carbine.dmi diff --git a/icons/obj/guns/crew_laser.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/crew_laser.dmi similarity index 100% rename from icons/obj/guns/crew_laser.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/crew_laser.dmi diff --git a/icons/obj/guns/crew_rifle.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/crew_rifle.dmi similarity index 100% rename from icons/obj/guns/crew_rifle.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/crew_rifle.dmi diff --git a/icons/obj/guns/faction/zavodskoi_interstellar/pistol.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/pistol.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1b7e42f4a2429ea8d3ff9cb8c5bdf6d653fa7a4c GIT binary patch literal 1070 zcmV+}1kwA6P)V=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5sUWksBtJ)qi!&v&s2C_< z$iV_Y=>-48X00RO^L_t(|ob8*9a;qQ^g#jg+k~HuCwgvUJ zqU_4g8gD!2%S=0Q**y!GbmmZ%0ssI2JlYteb=UWOrzfn{Y|z+%smxX?$`|N=s&7Mi zWBWkYX*Ou*Ug!ZvGubA}Z^!E1FH`5WI%B)()qfXH2UjbY9-wJD4VoEdfabFGPrd{=y)Ol}LB5bfdTWSX5FbsDU zGsjVrS=6Jh#73Gr><=LP}zFBUrHAP=gqgS{Mcca3qC@7Kt@nQD;Yn>cR z>yP6-tWa8?42tACm$-v0vjdOE=E4v({7ssK4T|LZ9S99if82k5FcWZ37fX!G8YT6) zpiF-9Gt7R7-80&QNrPNKE+~_)rrT==HTE;ybkPj%!$51WL7Dtgb~Er_SpzA-24(VV z@H5!T(1SC+lUwu4amPad0000000000004;Cn%lol|4F-IJLkS(RE>Tf8*@8~WYx|b zR-hj)d^S~>%j7n;Ezqj}c=~*oU%{nk;QMzOo$USnR{dGHU(rqUO;{i$)GF#qTPLD~P;*XZvCrpM701pBYj-$NauP!Xno zS8;w2RH);!+=IM|2q9Q?e&7@}Z8~xa4PtcaTW0_O0000000000@YlK8-*0!$+3KhJ z`@DWe>5KjSG6%ji{|)|rd;eU43V%NpP)CmrRCC~fSNZ$tKsr+8z_0UJ2mE}0ztVwU o=kw8%{rz*za`^iI0PvUj0%M;k!`lkCYybcN07*qoM6N<$f`ke2{r~^~ literal 0 HcmV?d00001 diff --git a/icons/obj/guns/revolver.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/revolver.dmi similarity index 100% rename from icons/obj/guns/revolver.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/revolver.dmi diff --git a/icons/obj/guns/tranqsniper.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/tranqsniper.dmi similarity index 100% rename from icons/obj/guns/tranqsniper.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/tranqsniper.dmi diff --git a/icons/obj/guns/w556.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/w556.dmi similarity index 100% rename from icons/obj/guns/w556.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/w556.dmi diff --git a/icons/obj/guns/wt550.dmi b/icons/obj/guns/faction/zavodskoi_interstellar/wt550.dmi similarity index 100% rename from icons/obj/guns/wt550.dmi rename to icons/obj/guns/faction/zavodskoi_interstellar/wt550.dmi diff --git a/icons/obj/guns/leveraction.dmi b/icons/obj/guns/leveraction.dmi deleted file mode 100644 index da4583fb91eafb389f4cfaf6c503881e74f483df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1447 zcmV;Y1z7rtP)C;)gc z0C{1j7zz)f~%hkI7R`p z369L7D6Dq?00bjRL_t(|ob8*9cA_v4h54zX713JSQe2B@_x)dS6VUFdhDki~Z>dU-}6nP!=9-J>w9CQyQ zH&O=cF6XbvCRQiOwD+G2L*pAMVc;`X%J+YaqCsuc`9A8>d|C0&HXG`uh)y0&1Ny1rRi&y z3$iz}0^U25uhMt36vi2CbAL!##p<&timWX2Y-?7)pCDIPu*$_b4xJf!xrH9F-AN23 ziQMIv;_z3=RMeT#Np4dV6^LFPXLOd^kjo16SDBO1Wo}LdE_&_CaW6#x0000000000 z002B1Hg?WT`_e!2;AG}>oNrv6eJ%!gPUrGr3nB40000000000 zfRUpxo^JM{?rCO8Pbt;;P?Gb(E;CD!Q|oPA;b583iMMuj(QB&lp(KqLbzQmAi!$-H zu5h=^sPUn)q9|w|N`cyovhcS4<8GNz<3mX!%Fu`UjoOQ{^|o4uu*}Fk16XF{9{a#R9Nn(_!8-FuB=u?t)3rbS<%`8QUy**=pcgVi)DT%Sx$o~D2<@c0i zz1E1sj+B(U{~Q^wHDa;LiRDBY6~M({tq~7@k_@r`OMLg2sF)1s8OA>sJE~$b00000 z0N}ppCki;TO>~={=O!OdQl_Z zw;UJHlCm<`+a#2mVM_`!#whuHzT7~PeNxJf=@)XCNV`aZUrD5aMA}6PJWHZr_zX4U zD%=y&TTwNEB*##_Gu)t|8%PW@2>uZO008hH`~yM#P|-Pd9!~%O002ovPDHLkV1lF< Bgb)A# diff --git a/icons/obj/guns/moistnugget.dmi b/icons/obj/guns/moistnugget.dmi deleted file mode 100644 index ed17a79327836592ecff72c9c98d1b9dc134e216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1457 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 CAx2LC diff --git a/icons/obj/guns/oldlaser.dmi b/icons/obj/guns/oldlaser.dmi deleted file mode 100644 index 471ab78b6e34136e63a82977a62fe507d2e54668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5432 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 C2adY{ diff --git a/icons/obj/guns/pistol.dmi b/icons/obj/guns/pistol.dmi deleted file mode 100644 index 7cb919f1b9b4bf5004b6d221bc27a4f40f9cb2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1055 zcmV+)1mOFLP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5sUWksBtJ)qi!&v&s2C_< z$iV_Y=>-48X00Q$#L_t(|ob8)|a_S%uMS%npi`M`D+d`tx zpe$JyFnyhSoN31_yLW+TXD*FW0001hHpXZ@jN>@y1#9(Q+}MB-W-Il~Z_xiz+=kl5 zj)7s&dvUw=LPU+uXPak!Jywr?jRr3?7&|Plaa%bZf2?3Ss>gh`zu0UC{DwZ($SbT% z5ZdRzM-pSVY{00+HCwsq3htSTtvxXh7%WlFn+vSrLc68m?SRo&;%WgG;d77rP z3IeHp?HyN-@1%%=Y0jsUmry<&9b9}`lpvHcOo9;P-^E71zddCICGw|P6Q?7pRxDY>sNFzJAcU*+q z9|8aX0000000000K*VK#$nVy_(yrKrRh&0UqR(S%ZofuYwVA^T^uvYkstRivZeyjB&{wiFs07m-RRDzj-hY`*-`3yHm*Lefwdq^?`?)gA{$(vR z^7nB}0000000000008jca`a;bEHXAdWjXIAHqz%o`}BDSyz)e$uukxS=_3fqqXX=N z2eE#XADsTwxKKF%=m0_4|JO_O-v*|~(G?o@FVcU9Iz*u&nf{&N{2-`M$7S4uJVAsI z6rCS9MNONIbfH3wPW|W%00000000000090vNBjHr&Uv>gKS3uzJrvhs4(E%|#4!FqQPY2QwkpsWY&pP1!{e7VWzs=7_JNx^6&2sqr008ip Z`2l#YDZ_t2eIft=002ovPDHLkV1i>JNI*DPSRgnsNDzov5TKhoby)xa00DGTPE!Ct z=GbNc004=4R9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM z;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3KBSxF9n-wIrh`zdW_bK#7YpC9|j)C~nBb znO2mTn+joLRc%O;Y9o?V8GCML5+fE4cc(fCCZ$W-nz!$2^lr00079 zNklc#16#an~I$kWRO=rnEfNS{zX>^9(py&-cbEJqG@F-bJMoC5ik5!rO z1&r)Lk;9atu`vF*3SRBF~T?IifI)~4KU=lg;-7Jn{KYBfP z!Z^Nl-?^^K9p|3L-=E~*xN+=7^C*fu&kMaBzxh1>`sJJ8HzzqjdvA%@(jp;V1i(B`U2_XJuMny6G7ZHmujr%Pz1_SH`S zG+*Jv6C*4tnn7LdGzeq(sT-h#rIm6(w8(4yS`Z!-qElMjgL!3}0n5}q&@!)KqZq+2sc*Be%3VtC!V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5skpSDpeVJtIKN1Vi!&v&s2C_{$iOJ@$TTz__%HEs)9p0000< KMNUMnLSTY@OQ$ga diff --git a/icons/obj/guns/taserold.dmi b/icons/obj/guns/taserold.dmi deleted file mode 100644 index 4ce4c34678b446d1f6cc3416da964d6de2a6f717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1462 zcmYk6X;4#F6o6kui$W1xsT2souvALO6l0Va5-C^$ma3pYWmC!~g&;d=HfeDKagz(91i2^8mk8g1cDv_=9p-60bplmw|)C|M@L5s3yaPy|;g25`|7LkSa*(gF} zW4to&_>?=d0UM_ss7ty`ajJN^M;`yDM}==aiAj7!G$~Vgm$vTysG93L zbEy~r)>A0nhk~*zXGf9($FZN~jd{D)73XDSJ+@!e>!o+<@_uz>P;QwQtF2-yQ8=fr zCdI|TdKf;8tNg8MZ0u2vynA5n_3LObwXi~IZAHb%cQs<<$gGFd2Jgo7@`j3%h+Uap z2dZNf(kW}a<9t>$#go*RPk`F;?wmeXAo zd(mr$bp6RZh}QXrI4haK5oVtZ)B9=02B`32ClaSrXNQwEy;eb|dV=rcr{1`mJFB6I zUzog!X#uJ56(^NN4xS^Ne->vO#`ar$>lmQ0ZDS8-ty8VJLbItO)lR*V?nbSH|A^p} z%e{BAa#=Vuw+#!@{h9S)&0tS8!=1~fT>(vwFsUSEcUBb{C%{j-w1zcHtY?M&|G|APb5VhCXsM_ zCTmhNpn@&6%it}JQrXQ})Z|_l;F{juJ-Fqn&j=Emp;Ihp!0CaY)2hAqhr_TBsL#@7`T}h0^=`cqzqXP_iNsUCnKYm!PBf$cH>&a zq18{OCnlNV=Kh*EOYiQ+_cv}Pi;GBY9A!gIpOTf?ZYj;mXAo}5M@Jx(mL9jEDpHdb zLqE-oJQtBQAJDJLk!yJ4n&FPtofZ$_@~f7zlFdAqGcZx5YoD79*M(%zk*QSjFf+mf z`4LS@jqiKUD~w*V4HXiFqpt6~Id;A*+#c2w@llFB{HvlfYc_4O|xuCi?$} zC0000{P)t-sz`(#R zEiEHyE-$)XV`F0$78b9XgNTTTBSkJRb3VVnzY7Zsr*1_eAt66MKhtU@X=!Qyk0qf{ z8&gwLP*6}QDJd!`DIg#qcXxNdz`(%3z(dr+g8%>k0d!JMQvg8b*k%9#0F8Q7Sad{X zb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1V_YArAl*)NW$qW=vK900GiTL_t(|ob8%X zbAm7sgp)R@tua?yErI|4N1KSlNZ^7H0`1IxKImi*ZVmXbhe7}Vz@I?Mm)G_smC{oqEKMTJKae4dt~X3k(R#6Qh$p|>!IXwq1#3B71o}Ow%h8yfb>-eO~yz%8?%S5 z#nl&t5McDl-Bn*AO?G~u?_$L0001XC*=2#-uZmrs+^wP zKjin2-uZmrs$9O$B|G2elAZ6f4P@v0Tvo{U*%os1eZGObd>>OS=%1DEBb=-I3-x$i zuR%_}kEvbLUufKP{|tRV)%3TZPWNBmfWHSG_rQPuDt%iN$@gyXVPl-@zwhN>zy1IK z00000fd331<2YsRJRr>=-FMVX%;DBqCgufky6-EM06KOkbN~PV diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/unused/energy.dmi similarity index 100% rename from icons/obj/guns/energy.dmi rename to icons/obj/guns/unused/energy.dmi diff --git a/icons/obj/guns/incinerator.dmi b/icons/obj/guns/unused/incinerator.dmi similarity index 100% rename from icons/obj/guns/incinerator.dmi rename to icons/obj/guns/unused/incinerator.dmi diff --git a/icons/obj/guns/m1911.dmi b/icons/obj/guns/unused/m1911.dmi similarity index 100% rename from icons/obj/guns/m1911.dmi rename to icons/obj/guns/unused/m1911.dmi diff --git a/icons/obj/guns/p08.dmi b/icons/obj/guns/unused/p08.dmi similarity index 100% rename from icons/obj/guns/p08.dmi rename to icons/obj/guns/unused/p08.dmi diff --git a/icons/obj/random.dmi b/icons/obj/random.dmi index d744fa29581627a68ccee8970dddc2a093abc564..b88489452d0f565a4859d59e023f00b4611a04b0 100644 GIT binary patch literal 64634 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
A0z#5+SXNxW8Ysoqsy_?aI1;V+TQaEQ8w$d&YV` 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 JPDHLkV1iLjeS`o2 diff --git a/maps/away/away_site/abandoned_mining/cursed.dmm b/maps/away/away_site/abandoned_mining/cursed.dmm index 40dbd72b6d8..56ccdcee17c 100644 --- a/maps/away/away_site/abandoned_mining/cursed.dmm +++ b/maps/away/away_site/abandoned_mining/cursed.dmm @@ -1247,7 +1247,7 @@ /obj/item/spacecash/c1000{ pixel_x = 3 }, -/obj/item/gun/energy/lawgiver, +/obj/item/gun/energy/acp, /turf/simulated/floor/wood, /area/cursed/living_area) "hkX" = ( diff --git a/maps/away/away_site/first_aurora/first_aurora.dmm b/maps/away/away_site/first_aurora/first_aurora.dmm index 43260756566..25419ad0eb8 100644 --- a/maps/away/away_site/first_aurora/first_aurora.dmm +++ b/maps/away/away_site/first_aurora/first_aurora.dmm @@ -591,7 +591,7 @@ /turf/simulated/floor/tiled/airless, /area/derelict/hallway/northeast) "cf" = ( -/obj/item/gun/energy/laser/practice{ +/obj/item/gun/energy/rifle/laser/practice{ desc = "This laser gun has been modified in some way."; name = "modified laser gun" }, @@ -859,7 +859,7 @@ /turf/simulated/floor/airless, /area/derelict/hallway/northeast) "dd" = ( -/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/rifle/laser/practice, /turf/simulated/floor/airless, /area/derelict/hallway/northeast) "de" = ( diff --git a/maps/away/away_site/hivebot_hub/hivebot_hub.dmm b/maps/away/away_site/hivebot_hub/hivebot_hub.dmm index 63bbc0fdcc0..8f8031424f7 100644 --- a/maps/away/away_site/hivebot_hub/hivebot_hub.dmm +++ b/maps/away/away_site/hivebot_hub/hivebot_hub.dmm @@ -3385,7 +3385,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, -/obj/item/gun/energy, +/obj/item/gun/energy/gun, /turf/simulated/floor/tiled/dark/airless, /area/hivebothub/starboarddocks) "wN" = ( diff --git a/maps/away/away_site/treasure_trove/treasure_trove.dmm b/maps/away/away_site/treasure_trove/treasure_trove.dmm index a81c07f5530..586b2616350 100644 --- a/maps/away/away_site/treasure_trove/treasure_trove.dmm +++ b/maps/away/away_site/treasure_trove/treasure_trove.dmm @@ -375,7 +375,7 @@ /turf/simulated/floor/exoplanet/asphalt, /area/trove/tunnels) "cf" = ( -/obj/item/gun/energy/lasercannon, +/obj/item/gun/energy/rifle/laser/heavy, /obj/random/dirt_75, /turf/simulated/floor/wood/mahogany, /area/trove/vault) @@ -1177,7 +1177,7 @@ "gf" = ( /obj/random/dirt_75, /obj/random/ammo, -/obj/item/gun/energy/lawgiver, +/obj/item/gun/energy/acp, /turf/simulated/floor/wood/mahogany, /area/trove/vault) "gh" = ( @@ -2341,7 +2341,7 @@ /turf/simulated/floor/exoplanet/grass/moghes, /area/trove/beach) "mx" = ( -/obj/item/gun/energy/sniperrifle, +/obj/item/gun/energy/rifle/laser/sniper, /obj/random/dirt_75, /turf/simulated/floor/wood/mahogany, /area/trove/vault) diff --git a/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm b/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm index 96163adf43d..2e6b54c9954 100644 --- a/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm +++ b/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm @@ -10349,7 +10349,7 @@ /area/template_noop) "krM" = ( /obj/structure/weapons_rack, -/obj/item/gun/projectile/automatic/rifle{ +/obj/item/gun/projectile/automatic/rifle/sts35{ pixel_y = 7 }, /obj/item/gun/projectile/automatic/rifle/jingya, diff --git a/maps/away/scenarios/nuclear_silo/nuclear_silo_submaps.dmm b/maps/away/scenarios/nuclear_silo/nuclear_silo_submaps.dmm index d484e367829..18b3278b61c 100644 --- a/maps/away/scenarios/nuclear_silo/nuclear_silo_submaps.dmm +++ b/maps/away/scenarios/nuclear_silo/nuclear_silo_submaps.dmm @@ -413,7 +413,7 @@ /obj/effect/floor_decal/corner_wide/paleblue{ dir = 6 }, -/obj/item/gun/energy/sniperrifle, +/obj/item/gun/energy/rifle/laser/sniper, /turf/simulated/floor/tiled/dark, /area/template_noop) "hC" = ( diff --git a/maps/dungeon_spawns/vault_unique.dmm b/maps/dungeon_spawns/vault_unique.dmm index e7bbe71aba2..53822381b0c 100644 --- a/maps/dungeon_spawns/vault_unique.dmm +++ b/maps/dungeon_spawns/vault_unique.dmm @@ -83,7 +83,7 @@ d2 = 8; icon_state = "0-8" }, -/obj/item/gun/energy/toxgun, +/obj/item/gun/energy/pistol, /obj/item/frame/apc, /obj/item/trash/broken_electronics, /turf/simulated/floor/holofloor/tiled/dark, diff --git a/maps/event/generic_dock/generic_dock-1.dmm b/maps/event/generic_dock/generic_dock-1.dmm index b4911502789..f63d7f76df4 100644 --- a/maps/event/generic_dock/generic_dock-1.dmm +++ b/maps/event/generic_dock/generic_dock-1.dmm @@ -3341,7 +3341,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /obj/effect/decal/fake_object/light_source/invisible, /turf/simulated/floor, /area/tdome/tdome2) @@ -5068,7 +5068,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /turf/simulated/floor, /area/tdome/tdome1) "eUY" = ( @@ -7650,7 +7650,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /obj/effect/decal/fake_object/light_source/invisible, /turf/simulated/floor, /area/tdome/tdome1) @@ -8979,7 +8979,7 @@ /obj/item/clothing/accessory/holster/hip, /obj/item/radio/headset/ert, /obj/item/clothing/head/beret/centcom/captain, -/obj/item/gun/energy/lawgiver, +/obj/item/gun/energy/acp, /obj/item/card/id/centcom, /obj/structure/closet/secure_closet/guncabinet{ name = "captain's cabinet"; @@ -17076,7 +17076,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /turf/simulated/floor, /area/tdome/tdome2) "wEI" = ( diff --git a/maps/event/idris_cruise/idris_cruise-1.dmm b/maps/event/idris_cruise/idris_cruise-1.dmm index dad8e7df121..2903cb45343 100644 --- a/maps/event/idris_cruise/idris_cruise-1.dmm +++ b/maps/event/idris_cruise/idris_cruise-1.dmm @@ -2233,7 +2233,7 @@ /area/cruise/pool) "bDH" = ( /obj/structure/closet/secure_closet/hos, -/obj/item/gun/energy/lawgiver, +/obj/item/gun/energy/acp, /turf/unsimulated/floor{ dir = 8; icon_state = "wood" diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index 3747a011772..f8afdf8cdc6 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -28574,7 +28574,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /obj/effect/decal/fake_object/light_source/invisible, /turf/simulated/floor, /area/tdome/tdome1) @@ -69398,7 +69398,7 @@ /obj/item/clothing/accessory/holster/hip, /obj/item/radio/headset/ert, /obj/item/clothing/head/beret/centcom/captain, -/obj/item/gun/energy/lawgiver, +/obj/item/gun/energy/acp, /obj/item/card/id/centcom, /obj/structure/closet/secure_closet/guncabinet{ name = "Captain's Cabinet"; @@ -80887,7 +80887,7 @@ /obj/item/clothing/accessory/holster/hip, /obj/item/radio/headset/ert, /obj/item/clothing/head/beret/centcom/captain, -/obj/item/gun/energy/lawgiver, +/obj/item/gun/energy/acp, /obj/item/card/id/centcom, /obj/structure/closet/secure_closet/guncabinet{ name = "Captain's Cabinet"; @@ -104902,7 +104902,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /turf/simulated/floor, /area/tdome/tdome2) "nSJ" = ( @@ -134231,7 +134231,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /turf/simulated/floor, /area/tdome/tdome1) "rOs" = ( @@ -163974,7 +163974,7 @@ /obj/item/clothing/shoes/sneakers/brown, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/head/helmet/swat, -/obj/item/gun/energy/laser, +/obj/item/gun/energy/rifle/laser, /obj/effect/decal/fake_object/light_source/invisible, /turf/simulated/floor, /area/tdome/tdome2) diff --git a/sound/weapons/empty/dryfire_plastic_01.ogg b/sound/weapons/empty/dryfire_plastic_01.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0ef6933565593c63f43886df178b9e7bd61fc612 GIT binary patch literal 5659 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 literal 0 HcmV?d00001 diff --git a/sound/weapons/empty/dryfire_plastic_02.ogg b/sound/weapons/empty/dryfire_plastic_02.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f96d7190a556cdbd033964a472158438ed85d11c GIT binary patch literal 4988 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 M#lk5LhRE@M0{98>A^-pY literal 0 HcmV?d00001 diff --git a/sound/weapons/empty/dryfire_plastic_03.ogg b/sound/weapons/empty/dryfire_plastic_03.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c947b468af5dab88eb58a624c14a8d01c8340ee7 GIT binary patch literal 5033 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 Us+tYmy*D2}pV$B4(4-On1Vy9~@c;k- literal 0 HcmV?d00001