From e06f0bbc722a0859b65c6942738b7f1e74689254 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 20 Jan 2021 16:01:09 -0700
Subject: [PATCH 1/9] fixes
---
code/datums/components/riding.dm | 2 +-
code/modules/mob/living/carbon/human/human.dm | 3 +++
.../mob/living/carbon/human/human_defines.dm | 2 +-
tgstation.dme | 20 +++++++++++++++++++
4 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm
index e9aa5afe92..e11eca2975 100644
--- a/code/datums/components/riding.dm
+++ b/code/datums/components/riding.dm
@@ -37,7 +37,7 @@
qdel(src)
/datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/M, force)
- handle_vehicle_offsets()
+ handle_vehicle_offsets(M.buckled?.dir)
/datum/component/riding/proc/handle_vehicle_layer(dir)
var/atom/movable/AM = parent
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index df7ed66169..95efd90042 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1010,6 +1010,9 @@
riding_datum.ride_check_rider_restrained = TRUE
if(buckled_mobs && ((target in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)) || buckled)
return
+ if(istype(target, /mob/living/silicon/pai))
+ hands_needed = 0
+ target_hands_needed = 0
var/equipped_hands_self
var/equipped_hands_target
if(hands_needed)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index a82151cc1d..eedc59d9d5 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -71,7 +71,7 @@
var/list/datum/bioware = list()
var/creamed = FALSE //to use with creampie overlays
- var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot))
+ var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot, /mob/living/silicon/pai))
var/lastpuke = 0
var/account_id
var/last_fire_update
diff --git a/tgstation.dme b/tgstation.dme
index a0f5d54c03..88ea0be260 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -80,6 +80,7 @@
#include "code\__DEFINES\monkeys.dm"
#include "code\__DEFINES\move_force.dm"
#include "code\__DEFINES\movement.dm"
+#include "code\__DEFINES\movement.dm"
#include "code\__DEFINES\movespeed_modification.dm"
#include "code\__DEFINES\nanites.dm"
#include "code\__DEFINES\networks.dm"
@@ -203,6 +204,7 @@
#include "code\__HELPERS\sorts\MergeSort.dm"
#include "code\__HELPERS\sorts\TimSort.dm"
#include "code\_globalvars\admin.dm"
+#include "code\_globalvars\admin.dm"
#include "code\_globalvars\bitfields.dm"
#include "code\_globalvars\configuration.dm"
#include "code\_globalvars\game_modes.dm"
@@ -3516,8 +3518,26 @@
#include "code\modules\tgui_panel\audio.dm"
#include "code\modules\tgui_panel\external.dm"
#include "code\modules\tgui_panel\telemetry.dm"
+#include "code\modules\unit_tests\merge_type.dm"
#include "code\modules\tgui_panel\tgui_panel.dm"
+#include "code\modules\unit_tests\reagent_mod_procs.dm"
+#include "code\modules\unit_tests\teleporters.dm"
+#include "code\modules\unit_tests\stomach.dm"
+#include "code\modules\unit_tests\species_whitelists.dm"
+#include "code\modules\unit_tests\siunit.dm"
+#include "code\modules\unit_tests\serving_tray.dm"
+#include "code\modules\unit_tests\reagent_mod_expose.dm"
+#include "code\modules\unit_tests\projectiles.dm"
+#include "code\modules\unit_tests\pills.dm"
+#include "code\modules\unit_tests\keybinding_init.dm"
+#include "code\modules\unit_tests\initialize_sanity.dm"
+#include "code\modules\unit_tests\holidays.dm"
+#include "code\modules\unit_tests\emoting.dm"
+#include "code\modules\unit_tests\heretic_knowledge.dm"
+#include "code\modules\unit_tests\confusion.dm"
+#include "code\modules\unit_tests\combat.dm"
#include "code\modules\tooltip\tooltip.dm"
+#include "code\modules\unit_tests\card_mismatch.dm"
#include "code\modules\unit_tests\_unit_tests.dm"
#include "code\modules\uplink\uplink_devices.dm"
#include "code\modules\uplink\uplink_items.dm"
From 235ca8809a010fa687e2ae3ce8a0e5aad7db0f92 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 20 Jan 2021 16:04:52 -0700
Subject: [PATCH 2/9] uh
---
code/modules/mob/living/carbon/human/human.dm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 95efd90042..c51a6e6f99 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -938,7 +938,8 @@
admin_ticket_log(src, msg)
/mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user)
- if(pulling == target && grab_state >= GRAB_AGGRESSIVE && stat == CONSCIOUS)
+ var/GS_needed = istype(target, /mob/living/silicon/pai)? GRAB_PASSIVE : GRAB_AGGRESSIVE
+ if(pulling == target && grab_state >= GS_NEEDED && stat == CONSCIOUS)
//If they dragged themselves and we're currently aggressively grabbing them try to piggyback
if(user == target && can_piggyback(target))
piggyback(target)
From 97924636908d465cd6ccc9b23d95d2d3a48859b9 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 20 Jan 2021 16:05:21 -0700
Subject: [PATCH 3/9] dme fix
---
tgstation.dme | 20 --------------------
1 file changed, 20 deletions(-)
diff --git a/tgstation.dme b/tgstation.dme
index 88ea0be260..a0f5d54c03 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -80,7 +80,6 @@
#include "code\__DEFINES\monkeys.dm"
#include "code\__DEFINES\move_force.dm"
#include "code\__DEFINES\movement.dm"
-#include "code\__DEFINES\movement.dm"
#include "code\__DEFINES\movespeed_modification.dm"
#include "code\__DEFINES\nanites.dm"
#include "code\__DEFINES\networks.dm"
@@ -204,7 +203,6 @@
#include "code\__HELPERS\sorts\MergeSort.dm"
#include "code\__HELPERS\sorts\TimSort.dm"
#include "code\_globalvars\admin.dm"
-#include "code\_globalvars\admin.dm"
#include "code\_globalvars\bitfields.dm"
#include "code\_globalvars\configuration.dm"
#include "code\_globalvars\game_modes.dm"
@@ -3518,26 +3516,8 @@
#include "code\modules\tgui_panel\audio.dm"
#include "code\modules\tgui_panel\external.dm"
#include "code\modules\tgui_panel\telemetry.dm"
-#include "code\modules\unit_tests\merge_type.dm"
#include "code\modules\tgui_panel\tgui_panel.dm"
-#include "code\modules\unit_tests\reagent_mod_procs.dm"
-#include "code\modules\unit_tests\teleporters.dm"
-#include "code\modules\unit_tests\stomach.dm"
-#include "code\modules\unit_tests\species_whitelists.dm"
-#include "code\modules\unit_tests\siunit.dm"
-#include "code\modules\unit_tests\serving_tray.dm"
-#include "code\modules\unit_tests\reagent_mod_expose.dm"
-#include "code\modules\unit_tests\projectiles.dm"
-#include "code\modules\unit_tests\pills.dm"
-#include "code\modules\unit_tests\keybinding_init.dm"
-#include "code\modules\unit_tests\initialize_sanity.dm"
-#include "code\modules\unit_tests\holidays.dm"
-#include "code\modules\unit_tests\emoting.dm"
-#include "code\modules\unit_tests\heretic_knowledge.dm"
-#include "code\modules\unit_tests\confusion.dm"
-#include "code\modules\unit_tests\combat.dm"
#include "code\modules\tooltip\tooltip.dm"
-#include "code\modules\unit_tests\card_mismatch.dm"
#include "code\modules\unit_tests\_unit_tests.dm"
#include "code\modules\uplink\uplink_devices.dm"
#include "code\modules\uplink\uplink_items.dm"
From 20f06cae0fd787fbdf4df2c88fb4f399c61da8a1 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 20 Jan 2021 16:07:42 -0700
Subject: [PATCH 4/9] fix
---
code/modules/mob/living/carbon/human/human.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index c51a6e6f99..98054b6ec2 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -939,7 +939,7 @@
/mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user)
var/GS_needed = istype(target, /mob/living/silicon/pai)? GRAB_PASSIVE : GRAB_AGGRESSIVE
- if(pulling == target && grab_state >= GS_NEEDED && stat == CONSCIOUS)
+ if(pulling == target && grab_state >= GS_needed && stat == CONSCIOUS)
//If they dragged themselves and we're currently aggressively grabbing them try to piggyback
if(user == target && can_piggyback(target))
piggyback(target)
From 996ad0634defd080c6359ea8aadfae38a864afa6 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 20 Jan 2021 16:16:06 -0700
Subject: [PATCH 5/9] fix
---
code/modules/mob/living/carbon/human/human.dm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 98054b6ec2..adcc9795dd 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -952,11 +952,11 @@
. = ..()
//src is the user that will be carrying, target is the mob to be carried
-/mob/living/carbon/human/proc/can_piggyback(mob/living/carbon/target)
- return (istype(target) && target.stat == CONSCIOUS)
+/mob/living/carbon/human/proc/can_piggyback(mob/living/target)
+ return (istype(target, /mob/living/carbon) || istype(target, /mob/living/silicon)) && target.stat == CONSCIOUS
/mob/living/carbon/human/proc/can_be_firemanned(mob/living/carbon/target)
- return (ishuman(target) && !CHECK_MOBILITY(target, MOBILITY_STAND))
+ return (ishuman(target) || ispAI(target) && !CHECK_MOBILITY(target, MOBILITY_STAND)) || ispAI(target)
/mob/living/carbon/human/proc/fireman_carry(mob/living/carbon/target)
var/carrydelay = 50 //if you have latex you are faster at grabbing
From 34473c2ac7b15331127708087b758d122d789d75 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 20 Jan 2021 16:55:19 -0700
Subject: [PATCH 6/9] fix
---
code/modules/mob/living/carbon/human/human.dm | 13 ++++++-------
code/modules/mob/living/silicon/pai/pai.dm | 4 ++++
config/game_options.txt | 3 +++
3 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index adcc9795dd..3c1cc25497 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -963,19 +963,18 @@
var/skills_space = "" //cobby told me to do this
if(HAS_TRAIT(src, TRAIT_QUICKER_CARRY))
carrydelay = 30
- skills_space = "expertly"
+ skills_space = "expertly "
else if(HAS_TRAIT(src, TRAIT_QUICK_CARRY))
carrydelay = 40
- skills_space = "quickly"
+ skills_space = "quickly "
if(can_be_firemanned(target) && !incapacitated(FALSE, TRUE))
- visible_message("[src] starts [skills_space] lifting [target] onto their back..",
+ visible_message("[src] starts [skills_space]lifting [target] onto their back..",
//Joe Medic starts quickly/expertly lifting Grey Tider onto their back..
- "[carrydelay < 35 ? "Using your gloves' nanochips, you" : "You"] [skills_space] start to lift [target] onto your back[carrydelay == 40 ? ", while assisted by the nanochips in your gloves.." : "..."]")
+ "[carrydelay < 35 ? "Using your gloves' nanochips, you" : "You"] [skills_space]start to lift [target] onto your back[carrydelay == 40 ? ", while assisted by the nanochips in your gloves.." : "..."]")
//(Using your gloves' nanochips, you/You) ( /quickly/expertly) start to lift Grey Tider onto your back(, while assisted by the nanochips in your gloves../...)
if(do_after(src, carrydelay, TRUE, target))
//Second check to make sure they're still valid to be carried
if(can_be_firemanned(target) && !incapacitated(FALSE, TRUE))
- target.set_resting(FALSE, TRUE)
buckle_mob(target, TRUE, TRUE, 90, 1, 0, TRUE)
return
visible_message("[src] fails to fireman carry [target]!")
@@ -993,13 +992,13 @@
if(target.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE))
target.visible_message("[target] can't hang onto [src]!")
return
- buckle_mob(target, TRUE, TRUE, FALSE, 1, 2, FALSE)
+ buckle_mob(target, TRUE, TRUE, 0, 1, 2, FALSE)
else
visible_message("[target] fails to climb onto [src]!")
else
to_chat(target, "You can't piggyback ride [src] right now!")
-/mob/living/carbon/human/buckle_mob(mob/living/target, force = FALSE, check_loc = TRUE, lying_buckle = FALSE, hands_needed = 0, target_hands_needed = 0, fireman = FALSE)
+/mob/living/carbon/human/buckle_mob(mob/living/target, force = FALSE, check_loc = TRUE, lying_buckle = 0, hands_needed = 0, target_hands_needed = 0, fireman = FALSE)
if(!force)//humans are only meant to be ridden through piggybacking and special cases
return
if(!is_type_in_typecache(target, can_ride_typecache))
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 2ab74664a3..5740f98e90 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -143,6 +143,10 @@
custom_holoform.Grant(src)
emitter_next_use = world.time + 10 SECONDS
+/mob/living/silicon/pai/deployed/Initialize()
+ . = ..()
+ fold_out(TRUE)
+
/mob/living/silicon/pai/ComponentInitialize()
. = ..()
if(possible_chassis[chassis])
diff --git a/config/game_options.txt b/config/game_options.txt
index 3c53d9fecb..7776d87d4e 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -675,3 +675,6 @@ TURF_DIRT_THRESHOLD 100
## Default alpha of dirt on spawn
DIRT_ALPHA_STARTING 127
+
+## Allows pAI custom holoforms
+PAI_CUSTOM_HOLOFORMS
From 1c99225fbd86f7c97bd62960a65851430867ff1f Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 27 Jan 2021 20:48:07 -0700
Subject: [PATCH 7/9] Update human.dm
---
code/modules/mob/living/carbon/human/human.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 3c1cc25497..c8513f6006 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -953,10 +953,10 @@
//src is the user that will be carrying, target is the mob to be carried
/mob/living/carbon/human/proc/can_piggyback(mob/living/target)
- return (istype(target, /mob/living/carbon) || istype(target, /mob/living/silicon)) && target.stat == CONSCIOUS
+ return (iscarbon(target) || ispAI(target)) && target.stat == CONSCIOUS
/mob/living/carbon/human/proc/can_be_firemanned(mob/living/carbon/target)
- return (ishuman(target) || ispAI(target) && !CHECK_MOBILITY(target, MOBILITY_STAND)) || ispAI(target)
+ return (ishuman(target) && !CHECK_MOBILITY(target, MOBILITY_STAND)) || ispAI(target)
/mob/living/carbon/human/proc/fireman_carry(mob/living/carbon/target)
var/carrydelay = 50 //if you have latex you are faster at grabbing
From fa2754c0fef837506e1b3fb9c3b78c25ad1a342a Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 27 Jan 2021 20:49:56 -0700
Subject: [PATCH 8/9] Update human.dm
---
code/modules/mob/living/carbon/human/human.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index c8513f6006..2db9137401 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -945,7 +945,7 @@
piggyback(target)
return
//If you dragged them to you and you're aggressively grabbing try to fireman carry them
- else if(user != target)
+ else if(user == src)
if(user.a_intent == INTENT_GRAB)
fireman_carry(target)
return
From c554f0567e7d1a5790f94530f2f02d7f52a060fc Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Fri, 29 Jan 2021 11:57:28 -0700
Subject: [PATCH 9/9] Update human.dm
---
code/modules/mob/living/carbon/human/human.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 2db9137401..f653c96cbc 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1011,7 +1011,7 @@
if(buckled_mobs && ((target in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)) || buckled)
return
if(istype(target, /mob/living/silicon/pai))
- hands_needed = 0
+ hands_needed = 1
target_hands_needed = 0
var/equipped_hands_self
var/equipped_hands_target