diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm index 0f122c15c94b..6e70a81ace49 100644 --- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm @@ -565,7 +565,7 @@ /turf/open/floor/wood/walnut, /area/ruin/beach/treasure_cove) "sd" = ( -/obj/structure/guncase, +/obj/structure/guncloset, /obj/effect/turf_decal/industrial/warning{ dir = 4; color = "#808080" diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index 5c4e6c34e7a1..781ae59a84f4 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1364,7 +1364,7 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/ruin/jungle/cavecrew/cargo) "qz" = ( -/obj/structure/guncase, +/obj/structure/guncloset, /obj/effect/turf_decal/industrial/hatch/yellow, /obj/effect/turf_decal/industrial/warning{ dir = 10 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm index f4f938f0b7b4..0064e874017d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm @@ -1157,7 +1157,7 @@ /obj/effect/turf_decal/corner/opaque/red/border{ dir = 5 }, -/obj/structure/guncase, +/obj/structure/guncloset, /obj/item/gun/energy/e_gun, /turf/open/floor/plasteel/dark, /area/ruin/lavaland/factory/adminstrative) @@ -2716,7 +2716,7 @@ /obj/item/ammo_box/magazine/smgm9mm{ start_empty = 1 }, -/obj/item/gun/ballistic/automatic/smg/proto, +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, /turf/open/floor/plasteel/dark, /area/ruin/lavaland/factory/dorms) "zC" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 322ab73490f9..0f5d01fb7de8 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -9901,12 +9901,12 @@ "Lx" = ( /obj/structure/rack, /obj/effect/turf_decal/corner/opaque/blue/half, -/obj/item/clothing/accessory/talisman, -/obj/item/clothing/accessory/wolftalisman, -/obj/item/clothing/accessory/talisman, -/obj/item/clothing/accessory/talisman, -/obj/item/clothing/accessory/wolftalisman, -/obj/item/clothing/accessory/wolftalisman, +/obj/item/clothing/accessory/bonearmlet, +/obj/item/clothing/neck/fangnecklace, +/obj/item/clothing/accessory/bonearmlet, +/obj/item/clothing/accessory/bonearmlet, +/obj/item/clothing/neck/fangnecklace, +/obj/item/clothing/neck/fangnecklace, /obj/item/clothing/accessory/skilt, /obj/item/clothing/accessory/skilt, /obj/item/clothing/accessory/skilt, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm index 207d91d4219a..f422e4ef1eb8 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm @@ -271,7 +271,7 @@ /turf/open/floor/mineral/titanium/white, /area/ruin/wasteplanet) "kV" = ( -/obj/structure/guncase, +/obj/structure/guncloset, /turf/open/floor/mineral/titanium/white, /area/ruin/wasteplanet) "kZ" = ( @@ -797,7 +797,7 @@ /turf/open/floor/wood/waste, /area/ruin/wasteplanet) "Fn" = ( -/obj/item/gun/ballistic/automatic/smg/proto{ +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{ pixel_y = -18 }, /obj/item/ammo_casing/spent{ diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index 70063e0ac720..ef1435cb1558 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -2089,7 +2089,7 @@ /obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ dir = 4 }, -/obj/structure/guncase/shotgun, +/obj/structure/guncloset/shotgun, /obj/item/gun/ballistic/shotgun/flamingarrow, /obj/item/gun/ballistic/shotgun/flamingarrow, /obj/item/gun/ballistic/shotgun/flamingarrow, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index ea1b99d7d1c4..b92747f3a3e2 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -3374,13 +3374,13 @@ "mt" = ( /obj/structure/window/reinforced/spawner, /obj/structure/rack, -/obj/item/gun/ballistic/automatic/smg/proto{ +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{ pixel_y = 3 }, -/obj/item/gun/ballistic/automatic/smg/proto{ +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{ pixel_y = -2 }, -/obj/item/gun/ballistic/automatic/smg/proto{ +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{ pixel_y = -7 }, /turf/open/floor/plasteel/tech, @@ -11533,7 +11533,7 @@ /turf/open/floor/plasteel, /area/ship/hallway/aft) "Rs" = ( -/obj/structure/guncase, +/obj/structure/guncloset, /obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /turf/open/floor/plasteel/tech, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index 288fd6235cf8..a106a307bb18 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -184,15 +184,14 @@ /obj/item/clothing/suit/armor/vest/security, /obj/item/clothing/mask/gas/sechailer, /obj/item/gps, -/obj/item/gun/ballistic/automatic/pistol/commander, /obj/structure/railing{ dir = 4 }, /obj/item/ammo_box/c9mm, /obj/item/ammo_box/c9mm, /obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, /obj/item/storage/belt/security/webbing, +/obj/item/storage/pistolcase/commander, /turf/open/floor/wood, /area/ship/security) "bD" = ( @@ -3115,9 +3114,6 @@ /area/ship/engineering) "Ha" = ( /obj/structure/closet/secure_closet/lp/lieutenant, -/obj/item/gun/energy/e_gun{ - pixel_y = 1 - }, /obj/item/stock_parts/cell/gun, /obj/item/melee/classic_baton/telescopic, /obj/item/kitchen/knife/combat/survival, @@ -3131,12 +3127,12 @@ pixel_x = 7; pixel_y = -20 }, -/obj/item/gun/ballistic/automatic/pistol/commander, /obj/item/ammo_box/c9mm, /obj/item/ammo_box/c9mm, /obj/item/ammo_box/c9mm/rubbershot, /obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, +/obj/item/storage/pistolcase/commander, +/obj/item/storage/pistolcase/egun, /turf/open/floor/wood, /area/ship/crew/dorm) "Hd" = ( diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm index 1f94be7c5b03..07bd4710a9b1 100644 --- a/_maps/shuttles/pirate/pirate_tortuga.dmm +++ b/_maps/shuttles/pirate/pirate_tortuga.dmm @@ -640,7 +640,7 @@ /obj/effect/turf_decal/techfloor{ dir = 10 }, -/obj/structure/guncase{ +/obj/structure/guncloset{ anchored = 1 }, /obj/item/gun/ballistic/automatic/assault/skm/pirate, @@ -3140,7 +3140,7 @@ /area/ship/maintenance/port) "Px" = ( /obj/effect/turf_decal/techfloor, -/obj/structure/guncase{ +/obj/structure/guncloset{ anchored = 1 }, /obj/item/gun/ballistic/automatic/pistol/candor, diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm index d8d7b6714d6e..e4a85560cb67 100644 --- a/_maps/shuttles/roumain/srm_elder.dmm +++ b/_maps/shuttles/roumain/srm_elder.dmm @@ -1250,7 +1250,7 @@ /turf/open/floor/grass/ship/jungle, /area/ship/hallway/central) "ox" = ( -/obj/structure/guncase, +/obj/structure/guncloset, /obj/machinery/door/window/eastright{ dir = 8 }, @@ -2024,11 +2024,9 @@ /obj/item/gps{ pixel_x = -7 }, -/obj/item/gun/ballistic/revolver/montagne, /obj/item/storage/backpack/satchel/leather, -/obj/item/ammo_box/a44roum_speedloader, -/obj/item/ammo_box/a44roum_speedloader, /obj/item/ammo_box/a44roum, +/obj/item/storage/pistolcase/montagne, /obj/item/clothing/accessory/waistcoat/roumain, /turf/open/floor/wood/mahogany, /area/ship/bridge) diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm index d0359b5ca240..13e78929b4dc 100644 --- a/_maps/shuttles/solgov/solgov_chronicle.dmm +++ b/_maps/shuttles/solgov/solgov_chronicle.dmm @@ -271,10 +271,9 @@ /obj/item/stamp/solgov, /obj/item/clothing/suit/armor/solgov_trenchcoat, /obj/item/spacecash/bundle/loadsamoney, -/obj/item/gun/ballistic/automatic/powered/gauss/modelh, -/obj/item/ammo_box/magazine/modelh, -/obj/item/ammo_box/magazine/modelh, /obj/item/clothing/neck/cloak/solgovcap, +/obj/item/storage/pistolcase/modelh, +/obj/item/ammo_box/ferroslugbox, /turf/open/floor/carpet/royalblue, /area/ship/crew/office) "cg" = ( @@ -3730,7 +3729,7 @@ /turf/open/floor/wood/walnut, /area/ship/crew/crewtwo) "Ks" = ( -/obj/structure/guncase{ +/obj/structure/guncloset{ desc = "A locker that holds weapons."; name = "weapon locker" }, diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm index 22f6c55e224a..da2a6b032eaa 100644 --- a/_maps/shuttles/solgov/solgov_inkwell.dmm +++ b/_maps/shuttles/solgov/solgov_inkwell.dmm @@ -5858,10 +5858,9 @@ }, /obj/item/fish_feed, /obj/item/pen/fountain/solgov, -/obj/item/gun/ballistic/automatic/powered/gauss/modelh, -/obj/item/ammo_box/magazine/modelh, -/obj/item/ammo_box/magazine/modelh, /obj/item/clothing/neck/cloak/solgovcap, +/obj/item/storage/pistolcase/modelh, +/obj/item/ammo_box/ferroslugbox, /turf/open/floor/wood/maple, /area/ship/crew/dorm/dormtwo) "LJ" = ( diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm index 1eb02eac6a21..b099e500aee9 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -3580,10 +3580,9 @@ }, /obj/item/fish_feed, /obj/item/pen/fountain/solgov, -/obj/item/gun/ballistic/automatic/powered/gauss/modelh, -/obj/item/ammo_box/magazine/modelh, -/obj/item/ammo_box/magazine/modelh, /obj/item/clothing/neck/cloak/solgovcap, +/obj/item/storage/pistolcase/modelh, +/obj/item/ammo_box/ferroslugbox, /turf/open/floor/carpet/royalblue, /area/ship/crew) "IZ" = ( diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index ce77d98f5833..7c7a34fd2690 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -62,11 +62,10 @@ /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, /obj/item/clothing/head/ngr/peaked, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/gun/ballistic/revolver, -/obj/item/ammo_box/a357/match, -/obj/item/ammo_box/a357/match, /obj/item/ammo_box/a357/match, /obj/item/pen/edagger, +/obj/item/storage/pistolcase/a357, +/obj/item/ammo_box/a357_box, /turf/open/floor/carpet/black, /area/ship/bridge) "bJ" = ( @@ -1655,14 +1654,13 @@ /obj/item/clothing/glasses/welding, /obj/item/storage/toolbox/syndicate, /obj/item/wrench/combat, -/obj/item/ammo_box/magazine/m10mm, -/obj/item/gun/ballistic/automatic/pistol, /obj/item/clothing/accessory/holster, /obj/item/grenade/chem_grenade/metalfoam, /obj/machinery/airalarm/directional/west, /obj/item/clothing/suit/ngr, /obj/item/clothing/head/hardhat/ngr/foreman, /obj/item/tank/jetpack/suit, +/obj/item/storage/pistolcase/stechkin, /turf/open/floor/carpet/red, /area/ship/cargo/office) "BB" = ( diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 9782403c12ae..6a4cf55d36b7 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -2732,7 +2732,7 @@ /obj/effect/turf_decal/industrial/fire{ dir = 8 }, -/obj/structure/guncase, +/obj/structure/guncloset, /obj/structure/railing, /obj/item/gun/ballistic/automatic/smg/c20r, /obj/machinery/light/directional/east, diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6d0b0b423e61..885275c10d50 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -107,7 +107,7 @@ /obj/item/megaphone/sec{ name = "syndicate megaphone" }, -/obj/item/gun/ballistic/automatic/pistol/no_mag, +/obj/item/storage/pistolcase/stechkin, /obj/item/clothing/head/HoS/beret/syndicate, /obj/item/radio/headset/syndicate/alt/leader, /obj/item/clothing/gloves/krav_maga/combatglovesplus, @@ -121,6 +121,7 @@ name = "Armory Access"; req_access = list(3,150) }, +/obj/item/ammo_box/c10mm, /turf/open/floor/mineral/plastitanium, /area/ship/security) "aE" = ( @@ -1792,7 +1793,7 @@ /obj/item/codespeak_manual{ charges = 2 }, -/obj/item/gun/ballistic/revolver, +/obj/item/storage/pistolcase/a357, /obj/item/megaphone/sec{ name = "syndicate megaphone" }, @@ -1804,7 +1805,6 @@ /obj/item/clothing/head/HoS/syndicate, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, -/obj/item/ammo_box/a357, /turf/open/floor/carpet/nanoweave/red, /area/ship/crew/dorm/dormtwo) "ky" = ( @@ -7330,10 +7330,9 @@ /obj/item/radio/headset/syndicate/alt{ keyslot = null }, -/obj/item/gun/ballistic/automatic/powered/gauss/modelh, /obj/item/storage/belt/sabre/solgov, -/obj/item/ammo_box/magazine/modelh, -/obj/item/ammo_box/magazine/modelh, +/obj/item/storage/pistolcase/modelh, +/obj/item/ammo_box/ferroslugbox, /turf/open/floor/mineral/plastitanium, /area/ship/bridge) "Qv" = ( diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index 7054c051f707..6f4ec205448c 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -11,10 +11,7 @@ return "[pick(GLOB.squid_names)][pick("-", "", " ")][capitalize(pick(GLOB.squid_names) + pick(GLOB.squid_names))]" /proc/kepori_name() - var/first_syllables = list("Fa", "Fe", "Fi", "Ma", "Me", "Mi", "Na", "Ne", "Ni", "Sa", "Se", "Si", "Ta", "Te", "Ti") - var/second_syllables = list("fa", "fe", "fi", "la", "le", "li", "ma", "me", "mi", "na", "ne", "ni", "ra", "re", "ri", "sa", "se", "si", "sha", "she", "shi", "ta", "te", "ti") - var/third_syllables = list("ca", "ce", "ci", "fa", "fe", "fi", "la", "le", "li", "ma", "me", "mi", "na", "ne", "ni", "ra", "re", "ri", "sa", "se", "si", "sha", "she", "shi", "ta", "te", "ti") - return "[pick(first_syllables)][pick(second_syllables)][pick(third_syllables)]" + return "[pick(GLOB.kepori_names)] [pick(GLOB.kepori_names)]-[pick(GLOB.kepori_names)]" /proc/vox_name() . = "" diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 888def7a7182..fe657d56284d 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -11,6 +11,7 @@ GLOBAL_LIST_INIT(first_names_female, world.file2list("strings/names/first_female GLOBAL_LIST_INIT(last_names, world.file2list("strings/names/last.txt")) GLOBAL_LIST_INIT(lizard_names_male, world.file2list("strings/names/lizard_male.txt")) GLOBAL_LIST_INIT(lizard_names_female, world.file2list("strings/names/lizard_female.txt")) +GLOBAL_LIST_INIT(kepori_names, world.file2list("strings/names/kepori_names.txt")) GLOBAL_LIST_INIT(clown_names, world.file2list("strings/names/clown.txt")) GLOBAL_LIST_INIT(mime_names, world.file2list("strings/names/mime.txt")) GLOBAL_LIST_INIT(carp_names, world.file2list("strings/names/carp.txt")) diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm index 83e5c03722bc..c831b85d7878 100644 --- a/code/datums/components/crafting/recipes/tribal.dm +++ b/code/datums/components/crafting/recipes/tribal.dm @@ -1,18 +1,16 @@ -/datum/crafting_recipe/bonetalisman - name = "Bone Talisman" - result = /obj/item/clothing/accessory/talisman +/datum/crafting_recipe/bonearmlet + name = "Bone Armlet" + result = /obj/item/clothing/accessory/bonearmlet time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 1) category = CAT_PRIMAL -/datum/crafting_recipe/bonenecklace - name = "Hunter's Necklace" - result = /obj/item/clothing/accessory/wolftalisman - time = 35 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 3, - /obj/item/mob_trophy/wolf_ear = 2, +/datum/crafting_recipe/fangnecklace + name = "Wolf Fang Necklace" + result = /obj/item/clothing/neck/fangnecklace + time = 20 + reqs = list(/obj/item/stack/sheet/sinew = 2, /obj/item/mob_trophy/fang = 1) category = CAT_PRIMAL diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 6d3959753a9e..1fc6d09cb2cb 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -226,43 +226,3 @@ new_form = /mob/living/simple_animal/hostile/morph infectable_biotypes = MOB_ORGANIC|MOB_MINERAL|MOB_UNDEAD //magic! transformed_antag_datum = /datum/antagonist/morph - -/datum/disease/transformation/gondola - name = "Gondola Transformation" - cure_text = "Condensed Capsaicin, ingested or injected." //getting pepper sprayed doesn't help - cures = list(/datum/reagent/consumable/condensedcapsaicin) //beats the hippie crap right out of your system - cure_chance = 80 - stage_prob = 5 - agent = "Tranquility" - desc = "Consuming the flesh of a Gondola comes at a terrible price." - severity = DISEASE_SEVERITY_BIOHAZARD - visibility_flags = 0 - stage1 = list("You seem a little lighter in your step.") - stage2 = list("You catch yourself smiling for no reason.") - stage3 = list("A cruel sense of calm overcomes you.", "You can't feel your arms!", "You let go of the urge to hurt clowns.") - stage4 = list("You can't feel your arms. It does not bother you anymore.", "You forgive the clown for hurting you.") - stage5 = list("You have become a Gondola.") - new_form = /mob/living/simple_animal/pet/gondola - -/datum/disease/transformation/gondola/stage_act() - ..() - switch(stage) - if(2) - if (prob(5)) - affected_mob.emote("smile") - if (prob(20)) - affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5)) - if(3) - if (prob(5)) - affected_mob.emote("smile") - if (prob(20)) - affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5)) - if(4) - if (prob(5)) - affected_mob.emote("smile") - if (prob(20)) - affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5)) - if (prob(2)) - to_chat(affected_mob, "You let go of what you were holding.") - var/obj/item/I = affected_mob.get_active_held_item() - affected_mob.dropItemToGround(I) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 60ded054842a..0e6bc6ed6a6d 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -451,11 +451,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/holopad/proc/SetLightsAndPower() var/total_users = LAZYLEN(masters) + LAZYLEN(holo_calls) - if(total_users > 0) - set_active_power() - else - set_idle_power() - active_power_usage = initial(active_power_usage) * total_users + //active_power_usage = initial(active_power_usage) * total_users if(total_users || replay_mode) set_light(2) else diff --git a/code/game/objects/items/storage/guncases.dm b/code/game/objects/items/storage/guncases.dm new file mode 100644 index 000000000000..d3b0c468b4b4 --- /dev/null +++ b/code/game/objects/items/storage/guncases.dm @@ -0,0 +1,200 @@ +/obj/item/storage/guncase + name = "gun case" + desc = "A large box designed for holding firearms and magazines safely." + icon = 'icons/obj/guncase_48x32.dmi' + icon_state = "riflecase" + item_state = "infiltrator_case" + force = 12 + throwforce = 12 + throw_speed = 2 + throw_range = 7 + w_class = WEIGHT_CLASS_BULKY + attack_verb = list("robusted") + hitsound = 'sound/weapons/smash.ogg' + drop_sound = 'sound/items/handling/toolbox_drop.ogg' + pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' + + +/obj/item/storage/guncase/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 10 + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.set_holdable(list( + /obj/item/gun, + /obj/item/ammo_box, + /obj/item/stock_parts/cell/gun + )) + +/obj/item/storage/guncase/winchester +/obj/item/storage/guncase/winchester/PopulateContents() + new /obj/item/gun/ballistic/shotgun/flamingarrow/no_mag(src) + +/obj/item/storage/guncase/skm +/obj/item/storage/guncase/skm/PopulateContents() + new /obj/item/gun/ballistic/automatic/assault/skm/no_mag(src) + new /obj/item/ammo_box/magazine/skm_762_40/empty(src) + new /obj/item/ammo_box/magazine/skm_762_40/empty(src) + +/obj/item/storage/guncase/p16 +/obj/item/storage/guncase/p16/PopulateContents() + new /obj/item/gun/ballistic/automatic/assault/p16/no_mag(src) + new /obj/item/ammo_box/magazine/p16/empty(src) + new /obj/item/ammo_box/magazine/p16/empty(src) + +/obj/item/storage/guncase/beacon +/obj/item/storage/guncase/beacon/PopulateContents() + new /obj/item/gun/ballistic/shotgun/doublebarrel/beacon(src) + +/obj/item/storage/guncase/scout +/obj/item/storage/guncase/scout/PopulateContents() + new /obj/item/gun/ballistic/rifle/scout/no_mag(src) + new /obj/item/ammo_box/a300/empty(src) + new /obj/item/ammo_box/a300/empty(src) + +/obj/item/storage/guncase/cobra +/obj/item/storage/guncase/cobra/PopulateContents() + new /obj/item/gun/ballistic/automatic/smg/c20r/cobra/no_mag(src) + new /obj/item/ammo_box/magazine/smgm45/empty(src) + new /obj/item/ammo_box/magazine/smgm45/empty(src) + + +/obj/item/storage/guncase/hellfire +/obj/item/storage/guncase/hellfire/PopulateContents() + new /obj/item/gun/ballistic/shotgun/hellfire/no_mag(src) + +/obj/item/storage/guncase/doublebarrel +/obj/item/storage/guncase/doublebarrel/PopulateContents() + new /obj/item/gun/ballistic/shotgun/doublebarrel/no_mag(src) + +/obj/item/storage/guncase/brimstone +/obj/item/storage/guncase/brimstone/PopulateContents() + new /obj/item/gun/ballistic/shotgun/brimstone/no_mag(src) + +/obj/item/storage/guncase/illestren +/obj/item/storage/guncase/illestren/PopulateContents() + new /obj/item/gun/ballistic/rifle/illestren/empty(src) + new /obj/item/ammo_box/magazine/illestren_a850r/empty(src) + new /obj/item/ammo_box/magazine/illestren_a850r/empty(src) + +/obj/item/storage/guncase/wt550 +/obj/item/storage/guncase/wt550/PopulateContents() + new /obj/item/gun/ballistic/automatic/smg/wt550(src) + new /obj/item/ammo_box/magazine/wt550m9/empty(src) + new /obj/item/ammo_box/magazine/wt550m9/empty(src) + +/obj/item/storage/pistolcase + name = "pistol case" + desc = "A large box designed for holding pistols and magazines safely." + icon = 'icons/obj/guncase.dmi' + icon_state = "pistolcase" + item_state = "infiltrator_case" + force = 12 + throwforce = 12 + throw_speed = 2 + w_class = WEIGHT_CLASS_BULKY + attack_verb = list("robusted") + hitsound = 'sound/weapons/smash.ogg' + drop_sound = 'sound/items/handling/toolbox_drop.ogg' + pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' + +/obj/item/storage/pistolcase/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 8 + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.set_holdable(list( + /obj/item/gun, + /obj/item/ammo_box/, + /obj/item/stock_parts/cell/gun + )) + +/obj/item/storage/pistolcase/modelh +/obj/item/storage/pistolcase/modelh/PopulateContents() + new /obj/item/gun/ballistic/automatic/powered/gauss/modelh/no_mag(src) + new /obj/item/ammo_box/magazine/modelh/empty(src) + new /obj/item/ammo_box/magazine/modelh/empty(src) + +/obj/item/storage/pistolcase/stechkin +/obj/item/storage/pistolcase/stechkin/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/no_mag(src) + new /obj/item/ammo_box/magazine/m10mm/empty(src) + new /obj/item/ammo_box/magazine/m10mm/empty(src) + +/obj/item/storage/pistolcase/candor +/obj/item/storage/pistolcase/candor/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/candor/no_mag(src) + new /obj/item/ammo_box/magazine/m45/empty(src) + new /obj/item/ammo_box/magazine/m45/empty(src) + +/obj/item/storage/pistolcase/detective +/obj/item/storage/pistolcase/detective/PopulateContents() + new /obj/item/gun/ballistic/revolver/detective/no_mag(src) + new /obj/item/ammo_box/c38/empty(src) + new /obj/item/ammo_box/c38/empty(src) + +/obj/item/storage/pistolcase/shadow +/obj/item/storage/pistolcase/shadow/PopulateContents() + new /obj/item/gun/ballistic/revolver/shadow/no_mag(src) + +/obj/item/storage/pistolcase/commander +/obj/item/storage/pistolcase/commander/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/commander/no_mag(src) + new /obj/item/ammo_box/magazine/co9mm/empty(src) + new /obj/item/ammo_box/magazine/co9mm/empty(src) + +/obj/item/storage/pistolcase/firebrand +/obj/item/storage/pistolcase/firebrand/PopulateContents() + new /obj/item/gun/ballistic/revolver/firebrand/no_mag(src) + +/obj/item/storage/pistolcase/derringer +/obj/item/storage/pistolcase/derringer/PopulateContents() + new /obj/item/gun/ballistic/derringer/no_mag(src) + +/obj/item/storage/pistolcase/a357 +/obj/item/storage/pistolcase/a357/PopulateContents() + new /obj/item/gun/ballistic/revolver/no_mag(src) + new /obj/item/ammo_box/a357/empty(src) + new /obj/item/ammo_box/a357/empty(src) + +/obj/item/storage/pistolcase/montagne +/obj/item/storage/pistolcase/montagne/PopulateContents() + new /obj/item/gun/ballistic/revolver/montagne/no_mag(src) + new /obj/item/ammo_box/a44roum_speedloader/empty(src) + new /obj/item/ammo_box/a44roum_speedloader/empty(src) + + +/obj/item/storage/pistolcase/disposable +/obj/item/storage/pistolcase/disposable/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/disposable(src) + new /obj/item/gun/ballistic/automatic/pistol/disposable(src) + +/obj/item/storage/pistolcase/laser +/obj/item/storage/pistolcase/laser/PopulateContents() + new /obj/item/gun/energy/laser/empty_cell(src) + new /obj/item/stock_parts/cell/gun(src) + +/obj/item/storage/pistolcase/egun +/obj/item/storage/pistolcase/egun/PopulateContents() + new /obj/item/gun/energy/laser/empty_cell(src) + new /obj/item/stock_parts/cell/gun(src) + +/obj/item/storage/pistolcase/kalixpistol +/obj/item/storage/pistolcase/kalixpistol/PopulateContents() + new /obj/item/gun/energy/kalix/pistol/empty_cell(src) + new /obj/item/stock_parts/cell/gun/kalix(src) + +/obj/item/storage/guncase/kalixrifle +/obj/item/storage/guncase/kalixrifle/PopulateContents() + new /obj/item/gun/energy/kalix/empty_cell(src) + new /obj/item/stock_parts/cell/gun/kalix(src) + +/obj/item/storage/pistolcase/miniegun +/obj/item/storage/pistolcase/miniegun/PopulateContents() + new /obj/item/gun/energy/e_gun/empty_cell(src) + new /obj/item/stock_parts/cell/gun/mini(src) + +/obj/item/storage/pistolcase/iongun +/obj/item/storage/pistolcase/iongun/PopulateContents() + new /obj/item/gun/energy/ionrifle/empty_cell(src) + new /obj/item/stock_parts/cell/gun(src) diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index cf0d6957e69c..ddcb59466deb 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -1,5 +1,5 @@ //GUNCASES// -/obj/structure/guncase +/obj/structure/guncloset name = "gun locker" desc = "A locker that holds guns." icon = 'icons/obj/closet.dmi' @@ -12,7 +12,7 @@ var/open = TRUE var/capacity = 4 -/obj/structure/guncase/Initialize(mapload) +/obj/structure/guncloset/Initialize(mapload) . = ..() if(mapload) for(var/obj/item/I in loc.contents) @@ -22,7 +22,7 @@ break update_appearance() -/obj/structure/guncase/update_overlays() +/obj/structure/guncloset/update_overlays() . = ..() if(case_type && LAZYLEN(contents)) var/mutable_appearance/gun_overlay = mutable_appearance(icon, case_type) @@ -31,7 +31,7 @@ . += new /mutable_appearance(gun_overlay) . += "[icon_state]_[open ? "open" : "door"]" -/obj/structure/guncase/attackby(obj/item/I, mob/user, params) +/obj/structure/guncloset/attackby(obj/item/I, mob/user, params) if(iscyborg(user) || isalien(user)) return if(istype(I, gun_category) && open) @@ -50,7 +50,7 @@ else return ..() -/obj/structure/guncase/attack_hand(mob/user) +/obj/structure/guncloset/attack_hand(mob/user) . = ..() if(.) return @@ -68,7 +68,7 @@ * Arguments: * * user The mob to which we are showing the radial menu */ -/obj/structure/guncase/proc/show_menu(mob/user) +/obj/structure/guncloset/proc/show_menu(mob/user) if(!LAZYLEN(contents)) return @@ -100,7 +100,7 @@ * Arguments: * * user The mob interacting with a menu */ -/obj/structure/guncase/proc/check_menu(mob/living/carbon/human/user) +/obj/structure/guncloset/proc/check_menu(mob/living/carbon/human/user) if(!open) return FALSE if(!istype(user)) @@ -109,10 +109,10 @@ return FALSE return TRUE -/obj/structure/guncase/handle_atom_del(atom/A) +/obj/structure/guncloset/handle_atom_del(atom/A) update_appearance() -/obj/structure/guncase/contents_explosion(severity, target) +/obj/structure/guncloset/contents_explosion(severity, target) for(var/atom/A in contents) switch(severity) if(EXPLODE_DEVASTATE) @@ -122,13 +122,13 @@ if(EXPLODE_LIGHT) SSexplosions.lowobj += A -/obj/structure/guncase/shotgun +/obj/structure/guncloset/shotgun name = "shotgun locker" desc = "A locker that holds shotguns." case_type = "shotgun" gun_category = /obj/item/gun/ballistic/shotgun -/obj/structure/guncase/ecase +/obj/structure/guncloset/ecase name = "energy gun locker" desc = "A locker that holds energy guns." icon_state = "ecase" diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index 06d59e7390ea..061b5efef57b 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -578,7 +578,7 @@ /obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop loot = list( /obj/item/gun/energy/lasercannon = 1, - /obj/item/gun/ballistic/automatic/smg/proto = 1, + /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto = 1, /obj/item/gun/energy/temperature/security = 1, ) /obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm index c32a750848da..7416014ee463 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -204,18 +204,18 @@ piping_layer = 2 icon_state = "volpump_map-2" -/obj/machinery/atmospherics/components/binary/volume_pump/layer2 - piping_layer = 2 - icon_state = "volpump_map-2" +/obj/machinery/atmospherics/components/binary/volume_pump/layer4 + piping_layer = 4 + icon_state = "volpump_map-4" /obj/machinery/atmospherics/components/binary/volume_pump/on on = TRUE - icon_state = "volpump_map-2" + icon_state = "volpump_on_map-3" /obj/machinery/atmospherics/components/binary/volume_pump/on/layer2 piping_layer = 2 - icon_state = "volpump_map-2" + icon_state = "volpump_on_map-2" /obj/machinery/atmospherics/components/binary/volume_pump/on/layer4 piping_layer = 4 - icon_state = "volpump_map-4" + icon_state = "volpump_on_map-4" diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index 951574fedfe2..a4c4195beca0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -160,7 +160,7 @@ /datum/blackmarket_item/clothing/ramzi_suit name = "Rusted Red Hardsuit" desc = "A vintage ICW Era Gorlex Maruader hardsuit. The previous owner said we could have it when we pried it off their cold dead hands. Dry cleaning not included." - item = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi + item = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi price_min = 1500 price_max = 2500 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index 11fef220ee01..3d6b32a67569 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -150,7 +150,7 @@ /datum/blackmarket_item/weapon/saber_smg name = "Saber 9mm SMG" desc = "A prototype 9mm submachine gun. Most of these never got past the RND phase and into distribution. But we happen know a guy." - item = /obj/item/gun/ballistic/automatic/smg/proto + item = /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto pair_item = /datum/blackmarket_item/weapon/saber_mag price_min = 2500 diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm index b2df34d8f964..4eb48b09c7cb 100644 --- a/code/modules/cargo/bounties/mining.dm +++ b/code/modules/cargo/bounties/mining.dm @@ -41,7 +41,7 @@ description = "Station 14's Research Director claims that pagan bone talismans protect their wearer. Ship them a few so they can start testing." reward = 7500 required_count = 3 - wanted_types = list(/obj/item/clothing/accessory/talisman) + wanted_types = list(/obj/item/clothing/accessory/bonearmlet) /datum/bounty/item/mining/bone_dagger name = "Bone Daggers" diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 714bab059f54..0b77a0f00afe 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -9,7 +9,7 @@ /datum/supply_pack/ammo/co9mm_mag name = "9mm Commander Magazine Crate" desc = "Contains a 9mm magazine for the standard-issue Commander pistol, containing ten rounds." - contains = list(/obj/item/ammo_box/magazine/co9mm,) + contains = list(/obj/item/ammo_box/magazine/co9mm) cost = 500 /datum/supply_pack/ammo/m45_mag diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 7fe9e9aa8a11..132e62bb0ada 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -9,52 +9,52 @@ /datum/supply_pack/gun/disposable name = "Disposable Gun Crate" desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 200cr. That price is still far too high." - cost = 150 - contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable) + cost = 300 + contains = list(/obj/item/storage/pistolcase/disposable) crate_name = "disposable gun crate" /datum/supply_pack/gun/derringer name = ".38 Derringer Crate" desc = "A cheap, concealable pistol manufactured by the reputable Hunter's Pride. At least it's better than a disposable pistol. Chambered in .38 rounds." cost = 350 - contains = list(/obj/item/gun/ballistic/derringer) + contains = list(/obj/item/storage/pistolcase/derringer) crate_name = "derringer crate" /datum/supply_pack/gun/commanders name = "Commander Pistol Crate" desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm." cost = 750 - contains = list(/obj/item/gun/ballistic/automatic/pistol/commander) + contains = list(/obj/item/storage/pistolcase/commander) /datum/supply_pack/gun/makarovs name = "Stechkin Pistol Crate" desc = "Contains a concealable stechkin pistol, produced by Scarborough Arms and chambered in 10mm." cost = 1000 - contains = list(/obj/item/gun/ballistic/automatic/pistol) + contains = list(/obj/item/storage/pistolcase/stechkin) /datum/supply_pack/gun/candors name = "Candor Pistol Crate" desc = "Contains a Candor pistol, the trusty sidearm of any spacer, produced by Hunter's Pride and chambered in .45 ACP." cost = 1000 - contains = list(/obj/item/gun/ballistic/automatic/pistol/candor) + contains = list(/obj/item/storage/pistolcase/candor) /datum/supply_pack/gun/pepperbox name = "HP Firebrand Pepperbox Revolver Crate" desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357." cost = 1250 - contains = list(/obj/item/gun/ballistic/revolver/firebrand) + contains = list(/obj/item/storage/pistolcase/firebrand) /datum/supply_pack/gun/detrevolver name = "Hunter's Pride Detective Revolver Crate" desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38." cost = 600 - contains = list(/obj/item/gun/ballistic/revolver/detective) + contains = list(/obj/item/storage/pistolcase/detective) /datum/supply_pack/gun/shadowrevolver name = "Shadow Revolver Crate" desc = "Contains a concealable Shadow revolver, chambered in .44 Roumain." cost = 1000 - contains = list(/obj/item/gun/ballistic/revolver/shadow) + contains = list(/obj/item/storage/pistolcase/shadow) /* @@ -65,21 +65,21 @@ name = "Laser Gun Crate" desc = "Contains a lethal, high-energy laser gun." cost = 1000 - contains = list(/obj/item/gun/energy/laser) + contains = list(/obj/item/storage/pistolcase/laser) crate_name = "laser crate" /datum/supply_pack/gun/mini_energy name = "Mini Energy Gun Crate" desc = "Contains a small, versatile energy gun, capable of firing both nonlethal and lethal blasts, but with a limited power cell." cost = 500 - contains = list(/obj/item/gun/energy/e_gun/mini) + contains = list(/obj/item/storage/pistolcase/miniegun) crate_name = "laser crate" /datum/supply_pack/gun/energy name = "Energy Gun Crate" desc = "Contains a versatile energy gun, capable of firing both nonlethal and lethal blasts of light." cost = 1250 - contains = list(/obj/item/gun/energy/e_gun) + contains = list(/obj/item/storage/pistolcase/egun) crate_name = "energy gun crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -87,7 +87,7 @@ name = "Ion Rifle Crate" desc = "Contains a single Mk.I Ion Projector, a special anti-tank rifle designed to disable electronic threats at range." cost = 10000 - contains = list(/obj/item/gun/energy/ionrifle) + contains = list(/obj/item/storage/pistolcase/iongun) crate_name = "ion rifle crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -95,14 +95,14 @@ name = "Etherbor SG-8 Beam Pistol Crate" desc = "Contains a single SG-8 Beam Pistol, a civilian-grade sidearm developed in the PGF, manufactured by Etherbor Industries." cost = 1000 - contains = list(/obj/item/gun/energy/kalix/pistol) + contains = list(/obj/item/storage/pistolcase/kalixpistol) crate_name = "beam pistol crate" /datum/supply_pack/gun/laser/kalix name = "Etherbor BG-12 Beam Rifle Crate" desc = "Contains a single BG-12 Beam Rifle, a civilian-grade semi-automatic developed in the PGF, manufactured by Etherbor Industries." cost = 3000 - contains = list(/obj/item/gun/energy/kalix) + contains = list(/obj/item/storage/guncase/kalixrifle) crate_name = "beam rifle crate" /* @@ -113,7 +113,7 @@ name = "Double Barrel Shotgun Crate" desc = "For when you need to deal with 2 drunkards the old-fashioned way. Contains a double-barreled shotgun, favored by Bartenders. Warranty voided if sawed off." cost = 1000 - contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel) + contains = list(/obj/item/storage/guncase/doublebarrel) crate_name = "shotguns crate" /datum/supply_pack/gun/hellfire_shotgun @@ -138,21 +138,21 @@ name = "Flaming Arrow Lever Action Rifle Crate" desc = "Contains an antiquated lever action rifle intended for hunting wildlife. Chambered in .38 rounds." cost = 750 - contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow) + contains = list(/obj/item/storage/guncase/winchester) crate_name = "rifle crate" /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" desc = "Contains an expertly made bolt action rifle intended for hunting wildlife. Chambered in 8x50mmR rounds." cost = 1250 - contains = list(/obj/item/gun/ballistic/rifle/illestren) + contains = list(/obj/item/storage/guncase/illestren) crate_name = "rifle crate" /datum/supply_pack/gun/beacon name = "Contender Break Action Rifle Crate" desc = "Contains a single shot break action rifle to hunt wildlife that annoys you in particular. Chambered in devastating .45-70 rounds. Warranty voided if sawed off." cost = 2250 - contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel/beacon) + contains = list(/obj/item/storage/guncase/beacon) crate_name = "rifle crate" /datum/supply_pack/gun/scout @@ -166,26 +166,26 @@ name = "Cobra-20 SMG Crate" desc = "Contains a .45 submachine gun, manufactured by Scaraborough Arms and chambered in .45" cost = 3000 - contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra) + contains = list(/obj/item/storage/guncase/cobra) crate_name = "SMG crate" /datum/supply_pack/gun/wt550 name = "WT-550 Auto Rifle Crate" desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm." cost = 4000 - contains = list(/obj/item/gun/ballistic/automatic/smg/wt550) + contains = list(/obj/item/storage/guncase/wt550) crate_name = "auto rifle crate" /datum/supply_pack/gun/p16 name = "P16 Assault Rifle Crate" desc = "Contains a high-powered, automatic rifle chambered in 5.56mm." cost = 5000 - contains = list(/obj/item/gun/ballistic/automatic/assault/p16) + contains = list(/obj/item/storage/guncase/p16) crate_name = "auto rifle crate" /datum/supply_pack/gun/skm name = "SKM-24 Rifle Crate" desc = "Contains a high-powered, automatic rifle chambered in 7.62x40mm CLIP." cost = 5000 - contains = list(/obj/item/gun/ballistic/automatic/assault/skm) + contains = list(/obj/item/storage/guncase/skm) crate_name = "auto rifle crate" diff --git a/code/modules/client/loadout/loadout_accessories.dm b/code/modules/client/loadout/loadout_accessories.dm index b81588c8e72e..70225b60cc2e 100644 --- a/code/modules/client/loadout/loadout_accessories.dm +++ b/code/modules/client/loadout/loadout_accessories.dm @@ -50,6 +50,16 @@ display_name = "tie, recolorable" path = /obj/item/clothing/neck/tie +//Bone +/datum/gear/accessory/fangnecklace + display_name = "wolf fang necklace" + path = /obj/item/clothing/neck/fangnecklace + +/datum/gear/accessory/bonearmlet + display_name = "bone armlet" + path = /obj/item/clothing/accessory/bonearmlet + slot = null + //Misc /datum/gear/accessory/waistcoat diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 8d5251e9e8c8..3f431df81ccb 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -433,3 +433,9 @@ playsound(src,"shatter", 70) new /obj/effect/decal/cleanable/glass/strange(get_turf(src)) return ..() + +/obj/item/clothing/neck/fangnecklace + name = "wolf fang necklace" + desc = "A necklace made out of a wolf's fang and some sinew. According to a common Frontier superstition, it brings good luck to its wearer." + icon_state = "fang_necklace" + cuttable = FALSE diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 76de51b173cd..f7710d52a12d 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -381,22 +381,13 @@ //OONGA BOONGA// //////////////// -/obj/item/clothing/accessory/talisman - name = "bone talisman" - desc = "A hunter's talisman, some say the old gods smile on those who wear it." - icon_state = "talisman" - armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) +/obj/item/clothing/accessory/bonearmlet + name = "bone armlet" + desc = "An armlet made out of animal bone and sinew. According to a common Frontier superstition, it brings good luck to its wearer." + icon_state = "bone_armlet" attachment_slot = ARMS above_suit = TRUE -/obj/item/clothing/accessory/wolftalisman - name = "hunter's necklace" - desc = "A thick necklace woven from sinew and bits of wolfhide, adorned with a carved fang. Slaying such beasts is rumoured to elate the gods of old, and such an item proves your worth." - icon_state = "wolf_talisman" - armor = list("melee" = 15 , "bullet" = 15, "laser" = 10, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 25, "acid" = 25) - attachment_slot = CHEST - above_suit = TRUE - /obj/item/clothing/accessory/skullcodpiece name = "skull codpiece" desc = "A legion skull fitted to a codpiece, intended to protect the important things in life." diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index e4ccbd1c8f90..6cc7413cbfdd 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -279,7 +279,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/gondola name = "gondola meat" desc = "According to legends of old, consuming raw gondola flesh grants one inner peace." - list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/tranquility = 5, /datum/reagent/consumable/cooking_oil = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 3) tastes = list("meat" = 4, "tranquility" = 1) filling_color = "#9A6750" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/gondola diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index 318de66636e7..ee0dd7ab58de 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -538,7 +538,7 @@ name = "\improper Gondola-pocket" desc = "The choice to use real gondola meat in the recipe is controversial, to say the least." //Only a monster would craft this. icon_state = "donkpocketgondola" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/tranquility = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) cooked_type = /obj/item/reagent_containers/food/snacks/donkpocket/warm/gondola filling_color = "#CD853F" tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) @@ -548,8 +548,8 @@ name = "warm Gondola-pocket" desc = "The choice to use real gondola meat in the recipe is controversial, to say the least." icon_state = "donkpocketgondola" - bonus_reagents = list(/datum/reagent/medicine/omnizine = 1, /datum/reagent/tranquility = 5) - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 1, /datum/reagent/tranquility = 5) + bonus_reagents = list(/datum/reagent/medicine/omnizine = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 1) tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) foodtype = GRAIN diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index ec04dcaa4ec9..cc61c7048fdc 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -396,8 +396,7 @@ name = "Gondola-pocket" reqs = list( /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/meatball = 1, - /datum/reagent/tranquility = 5 + /obj/item/reagent_containers/food/snacks/meatball = 1 ) result = /obj/item/reagent_containers/food/snacks/donkpocket/gondola subcategory = CAT_PASTRY diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm index 3fa729969013..7e84efd98de7 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -4,7 +4,7 @@ outfit = /datum/outfit/job/cargo_tech - access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_CARGO, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 2cf67b9bbf70..1469e592b4de 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -4,7 +4,7 @@ outfit = /datum/outfit/job/miner - access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) display_order = JOB_DISPLAY_ORDER_SHAFT_MINER diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 916095ed266e..43cefa251e34 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -1,7 +1,7 @@ /mob/living/carbon/attackby(obj/item/W, mob/user, params) var/obj/item/bodypart/BP = get_bodypart(check_zone(user.zone_selected)) - var/has_painkillers = user.reagents.has_reagent(/datum/reagent/medicine/morphine, needs_metabolizing = TRUE) - if(W.tool_behaviour == TOOL_WELDER && IS_ROBOTIC_LIMB(BP) && BP.brute_dam > 5) //prioritize healing if we're synthetic + var/has_painkillers = reagents.has_reagent(/datum/reagent/medicine/morphine, needs_metabolizing = TRUE) + if(W.tool_behaviour == TOOL_WELDER && IS_ROBOTIC_LIMB(BP) && BP.brute_dam) //prioritize healing if we're synthetic return ..() if(user.a_intent != INTENT_HELP || !W.get_temperature() || !BP.can_bandage()) //this will also catch low damage synthetic welding return ..() diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index ae867d518eb5..da75efa5265a 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -106,7 +106,7 @@ /datum/emote/living/carbon/human/tailthump/get_sound(mob/living/user) if(!ishuman(user)) return - if(islizard(user) || (isvox(user))) + if(!isnull(user.getorgan(/obj/item/organ/tail)) || (isvox(user))) return 'sound/voice/lizard/tailthump.ogg' //https://freesound.org/people/TylerAM/sounds/389665/ /datum/emote/living/carbon/human/weh //lizard @@ -346,6 +346,7 @@ key_third_person = "whistles" message = "whistles!" emote_type = EMOTE_AUDIBLE + vary = TRUE /datum/emote/living/carbon/human/kepiwhistle/get_sound(mob/living/user) if(!ishuman(user)) @@ -357,3 +358,4 @@ key = "woop" key_third_person = "woops" message = "woops!" + emote_type = EMOTE_AUDIBLE diff --git a/code/modules/mob/living/carbon/human/species_types/kepori.dm b/code/modules/mob/living/carbon/human/species_types/kepori.dm index 3278d3d77c1e..7e76fff79c1e 100644 --- a/code/modules/mob/living/carbon/human/species_types/kepori.dm +++ b/code/modules/mob/living/carbon/human/species_types/kepori.dm @@ -10,7 +10,7 @@ disliked_food = FRIED | GROSS | CLOTH liked_food = MEAT | GORE changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT - loreblurb = "Kepori are a species covered in feathers vaguely reminiscent of earth’s extinct troodontidae. They’re small and sometimes seen as weak by other species due to their hollow bones but make up for that in speed and reflexes. Those found in space are commonly known as rollaways. They tend to woop when excited, scared, or for any other reason at all." + loreblurb = "Kepori are a species covered in feathers vaguely reminiscent of earth’s extinct troodontidae. They’re small and sometimes seen as weak by other species due to their hollow bones but make up for that in speed and reflexes. They tend to woop when excited, scared, or for any other reason at all." attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm index 815bfca00028..769f6ce3d5fa 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm @@ -14,7 +14,7 @@ emote_hear = list("cackles","screeches") stat_attack = CONSCIOUS ranged_cooldown_time = 5 SECONDS - vision_range = 9 + vision_range = 6 retreat_distance = 2 speed = 3 move_to_delay = 5 @@ -98,7 +98,7 @@ visible_message(span_danger("[src] starts charging!")) balloon_alert(src, "charging...") to_chat(src, "You begin to charge up...") - addtimer(CALLBACK(src, PROC_REF(fire_laser)), 1 SECONDS) + fire_laser() COOLDOWN_START(src, ranged_cooldown, ranged_cooldown_time) /mob/living/simple_animal/hostile/asteroid/brimdemon/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) @@ -115,10 +115,6 @@ /mob/living/simple_animal/hostile/asteroid/brimdemon/proc/fire_laser() if(stat == DEAD) return - visible_message(span_danger("[src] fires a brimbeam!")) - balloon_alert(src, "brimbeam fired") - playsound(src, 'sound/creatures/brimdemon.ogg', 150, FALSE, 0, 3) - cut_overlay("brimdemon_telegraph_dir") var/turf/target_turf = get_ranged_target_turf(src, dir, BRIMBEAM_RANGE) var/turf/origin_turf = get_turf(src) var/list/affected_turfs = get_line(origin_turf, target_turf) - origin_turf @@ -135,15 +131,30 @@ var/atom/new_brimbeam = new /obj/effect/brimbeam(affected_turf) new_brimbeam.dir = dir beamparts += new_brimbeam - for(var/mob/living/hit_mob in affected_turf.contents) - hit_mob.adjustFireLoss(35) - to_chat(hit_mob, span_userdanger("You're hit by [src]'s brimbeam!")) + animate(new_brimbeam, 1 SECONDS, alpha = 255) if(length(beamparts)) var/atom/last_brimbeam = beamparts[length(beamparts)] last_brimbeam.icon_state = "brimbeam_end" var/atom/first_brimbeam = beamparts[1] first_brimbeam.icon_state = "brimbeam_start" - addtimer(CALLBACK(src, PROC_REF(end_laser)), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(kill_people)), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(end_laser)), 3 SECONDS) + +/// Tells the lasers to start murdering people +/mob/living/simple_animal/hostile/asteroid/brimdemon/proc/kill_people() + if(stat == DEAD) + end_laser() + return + playsound(src, 'sound/creatures/brimdemon.ogg', 150, FALSE, 0, 3) + visible_message(span_danger("[src] fires a brimbeam!")) + balloon_alert(src, "brimbeam fired") + cut_overlay("brimdemon_telegraph_dir") + for(var/obj/effect/brimbeam/beam in beamparts) + var/turf/affected_turf = get_turf(beam) + START_PROCESSING(SSfastprocess, beam) + for(var/mob/living/hit_mob in affected_turf.contents) + hit_mob.adjustFireLoss(35) + to_chat(hit_mob, span_userdanger("You're hit by [src]'s brimbeam!")) /// Deletes all the brimbeam parts and sets variables back to their initial ones. /mob/living/simple_animal/hostile/asteroid/brimdemon/proc/end_laser() @@ -163,15 +174,12 @@ icon_state = "brimbeam_mid" layer = ABOVE_MOB_LAYER plane = -2 + alpha = 150 mouse_opacity = MOUSE_OPACITY_TRANSPARENT light_color = LIGHT_COLOR_BLOOD_MAGIC light_power = 3 light_range = 2 -/obj/effect/brimbeam/Initialize() - . = ..() - START_PROCESSING(SSfastprocess, src) - /obj/effect/brimbeam/Destroy() STOP_PROCESSING(SSfastprocess, src) return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index d637b19a2a08..5158c80d056a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -355,7 +355,6 @@ icon_living = "disfigured_legion" icon_aggro = "disfigured_legion" icon_dead = "disfigured_legion" - difficulty = 2 brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/crystal loot = list(/obj/item/organ/regenerative_core/legion/crystal) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index a5d8b4c4e1e9..d1c14fe67917 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -1,7 +1,7 @@ // stored_energy += (pulse_strength-RAD_COLLECTOR_EFFICIENCY)*RAD_COLLECTOR_COEFFICIENT -#define RAD_COLLECTOR_EFFICIENCY 80 // radiation needs to be over this amount to get power -#define RAD_COLLECTOR_COEFFICIENT 10 -#define RAD_COLLECTOR_STORED_OUT 0.001 // (this*100)% of stored power outputted per tick. Doesn't actualy change output total, lower numbers just means collectors output for longer in absence of a source +#define RAD_COLLECTOR_EFFICIENCY 300 // radiation needs to be over this amount to get power +#define RAD_COLLECTOR_COEFFICIENT 100 +#define RAD_COLLECTOR_STORED_OUT 0.04 // (this*100)% of stored power outputted per tick. Doesn't actualy change output total, lower numbers just means collectors output for longer in absence of a source #define RAD_COLLECTOR_MINING_CONVERSION_RATE 0.00001 //This is gonna need a lot of tweaking to get right. This is the number used to calculate the conversion of watts to research points per process() #define RAD_COLLECTOR_OUTPUT min(stored_energy, (stored_energy*RAD_COLLECTOR_STORED_OUT)+1000) //Produces at least 1000 watts if it has more than that stored #define PUBLIC_TECHWEB_GAIN 0.6 //how many research points go directly into the main pool diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 6246f8f9bf32..955856704ac6 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -13,6 +13,9 @@ w_class = WEIGHT_CLASS_TINY instant_load = TRUE +/obj/item/ammo_box/a357/empty + start_empty = TRUE + /obj/item/ammo_box/a357/match name = "speed loader (.357 match)" desc = "A 7-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." @@ -119,6 +122,9 @@ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets." ammo_type = /obj/item/ammo_casing/c38/iceblox +/obj/item/ammo_box/c38/empty + start_empty = TRUE + // 8x58mm Stripper Clip (SSG-669C) /obj/item/ammo_box/a858 @@ -156,6 +162,8 @@ w_class = WEIGHT_CLASS_TINY instant_load = TRUE +/obj/item/ammo_box/a300/empty + start_empty = TRUE // .300 Blackout Stripper Clip (Polymer Survivor Rifle) /obj/item/ammo_box/aac_300blk_stripper @@ -424,6 +432,9 @@ w_class = WEIGHT_CLASS_TINY instant_load = TRUE +/obj/item/ammo_box/a44roum_speedloader/empty + start_empty = TRUE + /obj/item/ammo_box/c46x30mm_box name = "ammo box (4.6x30mm)" desc = "A box of standard 4.6x30mm ammo." diff --git a/code/modules/projectiles/boxes_magazines/external/gauss.dm b/code/modules/projectiles/boxes_magazines/external/gauss.dm index fa3797707ce6..d2edfc4aac94 100644 --- a/code/modules/projectiles/boxes_magazines/external/gauss.dm +++ b/code/modules/projectiles/boxes_magazines/external/gauss.dm @@ -16,6 +16,9 @@ max_ammo = 10 multiple_sprites = AMMO_BOX_FULL_EMPTY +/obj/item/ammo_box/magazine/modelh/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/gar name = "GAR tube magazine (ferromagnetic lances)" desc = "A 32-round magazined for the GAR assault rifle. Ferromagnetic lances do good damage with significant armor penetration." diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 66b9238a5c90..8a1792485715 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -8,6 +8,9 @@ max_ammo = 8 multiple_sprites = AMMO_BOX_FULL_EMPTY +/obj/item/ammo_box/magazine/m10mm/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/m10mm/inc name = "pistol magazine (10mm incendiary)" desc = "An 8-round single-stack magazine for the stechkin pistol. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze." @@ -37,6 +40,9 @@ caliber = ".45" max_ammo = 8 +/obj/item/ammo_box/magazine/m45/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/m45/inc name = "pistol magazine (.45 incendiary)" desc = "An 8-round single-stack magazine for the Candor pistol. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze." @@ -71,6 +77,9 @@ max_ammo = 10 multiple_sprites = AMMO_BOX_PER_BULLET +/obj/item/ammo_box/magazine/co9mm/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/pistol556mm name = "Pistole C magazine (5.56mm HITP caseless)" desc = "A 12-round, double-stack magazine for the Pistole C pistol. These rounds do okay damage with average performance against armor." @@ -93,6 +102,7 @@ else icon_state = "[base_icon_state]-0" + /obj/item/ammo_box/magazine/co9mm/inc name = "pistol magazine (9mm incendiary)" desc = "A 10-round double-stack magazine for standard-issue 9mm pistols. These incendiary rounds deal pitiful damage, but leave flaming trails which set targets ablaze." diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index 548350f20415..1066e5b7ef2d 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -55,6 +55,9 @@ max_ammo = 20 multiple_sprites = AMMO_BOX_FULL_EMPTY +/obj/item/ammo_box/magazine/skm_762_40/empty + start_empty = FALSE + /obj/item/ammo_box/magazine/skm_762_40/extended name = "extended assault rifle magazine (7.62x40mm CLIP)" desc = "A very curved, 40-round magazine for the 7.62x40mm CLIP variants of the SKM assault rifle family. These rounds do good damage with good armor penetration." @@ -102,6 +105,8 @@ max_ammo = 30 multiple_sprites = AMMO_BOX_FULL_EMPTY +/obj/item/ammo_box/magazine/p16/empty + start_empty = TRUE /obj/item/ammo_box/magazine/swiss name = "\improper Swiss Cheese Magazine (5.56x45mm)" @@ -133,3 +138,6 @@ max_ammo = 5 multiple_sprites = AMMO_BOX_PER_BULLET w_class = WEIGHT_CLASS_TINY + +/obj/item/ammo_box/magazine/illestren_a850r/empty + start_empty = TRUE diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 61b9eb78512a..4c464c0433d0 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -11,6 +11,9 @@ . = ..() icon_state = "[base_icon_state]-[round(ammo_count(), 6)]" +/obj/item/ammo_box/magazine/wt550m9/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/wt550m9/ap name = "wt550 magazine (4.6x30mm AP)" desc = "A compact, 30-round top-loading magazine for the WT-550 Automatic Rifle. These armor-piercing rounds are great at piercing protective equipment, but lose some stopping power." @@ -97,6 +100,9 @@ . = ..() icon_state = "c20r45-[round(ammo_count(),2)]" +/obj/item/ammo_box/magazine/smgm45/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/c45_firestorm_mag name = "stick magazine (.45)" desc = "A 28-round stick magazine for the toploading Firestorm submachine gun. These rounds do moderate damage, but struggle against armor." diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 71a291f301de..b88c8afed86d 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -101,15 +101,16 @@ /obj/item/gun/ballistic/Initialize() . = ..() - if (!spawnwithmagazine) + if (!spawnwithmagazine && !ispath(mag_type, /obj/item/ammo_box/magazine/internal)) bolt_locked = TRUE update_appearance() return if (!magazine) magazine = new mag_type(src) + if (!spawnwithmagazine) + get_ammo_list (drop_all = TRUE) chamber_round() update_appearance() - /obj/item/gun/ballistic/update_icon_state() if(current_skin) icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]" diff --git a/code/modules/projectiles/guns/ballistic/assault.dm b/code/modules/projectiles/guns/ballistic/assault.dm index 9d97dc627bd4..cceda8a28b77 100644 --- a/code/modules/projectiles/guns/ballistic/assault.dm +++ b/code/modules/projectiles/guns/ballistic/assault.dm @@ -59,6 +59,9 @@ fire_delay = 0.2 SECONDS +/obj/item/gun/ballistic/automatic/assault/skm/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/automatic/assault/skm/pirate name = "\improper Chopper" desc = "An SKM-24 in a state of shockingly poor repair: Several parts are missing and the 'grip' is improvised from scrap wood. It's a miracle it still works at all. Chambered in 7.62x40mm CLIP." @@ -97,6 +100,9 @@ eject_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' eject_empty_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' +/obj/item/gun/ballistic/automatic/assault/p16/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/automatic/assault/p16/minutemen name = "\improper CM-16" desc = "The standard-issue rifle of CLIP and an extensively modified reproduction of the P-16. Chambered in 5.56mm." diff --git a/code/modules/projectiles/guns/ballistic/gauss.dm b/code/modules/projectiles/guns/ballistic/gauss.dm index c50f906e4eba..11de497c874d 100644 --- a/code/modules/projectiles/guns/ballistic/gauss.dm +++ b/code/modules/projectiles/guns/ballistic/gauss.dm @@ -48,6 +48,9 @@ spread_unwielded = 12 fire_select_icon_state_prefix = "slug_" +/obj/item/gun/ballistic/automatic/powered/gauss/modelh/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor. It is painted in the colors of SUNS." mag_type = /obj/item/ammo_box/magazine/modelh diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index c4d505bcb10c..a2843000cbc6 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -234,8 +234,9 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) name = "\improper TEC-9 machine pistol" desc = "A crude machine pistol designed to vomit 9mm ammunition at a truly eye-watering rate of fire." icon_state = "tec9" + fire_delay = 0.15 SECONDS weapon_weight = WEAPON_LIGHT - w_class = WEIGHT_CLASS_SMALL + w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/tec9 show_magazine_on_sprite = TRUE load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' @@ -243,6 +244,9 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) + default_firemode = FIREMODE_SEMIAUTO + /obj/item/gun/ballistic/automatic/pistol/disposable name = "disposable gun" desc = "An exceedingly flimsy plastic gun that is extremely cheap to produce. You get what you pay for." @@ -307,6 +311,9 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) icon_state = "derringer_gold" mag_type = /obj/item/ammo_box/magazine/internal/derr357 +/obj/item/gun/ballistic/derringer/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/automatic/pistol/himehabu name = "\improper Himehabu" desc = "A very small .22 LR pistol. The long awaited successor to the Stechkin; It has become a favorite among syndicate spies. Chambered in .22 LR." @@ -320,3 +327,4 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) recoil_unwielded = -2 spread_unwielded = 0 wield_slowdown = 0 + diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index c19c03f31e3e..1807f2c4ab03 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -282,7 +282,7 @@ to_chat(user, "You rack the [bolt_wording] of \the [src].") playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) - if((!safety && !semi_auto) || (!safety && !semi_auto)) + if(!safety && !semi_auto) chamber_round(TRUE) SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) update_appearance() @@ -542,6 +542,11 @@ EMPTY_GUN_HELPER(revolver/detective) to_chat(user, "You remove the modifications on [src]. Now it will fire .38 rounds.") return TRUE +/obj/item/gun/ballistic/revolver/detective/no_mag + spawnwithmagazine = FALSE + +/obj/item/gun/ballistic/revolver/no_mag + spawnwithmagazine = FALSE /obj/item/gun/ballistic/revolver/mateba name = "\improper Unica 6 auto-revolver" @@ -563,7 +568,7 @@ EMPTY_GUN_HELPER(revolver/detective) /obj/item/gun/ballistic/revolver/montagne name = "\improper HP Montagne" - desc = "An ornate break-open revolver issued to high-ranking members of the Saint-Roumain Militia. Chambered in .45." + desc = "An ornate break-open revolver issued to high-ranking members of the Saint-Roumain Militia. Chambered in .44." icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "montagne" manufacturer = MANUFACTURER_HUNTERSPRIDE @@ -576,6 +581,9 @@ EMPTY_GUN_HELPER(revolver/detective) . = ..() AddComponent(/datum/component/ammo_hud/revolver) +/obj/item/gun/ballistic/revolver/montagne/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/revolver/ashhand name = "HP Ashhand" desc = "A massive, long-barreled revolver often used by the Saint-Roumain Militia as protection against big game. Can only be reloaded one cartridge at a time due to its reinforced frame. Uses .45-70 ammo." @@ -692,9 +700,12 @@ EMPTY_GUN_HELPER(revolver/detective) semi_auto = TRUE safety_wording = "safety" +/obj/item/gun/ballistic/revolver/firebrand/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/revolver/shadow name = "\improper HP Shadow" - desc = "A mid-size revolver. Despite the antiquated design, it is cheap, reliable, and stylish, making it a favorite among fast-drawing spacers and the officers of various militaries, as well as small-time police units. Chambered in .45." + desc = "A mid-size revolver. Despite the antiquated design, it is cheap, reliable, and stylish, making it a favorite among fast-drawing spacers and the officers of various militaries, as well as small-time police units. Chambered in .44." fire_sound = 'sound/weapons/gun/revolver/cattleman.ogg' icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "shadow" @@ -719,9 +730,5 @@ EMPTY_GUN_HELPER(revolver/detective) . = ..() AddComponent(/datum/component/ammo_hud/revolver) -/obj/item/gun/ballistic/revolver/shadow/before_firing(atom/target, mob/user) - . = ..() - // if you go through the pain of not only using this shitty gun, but also with the fucking gunslinger quirk, you deserve this bonus. not a BIG bonus, but enough as an incentive to make people actually take the quirk. - if(chambered.BB && (HAS_TRAIT(user, TRAIT_GUNSLINGER))) - chambered.BB.damage += 5 - chambered.BB.armour_penetration += 5 +/obj/item/gun/ballistic/revolver/shadow/no_mag + spawnwithmagazine = FALSE diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 336c8a07dce6..bf8866ebe07f 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -85,6 +85,9 @@ can_be_sawn_off = TRUE manufacturer = MANUFACTURER_HUNTERSPRIDE +/obj/item/gun/ballistic/rifle/illestren/empty //i had to name it empty instead of no_mag because else it wouldnt work with guncases. sorry! + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) . = ..() if(.) @@ -160,6 +163,9 @@ manufacturer = MANUFACTURER_HUNTERSPRIDE +/obj/item/gun/ballistic/rifle/scout/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/rifle/polymer name = "polymer survivor rifle" desc = "A bolt-action rifle made of scrap, desperation, and luck. Likely to shatter at any moment. Chambered in .300 Blackout." diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 896ae8095cd6..f646e4cf36de 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -91,6 +91,8 @@ item_state = "illestren_factory_sawn" // i couldnt care about making another sprite, looks close enough mob_overlay_state = item_state +/obj/item/gun/ballistic/shotgun/brimstone/no_mag + spawnwithmagazine = FALSE // HELLFIRE SHOTGUN // /obj/item/gun/ballistic/shotgun/hellfire @@ -122,6 +124,8 @@ item_state = "dshotgun_sawn" // ditto mob_overlay_state = item_state +/obj/item/gun/ballistic/shotgun/hellfire/no_mag + spawnwithmagazine = FALSE // Automatic Shotguns// /obj/item/gun/ballistic/shotgun/automatic spread = 4 @@ -146,14 +150,14 @@ item_state = "shotgun_combat" fire_delay = 0.5 SECONDS mag_type = /obj/item/ammo_box/magazine/internal/shot/com - w_class = WEIGHT_CLASS_HUGE + w_class = WEIGHT_CLASS_BULKY /obj/item/gun/ballistic/shotgun/automatic/combat/compact name = "compact combat shotgun" desc = "A compact version of the semi-automatic combat shotgun. For close encounters." icon_state = "cshotgunc" mag_type = /obj/item/ammo_box/magazine/internal/shot/com/compact - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM //Dual Feed Shotgun @@ -379,6 +383,9 @@ EMPTY_GUN_HELPER(shotgun/bulldog/inteq) item_state = "dshotgun_sawn" mob_overlay_state = item_state +/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag + spawnwithmagazine = FALSE + // sawn off beforehand /obj/item/gun/ballistic/shotgun/doublebarrel/presawn name = "sawn-off double-barreled shotgun" @@ -603,6 +610,9 @@ EMPTY_GUN_HELPER(shotgun/bulldog/inteq) recoil = 0 recoil_unwielded = 2 +/obj/item/gun/ballistic/shotgun/flamingarrow/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/shotgun/flamingarrow/update_icon_state() . = ..() if(current_skin) @@ -616,6 +626,18 @@ EMPTY_GUN_HELPER(shotgun/bulldog/inteq) if(!wielded) SpinAnimation(7,1) +/obj/item/gun/ballistic/shotgun/flamingarrow/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + var/fan = FALSE + if(HAS_TRAIT(user, TRAIT_GUNSLINGER) && !semi_auto && wielded_fully && loc == user && !safety) + fan = TRUE + fire_delay = 0.35 SECONDS + . = ..() + fire_delay = src::fire_delay + if(fan) + rack() + to_chat(user, "You quickly rack the [bolt_wording] of \the [src]!") + balloon_alert_to_viewers("quickly racks!") + fire_delay = 0 SECONDS /obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(mob/user) . = ..() @@ -733,6 +755,9 @@ EMPTY_GUN_HELPER(shotgun/bulldog/inteq) recoil = 2 recoil_unwielded = 4 +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. This example has been kept in excellent shape and may as well be fresh out of the workshop. Uses .45-70 ammo." sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim." diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 5e8896ab10ec..dcfd4bd5c164 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -39,17 +39,6 @@ . = total_spread return ..() -/obj/item/gun/ballistic/automatic/smg/proto - name = "\improper Nanotrasen Saber SMG" - desc = "A prototype full-auto 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors and a folding stock." - icon_state = "saber" - actions_types = list() - mag_type = /obj/item/ammo_box/magazine/smgm9mm - - bolt_type = BOLT_TYPE_LOCKING - show_magazine_on_sprite = TRUE - manufacturer = MANUFACTURER_NANOTRASEN_OLD - /obj/item/gun/ballistic/automatic/smg/c20r name = "\improper C-20r SMG" desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.'" @@ -78,6 +67,9 @@ EMPTY_GUN_HELPER(automatic/smg/c20r) icon_state = "cobra20" item_state = "cobra20" +/obj/item/gun/ballistic/automatic/smg/c20r/cobra/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/automatic/smg/c20r/suns desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.' This one is painted in SUNS' colors." icon_state = "c20r_suns" @@ -100,6 +92,9 @@ EMPTY_GUN_HELPER(automatic/smg/c20r) manufacturer = MANUFACTURER_NANOTRASEN_OLD fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg' +/obj/item/gun/ballistic/automatic/smg/wt550/no_mag + spawnwithmagazine = FALSE + /obj/item/gun/ballistic/automatic/smg/mini_uzi name = "\improper Type U3 Uzi" desc = "A lightweight submachine gun, for when you really want someone dead. Uses 9mm rounds." @@ -403,3 +398,15 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) unfolded_slowdown = 0.35 unfolded_wield_delay = 0.4 SECONDS + +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto + name = "\improper Nanotrasen Saber SMG" + desc = "A prototype full-auto 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors and a folding stock." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "saber" + item_state = "gun" + mag_type = /obj/item/ammo_box/magazine/smgm9mm + bolt_type = BOLT_TYPE_LOCKING + show_magazine_on_sprite = TRUE + manufacturer = MANUFACTURER_NANOTRASEN_OLD + diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index f1188f76701f..12df6fd4a352 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -12,6 +12,9 @@ dual_wield_spread = 60 manufacturer = MANUFACTURER_SHARPLITE_NEW +/obj/item/gun/energy/e_gun/empty_cell + dead_cell = TRUE + /obj/item/gun/energy/e_gun/mini name = "miniature energy gun" desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: disable and kill." @@ -38,6 +41,9 @@ set_gun_light(new /obj/item/flashlight/seclite(src)) return ..() +/obj/item/gun/energy/e_gun/mini/empty_cell + dead_cell = TRUE + /obj/item/gun/energy/e_gun/hades name = "SL AL-655 'Hades' energy rifle" desc = "The standard issue rifle of Nanotrasen's Security Forces. Most have been put in long term storage following the ICW, and usually aren't issued to low ranking security divisions." diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 31261d31e30c..92193ed89bdb 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -14,6 +14,9 @@ spread = 0 spread_unwielded = 10 +/obj/item/gun/energy/laser/empty_cell + dead_cell = TRUE + /obj/item/gun/energy/laser/practice name = "practice laser gun" desc = "A modified version of the L-204 laser gun, this one fires less concentrated energy bolts designed for target practice." diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 73d9104833fb..3233e9afff45 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -17,6 +17,9 @@ /obj/item/gun/energy/ionrifle/emp_act(severity) return +/obj/item/gun/energy/ionrifle/empty_cell + dead_cell = TRUE + /obj/item/gun/energy/ionrifle/carbine name = "ion carbine" desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." diff --git a/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm index 20a301a1396c..17cc5157ce78 100644 --- a/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm +++ b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm @@ -42,6 +42,9 @@ damage = 25 armour_penetration = -10 +/obj/item/gun/energy/kalix/empty_cell + dead_cell = TRUE + /obj/item/gun/energy/kalix/pgf name = "Etherbor BG-16" desc = "An advanced variant of the BG-12, the BG-16 is the military-grade beam gun designed and manufactured by Etherbor Industries as the standard-issue close-range weapon of the PGF." @@ -91,6 +94,9 @@ e_cost = 1250 //10 shots per cell delay = 0 +/obj/item/gun/energy/kalix/pistol/empty_cell + dead_cell = TRUE + /obj/item/gun/energy/kalix/pgf/heavy name = "Etherbor HBG-7" desc = "The HBG-7 is the standard-issue rifle weapon of the PGF. If the stopping power and fire rate isn't enough, it comes with a DMR mode that has greater armor piercing for dealing with armored targets." diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 02d8850f8776..9b6243358acb 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2048,18 +2048,6 @@ to_chat(M, "You should sit down and take a rest...") ..() -/datum/reagent/tranquility - name = "Tranquility" - description = "A highly mutative liquid of unknown origin." - color = "#9A6750" //RGB: 154, 103, 80 - taste_description = "inner peace" - can_synth = FALSE - -/datum/reagent/tranquility/expose_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) - if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) - L.ForceContractDisease(new /datum/disease/transformation/gondola(), FALSE, TRUE) - - /datum/reagent/spider_extract name = "Spider Extract" description = "A highly specialized extract coming from the Australicus sector, used to create broodmother spiders." diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index ed6d9a9b957d..cfca24920f91 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -26,7 +26,7 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/energy/lasercannon, /obj/item/gun/energy/kinetic_accelerator/crossbow/large, /obj/item/gun/energy/e_gun/nuclear, - /obj/item/gun/ballistic/automatic/smg/proto, + /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, /obj/item/gun/ballistic/automatic/smg/c20r, /obj/item/gun/ballistic/automatic/hmg/l6_saw, /obj/item/gun/ballistic/automatic/smg/m90, diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm index 5f06b35f76b5..cb16d19e5f19 100644 --- a/code/modules/vending/liberation.dm +++ b/code/modules/vending/liberation.dm @@ -13,7 +13,7 @@ /obj/item/gun/ballistic/automatic/pistol/deagle/gold = 2, /obj/item/gun/ballistic/automatic/pistol/deagle/camo = 2, /obj/item/gun/ballistic/automatic/pistol/candor = 2, - /obj/item/gun/ballistic/automatic/smg/proto = 2, + /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto = 2, /obj/item/gun/ballistic/shotgun/automatic/combat = 2, /obj/item/gun/ballistic/automatic/gyropistol = 1, /obj/item/gun/ballistic/shotgun = 2) diff --git a/html/changelogs/AutoChangeLog-pr-2431.yml b/html/changelogs/AutoChangeLog-pr-2431.yml deleted file mode 100644 index 505b830ce455..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2431.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: 'Added Hydrogen, and Combustion Thrusters to go with!'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2979.yml b/html/changelogs/AutoChangeLog-pr-2979.yml deleted file mode 100644 index 77b9355737d4..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2979.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: Bank accounts are now handled through cash cards! You now spawn with - a wallet to store your extra card!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3048.yml b/html/changelogs/AutoChangeLog-pr-3048.yml new file mode 100644 index 000000000000..5494a1e070b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3048.yml @@ -0,0 +1,6 @@ +author: Gristlebee +changes: + - {tweak: Saber SMG stock folds} + - {tweak: TEC-9 Pistol is now automatic and normal sized} + - {balance: 'Combat shotgun is now bulky, and the compact combat shotgun is normal.'} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3102.yml b/html/changelogs/AutoChangeLog-pr-3102.yml deleted file mode 100644 index 688d402f55ba..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3102.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Gristlebee -changes: - - {balance: Motorized wheelchairs consume less power on move} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3108.yml b/html/changelogs/AutoChangeLog-pr-3108.yml deleted file mode 100644 index 10bc30e41a04..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3108.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: rye-rice -changes: - - {rscadd: Adds a war correspondent for CLIP.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3135.yml b/html/changelogs/AutoChangeLog-pr-3135.yml new file mode 100644 index 000000000000..e26262cc7c80 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3135.yml @@ -0,0 +1,7 @@ +author: Martinpachu +changes: + - {rscadd: 'A technique for gunslinger with the lever-action flaming arrow! Firing + it while wielded will quickly and automatically rack the lever, less quickly + than a .38 revolver or fanned shadow though.'} + - {rscdel: The +5 damage and AP bonus on the shadow while using it as a gunslinger.} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3143.yml b/html/changelogs/AutoChangeLog-pr-3143.yml new file mode 100644 index 000000000000..7a096ce0336b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3143.yml @@ -0,0 +1,6 @@ +author: generalthrax +changes: + - {bugfix: Fixed typos in the Shadow and Montagne revolvers} + - {bugfix: Black market rusted reds no longer flash into dust when you purchase + them} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3144.yml b/html/changelogs/AutoChangeLog-pr-3144.yml new file mode 100644 index 000000000000..329c7dcb3f74 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3144.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {rscdel: Tranquility reagent no longer turns you into a gondola} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3151.yml b/html/changelogs/AutoChangeLog-pr-3151.yml new file mode 100644 index 000000000000..6bed7956a912 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3151.yml @@ -0,0 +1,7 @@ +author: thestripes +changes: + - {rscadd: 'Added Kepori names, surnames, and a list for the char gen to draw from. + Remember to update your character names!'} + - {rscdel: Removed old Kepori name gen system and a bit of lore from the species + blurb} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3152.yml b/html/changelogs/AutoChangeLog-pr-3152.yml new file mode 100644 index 000000000000..f516d3ad7593 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3152.yml @@ -0,0 +1,6 @@ +author: SomeguyManperson +changes: + - {bugfix: cyborgs can touch people again} + - {code_imp: robotic limbs will always have healing prioritized over being cauterized + if treated with a welder} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3155.yml b/html/changelogs/AutoChangeLog-pr-3155.yml new file mode 100644 index 000000000000..95f565383506 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3155.yml @@ -0,0 +1,4 @@ +author: Sadhorizon +changes: + - {rscdel: Miners and Cargo Technicians no longer get QM access.} +delete-after: true diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml index 5c4640de3f3c..46e0d8c88d58 100644 --- a/html/changelogs/archive/2024-06.yml +++ b/html/changelogs/archive/2024-06.yml @@ -291,3 +291,51 @@ - rscdel: Removed invisible limb armour from Gezenan marine + navywear - rscadd: Allowed Gezenan armour to hold all guns like normal armour - bugfix: Fixed Montagne hat description to reflect the fact it is no longer armoured +2024-06-21: + FalloutFalcon: + - rscadd: Bank accounts are now handled through cash cards! You now spawn with a + wallet to store your extra card! + Gristlebee: + - balance: Motorized wheelchairs consume less power on move + Thera-Pissed: + - rscadd: Added Hydrogen, and Combustion Thrusters to go with! + rye-rice: + - rscadd: Adds a war correspondent for CLIP. +2024-06-22: + Anticept: + - bugfix: Dialed down the loudness of a couple Kepori sounds + - bugfix: Kepori wooping now has the audible flag. + - bugfix: Whistling now varies in pitch + PositiveEntropy: + - imageadd: SUNS trimline decals are now properly aligned. + Sadhorizon: + - rscadd: Bone Talisman and Hunter's Necklace were added to loadout. + - tweak: Bone Talisman and Hunter's Necklace were reflavored into good lack charms. + They are no longer armored. + - tweak: Wolf talisman crafting recipe now requires less stuff. + - bugfix: Blue wall locker sprites are no longer flipped. + SomeguyManperson: + - balance: crystal legion spawn 1 less skull per spawn wave, now 1 (like normal + legion) + - balance: brimdemon beams now have a fade-in effect before dealing damage, making + it harder to get instantly chunked for a quarter of your health + - balance: brimdemons can no longer aggro on you before you can see them + - balance: radiation collectors are now significantly more stingy about the potency + of the radiation they will process. Don't expect old nuclear waste or openly + stored uranium to do much. + - balance: radiation collectors also produce significantly more power from the remaining + viable sources + Thera-Pissed: + - bugfix: infinite negative power draw while calling your grandmother no longer + happens. + - bugfix: fixed volume pumps for mapping. + blinkdog: + - bugfix: Cleaned up some logic in revolver safety + generalthrax: + - bugfix: Tadrixx Float has a sprite again + - rscadd: You can now tail thump if you have a tail instead of it being tied to + species +2024-06-25: + Martinpachu: + - rscadd: Cargo guns and certain guns in ships now come inside cases alongside some + magazines, the ammo now comes separately for safety reasons. diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi index 861bb2701699..7e87f94fd183 100644 Binary files a/icons/mob/clothing/accessories.dmi and b/icons/mob/clothing/accessories.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index fe74923b657d..f168673850e0 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index d356f95fd272..e6dfaccf2671 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index b69fb6ff8f74..c42cf70ea894 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/obj/atmospherics/components/binary_devices.dmi b/icons/obj/atmospherics/components/binary_devices.dmi index 0a044c498faa..b666f391e793 100644 Binary files a/icons/obj/atmospherics/components/binary_devices.dmi and b/icons/obj/atmospherics/components/binary_devices.dmi differ diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index 4de00230ac76..ecf54fb9f61a 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index 049da153701a..3109928ff7ae 100644 Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ diff --git a/icons/obj/drinks/drinks.dmi b/icons/obj/drinks/drinks.dmi index fa3df8febf1a..2ab3cd0db5ef 100644 Binary files a/icons/obj/drinks/drinks.dmi and b/icons/obj/drinks/drinks.dmi differ diff --git a/icons/obj/guncase.dmi b/icons/obj/guncase.dmi new file mode 100644 index 000000000000..4941b965f2f8 Binary files /dev/null and b/icons/obj/guncase.dmi differ diff --git a/icons/obj/guncase_48x32.dmi b/icons/obj/guncase_48x32.dmi new file mode 100644 index 000000000000..b5dc20bc64e5 Binary files /dev/null and b/icons/obj/guncase_48x32.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 9068f301647f..2ccd5f8cead1 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/wallcloset.dmi b/icons/obj/wallcloset.dmi index 6d41f0ecee85..f2314d0d84c2 100644 Binary files a/icons/obj/wallcloset.dmi and b/icons/obj/wallcloset.dmi differ diff --git a/icons/turf/decals/suns_floor.dmi b/icons/turf/decals/suns_floor.dmi index cce105645f23..ffebe3036722 100644 Binary files a/icons/turf/decals/suns_floor.dmi and b/icons/turf/decals/suns_floor.dmi differ diff --git a/shiptest.dme b/shiptest.dme index b29930a658ee..17389f325e20 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1316,6 +1316,7 @@ #include "code\game\objects\items\storage\briefcase.dm" #include "code\game\objects\items\storage\fancy.dm" #include "code\game\objects\items\storage\firstaid.dm" +#include "code\game\objects\items\storage\guncases.dm" #include "code\game\objects\items\storage\holsters.dm" #include "code\game\objects\items\storage\lockbox.dm" #include "code\game\objects\items\storage\ration.dm" diff --git a/sound/voice/kepori/kepiclick.ogg b/sound/voice/kepori/kepiclick.ogg index 61670a607b66..3f22b6d90d5e 100644 Binary files a/sound/voice/kepori/kepiclick.ogg and b/sound/voice/kepori/kepiclick.ogg differ diff --git a/sound/voice/kepori/kepiwhistle.ogg b/sound/voice/kepori/kepiwhistle.ogg index bf1cc76bf5cf..f6260f4c5894 100644 Binary files a/sound/voice/kepori/kepiwhistle.ogg and b/sound/voice/kepori/kepiwhistle.ogg differ diff --git a/strings/names/kepori_names.txt b/strings/names/kepori_names.txt new file mode 100644 index 000000000000..f5cf1fa086a7 --- /dev/null +++ b/strings/names/kepori_names.txt @@ -0,0 +1,40 @@ +Ademake +Ankatse +Atchenti +Cautse +Catuwe +Dakenui +Deduci +Dirame +Drakece +Dutsesi +Gahthi +Halake +Hetchel +Huler +Hanusi +Lanirvi +Latedi +Meleri +Meski +Minele +Naaka +Natari +Nenuda +Nirena +Orucati +Pawitts +Plakat +Rakire +Renuire +Rilena +Setasi +Sutiraze +Temiti +Tetha +Tokaibi +Witaseni +Winuusi +Yikitse +Yitosun +Yunthedi