From 7d09942caeed9a0df47e0e35e7c28aa9cf4341c2 Mon Sep 17 00:00:00 2001 From: Bop Date: Thu, 1 Dec 2022 23:51:04 +0700 Subject: [PATCH 01/15] fix grav code --- code/game/atoms_movable.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 63089a22b741..11f50467ffcd 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -571,6 +571,9 @@ if(has_gravity(src)) return TRUE + if(pulledby) + return TRUE + if(throwing) return TRUE From 0538abd9068ac0fc3819ef215578407207156d55 Mon Sep 17 00:00:00 2001 From: Bop Date: Fri, 2 Dec 2022 00:07:24 +0700 Subject: [PATCH 02/15] Update atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 11f50467ffcd..e0e6f86c7094 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -25,7 +25,7 @@ var/inertia_next_move = 0 var/inertia_move_delay = 5 var/pass_flags = NONE - /// If false makes CanPass call CanPassThrough on this type instead of using default behaviour + /// If false makes CanPass call CanPassThrough on this type instead of using default behaviour var/generic_canpass = TRUE var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. From 639231f20a67e3b74364b4701cf31c58077f917e Mon Sep 17 00:00:00 2001 From: Bop Date: Fri, 2 Dec 2022 00:07:37 +0700 Subject: [PATCH 03/15] Update atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index e0e6f86c7094..11f50467ffcd 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -25,7 +25,7 @@ var/inertia_next_move = 0 var/inertia_move_delay = 5 var/pass_flags = NONE - /// If false makes CanPass call CanPassThrough on this type instead of using default behaviour + /// If false makes CanPass call CanPassThrough on this type instead of using default behaviour var/generic_canpass = TRUE var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. From ac4d3df867a9a5e7ad8a6321c5b62f34dcee8a5b Mon Sep 17 00:00:00 2001 From: Bop Date: Fri, 2 Dec 2022 00:49:36 +0700 Subject: [PATCH 04/15] Update atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 11f50467ffcd..4cb7190496f0 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -7,7 +7,7 @@ var/move_force = MOVE_FORCE_DEFAULT var/pull_force = PULL_FORCE_DEFAULT var/datum/thrownthing/throwing = null - var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported + var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported var/throw_range = 7 var/mob/pulledby = null var/initial_language_holder = /datum/language_holder From ed637161356d3d716464e7b29a01db74e9647241 Mon Sep 17 00:00:00 2001 From: Bop Date: Fri, 2 Dec 2022 00:59:43 +0700 Subject: [PATCH 05/15] Update atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 4cb7190496f0..11f50467ffcd 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -7,7 +7,7 @@ var/move_force = MOVE_FORCE_DEFAULT var/pull_force = PULL_FORCE_DEFAULT var/datum/thrownthing/throwing = null - var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported + var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported var/throw_range = 7 var/mob/pulledby = null var/initial_language_holder = /datum/language_holder From 0acd1b27924e3e7f08c659711afd31a39fd81656 Mon Sep 17 00:00:00 2001 From: Bop Date: Fri, 2 Dec 2022 01:09:18 +0700 Subject: [PATCH 06/15] Update atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 11f50467ffcd..e073cf1562fa 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -30,7 +30,7 @@ var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. var/list/client_mobs_in_contents // This contains all the client mobs within this container - var/list/acted_explosions //for explosion dodging + var/list/acted_explosions //for explosion dodging. glide_size = 8 appearance_flags = TILE_BOUND|PIXEL_SCALE|LONG_GLIDE var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm From 549fed4ce0c7afa4905f7773ad92671b7a7a9ddf Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 12:07:44 +0700 Subject: [PATCH 07/15] yep --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index e073cf1562fa..ea654ce2a7ae 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -28,7 +28,7 @@ /// If false makes CanPass call CanPassThrough on this type instead of using default behaviour var/generic_canpass = TRUE var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move - var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. + var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before var/list/client_mobs_in_contents // This contains all the client mobs within this container var/list/acted_explosions //for explosion dodging. glide_size = 8 From 3fd12af4ec6880484ea550ade7956eb7046e3cff Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 12:26:16 +0700 Subject: [PATCH 08/15] yep --- code/game/atoms_movable.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index ea654ce2a7ae..1f2d5a4f8844 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -572,6 +572,8 @@ return TRUE if(pulledby) + if(istype(pulledby, /mob/living)) //No spacewalking exploit with 2 mobs dragging each others + return FALSE return TRUE if(throwing) From 7895b64f9bab61b97a03a40de92a7d7987dbbd26 Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 12:57:29 +0700 Subject: [PATCH 09/15] Create atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 1f2d5a4f8844..75321ee1729f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -28,7 +28,7 @@ /// If false makes CanPass call CanPassThrough on this type instead of using default behaviour var/generic_canpass = TRUE var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move - var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before + var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. var/list/client_mobs_in_contents // This contains all the client mobs within this container var/list/acted_explosions //for explosion dodging. glide_size = 8 From af9153af0df54414d2e32837231c0c0350ee6c09 Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 12:58:00 +0700 Subject: [PATCH 10/15] Update atoms_movable.dm --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 75321ee1729f..a8e78b008e84 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -30,7 +30,7 @@ var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. var/list/client_mobs_in_contents // This contains all the client mobs within this container - var/list/acted_explosions //for explosion dodging. + var/list/acted_explosions //for explosion dodging glide_size = 8 appearance_flags = TILE_BOUND|PIXEL_SCALE|LONG_GLIDE var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm From cc88d885fff6656b758aaa8cf5b01b2cd6b457cb Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 13:36:39 +0700 Subject: [PATCH 11/15] exploit bad --- code/game/atoms_movable.dm | 2 -- code/modules/mob/living/carbon/carbon_movement.dm | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a8e78b008e84..11f50467ffcd 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -572,8 +572,6 @@ return TRUE if(pulledby) - if(istype(pulledby, /mob/living)) //No spacewalking exploit with 2 mobs dragging each others - return FALSE return TRUE if(throwing) diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index a5f42d8523a9..07496471dc73 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -27,6 +27,8 @@ /mob/living/carbon/Process_Spacemove(movement_dir = 0) if(!isturf(loc)) return FALSE + if(istype(pulledby, /mob/living)) //No space move exploiting with 2 mobs dragging each others + return FALSE // Do we have a jetpack implant (and is it on)? var/obj/item/organ/cyberimp/chest/thrusters/T = getorganslot(ORGAN_SLOT_THRUSTERS) if(istype(T)) @@ -40,9 +42,6 @@ if(!.) . = ..() - if(!. && pulledby) // If it still returned false - pulledby.stop_pulling() - return TRUE /mob/living/carbon/Move(NewLoc, direct) . = ..() From 0d2c6fd225fa5d6bd401d956a17f9a9efb8c06e9 Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 14:18:39 +0700 Subject: [PATCH 12/15] amongus --- code/modules/mob/living/carbon/carbon_movement.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 07496471dc73..5bd47519c705 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -27,8 +27,6 @@ /mob/living/carbon/Process_Spacemove(movement_dir = 0) if(!isturf(loc)) return FALSE - if(istype(pulledby, /mob/living)) //No space move exploiting with 2 mobs dragging each others - return FALSE // Do we have a jetpack implant (and is it on)? var/obj/item/organ/cyberimp/chest/thrusters/T = getorganslot(ORGAN_SLOT_THRUSTERS) if(istype(T)) @@ -42,6 +40,9 @@ if(!.) . = ..() + if(!. && pulledby && pulling) //No space move exploiting with 2 mobs dragging each others + pulledby.stop_pulling() + return TRUE /mob/living/carbon/Move(NewLoc, direct) . = ..() From 017e88688698ef306d3156e5ea327a492522ce49 Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 14:19:42 +0700 Subject: [PATCH 13/15] heresey --- code/modules/mob/living/carbon/carbon_movement.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 5bd47519c705..2a6d17231cb3 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -40,7 +40,11 @@ if(!.) . = ..() - if(!. && pulledby && pulling) //No space move exploiting with 2 mobs dragging each others + if(!. && pulledby && pulling) // If it still returned false + pulledby.stop_pulling() + return TRUE + + if(pulledby && pulling) //No space move exploiting with 2 mobs dragging each others pulledby.stop_pulling() return TRUE From cb0f04c7fee24a978cd66cfc09d8afacd4333bcb Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 21:47:42 +0700 Subject: [PATCH 14/15] fix grav code for real this time --- code/game/atoms_movable.dm | 2 +- code/modules/mob/living/carbon/carbon_movement.dm | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 11f50467ffcd..b411a72b3d7e 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -571,7 +571,7 @@ if(has_gravity(src)) return TRUE - if(pulledby) + if(pulledby && (pulledby.pulledby != src || moving_from_pull)) return TRUE if(throwing) diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 2a6d17231cb3..49bcec6ac5c6 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -25,6 +25,8 @@ return /mob/living/carbon/Process_Spacemove(movement_dir = 0) + if(..()) + return TRUE if(!isturf(loc)) return FALSE // Do we have a jetpack implant (and is it on)? @@ -38,16 +40,6 @@ if((movement_dir || J.stabilizers) && J.allow_thrust(0.01, src)) . = TRUE - if(!.) - . = ..() - if(!. && pulledby && pulling) // If it still returned false - pulledby.stop_pulling() - return TRUE - - if(pulledby && pulling) //No space move exploiting with 2 mobs dragging each others - pulledby.stop_pulling() - return TRUE - /mob/living/carbon/Move(NewLoc, direct) . = ..() if(. && !(movement_type & FLOATING)) //floating is easy From 82056d35dd7de5b779c579143384997ee272f14b Mon Sep 17 00:00:00 2001 From: Bop Date: Sun, 4 Dec 2022 22:01:46 +0700 Subject: [PATCH 15/15] fix --- code/modules/mob/living/carbon/carbon_movement.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 49bcec6ac5c6..7b155a092f31 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -25,8 +25,8 @@ return /mob/living/carbon/Process_Spacemove(movement_dir = 0) - if(..()) - return TRUE + if(!.) + . = ..() if(!isturf(loc)) return FALSE // Do we have a jetpack implant (and is it on)?