diff --git a/code/game/gamemodes/calamity/calamity.dm b/code/game/gamemodes/calamity/calamity.dm
index 2e77fcb19d8..53cd72d447c 100644
--- a/code/game/gamemodes/calamity/calamity.dm
+++ b/code/game/gamemodes/calamity/calamity.dm
@@ -411,11 +411,7 @@
var/mob/living/simple_animal/borer/roundstart/B = new(target_host)
- player.current = B
- B.mind = player
- B.key = player.key
- player.assigned_role = "Cortical Borer"
- player.special_role = "Cortical Borer"
+ B.transfer_personality(player)
B.host = target_host
B.host_brain.name = target_host.name
@@ -424,10 +420,6 @@
var/datum/organ/external/head = target_host.get_organ("head")
head.implants += B
- player.current << "\blue You are a cortical borer! You are a brain slug that worms its way \
- into the head of its victim, lurking out of sight until it needs to take control."
- player.current << "You can speak to your victim with say, to other borers with say ;, and use your Alien tab for abilities."
-
if(!config.objectives_disabled)
player.objectives += new /datum/objective/borer_survive()
player.objectives += new /datum/objective/borer_reproduce()
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 8a8ee1b50a9..bb1416dac0d 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -643,6 +643,12 @@
else
jobs += "
Dionaea | "
+ if(jobban_isbanned(M, "Borer"))
+ jobs += "Borer | "
+ else
+ jobs += "Borer | "
+
+
jobs += ""
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 98512d92fc5..b9f898ab5dc 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -490,17 +490,17 @@
var/mob/living/simple_animal/borer/B = src.loc
var/mob/living/captive_brain/H = src
- H << "\red You begin doggedly resisting the parasite's control (this will take approximately sixty seconds)."
- B.host << "\red You feel the captive mind of [src] begin to resist your control."
+ H << "You begin doggedly resisting the parasite's control (this will take approximately sixty seconds)."
+ B.host << "You feel the captive mind of [src] begin to resist your control."
- spawn(rand(400,500)+B.host.brainloss)
+ spawn(rand(200,250)+B.host.brainloss)
if(!B || !B.controlling)
return
B.host.adjustBrainLoss(rand(5,10))
- H << "\red With an immense exertion of will, you regain control of your body!"
- B.host << "\red You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you."
+ H << "With an immense exertion of will, you regain control of your body!"
+ B.host << "You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you."
B.detatch()
diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index 35915234775..43aa9a9d68b 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -174,7 +174,7 @@
//Procs for grabbing players.
/mob/living/simple_animal/borer/proc/request_player()
for(var/mob/dead/observer/O in player_list)
- if(jobban_isbanned(O, "Syndicate"))
+ if(jobban_isbanned(O, "Borer"))
continue
if(O.client)
if(O.client.prefs.be_special & BE_ALIEN)
@@ -193,15 +193,21 @@
/mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate)
- if(!candidate)
+ if(!candidate || !candidate.mob || !candidate.mob.mind)
return
src.mind = candidate.mob.mind
+ candidate.mob.mind.current = src
src.ckey = candidate.ckey
+
if(src.mind)
src.mind.assigned_role = "Cortical Borer"
src.mind.special_role = "Cortical Borer"
- ticker.mode.borers |= src.mind
+
+ src << "You are a cortical borer! You are a brain slug that worms its way \
+ into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, \
+ your host and your eventual spawn safe and warm."
+ src << "You can speak to your victim with say, to other borers with say :x, and use your Abilities tab to access powers."
/mob/living/simple_animal/borer/can_use_vents()
return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/borer/borer_powers.dm b/code/modules/mob/living/simple_animal/borer/borer_powers.dm
index 39b2cadf1dc..59f6aed6f0b 100644
--- a/code/modules/mob/living/simple_animal/borer/borer_powers.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer_powers.dm
@@ -69,6 +69,10 @@
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
+ var/datum/organ/external/E = H.organs_by_name["head"]
+ if(!E || (E.status & ORGAN_DESTROYED))
+ src << "\The [H] does not have a head!"
+
if(!H.species.has_organ["brain"])
src << "\The [H] does not seem to have an ear canal to breach."
return
@@ -124,6 +128,7 @@
src << "They are no longer in range!"
return
+/*
/mob/living/simple_animal/borer/verb/devour_brain()
set category = "Abilities"
set name = "Devour Brain"
@@ -147,6 +152,7 @@
src << "It only takes a few moments to render the dead host brain down into a nutrient-rich slurry..."
replace_brain()
+*/
// BRAIN WORM ZOMBIES AAAAH.
/mob/living/simple_animal/borer/proc/replace_brain()
diff --git a/maps/RandomZLevels/stationCollision.dmm b/maps/RandomZLevels/stationCollision.dmm
index e401ac1ed4f..cbdd44a7c80 100644
--- a/maps/RandomZLevels/stationCollision.dmm
+++ b/maps/RandomZLevels/stationCollision.dmm
@@ -263,7 +263,7 @@
"fc" = (/turf/simulated/floor,/area/awaymission/northblock)
"fd" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
-"ff" = (/obj/structure/table,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor{pixel_x = -3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_y = -3; step_y = 0},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
+"ff" = (/obj/structure/table,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor{pixel_x = -3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_y = -3},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"fg" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"fh" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/micro_laser{pixel_x = -3; pixel_y = -3},/obj/item/weapon/stock_parts/micro_laser{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"fi" = (/obj/machinery/computer/crew,/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/awaymission/northblock)