/tg/ mecha - Part 1

Start of porting the /tg/station mecha update.
This commit only cleans up the code and adds the proper dependencies for
the mecha.

 - Removes relative pathing from /datum/events
 - Updated Process_Spacemove() to use
   atom/movable/proc/get_spacemove_backup()
   - Basically just makes launching off of unanchored objects in space an
     OOP behaviour
 - Removed styling atrocities and relative pathing from most of the mecha files.
  - Notable exceptions:
   - code/game/mecha/mech_bay.dm
   - code/game/mecha/mech_fabricator.dm
   - code/game/mecha/mecha_construction_paths.dm
   - code/game/mecha/mecha_parts.dm
   - code/game/mecha/mecha_wreckage.dm
   - code/game/mecha/paintkits.dm
 - Removed dyndomove/dyndoattackby/dyndobulletact. No more icky dynamic
   calls. Replaced by specific code for the 3 modules that used it.
 - Refactored module cooldown. It now uses addtimer, and power usage is
   hooked directly into the cooldown calls.
 - Added atom/movable/proc/has_buckled_mobs(). Currently not that useful,
   but, necessary for porting the multi-buckling system from /tg/.
 - Split code/game/mecha/equipment/tools/tools.dm into multiple files.
 - Removed snowflake behaviour from exosuit drill. It now calls
   turf.drill_act(src).
  - Different from /tg/: Allows you to drill any wall/floor normally.
 - Drill no longer gibs mobs. It deals 80 organ damage instead.
 - Drill can be used to harvest dead mobs.
 - Removed all global_iterator systems from mecha and mecha equipment.
   Everything now uses object processing.
 - Mecha now have a turn sound variable and step sound variable. Updated
   all subtypes to use these instead of snowflake domove procs.
 - Removed mecha_do_after, mecha now uses the normal do_after.
 - Removed enter_after, same as above.
 - /obj/mecha/Process_Spacemove no longer strangely calls the user's
   spacemove.
 - /obj/mecha/return_pressure now uses return_air instead of copypasted
   cabin air detection.
 - Same for /obj/mecha/return_temperature
 - Added /obj/mecha/Exited. Basically, properly clears occupant refs,
   even if they teleport out/otherwise exit improperly.
 - Added hooks for mecha action buttons; Didn't implement them yet.
 - Moved mecha UI to code/game/mecha/mecha_topic.dm
 - Fixed turfs not updating atmos when ChangeTurf(/turf/space) is used.
 - Updated visible_message and audible_message. Both now use
   get_mobs_in_view() to ensure that mobs inside containers can see
   messages.
 - Removed /obj/item/mecha_parts/mecha_equipment/tool subtype. It had no
   use. Any subtypes are now just subtypes of
   /obj/item/mecha_parts/mecha_equipment.
This commit is contained in:
Tigercat2000
2016-08-12 06:14:00 -07:00
parent a0520862d6
commit 258f477eb3
34 changed files with 2716 additions and 3164 deletions
@@ -601,7 +601,7 @@
name = "Exosuit Engineering Equipment (Cable Layer)"
id = "mech_cable_layer"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/cable_layer
build_path = /obj/item/mecha_parts/mecha_equipment/cable_layer
materials = list(MAT_METAL=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -610,7 +610,7 @@
name = "Exosuit Engineering Equipment (Drill)"
id = "mech_drill"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill
build_path = /obj/item/mecha_parts/mecha_equipment/drill
materials = list(MAT_METAL=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -619,7 +619,7 @@
name = "Exosuit Engineering Equipment (Extinguisher)"
id = "mech_extinguisher"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/extinguisher
build_path = /obj/item/mecha_parts/mecha_equipment/extinguisher
materials = list(MAT_METAL=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -628,7 +628,7 @@
name = "Exosuit Engineering Equipment (Hydraulic Clamp)"
id = "mech_hydraulic_clamp"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp
build_path = /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp
materials = list(MAT_METAL=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -638,7 +638,7 @@
id = "mech_sleeper"
build_type = MECHFAB
req_tech = list("biotech" = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/sleeper
build_path = /obj/item/mecha_parts/mecha_equipment/medical/sleeper
materials = list(MAT_METAL=5000,MAT_GLASS=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -648,7 +648,7 @@
id = "mech_syringe_gun"
build_type = MECHFAB
req_tech = list("magnets" = 3,"biotech" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun
build_path = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun
materials = list(MAT_METAL=3000,MAT_GLASS=2000)
construction_time = 200
category = list("Exosuit Equipment")
@@ -723,7 +723,7 @@
desc = "An exosuit-mounted Mime Rapid Construction Device."
id = "mech_mrcd"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/mimercd
build_path = /obj/item/mecha_parts/mecha_equipment/mimercd
materials = list(MAT_METAL=30000,MAT_TRANQUILLITE=10000)
construction_time = 700
category = list("Exosuit Equipment")
@@ -735,7 +735,7 @@
id = "mech_diamond_drill"
build_type = MECHFAB
req_tech = list("materials" = 4, "engineering" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill
build_path = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill
materials = list(MAT_METAL=10000,MAT_DIAMOND=6500)
construction_time = 100
category = list("Exosuit Equipment")
@@ -744,7 +744,7 @@
name = "Exosuit Engineering Equipement (Mining Scanner)"
id = "mech_mscanner"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/mining_scanner
build_path = /obj/item/mecha_parts/mecha_equipment/mining_scanner
materials = list(MAT_METAL=5000,MAT_GLASS=2500)
construction_time = 50
category = list("Exosuit Equipment")
@@ -788,7 +788,7 @@
id = "mech_rcd"
build_type = MECHFAB
req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/rcd
build_path = /obj/item/mecha_parts/mecha_equipment/rcd
materials = list(MAT_METAL=30000,MAT_GOLD=20000,MAT_PLASMA=25000,MAT_SILVER=20000)
construction_time = 1200
category = list("Exosuit Equipment")
@@ -59,7 +59,7 @@
else if(istype(AM,/obj/mecha))
var/obj/mecha/M = AM
if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/tool/drill))
if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill))
M.selected.action(src)
/obj/structure/boulder/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
@@ -3,40 +3,11 @@
icon_state = "engineering_pod"
desc = "Stubby and round, it has a human sized access hatch on the top."
wreckage = /obj/effect/decal/mecha_wreckage/hoverpod
stepsound = 'sound/machines/hiss.ogg'
/obj/mecha/working/hoverpod/Process_Spacemove(var/movement_dir = 0)
return 1 // puts the hover in hoverpod
//these three procs overriden to play different sounds
/obj/mecha/working/hoverpod/mechturn(direction)
dir = direction
//playsound(src,'sound/machines/hiss.ogg',40,1)
return 1
/obj/mecha/working/hoverpod/mechstep(direction)
var/result = step(src,direction)
if(result)
playsound(src,'sound/machines/hiss.ogg',40,1)
return result
/obj/mecha/working/hoverpod/mechsteprand()
var/result = step_rand(src)
if(result)
playsound(src,'sound/machines/hiss.ogg',40,1)
return result
/obj/effect/decal/mecha_wreckage/hoverpod
name = "Hover pod wreckage"
icon_state = "engineering_pod-broken"
/*New()
..()
var/list/parts = list(
for(var/i=0;i<2;i++)
if(!isemptylist(parts) && prob(40))
var/part = pick(parts)
welder_salvage += part
parts -= part
return*/