mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-20 11:35:19 +01:00
Janitor ERT
Because.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
* /obj/item/rig_module/mounted/taser
|
||||
* /obj/item/rig_module/shield
|
||||
* /obj/item/rig_module/fabricator
|
||||
* /obj/item/rig_module/mounted/energy_blade
|
||||
*/
|
||||
|
||||
/obj/item/rig_module/grenade_launcher
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
* /obj/item/rig_module/chem_dispenser
|
||||
* /obj/item/rig_module/chem_dispenser/injector
|
||||
* /obj/item/rig_module/voice
|
||||
* /obj/item/rig_module/mounted/mop
|
||||
* /obj/item/rig_module/cleaner_launcher
|
||||
*/
|
||||
|
||||
/obj/item/rig_module/device
|
||||
@@ -377,4 +379,139 @@
|
||||
jets.holder = null
|
||||
jets.ion_trail.set_up(jets)
|
||||
|
||||
/obj/item/rig_module/foam_sprayer
|
||||
/obj/item/rig_module/foam_sprayer
|
||||
|
||||
|
||||
//Deployable Mop
|
||||
|
||||
/obj/item/rig_module/mounted/mop
|
||||
|
||||
name = "mop projector"
|
||||
desc = "A powerful mop projector."
|
||||
icon_state = "mop"
|
||||
|
||||
activate_string = "Project Mop"
|
||||
deactivate_string = "Cancel Mop"
|
||||
|
||||
interface_name = "mop projector"
|
||||
interface_desc = "A mop that can be deployed from the hand of the wearer."
|
||||
|
||||
usable = 0
|
||||
selectable = 1
|
||||
toggleable = 1
|
||||
use_power_cost = 0
|
||||
active_power_cost = 0
|
||||
passive_power_cost = 0
|
||||
|
||||
gun_type = /obj/item/weapon/reagent_containers/spray/cleaner
|
||||
|
||||
/obj/item/rig_module/mounted/mop/process()
|
||||
|
||||
if(holder && holder.wearer)
|
||||
if(!(locate(/obj/item/weapon/mop_deploy) in holder.wearer))
|
||||
deactivate()
|
||||
return 0
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/rig_module/mounted/mop/activate()
|
||||
|
||||
..()
|
||||
|
||||
var/mob/living/M = holder.wearer
|
||||
|
||||
if(M.l_hand && M.r_hand)
|
||||
M << "<span class='danger'>Your hands are full.</span>"
|
||||
deactivate()
|
||||
return
|
||||
|
||||
var/obj/item/weapon/mop_deploy/blade = new(M)
|
||||
blade.creator = M
|
||||
M.put_in_hands(blade)
|
||||
|
||||
/obj/item/rig_module/mounted/mop/deactivate()
|
||||
|
||||
..()
|
||||
|
||||
var/mob/living/M = holder.wearer
|
||||
|
||||
if(!M)
|
||||
return
|
||||
|
||||
for(var/obj/item/weapon/mop_deploy/blade in M.contents)
|
||||
M.drop_from_inventory(blade)
|
||||
del(blade)
|
||||
|
||||
|
||||
//Space Cleaner Launcher
|
||||
|
||||
/obj/item/rig_module/cleaner_launcher
|
||||
|
||||
name = "mounted space cleaner launcher"
|
||||
desc = "A shoulder-mounted micro-cleaner dispenser."
|
||||
selectable = 1
|
||||
icon_state = "grenade_launcher"
|
||||
|
||||
interface_name = "integrated cleaner launcher"
|
||||
interface_desc = "Discharges loaded cleaner grenades against the wearer's location."
|
||||
|
||||
var/fire_force = 30
|
||||
var/fire_distance = 10
|
||||
|
||||
charges = list(
|
||||
list("cleaner grenade", "cleaner grenade", /obj/item/weapon/grenade/chem_grenade/cleaner, 9),
|
||||
)
|
||||
|
||||
/obj/item/rig_module/cleaner_launcher/accepts_item(var/obj/item/input_device, var/mob/living/user)
|
||||
|
||||
if(!istype(input_device) || !istype(user))
|
||||
return 0
|
||||
|
||||
var/datum/rig_charge/accepted_item
|
||||
for(var/charge in charges)
|
||||
var/datum/rig_charge/charge_datum = charges[charge]
|
||||
if(input_device.type == charge_datum.product_type)
|
||||
accepted_item = charge_datum
|
||||
break
|
||||
|
||||
if(!accepted_item)
|
||||
return 0
|
||||
|
||||
if(accepted_item.charges >= 5)
|
||||
user << "<span class='danger'>Another grenade of that type will not fit into the module.</span>"
|
||||
return 0
|
||||
|
||||
user << "<font color='blue'><b>You slot \the [input_device] into the suit module.</b></font>"
|
||||
user.drop_from_inventory(input_device)
|
||||
del(input_device)
|
||||
accepted_item.charges++
|
||||
return 1
|
||||
|
||||
/obj/item/rig_module/cleaner_launcher/engage(atom/target)
|
||||
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
if(!target)
|
||||
return 0
|
||||
|
||||
var/mob/living/carbon/human/H = holder.wearer
|
||||
|
||||
if(!charge_selected)
|
||||
H << "<span class='danger'>You have not selected a grenade type.</span>"
|
||||
return 0
|
||||
|
||||
var/datum/rig_charge/charge = charges[charge_selected]
|
||||
|
||||
if(!charge)
|
||||
return 0
|
||||
|
||||
if(charge.charges <= 0)
|
||||
H << "<span class='danger'>Insufficient grenades!</span>"
|
||||
return 0
|
||||
|
||||
charge.charges--
|
||||
var/obj/item/weapon/grenade/new_grenade = new charge.product_type(get_turf(H))
|
||||
H.visible_message("<span class='danger'>[H] launches \a [new_grenade]!")
|
||||
new_grenade.activate(H)
|
||||
new_grenade.throw_at(target,fire_force,fire_distance)
|
||||
@@ -43,6 +43,19 @@
|
||||
name = "insulated gauntlets"
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/weapon/rig/ert/janitor
|
||||
name = "ERT-J suit control module"
|
||||
desc = "A suit worn by the janitor division of a NanoTrasen Emergency Response Team. Has purple highlights. Armoured and space ready."
|
||||
suit_type = "ERT Janitor"
|
||||
icon_state = "ert_janitor_rig"
|
||||
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/ai_container,
|
||||
/obj/item/rig_module/maneuvering_jets,
|
||||
/obj/item/rig_module/mounted/mop,
|
||||
/obj/item/rig_module/cleaner_launcher,
|
||||
)
|
||||
|
||||
/obj/item/weapon/rig/ert/medical
|
||||
name = "ERT-M suit control module"
|
||||
desc = "A suit worn by the medical division of a NanoTrasen Emergency Response Team. Has white highlights. Armoured and space ready."
|
||||
|
||||
Reference in New Issue
Block a user