diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm
index f6a23aa0bc..25fcbd6c7b 100644
--- a/code/datums/ghost_query.dm
+++ b/code/datums/ghost_query.dm
@@ -100,6 +100,13 @@
check_bans = list("AI", "Cyborg")
cutoff_number = 1
+/datum/ghost_query/gravekeeper_drone
+ role_name = "Gravekeeper Drone"
+ question = "A gravekeeper drone is about to reactivate and tend to its gravesite. Would you like to play as the drone?"
+ be_special_flag = BE_AI
+ check_bans = list("AI", "Cyborg")
+ cutoff_number = 1
+
/datum/ghost_query/lost_passenger
role_name = "Lost Passenger"
question = "A person suspended in cryosleep has been discovered by a crewmember \
diff --git a/code/game/objects/structures/ghost_pods.dm b/code/game/objects/structures/ghost_pods/ghost_pods.dm
similarity index 54%
rename from code/game/objects/structures/ghost_pods.dm
rename to code/game/objects/structures/ghost_pods/ghost_pods.dm
index a2342bdbd6..ceb011b0d6 100644
--- a/code/game/objects/structures/ghost_pods.dm
+++ b/code/game/objects/structures/ghost_pods/ghost_pods.dm
@@ -50,7 +50,7 @@
// This type is triggered on a timer, as opposed to needing another player to 'open' the pod. Good for away missions.
/obj/structure/ghost_pod/automatic
- var/delay_to_self_open = 10 MINUTES // How long to wait for first attempt. Note that the timer by default starts when the pod is created.
+ var/delay_to_self_open = 1 MINUTE // How long to wait for first attempt. Note that the timer by default starts when the pod is created.
var/delay_to_try_again = 20 MINUTES // How long to wait if first attempt fails. Set to 0 to never try again.
/obj/structure/ghost_pod/automatic/initialize()
@@ -77,42 +77,4 @@
to_chat(user, "Another spirit appears to have gotten to \the [src] before you. Sorry.")
return
- create_occupant(user)
-
-
-// These are found on the surface, and contain a drone (braintype, inside a borg shell), with a special module and semi-random laws.
-/obj/structure/ghost_pod/manual/lost_drone
- name = "drone pod"
- desc = "This is a pod which appears to contain a drone. You might be able to reactivate it, if you're brave enough."
- description_info = "This contains a dormant drone, which can be activated. The drone will be another player, once activated. \
- The laws the drone has will most likely not be the ones you're used to."
- icon_state = "borg_pod_closed"
- icon_state_opened = "borg_pod_opened"
- density = TRUE
- ghost_query_type = /datum/ghost_query/lost_drone
- confirm_before_open = TRUE
-
-/obj/structure/ghost_pod/manual/lost_drone/trigger()
- ..()
- visible_message("\The [src] appears to be attempting to restart the robot contained inside.")
- log_and_message_admins("is attempting to open \a [src].")
-
-/obj/structure/ghost_pod/manual/lost_drone/create_occupant(var/mob/M)
- density = FALSE
- var/mob/living/silicon/robot/lost/randomlaws/R = new(get_turf(src))
- R.adjustBruteLoss(rand(5, 30))
- R.adjustFireLoss(rand(5, 10))
- if(M.mind)
- M.mind.transfer_to(R)
- // Put this text here before ckey change so that their laws are shown below it, since borg login() shows it.
- to_chat(M, "You are a Lost Drone, discovered inside the wreckage of your previous home. \
- Something has reactivated you, with their intentions unknown to you, and yours unknown to them. They are a foreign entity, \
- however they did free you from your pod...")
- to_chat(M, "Be sure to examine your currently loaded lawset closely. Remember, your \
- definiton of 'the station' is where your pod is, and unless your laws say otherwise, the entity that released you \
- from the pod is not a crewmember.")
- R.ckey = M.ckey
- visible_message("As \the [src] opens, the eyes of the robot flicker as it is activated.")
- R.Namepick()
- log_and_message_admins("successfully opened \a [src] and got a Lost Drone.")
- ..()
+ create_occupant(user)
\ No newline at end of file
diff --git a/code/game/objects/structures/ghost_pods/silicon.dm b/code/game/objects/structures/ghost_pods/silicon.dm
new file mode 100644
index 0000000000..a204437bc3
--- /dev/null
+++ b/code/game/objects/structures/ghost_pods/silicon.dm
@@ -0,0 +1,61 @@
+
+// These are found on the surface, and contain a drone (braintype, inside a borg shell), with a special module and semi-random laws.
+/obj/structure/ghost_pod/manual/lost_drone
+ name = "drone pod"
+ desc = "This is a pod which appears to contain a drone. You might be able to reactivate it, if you're brave enough."
+ description_info = "This contains a dormant drone, which can be activated. The drone will be another player, once activated. \
+ The laws the drone has will most likely not be the ones you're used to."
+ icon_state = "borg_pod_closed"
+ icon_state_opened = "borg_pod_opened"
+ density = TRUE
+ ghost_query_type = /datum/ghost_query/lost_drone
+ confirm_before_open = TRUE
+
+/obj/structure/ghost_pod/manual/lost_drone/trigger()
+ ..()
+ visible_message("\The [src] appears to be attempting to restart the robot contained inside.")
+ log_and_message_admins("is attempting to open \a [src].")
+
+/obj/structure/ghost_pod/manual/lost_drone/create_occupant(var/mob/M)
+ density = FALSE
+ var/mob/living/silicon/robot/lost/randomlaws/R = new(get_turf(src))
+ R.adjustBruteLoss(rand(5, 30))
+ R.adjustFireLoss(rand(5, 10))
+ if(M.mind)
+ M.mind.transfer_to(R)
+ // Put this text here before ckey change so that their laws are shown below it, since borg login() shows it.
+ to_chat(M, "You are a Lost Drone, discovered inside the wreckage of your previous home. \
+ Something has reactivated you, with their intentions unknown to you, and yours unknown to them. They are a foreign entity, \
+ however they did free you from your pod...")
+ to_chat(M, "Be sure to examine your currently loaded lawset closely. Remember, your \
+ definiton of 'the station' is where your pod is, and unless your laws say otherwise, the entity that released you \
+ from the pod is not a crewmember.")
+ R.ckey = M.ckey
+ visible_message("As \the [src] opens, the eyes of the robot flicker as it is activated.")
+ R.Namepick()
+ log_and_message_admins("successfully opened \a [src] and got a Lost Drone.")
+ ..()
+
+/obj/structure/ghost_pod/automatic/gravekeeper_drone
+ name = "drone pod"
+ desc = "This is a pod which appears to contain a drone. You might be able to reactivate it, if you're brave enough."
+ description_info = "This contains a dormant drone, which may activate at any moment. The drone will be another player, once activated. \
+ The laws the drone has will most likely not be the ones you're used to."
+ icon_state = "borg_pod_closed"
+ icon_state_opened = "borg_pod_opened"
+ density = TRUE
+ ghost_query_type = /datum/ghost_query/gravekeeper_drone
+
+/obj/structure/ghost_pod/automatic/gravekeeper_drone/create_occupant(var/mob/M)
+ density = FALSE
+ var/mob/living/silicon/robot/gravekeeper/R = new(get_turf(src))
+ if(M.mind)
+ M.mind.transfer_to(R)
+ // Put this text here before ckey change so that their laws are shown below it, since borg login() shows it.
+ to_chat(M, "You are a Gravekeeper Drone, activated once again to tend to the restful dead.")
+ to_chat(M, "Be sure to examine your currently loaded lawset closely. Remember, your \
+ definiton of 'your gravesite' is where your pod is.")
+ R.ckey = M.ckey
+ visible_message("As \the [src] opens, the eyes of the robot flicker as it is activated.")
+ R.Namepick()
+ ..()
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 4e7fc7a57e..1f0170733e 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -107,7 +107,6 @@
can_hold = list(
/obj/item/seeds,
/obj/item/weapon/grown,
- /obj/item/stack/material,
/obj/item/weapon/material/gravemarker
)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/event.dm b/code/modules/mob/living/silicon/robot/robot_modules/event.dm
index e4c0db5bc6..6543559b7d 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/event.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/event.dm
@@ -44,7 +44,8 @@
name = "gravekeeper robot module"
hide_on_manifest = 1
sprites = list(
- "Drone" = "drone-lost"
+ "Drone" = "drone-gravekeeper",
+ "Sleek" = "sleek-gravekeeper"
)
/obj/item/weapon/robot_module/robot/gravekeeper/New(var/mob/living/silicon/robot/R)
@@ -72,6 +73,6 @@
// For really persistent looters
src.emag = new /obj/item/weapon/gun/energy/retro/mounted(src)
- var/datum/matter_synth/wood = new /datum/matter_synth/wood(2000)
+ var/datum/matter_synth/wood = new /datum/matter_synth/wood(25000)
synths += wood
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm
index 1aebae3246..a47679ab14 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm
@@ -791,8 +791,8 @@ var/global/list/robot_modules = list(
var/datum/matter_synth/metal = new /datum/matter_synth/metal(25000)
var/datum/matter_synth/glass = new /datum/matter_synth/glass(25000)
- var/datum/matter_synth/wood = new /datum/matter_synth/wood(2000)
- var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(1000)
+ var/datum/matter_synth/wood = new /datum/matter_synth/wood(25000)
+ var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(25000)
var/datum/matter_synth/wire = new /datum/matter_synth/wire(30)
synths += metal
synths += glass
diff --git a/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm b/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm
index 0dfddd5be4..9cc09b286a 100644
--- a/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm
+++ b/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm
@@ -20,4 +20,6 @@
if(!cell)
cell = new /obj/item/weapon/cell/high(src) // 15k cell, as recharging stations are a lot more rare on the Surface.
+ laws = new /datum/ai_laws/gravekeeper()
+
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
\ No newline at end of file
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index cb36f6e3b4..d32d479e3f 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/polaris.dme b/polaris.dme
index 3115c8b94b..4d4606b311 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -966,7 +966,6 @@
#include "code\game\objects\structures\electricchair.dm"
#include "code\game\objects\structures\extinguisher.dm"
#include "code\game\objects\structures\flora.dm"
-#include "code\game\objects\structures\ghost_pods.dm"
#include "code\game\objects\structures\girders.dm"
#include "code\game\objects\structures\gravemarker.dm"
#include "code\game\objects\structures\grille.dm"
@@ -1019,6 +1018,8 @@
#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm"
#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm"
#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm"
+#include "code\game\objects\structures\ghost_pods\ghost_pods.dm"
+#include "code\game\objects\structures\ghost_pods\silicon.dm"
#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm"
#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm"
#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm"