diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 8c4b6da914..21c5e69890 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1304,9 +1304,6 @@ dir = 1; layer = 2.9 }, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -26100,6 +26097,32 @@ /area/maintenance/disposal) "bkA" = ( /obj/effect/landmark/event_spawn, +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/item/gun/ballistic/automatic/pistol/p37/sec, +/obj/item/gun/ballistic/automatic/pistol/p37/sec, +/obj/item/gun/ballistic/automatic/pistol/p37/sec, +/obj/item/ammo_box/magazine/m9mm/p37/rubber, +/obj/item/ammo_box/magazine/m9mm/p37/rubber, +/obj/item/ammo_box/magazine/m9mm/p37/rubber, +/obj/item/ammo_box/magazine/m9mm/p37{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m9mm/p37{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m9mm/p37{ + pixel_x = -3; + pixel_y = 3 + }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bkB" = ( @@ -51772,6 +51795,26 @@ pixel_x = 3; pixel_y = -3 }, +/obj/item/ammo_box/c9mm/rubber{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_box/c9mm/rubber{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_box/c9mm/rubber{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_box/c9mm/frangible{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/ammo_box/c9mm/frangible{ + pixel_x = -3; + pixel_y = -3 + }, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -85738,8 +85781,8 @@ afy agh afA QrJ -QrP -QrS +QrK +QrK aiV ajs akb @@ -85996,7 +86039,7 @@ agg afA QrK QrQ -QrT +QrK aiV ajr aka @@ -86253,7 +86296,7 @@ afA afA QrL QrR -QrU +QrK aiV aju akd @@ -89085,8 +89128,8 @@ agj aja akl Qsa -Qsd -amh +Qsc +Qsh ami aiX anw @@ -90092,7 +90135,7 @@ aaa aaa aaa aaf -QqS +QqR aaf aaZ Qra @@ -90349,12 +90392,12 @@ aaa aaa aaa aaf -QqT +QqR aaf aaZ Qrb Qrj -Qrr +Qrq aaZ acl cxA @@ -90367,7 +90410,7 @@ ahx ahS aiK ajc -QrW +QrV akm akT alf @@ -90606,10 +90649,10 @@ aaa aaa aaa aaf -QqU +QqR aaf aaZ -Qrc +Qrb Qrk Qrs aaZ @@ -90863,7 +90906,7 @@ aaa aaa aaa aaf -QqV +QqR aaf aaZ Qrd @@ -91120,12 +91163,12 @@ aaa aaa aaa aaf -QqW +QqR aaf aaZ Qre Qrm -Qru +Qrt aaZ QrA coS @@ -91377,7 +91420,7 @@ aaa aaa aaa aaf -QqX +QqR aaf aaZ Qrf @@ -91403,7 +91446,7 @@ amn amV Qsu anB -QsG +Qsq aod aqf ahT @@ -91634,7 +91677,7 @@ aaa aaa aaa aaf -QqY +QqR aaf aaZ Qrg @@ -91891,7 +91934,7 @@ aaa aaa aaa aaf -QqZ +QqR aaf aaZ Qrh @@ -91914,9 +91957,9 @@ akr amS alC Qsm -amX -amX -amX +Qsm +Qsm +Qsm aoB aod aqe @@ -92171,8 +92214,8 @@ QrZ akW anw amo -amX -amX +Qsm +Qsm QsA QsH QsI @@ -92684,10 +92727,10 @@ ajK aks akY Qsg -Qso +Qsn Qsr amo -QsC +QsB aoC aod aqe @@ -92943,7 +92986,7 @@ aiX akz Qsp Qss -Qsw +Qss QsD aoF apo diff --git a/code/citadel/cit_guns.dm b/code/citadel/cit_guns.dm index 7127371830..f3563f0b22 100644 --- a/code/citadel/cit_guns.dm +++ b/code/citadel/cit_guns.dm @@ -915,3 +915,260 @@ obj/item/projectile/bullet/c10mm/soporific materials = list(MAT_METAL = 7500, MAT_GLASS = 1000) build_path = /obj/item/gun/energy/laser/practice/raygun category = list("hacked", "Misc") + +/*///////////////////////////////////////////////////////////////////////////////////////////// + The Recolourable Gun +*////////////////////////////////////////////////////////////////////////////////////////////// + +/obj/item/gun/ballistic/automatic/pistol/p37 + name = "\improper CX Mk.37P" + desc = "A modern reimagining of an old legendary gun, the Mk.37 is a handgun with a toggle-locking mechanism manufactured by CX Armories. This model is coated with a special polychromic material. Uses 9mm bullets loaded into proprietary magazines." + icon = 'icons/obj/guns/cit_guns.dmi' + icon_state = "p37" + w_class = WEIGHT_CLASS_NORMAL + spawnwithmagazine = FALSE + mag_type = /obj/item/ammo_box/magazine/m9mm/p37 + can_suppress = FALSE + actions_types = list(/datum/action/item_action/pick_color) + + var/frame_color = "#808080" //RGB + var/receiver_color = "#808080" + var/body_color = "#0098FF" + var/barrel_color = "#808080" + var/tip_color = "#808080" + var/arm_color = "#808080" + var/grip_color = "#00FFCB" //Does not actually colour the grip, just the lights surrounding it + var/energy_color = "#00FFCB" + +///Defining all the colourable bits and displaying them/// + +/obj/item/gun/ballistic/automatic/pistol/p37/update_icon() + var/mutable_appearance/frame_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_frame") + var/mutable_appearance/receiver_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_receiver") + var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_body") + var/mutable_appearance/barrel_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_barrel") + var/mutable_appearance/tip_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_tip") + var/mutable_appearance/grip_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_grip") + var/mutable_appearance/energy_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_light") + var/mutable_appearance/arm_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_arm") + var/mutable_appearance/arm_overlay_e = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_arm-e") + + if(frame_color) + frame_overlay.color = frame_color + if(receiver_color) + receiver_overlay.color = receiver_color + if(body_color) + body_overlay.color = body_color + if(barrel_color) + barrel_overlay.color = barrel_color + if(tip_color) + tip_overlay.color = tip_color + if(grip_color) + grip_overlay.color = grip_color + if(energy_color) + energy_overlay.color = energy_color + if(arm_color) + arm_overlay.color = arm_color + if(arm_color) + arm_overlay_e.color = arm_color + + cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other + + add_overlay(frame_overlay) + add_overlay(receiver_overlay) + add_overlay(body_overlay) + add_overlay(barrel_overlay) + add_overlay(tip_overlay) + add_overlay(grip_overlay) + add_overlay(energy_overlay) + + if(magazine) //does not need a cut_overlays proc call here because it's already called further up + add_overlay("p37_mag") + + if(chambered) + cut_overlay(arm_overlay_e) + add_overlay(arm_overlay) + else + cut_overlay(arm_overlay) + add_overlay(arm_overlay_e) + +///letting you actually recolor things/// + +/obj/item/gun/ballistic/automatic/pistol/p37/ui_action_click(mob/user, var/datum/action/A) + if(istype(A, /datum/action/item_action/pick_color)) + + if(alert("Are you sure you want to repaint your gun?", "Confirm Repaint", "Yes", "No") == "Yes") //so you don't need to carefully click 8 times if you accidentally click on this + + var/frame_color_input = input(usr,"Choose Frame Color") as color|null + if(frame_color_input) + frame_color = sanitize_hexcolor(frame_color_input, desired_format=6, include_crunch=1) + + var/receiver_color_input = input(usr,"Choose Receiver Color") as color|null + if(receiver_color_input) + receiver_color = sanitize_hexcolor(receiver_color_input, desired_format=6, include_crunch=1) + + var/body_color_input = input(usr,"Choose Body Color") as color|null + if(body_color_input) + body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) + + var/barrel_color_input = input(usr,"Choose Barrel Color") as color|null + if(barrel_color_input) + barrel_color = sanitize_hexcolor(barrel_color_input, desired_format=6, include_crunch=1) + + var/tip_color_input = input(usr,"Choose Barrel Tip Color") as color|null + if(tip_color_input) + tip_color = sanitize_hexcolor(tip_color_input, desired_format=6, include_crunch=1) + + var/grip_color_input = input(usr,"Choose Grip Light Color") as color|null + if(grip_color_input) + grip_color = sanitize_hexcolor(grip_color_input, desired_format=6, include_crunch=1) + + var/energy_color_input = input(usr,"Choose Light Color") as color|null + if(energy_color_input) + energy_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) + + var/arm_color_input = input(usr,"Choose Arm Color") as color|null + if(arm_color_input) + arm_color = sanitize_hexcolor(arm_color_input, desired_format=6, include_crunch=1) + + update_icon() + else + ..() + +///boolets/// + +/obj/item/projectile/bullet/c9mm/frangible + name = "9mm frangible bullet" + damage = 15 + stamina = 65 + armour_penetration = -15 + +/obj/item/projectile/bullet/c9mm/rubber + name = "9mm rubber bullet" + damage = 5 + stamina = 50 + knockdown = 60 + +/obj/item/ammo_casing/c9mm/frangible + name = "9mm frangible bullet casing" + desc = "A 9mm frangible bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/frangible + +/obj/item/ammo_casing/c9mm/rubber + name = "9mm rubber bullet casing" + desc = "A 9mm rubber bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/rubber + +/obj/item/ammo_box/magazine/m9mm/p37 + name = "\improper P37 magazine (9mm frangible)" + desc = "A gun magazine. Loaded with plastic composite rounds which fragment upon impact to minimize collateral damage." + icon = 'icons/obj/guns/cit_guns.dmi' + icon_state = "11mm" //topkek + ammo_type = /obj/item/ammo_casing/c9mm/frangible + caliber = "9mm" + max_ammo = 11 + multiple_sprites = 1 + +/obj/item/ammo_box/magazine/m9mm/p37/fmj + name = "\improper P37 magazine (9mm)" + ammo_type = /obj/item/ammo_casing/c9mm + desc = "A gun magazine. Loaded with conventional full metal jacket rounds." + +/obj/item/ammo_box/magazine/m9mm/p37/rubber + name = "\improper P37 magazine (9mm Non-Lethal Rubbershot)" + ammo_type = /obj/item/ammo_casing/c9mm/rubber + desc = "A gun magazine. Loaded with less-than-lethal rubber bullets." + +/obj/item/ammo_box/c9mm/frangible + name = "ammo box (9mm frangible)" + ammo_type = /obj/item/ammo_casing/c9mm/frangible + +/obj/item/ammo_box/c9mm/rubber + name = "ammo box (9mm non-lethal rubbershot)" + ammo_type = /obj/item/ammo_casing/c9mm/rubber + +/datum/design/c9mmfrag + name = "Box of 9mm Frangible Bullets" + id = "9mm_frag" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/c9mm/frangible + category = list("initial", "Security") + +/datum/design/c9mmrubber + name = "Box of 9mm Rubber Bullets" + id = "9mm_rubber" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/c9mm/rubber + category = list("initial", "Security") + + +///Security Variant/// + +/obj/item/gun/ballistic/automatic/pistol/p37/sec + name = "\improper CX Mk.37S" + desc = "A modern reimagining of an old legendary gun, the Mk.37 is a handgun with a toggle-locking mechanism manufactured by CX Armories. Uses 9mm bullets loaded into proprietary magazines." + spawnwithmagazine = FALSE + actions_types = list() //so you can't recolor it + + frame_color = "#808080" //RGB + receiver_color = "#808080" + body_color = "#282828" + barrel_color = "#808080" + tip_color = "#808080" + arm_color = "#800000" + grip_color = "#FFFF00" //Does not actually colour the grip, just the lights surrounding it + energy_color = "#FFFF00" + +///Foam Variant because WE NEED MEMES/// + +/obj/item/gun/ballistic/automatic/pistol/p37/foam + name = "\improper Foam Force Mk.37F" + desc = "A licensed foam-firing reproduction of a handgun with a toggle-locking mechanism manufactured by CX Armories. This model is coated with a special polychromic material. Uses standard foam pistol magazines." + icon_state = "p37_foam" + spawnwithmagazine = TRUE + mag_type = /obj/item/ammo_box/magazine/toy/pistol + can_suppress = FALSE + actions_types = list(/datum/action/item_action/pick_color) + +/datum/design/foam_p37 + name = "Foam Force Mk.37F" + id = "foam_p37" + build_type = AUTOLATHE + materials = list(MAT_METAL = 15000, MAT_GLASS = 10000) + build_path = /obj/item/gun/ballistic/automatic/pistol/p37/foam + category = list("hacked", "Misc") + + +/*///////////////////////////////////////////////////////////////////////////////////////////// + The Recolourable Energy Gun +*////////////////////////////////////////////////////////////////////////////////////////////// + +obj/item/gun/energy/e_gun/cx + name = "\improper CX Model D Energy Gun" + desc = "An overpriced hybrid energy gun with three settings: disable, stun, and kill. Manufactured by CX Armories. Has a polychromic coating." + icon = 'icons/obj/guns/cit_guns.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + origin_tech = "combat=4;magnets=3" + flight_x_offset = 15 + flight_y_offset = 10 + actions_types = list(/datum/action/item_action/pick_color) + var/body_color = "#252528" + +obj/item/gun/energy/e_gun/cx/update_icon() + ..() + var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "cxegun_body") + if(body_color) + body_overlay.color = body_color + add_overlay(body_overlay) + +obj/item/gun/energy/e_gun/cx/ui_action_click(mob/user, var/datum/action/A) + if(istype(A, /datum/action/item_action/pick_color)) + if(alert("Are you sure you want to repaint your gun?", "Confirm Repaint", "Yes", "No") == "Yes") + var/body_color_input = input(usr,"Choose Body Color") as color|null + if(body_color_input) + body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) + update_icon() + else + ..() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index cec16f37c4..f01092e2ce 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -28,7 +28,11 @@ new /obj/item/clothing/gloves/color/captain(src) new /obj/item/restraints/handcuffs/cable/zipties(src) new /obj/item/storage/belt/sabre(src) - new /obj/item/gun/energy/e_gun(src) + new /obj/item/gun/energy/e_gun/cx(src) + new /obj/item/gun/ballistic/automatic/pistol/p37(src) + new /obj/item/ammo_box/magazine/m9mm/p37(src) + new /obj/item/ammo_box/magazine/m9mm/p37/rubber(src) + new /obj/item/ammo_box/magazine/m9mm/p37/rubber(src) new /obj/item/door_remote/captain(src) /obj/structure/closet/secure_closet/hop @@ -51,7 +55,7 @@ new /obj/item/device/assembly/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/restraints/handcuffs/cable/zipties(src) - new /obj/item/gun/energy/e_gun(src) + new /obj/item/gun/energy/e_gun/cx(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/door_remote/civillian(src) diff --git a/icons/obj/guns/cit_guns.dmi b/icons/obj/guns/cit_guns.dmi index 99fe102ffe..ecb99fec7f 100644 Binary files a/icons/obj/guns/cit_guns.dmi and b/icons/obj/guns/cit_guns.dmi differ