From bb5e8f577c00a871514e95626c38ff0a8073b193 Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 24 Feb 2021 15:22:45 +0200 Subject: [PATCH] Exosuit Cleaner (#11270) --- .../modules/heavy_vehicle/equipment/combat.dm | 82 +++++-------------- .../heavy_vehicle/equipment/utility.dm | 11 ++- .../heavy_vehicle/premade/powerloader.dm | 10 +++ .../mechs/designs_exosuit_equipment.dm | 6 ++ html/changelogs/geeves-mecha_cleaner.yml | 6 ++ 5 files changed, 51 insertions(+), 64 deletions(-) create mode 100644 html/changelogs/geeves-mecha_cleaner.yml diff --git a/code/modules/heavy_vehicle/equipment/combat.dm b/code/modules/heavy_vehicle/equipment/combat.dm index 94e5d8e0abc..3d53326f98c 100644 --- a/code/modules/heavy_vehicle/equipment/combat.dm +++ b/code/modules/heavy_vehicle/equipment/combat.dm @@ -106,7 +106,7 @@ name = "flashbang launcher" desc = "The SGL-6FL grenade launcher is designated to launch primed flashbangs." icon_state = "mech_gl" - holding_type = /obj/item/gun/launcher/mech/mountedfl + holding_type = /obj/item/gun/launcher/mech/mountedgl/fl restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) restricted_software = list(MECH_SOFTWARE_WEAPONS) @@ -114,7 +114,7 @@ name = "teargas launcher" desc = "The SGL-6TGL grenade launcher is designated to launch primed teargas grenades." icon_state = "mech_gl" - holding_type = /obj/item/gun/launcher/mech/mountedtgl + holding_type = /obj/item/gun/launcher/mech/mountedgl/tg restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) restricted_software = list(MECH_SOFTWARE_WEAPONS) @@ -122,7 +122,7 @@ name = "smoke grenade launcher" desc = "The SGL-6SGL grenade launcher is designated to launch primed smoke grenades." icon_state = "mech_gl" - holding_type = /obj/item/gun/launcher/mech/mountedsgl + holding_type = /obj/item/gun/launcher/mech/mountedgl/sm restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) restricted_software = list(MECH_SOFTWARE_WEAPONS) @@ -189,6 +189,8 @@ item_state = "smg" fire_sound = 'sound/weapons/grenadelaunch.ogg' + var/grenade_type = /obj/item/grenade/frag + release_force = 5 throw_distance = 7 proj = 5 @@ -197,83 +199,37 @@ /obj/item/gun/launcher/mech/mountedgl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/frag/g = new (src) + if(proj < 1) + return null + var/obj/item/grenade/g = new grenade_type(src) g.det_time = 10 g.activate(null) proj-- addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) return g -/obj/item/gun/launcher/mech/mountedfl - name = "mounted grenade launcher" +/obj/item/gun/launcher/mech/mountedgl/fl desc = "The SGL-6FL grenade launcher is designated to launch primed flashbangs." - icon = 'icons/obj/robot_items.dmi' - icon_state = "smg" - item_state = "smg" - fire_sound = 'sound/weapons/grenadelaunch.ogg' - - release_force = 5 - throw_distance = 7 - proj = 5 - max_proj = 5 + grenade_type = /obj/item/grenade/flashbang proj_gen_time = 200 - -/obj/item/gun/launcher/mech/mountedfl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/flashbang/g = new (src) - g.det_time = 10 - g.activate(null) - proj-- - addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) - return g - -/obj/item/gun/launcher/mech/mountedtgl +/obj/item/gun/launcher/mech/mountedgl/tg name = "mounted teargas launcher" desc = "The SGL-6TGL grenade launcher is designated to launch primed teargas grenades." - icon = 'icons/obj/robot_items.dmi' - icon_state = "smg" - item_state = "smg" - fire_sound = 'sound/weapons/grenadelaunch.ogg' - - release_force = 5 - throw_distance = 7 - proj = 3 - max_proj = 3 + grenade_type = /obj/item/grenade/chem_grenade/teargas proj_gen_time = 200 -/obj/item/gun/launcher/mech/mountedtgl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/chem_grenade/teargas/tg = new (src) - tg.det_time = 10 - tg.activate(null) - proj-- - addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) - return tg - -/obj/item/gun/launcher/mech/mountedsgl +/obj/item/gun/launcher/mech/mountedgl/sm name = "mounted smoke launcher" desc = "The SGL-6SGL grenade launcher is designated to launch primed smoke grenades." - icon = 'icons/obj/robot_items.dmi' - icon_state = "smg" - item_state = "smg" - fire_sound = 'sound/weapons/grenadelaunch.ogg' - - release_force = 5 - throw_distance = 7 - proj = 3 - max_proj = 3 + grenade_type = /obj/item/grenade/smokebomb proj_gen_time = 200 -/obj/item/gun/launcher/mech/mountedsgl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/smokebomb/sg = new (src) - sg.det_time = 10 - sg.activate(null) - proj-- - addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) - return sg +/obj/item/gun/launcher/mech/mountedgl/cl + name = "mounted cleaner launcher" + desc = "The SGL-6CL grenade launcher is designed to launch primed cleaner grenades." + grenade_type = /obj/item/grenade/chem_grenade/cleaner + proj_gen_time = 200 /obj/item/gun/launcher/mech/get_hardpoint_maptext() return "[proj]/[max_proj]" diff --git a/code/modules/heavy_vehicle/equipment/utility.dm b/code/modules/heavy_vehicle/equipment/utility.dm index 5a923c4e6b0..051a2764cd0 100644 --- a/code/modules/heavy_vehicle/equipment/utility.dm +++ b/code/modules/heavy_vehicle/equipment/utility.dm @@ -645,4 +645,13 @@ return /obj/item/mecha_equipment/quick_enter/attack_self() - return \ No newline at end of file + return + + +/obj/item/mecha_equipment/mounted_system/grenadecleaner + name = "cleaner grenade launcher" + desc = "The SGL-6CL grenade launcher is designed to launch primed cleaner grenades." + icon_state = "mech_gl" + holding_type = /obj/item/gun/launcher/mech/mountedgl/cl + restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) + restricted_software = list(MECH_SOFTWARE_UTILITY) \ No newline at end of file diff --git a/code/modules/heavy_vehicle/premade/powerloader.dm b/code/modules/heavy_vehicle/premade/powerloader.dm index 02038c0e824..248bca4279f 100644 --- a/code/modules/heavy_vehicle/premade/powerloader.dm +++ b/code/modules/heavy_vehicle/premade/powerloader.dm @@ -18,6 +18,16 @@ /mob/living/heavy_vehicle/premade/ripley/cargo h_back = /obj/item/mecha_equipment/autolathe +/mob/living/heavy_vehicle/premade/ripley/janitorial + name = "janitorial power loader" + desc = "A standard cargo-handling power loader converted into a cleaning machine." + + e_color = COLOR_PURPLE + h_l_hand = /obj/item/mecha_equipment/clamp + h_l_shoulder = /obj/item/mecha_equipment/mounted_system/grenadecleaner + h_r_shoulder = /obj/item/mecha_equipment/mounted_system/grenadecleaner + h_back = /obj/item/mecha_equipment/quick_enter + /obj/item/mech_component/manipulators/ripley name = "exosuit arms" exosuit_desc_string = "heavy-duty industrial lifters" diff --git a/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm b/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm index 46a0445a71b..9fc71f6f0b4 100644 --- a/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm +++ b/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm @@ -78,6 +78,12 @@ build_path = /obj/item/mecha_equipment/mounted_system/grenadeflash materials = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GOLD = 6000, MATERIAL_PHORON = 6000) +/datum/design/item/mechfab/exosuit_equipment/cleaner + name = "Mounted Cleaner Grenade Launcher" + req_tech = list(TECH_MATERIAL = 2) + build_path = /obj/item/mecha_equipment/mounted_system/grenadecleaner + materials = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GLASS = 10000) + /datum/design/item/mechfab/exosuit_equipment/crisisdrone name = "Mounted Crisis Drone" build_path = /obj/item/mecha_equipment/crisis_drone diff --git a/html/changelogs/geeves-mecha_cleaner.yml b/html/changelogs/geeves-mecha_cleaner.yml new file mode 100644 index 00000000000..a80570081f3 --- /dev/null +++ b/html/changelogs/geeves-mecha_cleaner.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added cleaning grenade launchers to the exosuit equipment list in the mechfab." \ No newline at end of file