Leg actuators for RIGs (#2421)

Preview: https://kama.skullnet.me/index.php/s/GsEdb7q733nO1LK

Okay. These modules allow you to fall from any height without taking damage. As long as your suit is powered and they're enabled, anyways. Secondly, they allow you to leap! Civilian grade allow you to leap 4 tiles, military grade ones (syndicate + ERT commander) allow you to leap 7 tiles and to also grapple people (Vox leap feature).

On top of that, if you middle click on the tile you're on with them selected, you will try to leap upwards. If the tile you're facing above you is a solid (non-open turf, but not dense either), then you will start to climb onto that tile. Civilian grade model isn't powerful enough to jump you there fully, so you gotta spend 4 seconds grappling for your life. Get interrupted in that time, you fall. Military grade models hop you instantly.
This commit is contained in:
skull132
2017-05-29 01:29:35 +03:00
committed by GitHub
parent a5d7d50a69
commit 36dfee27eb
9 changed files with 188 additions and 16 deletions
+9 -1
View File
@@ -189,8 +189,12 @@
if(locate(/obj/structure/lattice, dest) || locate(/obj/structure/stairs, dest))
return FALSE
// The var/climbers API is implemented here.
if (LAZYLEN(dest.climbers) && (src in dest.climbers))
return FALSE
// See if something prevents us from falling.
for(var/atom/A in below)
for (var/atom/A in below)
if(!A.CanPass(src, dest))
return FALSE
@@ -212,6 +216,10 @@
// Only things that stop mechas are atoms that, well, stop them.
// Lattices and stairs get crushed in fall_through.
/obj/mecha/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))
return FALSE
// See if something prevents us from falling.
for(var/atom/A in below)
if(!A.CanPass(src, dest))
+7
View File
@@ -42,6 +42,9 @@
var/tmp/depth
var/tmp/list/climbers // A lazy list to contain a list of mobs who are currently scaling
// up this turf. Used in human/can_fall.
// An override of turf/Enter() to make it so that magboots allow you to stop
// falling off the damned rock.
/turf/simulated/open/Enter(mob/living/carbon/human/mover, atom/oldloc)
@@ -66,6 +69,10 @@
above = null
below = null
LAZYCLEARLIST(climbers)
UNSETEMPTY(climbers)
return ..()
/turf/simulated/open/get_smooth_underlay_icon(image/underlay_appearance, turf/asking_turf, adjacency_dir)