From 59f44842243450813d3076b532157ae5862f1e08 Mon Sep 17 00:00:00 2001
From: UristMcAstronaut <52636518+UristMcAstronaut@users.noreply.github.com>
Date: Sun, 7 Jul 2019 20:44:13 +0000
Subject: [PATCH 1/3] Add files via upload
fixes pai holoform activating when pai is in pai connector
---
pai_shell.dm | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 124 insertions(+)
create mode 100644 pai_shell.dm
diff --git a/pai_shell.dm b/pai_shell.dm
new file mode 100644
index 0000000000..164a3e7389
--- /dev/null
+++ b/pai_shell.dm
@@ -0,0 +1,124 @@
+
+/mob/living/silicon/pai/proc/fold_out(force = FALSE)
+ if(emitterhealth < 0)
+ to_chat(src, "Your holochassis emitters are still too unstable! Please wait for automatic repair.")
+ return FALSE
+
+ if(!canholo && !force)
+ to_chat(src, "Your master or another force has disabled your holochassis emitters!")
+ return FALSE
+
+ if(holoform)
+ . = fold_in(force)
+ return
+
+ if(emittersemicd)
+ to_chat(src, "Error: Holochassis emitters recycling. Please try again later.")
+ return FALSE
+
+ emittersemicd = TRUE
+ addtimer(CALLBACK(src, .proc/emittercool), emittercd)
+ canmove = TRUE
+ density = TRUE
+ if(istype(card.loc, /obj/item/pda))
+ var/obj/item/pda/P = card.loc
+ P.pai = null
+ P.visible_message("[src] ejects itself from [P]!")
+ if(isliving(card.loc))
+ var/mob/living/L = card.loc
+ if(!L.temporarilyRemoveItemFromInventory(card))
+ to_chat(src, "Error: Unable to expand to mobile form. Chassis is restrained by some device or person.")
+ return FALSE
+ if(istype(card.loc, /obj/item/integrated_circuit/input/pAI_connector))
+ var/obj/item/integrated_circuit/input/pAI_connector/C = card.loc
+ C.RemovepAI()
+ C.visible_message("[src] ejects itself from [C]!")
+ playsound(src, 'sound/items/Crowbar.ogg', 50, 1)
+ C.installed_pai = null
+ C.push_data()
+ forceMove(get_turf(card))
+ card.forceMove(src)
+ if(client)
+ client.perspective = EYE_PERSPECTIVE
+ client.eye = src
+ set_light(0)
+ icon_state = "[chassis]"
+ visible_message("[src] folds out its holochassis emitter and forms a holoshell around itself!")
+ holoform = TRUE
+
+/mob/living/silicon/pai/proc/emittercool()
+ emittersemicd = FALSE
+
+/mob/living/silicon/pai/proc/fold_in(force = FALSE)
+ emittersemicd = TRUE
+ if(!force)
+ addtimer(CALLBACK(src, .proc/emittercool), emittercd)
+ else
+ addtimer(CALLBACK(src, .proc/emittercool), emitteroverloadcd)
+ icon_state = "[chassis]"
+ if(!holoform)
+ . = fold_out(force)
+ return
+ visible_message("[src] deactivates its holochassis emitter and folds back into a compact card!")
+ stop_pulling()
+ if(client)
+ client.perspective = EYE_PERSPECTIVE
+ client.eye = card
+ var/turf/T = drop_location()
+ card.forceMove(T)
+ forceMove(card)
+ canmove = FALSE
+ density = FALSE
+ set_light(0)
+ holoform = FALSE
+ if(resting)
+ lay_down()
+
+/mob/living/silicon/pai/proc/choose_chassis()
+ if(!isturf(loc) && loc != card)
+ to_chat(src, "You can not change your holochassis composite while not on the ground or in your card!")
+ return FALSE
+ var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in possible_chassis
+ if(!choice)
+ return FALSE
+ chassis = choice
+ icon_state = "[chassis]"
+ if(resting)
+ icon_state = "[chassis]_rest"
+ to_chat(src, "You switch your holochassis projection composite to [chassis]")
+
+/mob/living/silicon/pai/lay_down()
+ ..()
+ update_resting_icon(resting)
+
+/mob/living/silicon/pai/proc/update_resting_icon(rest)
+ if(rest)
+ icon_state = "[chassis]_rest"
+ else
+ icon_state = "[chassis]"
+ if(loc != card)
+ visible_message("[src] [rest? "lays down for a moment..." : "perks up from the ground"]")
+
+/mob/living/silicon/pai/start_pulling(atom/movable/AM)
+ return FALSE
+
+/mob/living/silicon/pai/proc/toggle_integrated_light()
+ if(!light_range)
+ set_light(brightness_power)
+ to_chat(src, "You enable your integrated light.")
+ else
+ set_light(0)
+ to_chat(src, "You disable your integrated light.")
+
+/mob/living/silicon/pai/mob_pickup(mob/living/L)
+ var/obj/item/clothing/head/mob_holder/holder = new(get_turf(src), src, chassis, item_head_icon, item_lh_icon, item_rh_icon)
+ if(!L.put_in_hands(holder))
+ qdel(holder)
+ else
+ L.visible_message("[L] scoops up [src]!")
+
+/mob/living/silicon/pai/mob_try_pickup(mob/living/user)
+ if(!possible_chassis[chassis])
+ to_chat(user, "[src]'s current form isn't able to be carried!")
+ return FALSE
+ return ..()
From 38b3ace14b758053f0a8502c5428ad30408c09ef Mon Sep 17 00:00:00 2001
From: UristMcAstronaut <52636518+UristMcAstronaut@users.noreply.github.com>
Date: Sun, 7 Jul 2019 21:09:03 +0000
Subject: [PATCH 2/3] Update pai_shell.dm
---
code/modules/mob/living/silicon/pai/pai_shell.dm | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm
index 99484f395e..164a3e7389 100644
--- a/code/modules/mob/living/silicon/pai/pai_shell.dm
+++ b/code/modules/mob/living/silicon/pai/pai_shell.dm
@@ -29,6 +29,13 @@
if(!L.temporarilyRemoveItemFromInventory(card))
to_chat(src, "Error: Unable to expand to mobile form. Chassis is restrained by some device or person.")
return FALSE
+ if(istype(card.loc, /obj/item/integrated_circuit/input/pAI_connector))
+ var/obj/item/integrated_circuit/input/pAI_connector/C = card.loc
+ C.RemovepAI()
+ C.visible_message("[src] ejects itself from [C]!")
+ playsound(src, 'sound/items/Crowbar.ogg', 50, 1)
+ C.installed_pai = null
+ C.push_data()
forceMove(get_turf(card))
card.forceMove(src)
if(client)
From 2a6b701e5353d7df4ec5fa245818e8239cee0ee7 Mon Sep 17 00:00:00 2001
From: UristMcAstronaut <52636518+UristMcAstronaut@users.noreply.github.com>
Date: Sun, 7 Jul 2019 22:08:50 +0000
Subject: [PATCH 3/3] Delete pai_shell.dm
---
pai_shell.dm | 124 ---------------------------------------------------
1 file changed, 124 deletions(-)
delete mode 100644 pai_shell.dm
diff --git a/pai_shell.dm b/pai_shell.dm
deleted file mode 100644
index 164a3e7389..0000000000
--- a/pai_shell.dm
+++ /dev/null
@@ -1,124 +0,0 @@
-
-/mob/living/silicon/pai/proc/fold_out(force = FALSE)
- if(emitterhealth < 0)
- to_chat(src, "Your holochassis emitters are still too unstable! Please wait for automatic repair.")
- return FALSE
-
- if(!canholo && !force)
- to_chat(src, "Your master or another force has disabled your holochassis emitters!")
- return FALSE
-
- if(holoform)
- . = fold_in(force)
- return
-
- if(emittersemicd)
- to_chat(src, "Error: Holochassis emitters recycling. Please try again later.")
- return FALSE
-
- emittersemicd = TRUE
- addtimer(CALLBACK(src, .proc/emittercool), emittercd)
- canmove = TRUE
- density = TRUE
- if(istype(card.loc, /obj/item/pda))
- var/obj/item/pda/P = card.loc
- P.pai = null
- P.visible_message("[src] ejects itself from [P]!")
- if(isliving(card.loc))
- var/mob/living/L = card.loc
- if(!L.temporarilyRemoveItemFromInventory(card))
- to_chat(src, "Error: Unable to expand to mobile form. Chassis is restrained by some device or person.")
- return FALSE
- if(istype(card.loc, /obj/item/integrated_circuit/input/pAI_connector))
- var/obj/item/integrated_circuit/input/pAI_connector/C = card.loc
- C.RemovepAI()
- C.visible_message("[src] ejects itself from [C]!")
- playsound(src, 'sound/items/Crowbar.ogg', 50, 1)
- C.installed_pai = null
- C.push_data()
- forceMove(get_turf(card))
- card.forceMove(src)
- if(client)
- client.perspective = EYE_PERSPECTIVE
- client.eye = src
- set_light(0)
- icon_state = "[chassis]"
- visible_message("[src] folds out its holochassis emitter and forms a holoshell around itself!")
- holoform = TRUE
-
-/mob/living/silicon/pai/proc/emittercool()
- emittersemicd = FALSE
-
-/mob/living/silicon/pai/proc/fold_in(force = FALSE)
- emittersemicd = TRUE
- if(!force)
- addtimer(CALLBACK(src, .proc/emittercool), emittercd)
- else
- addtimer(CALLBACK(src, .proc/emittercool), emitteroverloadcd)
- icon_state = "[chassis]"
- if(!holoform)
- . = fold_out(force)
- return
- visible_message("[src] deactivates its holochassis emitter and folds back into a compact card!")
- stop_pulling()
- if(client)
- client.perspective = EYE_PERSPECTIVE
- client.eye = card
- var/turf/T = drop_location()
- card.forceMove(T)
- forceMove(card)
- canmove = FALSE
- density = FALSE
- set_light(0)
- holoform = FALSE
- if(resting)
- lay_down()
-
-/mob/living/silicon/pai/proc/choose_chassis()
- if(!isturf(loc) && loc != card)
- to_chat(src, "You can not change your holochassis composite while not on the ground or in your card!")
- return FALSE
- var/choice = input(src, "What would you like to use for your holochassis composite?") as null|anything in possible_chassis
- if(!choice)
- return FALSE
- chassis = choice
- icon_state = "[chassis]"
- if(resting)
- icon_state = "[chassis]_rest"
- to_chat(src, "You switch your holochassis projection composite to [chassis]")
-
-/mob/living/silicon/pai/lay_down()
- ..()
- update_resting_icon(resting)
-
-/mob/living/silicon/pai/proc/update_resting_icon(rest)
- if(rest)
- icon_state = "[chassis]_rest"
- else
- icon_state = "[chassis]"
- if(loc != card)
- visible_message("[src] [rest? "lays down for a moment..." : "perks up from the ground"]")
-
-/mob/living/silicon/pai/start_pulling(atom/movable/AM)
- return FALSE
-
-/mob/living/silicon/pai/proc/toggle_integrated_light()
- if(!light_range)
- set_light(brightness_power)
- to_chat(src, "You enable your integrated light.")
- else
- set_light(0)
- to_chat(src, "You disable your integrated light.")
-
-/mob/living/silicon/pai/mob_pickup(mob/living/L)
- var/obj/item/clothing/head/mob_holder/holder = new(get_turf(src), src, chassis, item_head_icon, item_lh_icon, item_rh_icon)
- if(!L.put_in_hands(holder))
- qdel(holder)
- else
- L.visible_message("[L] scoops up [src]!")
-
-/mob/living/silicon/pai/mob_try_pickup(mob/living/user)
- if(!possible_chassis[chassis])
- to_chat(user, "[src]'s current form isn't able to be carried!")
- return FALSE
- return ..()