Janitor ERT

Because.
This commit is contained in:
SinTwo
2015-04-26 14:37:44 -04:00
parent 50b5d35c92
commit 7df732434d
18 changed files with 2651 additions and 2377 deletions
+1 -1
View File
@@ -48,4 +48,4 @@
/obj/effect/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/mop) || istype(I, /obj/item/weapon/soap))
return
..()
..()
@@ -0,0 +1,59 @@
/obj/item/weapon/mop_deploy
name = "mop"
desc = "Deployable mop."
icon_state = "mop"
force = 3
anchored = 1 // Never spawned outside of inventory, should be fine.
throwforce = 1 //Throwing or dropping the item deletes it.
throw_speed = 1
throw_range = 1
w_class = 4.0//So you can't hide it in your pocket or some such.
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
var/mob/living/creator
/obj/item/weapon/mop_deploy/New()
create_reagents(100)
processing_objects |= src
/obj/item/weapon/mop_deploy/afterattack(atom/A, mob/user, proximity)
if(!proximity) return
if(istype(A, /turf) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune))
user.visible_message("<span class='warning'>[user] begins to clean \the [get_turf(A)].</span>")
if(do_after(user, 40))
var/turf/T = get_turf(A)
if(T)
T.clean(src)
user << "<span class='notice'>You have finished mopping!</span>"
/obj/effect/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/mop_deploy) || istype(I, /obj/item/weapon/soap))
return
..()
/obj/item/weapon/mop_deploy/Del()
processing_objects -= src
..()
/obj/item/weapon/mop_deploy/attack_self(mob/user as mob)
user.drop_from_inventory(src)
spawn(1) if(src) del(src)
/obj/item/weapon/mop_deploy/dropped()
spawn(1) if(src) del(src)
/obj/item/weapon/mop_deploy/process()
if(!creator || loc != creator || (creator.l_hand != src && creator.r_hand != src))
// Tidy up a bit.
if(istype(loc,/mob/living))
var/mob/living/carbon/human/host = loc
if(istype(host))
for(var/obj/item/organ/external/organ in host.organs)
for(var/obj/item/O in organ.implants)
if(O == src)
organ.implants -= src
host.pinned -= src
host.embedded -= src
host.drop_from_inventory(src)
spawn(1) if(src) del(src)
@@ -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."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 KiB

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+2374 -2375
View File
File diff suppressed because it is too large Load Diff
+65
View File
@@ -5,6 +5,70 @@
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
#define FILE_DIR "html"
#define FILE_DIR "html/images"
#define FILE_DIR "icons"
#define FILE_DIR "icons/48x48"
#define FILE_DIR "icons/atmos"
#define FILE_DIR "icons/effects"
#define FILE_DIR "icons/mecha"
#define FILE_DIR "icons/misc"
#define FILE_DIR "icons/mob"
#define FILE_DIR "icons/mob/human_races"
#define FILE_DIR "icons/mob/human_races/cyberlimbs"
#define FILE_DIR "icons/mob/human_races/masks"
#define FILE_DIR "icons/mob/human_races/monkeys"
#define FILE_DIR "icons/mob/human_races/xenos"
#define FILE_DIR "icons/mob/items"
#define FILE_DIR "icons/mob/species"
#define FILE_DIR "icons/mob/species/skrell"
#define FILE_DIR "icons/mob/species/tajaran"
#define FILE_DIR "icons/mob/species/unathi"
#define FILE_DIR "icons/mob/species/vox"
#define FILE_DIR "icons/NTOS"
#define FILE_DIR "icons/NTOS/battery_icons"
#define FILE_DIR "icons/obj"
#define FILE_DIR "icons/obj/assemblies"
#define FILE_DIR "icons/obj/atmospherics"
#define FILE_DIR "icons/obj/clothing"
#define FILE_DIR "icons/obj/clothing/species"
#define FILE_DIR "icons/obj/clothing/species/skrell"
#define FILE_DIR "icons/obj/clothing/species/tajaran"
#define FILE_DIR "icons/obj/clothing/species/unathi"
#define FILE_DIR "icons/obj/doors"
#define FILE_DIR "icons/obj/flora"
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/pipes"
#define FILE_DIR "icons/pda_icons"
#define FILE_DIR "icons/spideros_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "maps"
#define FILE_DIR "maps/overmap"
#define FILE_DIR "maps/overmap/bearcat"
#define FILE_DIR "nano"
#define FILE_DIR "nano/images"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/effects"
#define FILE_DIR "sound/effects/turret"
#define FILE_DIR "sound/effects/wind"
#define FILE_DIR "sound/hallucinations"
#define FILE_DIR "sound/items"
#define FILE_DIR "sound/machines"
#define FILE_DIR "sound/mecha"
#define FILE_DIR "sound/misc"
#define FILE_DIR "sound/music"
#define FILE_DIR "sound/piano"
#define FILE_DIR "sound/violin"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/voice/Serithi"
#define FILE_DIR "sound/weapons"
#define FILE_DIR "tools"
#define FILE_DIR "tools/AddToChangelog"
#define FILE_DIR "tools/AddToChangelog/AddToChangelog"
// END_FILE_DIR
// BEGIN_PREFERENCES
#define DEBUG
@@ -609,6 +673,7 @@
#include "code\game\objects\items\weapons\kitchen.dm"
#include "code\game\objects\items\weapons\manuals.dm"
#include "code\game\objects\items\weapons\mop.dm"
#include "code\game\objects\items\weapons\mop_deploy.dm"
#include "code\game\objects\items\weapons\paint.dm"
#include "code\game\objects\items\weapons\paiwire.dm"
#include "code\game\objects\items\weapons\policetape.dm"