mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Things that used to check if you were walking now check your movement speed instead (#30018)
* help me * slightly less horrible code * removed slipping test
This commit is contained in:
@@ -57,3 +57,5 @@
|
|||||||
#define manhattan_distance(a, b) (abs(a.x - b.x) + abs(a.y - b.y))
|
#define manhattan_distance(a, b) (abs(a.x - b.x) + abs(a.y - b.y))
|
||||||
|
|
||||||
#define IS_INT(x) (x == round(x))
|
#define IS_INT(x) (x == round(x))
|
||||||
|
|
||||||
|
#define GLIDE_SIZE_OF_A_WALKING_HUMAN 2.4615386
|
||||||
|
|||||||
@@ -857,7 +857,7 @@
|
|||||||
if(armed)
|
if(armed)
|
||||||
if(istype(AM, /mob/living/carbon) && !istype(AM, /mob/living/carbon/brain))
|
if(istype(AM, /mob/living/carbon) && !istype(AM, /mob/living/carbon/brain))
|
||||||
var/mob/living/carbon/C = AM
|
var/mob/living/carbon/C = AM
|
||||||
if(C.m_intent != "walk")
|
if(C.glide_size > GLIDE_SIZE_OF_A_WALKING_HUMAN)
|
||||||
src.visible_message("The [src.name] beeps, \"Running on wet floors is hazardous to your health.\"")
|
src.visible_message("The [src.name] beeps, \"Running on wet floors is hazardous to your health.\"")
|
||||||
message_admins("[C] triggered the explosive wet floor sign at [loc] ([x], [y], [z]): <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>, last touched by [fingerprintslast].")
|
message_admins("[C] triggered the explosive wet floor sign at [loc] ([x], [y], [z]): <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>, last touched by [fingerprintslast].")
|
||||||
log_game("[C] triggered the explosive wet floor sign at [loc]([x], [y], [z]): <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>, last touched by [fingerprintslast].")
|
log_game("[C] triggered the explosive wet floor sign at [loc]([x], [y], [z]): <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>, last touched by [fingerprintslast].")
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ var/list/obj/machinery/flasher/flashers = list()
|
|||||||
|
|
||||||
if(istype(AM, /mob/living/carbon))
|
if(istype(AM, /mob/living/carbon))
|
||||||
var/mob/living/carbon/M = AM
|
var/mob/living/carbon/M = AM
|
||||||
if ((M.m_intent != "walk") && (src.anchored))
|
if ((M.glide_size > GLIDE_SIZE_OF_A_WALKING_HUMAN) && (src.anchored))
|
||||||
src.flash()
|
src.flash()
|
||||||
|
|
||||||
/obj/machinery/flasher/portable/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/machinery/flasher/portable/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
|
|||||||
@@ -534,7 +534,7 @@
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
/mob/living/carbon/CheckSlip(slip_on_walking = FALSE, overlay_type = TURF_WET_WATER, slip_on_magbooties = FALSE)
|
/mob/living/carbon/CheckSlip(slip_on_walking = FALSE, overlay_type = TURF_WET_WATER, slip_on_magbooties = FALSE)
|
||||||
var/walking_factor = (!slip_on_walking && m_intent == M_INTENT_WALK)
|
var/walking_factor = (!slip_on_walking && glide_size <= GLIDE_SIZE_OF_A_WALKING_HUMAN)
|
||||||
return (on_foot()) && !locked_to && !lying && !unslippable && !walking_factor
|
return (on_foot()) && !locked_to && !lying && !unslippable && !walking_factor
|
||||||
|
|
||||||
/mob/living/carbon/teleport_to(var/atom/A)
|
/mob/living/carbon/teleport_to(var/atom/A)
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
#include "lazy_events.dm"
|
#include "lazy_events.dm"
|
||||||
#include "names.dm"
|
#include "names.dm"
|
||||||
#include "reagent_recipe_collisions.dm"
|
#include "reagent_recipe_collisions.dm"
|
||||||
#include "slipping.dm"
|
|
||||||
#include "turretid.dm"
|
#include "turretid.dm"
|
||||||
#include "outfit_datums.dm"
|
#include "outfit_datums.dm"
|
||||||
#include "ray.dm"
|
#include "ray.dm"
|
||||||
|
|||||||
@@ -1,82 +0,0 @@
|
|||||||
#define RESULT_RUN 1
|
|
||||||
#define RESULT_WALK 2
|
|
||||||
#define RESULT_NOSLIP 3
|
|
||||||
#define RESULT_MAGBOOTS 4
|
|
||||||
|
|
||||||
#define TURF_WET_WATER_STR "1" // Byond doesn't like integers in assoc list :-(
|
|
||||||
#define TURF_WET_LUBE_STR "2"
|
|
||||||
|
|
||||||
/datum/unit_test/slipping
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
We spawn an item, make an human run on it, and check if he slipped or not
|
|
||||||
The list is of the form :
|
|
||||||
item_to_spawn = list(RESULT_RUN, RESULT_WALK, RESULT_NOSLIP, RESULT_MAGBOOTS)
|
|
||||||
*/
|
|
||||||
|
|
||||||
var/list/items_and_result_humans = list(
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/butter = list(TRUE, FALSE, FALSE, FALSE),
|
|
||||||
/obj/item/weapon/bananapeel/ = list(TRUE, TRUE, FALSE, FALSE),
|
|
||||||
/obj/item/weapon/soap/ = list(TRUE, TRUE, FALSE, FALSE),
|
|
||||||
/obj/item/device/pda/clown = list(TRUE, TRUE, FALSE, FALSE),
|
|
||||||
)
|
|
||||||
|
|
||||||
/* overlay_to_spawn = list(RESULT_RUN, RESULT_WALK, RESULT_NOSLIP, RESULT_MAGBOOTS) */
|
|
||||||
|
|
||||||
var/list/overlays_and_results = list(
|
|
||||||
TURF_WET_WATER_STR = list(TRUE, FALSE, FALSE, FALSE),
|
|
||||||
TURF_WET_LUBE_STR = list(TRUE, TRUE, TRUE, TRUE),
|
|
||||||
)
|
|
||||||
|
|
||||||
/datum/unit_test/slipping/start()
|
|
||||||
// Items
|
|
||||||
|
|
||||||
var/turf/centre = locate(100, 100, 1) // Nice place with a good atmosphere and shit
|
|
||||||
var/turf/simulated/T_test = locate(centre.x, centre.y + 1, centre.z)
|
|
||||||
for (var/type in items_and_result_humans)
|
|
||||||
for (var/i = 1 to 4)
|
|
||||||
var/mob/living/carbon/human/H = new(centre)
|
|
||||||
sleep(1) // Poor human needs to handle his birth (and the spawn() involved). Be patien
|
|
||||||
var/obj/O = new type(T_test)
|
|
||||||
switch (i)
|
|
||||||
if (RESULT_RUN)
|
|
||||||
// Nothing
|
|
||||||
if (RESULT_WALK)
|
|
||||||
H.m_intent = "walk"
|
|
||||||
if (RESULT_NOSLIP)
|
|
||||||
var/obj/item/clothing/shoes/syndigaloshes/S = new
|
|
||||||
H.equip_or_collect(S, slot_shoes)
|
|
||||||
if (RESULT_MAGBOOTS)
|
|
||||||
var/obj/item/clothing/shoes/magboots/M = new
|
|
||||||
H.equip_or_collect(M, slot_shoes)
|
|
||||||
M.togglemagpulse(H)
|
|
||||||
H.Move(T_test, NORTH)
|
|
||||||
if (H.isStunned() != items_and_result_humans[type][i])
|
|
||||||
fail("Slipping test failed at [type], step [i] ; expected [items_and_result_humans[type][i]], got [H.isStunned()]")
|
|
||||||
qdel(H)
|
|
||||||
qdel(O)
|
|
||||||
// Overlays
|
|
||||||
for (var/wetness in overlays_and_results)
|
|
||||||
for (var/j = 1 to 4)
|
|
||||||
var/mob/living/carbon/human/H = new(centre)
|
|
||||||
sleep(1) // Poor human needs to handle his birth (and the spawn() involved). Be patient
|
|
||||||
var/wet_fac = text2num(wetness)
|
|
||||||
T_test.wet(10 SECONDS, wet_fac)
|
|
||||||
switch (j)
|
|
||||||
if (RESULT_RUN)
|
|
||||||
// Nothing
|
|
||||||
if (RESULT_WALK)
|
|
||||||
H.m_intent = "walk"
|
|
||||||
if (RESULT_NOSLIP)
|
|
||||||
var/obj/item/clothing/shoes/syndigaloshes/S = new
|
|
||||||
H.equip_or_collect(S, slot_shoes)
|
|
||||||
if (RESULT_MAGBOOTS)
|
|
||||||
var/obj/item/clothing/shoes/magboots/M = new
|
|
||||||
H.equip_or_collect(M, slot_shoes)
|
|
||||||
M.togglemagpulse(H)
|
|
||||||
H.Move(T_test, NORTH)
|
|
||||||
if (H.isStunned() != overlays_and_results[wetness][j])
|
|
||||||
fail("Slipping test failed at [wetness], step [j] ; expected [overlays_and_results[wetness][j]], got [H.isStunned()]")
|
|
||||||
qdel(H)
|
|
||||||
T_test.dry(TURF_WET_LUBE)
|
|
||||||
Reference in New Issue
Block a user