From c5c459c5ec8ec9c54e7d89fd4acf364ba15d19e5 Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 1 Jan 2020 17:28:30 +0200 Subject: [PATCH] Rudimentary Mech Z-level Travel and Hoverpods (#7739) --- aurorastation.dme | 1 + code/modules/heavy_vehicle/components/legs.dm | 1 + .../modules/heavy_vehicle/mech_interaction.dm | 2 +- .../modules/heavy_vehicle/premade/hoverpod.dm | 54 ++++++++++++++++++ code/modules/heavy_vehicle/premade/misc.dm | 14 +---- code/modules/multiz/movement.dm | 23 ++++++++ .../designs/mechfab/mechs/designs_exosuits.dm | 14 +++++ html/changelogs/geeves - hoverpods.yml | 8 +++ icons/mecha/mech_parts.dmi | Bin 13386 -> 14725 bytes 9 files changed, 103 insertions(+), 14 deletions(-) create mode 100644 code/modules/heavy_vehicle/premade/hoverpod.dm create mode 100644 html/changelogs/geeves - hoverpods.yml diff --git a/aurorastation.dme b/aurorastation.dme index 588deba8e77..09735fe362a 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1524,6 +1524,7 @@ #include "code\modules\heavy_vehicle\premade\_premade.dm" #include "code\modules\heavy_vehicle\premade\combat.dm" #include "code\modules\heavy_vehicle\premade\heavy.dm" +#include "code\modules\heavy_vehicle\premade\hoverpod.dm" #include "code\modules\heavy_vehicle\premade\light.dm" #include "code\modules\heavy_vehicle\premade\misc.dm" #include "code\modules\heavy_vehicle\premade\powerloader.dm" diff --git a/code/modules/heavy_vehicle/components/legs.dm b/code/modules/heavy_vehicle/components/legs.dm index fa72714378d..1ff33980fa8 100644 --- a/code/modules/heavy_vehicle/components/legs.dm +++ b/code/modules/heavy_vehicle/components/legs.dm @@ -9,6 +9,7 @@ var/mech_turn_sound = 'sound/mecha/mechturn.ogg' var/mech_step_sound = 'sound/mecha/mechstep.ogg' var/trample_damage = 5 + var/hover = FALSE // Can this leg allow you to easily travel z-levels? /obj/item/mech_component/propulsion/Destroy() QDEL_NULL(motivator) diff --git a/code/modules/heavy_vehicle/mech_interaction.dm b/code/modules/heavy_vehicle/mech_interaction.dm index f1d60a50ce4..f68bed83fba 100644 --- a/code/modules/heavy_vehicle/mech_interaction.dm +++ b/code/modules/heavy_vehicle/mech_interaction.dm @@ -470,7 +470,7 @@ if(!isliving(H)) return - if(legs) + if(legs?.trample_damage) if(ishuman(H)) var/mob/living/carbon/human/D = H if(D.lying) diff --git a/code/modules/heavy_vehicle/premade/hoverpod.dm b/code/modules/heavy_vehicle/premade/hoverpod.dm new file mode 100644 index 00000000000..2dd5a1b97de --- /dev/null +++ b/code/modules/heavy_vehicle/premade/hoverpod.dm @@ -0,0 +1,54 @@ +/mob/living/heavy_vehicle/premade/hoverpod + name = "hoverpod" + desc = "An aging exosuit, produced to be a cheap variant to traditional space transport." + icon_state = "engineering_pod" + +/mob/living/heavy_vehicle/premade/hoverpod/Initialize() + if(!arms) + arms = new /obj/item/mech_component/manipulators/ripley(src) + arms.color = COLOR_BLUE_GRAY + if(!legs) + legs = new /obj/item/mech_component/propulsion/hover(src) + legs.color = COLOR_BLUE_GRAY + if(!head) + head = new /obj/item/mech_component/sensors/ripley(src) + head.color = COLOR_BLUE_GRAY + if(!body) + body = new /obj/item/mech_component/chassis/pod(src) + body.color = COLOR_BLUE_GRAY + + . = ..() + +/mob/living/heavy_vehicle/premade/hoverpod/spawn_mech_equipment() + ..() + install_system(new /obj/item/mecha_equipment/drill(src), HARDPOINT_LEFT_HAND) + install_system(new /obj/item/mecha_equipment/clamp(src), HARDPOINT_RIGHT_HAND) + +/obj/item/mech_component/propulsion/hover + name = "hover thrusters" + exosuit_desc_string = "hover thrusters" + desc = "An ancient set of hover thrusters capable of keeping a exosuit aloft." + icon_state = "hoverlegs" + max_damage = 40 + move_delay = 4 + turn_delay = 2 + power_use = 3000 + trample_damage = 0 + hover = TRUE + +/obj/item/mech_component/chassis/pod + name = "spherical exosuit chassis" + hatch_descriptor = "window" + pilot_coverage = 100 + transparent_cabin = TRUE + hide_pilot = TRUE + exosuit_desc_string = "a spherical chassis" + icon_state = "pod_body" + max_damage = 70 + power_use = 5 + has_hardpoints = list(HARDPOINT_BACK) + desc = "A simple spherical exosuit cockpit commonly used in space pods." + +/obj/item/mech_component/chassis/pod/prebuild() + . = ..() + mech_armor = new /obj/item/robot_parts/robot_component/armor/mech/radproof(src) \ No newline at end of file diff --git a/code/modules/heavy_vehicle/premade/misc.dm b/code/modules/heavy_vehicle/premade/misc.dm index f08b611d8a1..5f8cd57e54f 100644 --- a/code/modules/heavy_vehicle/premade/misc.dm +++ b/code/modules/heavy_vehicle/premade/misc.dm @@ -20,16 +20,4 @@ power_use = 7500 color = COLOR_WHITE mech_step_sound = 'sound/mecha/tanktread.ogg' - trample_damage = 25 - -/obj/item/mech_component/chassis/pod - name = "spherical exosuit chassis" - hatch_descriptor = "hatch" - pilot_coverage = 100 - transparent_cabin = TRUE - exosuit_desc_string = "a spherical chassis" - icon_state = "pod_body" - max_damage = 70 - power_use = 5 - has_hardpoints = list(HARDPOINT_BACK) - desc = "A simple spherical exosuit cockpit commonly used in space pods." \ No newline at end of file + trample_damage = 25 \ No newline at end of file diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 98df713ef7d..b31dbe8d022 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -77,6 +77,10 @@ return TRUE /mob/living/carbon/human/zMove(direction) + if(istype(loc, /mob/living/heavy_vehicle)) + var/mob/living/heavy_vehicle/mech = loc + mech.zMove(direction) + return . = ..() if(.) for(var/obj/item/grab/G in list(l_hand, r_hand)) @@ -315,6 +319,19 @@ if((locate(/obj/structure/disposalpipe/up) in below) || (locate(/obj/machinery/atmospherics/pipe/zpipe/up) in below)) return FALSE +/mob/living/heavy_vehicle/can_ztravel(var/direction) + if(legs) + if(legs.hover && legs.motivator.is_functional()) + if(get_cell().charge < ((legs.power_use * CELLRATE) / 2)) + return FALSE + return TRUE + return FALSE + +/mob/living/heavy_vehicle/CanAvoidGravity() + if(can_ztravel()) + return TRUE + return FALSE + /mob/living/heavy_vehicle/can_fall(turf/below, turf/simulated/open/dest = src.loc) // The var/climbers API is implemented here. if (LAZYLEN(dest.climbers) && (src in dest.climbers)) @@ -328,6 +345,12 @@ if(!A.CanPass(src, dest)) return FALSE + // Hover thrusters + if(legs) + if(legs.hover && legs.motivator.is_functional()) + get_cell().use((legs.power_use * CELLRATE) / 2) + return FALSE + // True otherwise. return TRUE diff --git a/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm b/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm index 13b85fb3a55..4c302425e86 100644 --- a/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm +++ b/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm @@ -213,6 +213,20 @@ build_path = /obj/item/mech_component/propulsion/spider req_tech = list(TECH_ENGINEERING = 2) +/datum/design/item/mechfab/exosuit/hover_torso + name = "hoverpod torso" + id = "hoverpod_body" + time = 40 + materials = list(DEFAULT_WALL_MATERIAL = 30000) + build_path = /obj/item/mech_component/chassis/pod + +/datum/design/item/mechfab/exosuit/hover_legs + name = "hover thrusters" + id = "hover_thrusters" + time = 35 + materials = list(DEFAULT_WALL_MATERIAL = 14000) + build_path = /obj/item/mech_component/propulsion/hover + /datum/design/item/mechfab/exosuit/track name = "armored treads" id = "treads" diff --git a/html/changelogs/geeves - hoverpods.yml b/html/changelogs/geeves - hoverpods.yml new file mode 100644 index 00000000000..84e75600474 --- /dev/null +++ b/html/changelogs/geeves - hoverpods.yml @@ -0,0 +1,8 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added a hoverpod mech." + - bugfix: "Jetpacking downwards while in a mech no longer teleports you through the floor." + - rscadd: "Mechs with hover thrusters can now float over open turfs, as well as move up and down z-levels." diff --git a/icons/mecha/mech_parts.dmi b/icons/mecha/mech_parts.dmi index 62c94493da0e9f4a8bcedb0864da585d2b47398a..379351328401db305ae81192f577e7dd05abfb6c 100644 GIT binary patch delta 14040 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 F{y!nn()R!W