mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
@@ -423,23 +423,17 @@
|
|||||||
|
|
||||||
var/mob/living/simple_animal/borer/B = has_brain_worms()
|
var/mob/living/simple_animal/borer/B = has_brain_worms()
|
||||||
|
|
||||||
if(!B)
|
if(B && B.host_brain)
|
||||||
return
|
|
||||||
|
|
||||||
if(B.controlling)
|
|
||||||
src << "\red <B>You withdraw your probosci, releasing control of [B.host_brain]</B>"
|
src << "\red <B>You withdraw your probosci, releasing control of [B.host_brain]</B>"
|
||||||
B.host_brain << "\red <B>Your vision swims as the alien parasite releases control of your body.</B>"
|
|
||||||
B.ckey = ckey
|
|
||||||
B.controlling = 0
|
|
||||||
if(B.host_brain.ckey)
|
|
||||||
ckey = B.host_brain.ckey
|
|
||||||
B.host_brain.ckey = null
|
|
||||||
B.host_brain.name = "host brain"
|
|
||||||
B.host_brain.real_name = "host brain"
|
|
||||||
|
|
||||||
verbs -= /mob/living/carbon/proc/release_control
|
B.detatch()
|
||||||
verbs -= /mob/living/carbon/proc/punish_host
|
|
||||||
verbs -= /mob/living/carbon/proc/spawn_larvae
|
verbs -= /mob/living/carbon/proc/release_control
|
||||||
|
verbs -= /mob/living/carbon/proc/punish_host
|
||||||
|
verbs -= /mob/living/carbon/proc/spawn_larvae
|
||||||
|
|
||||||
|
else
|
||||||
|
src << "\red <B>ERROR NO BORER OR BRAINMOB DETECTED IN THIS MOB, THIS IS A BUG !</B>"
|
||||||
|
|
||||||
//Brain slug proc for tormenting the host.
|
//Brain slug proc for tormenting the host.
|
||||||
/mob/living/carbon/proc/punish_host()
|
/mob/living/carbon/proc/punish_host()
|
||||||
@@ -486,4 +480,4 @@
|
|||||||
|
|
||||||
else
|
else
|
||||||
src << "You do not have enough chemicals stored to reproduce."
|
src << "You do not have enough chemicals stored to reproduce."
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -486,14 +486,8 @@
|
|||||||
B.host.adjustBrainLoss(rand(5,10))
|
B.host.adjustBrainLoss(rand(5,10))
|
||||||
H << "\red <B>With an immense exertion of will, you regain control of your body!</B>"
|
H << "\red <B>With an immense exertion of will, you regain control of your body!</B>"
|
||||||
B.host << "\red <B>You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you.</b>"
|
B.host << "\red <B>You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you.</b>"
|
||||||
B.controlling = 0
|
|
||||||
|
|
||||||
B.ckey = B.host.ckey
|
B.detatch()
|
||||||
B.host.ckey = H.ckey
|
|
||||||
|
|
||||||
H.ckey = null
|
|
||||||
H.name = "host brain"
|
|
||||||
H.real_name = "host brain"
|
|
||||||
|
|
||||||
verbs -= /mob/living/carbon/proc/release_control
|
verbs -= /mob/living/carbon/proc/release_control
|
||||||
verbs -= /mob/living/carbon/proc/punish_host
|
verbs -= /mob/living/carbon/proc/punish_host
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
desc = "A small, quivering sluglike creature."
|
desc = "A small, quivering sluglike creature."
|
||||||
speak_emote = list("chirrups")
|
speak_emote = list("chirrups")
|
||||||
emote_hear = list("chirrups")
|
emote_hear = list("chirrups")
|
||||||
response_help = "pokes the"
|
response_help = "pokes"
|
||||||
response_disarm = "prods the"
|
response_disarm = "prods the"
|
||||||
response_harm = "stomps on the"
|
response_harm = "stomps on the"
|
||||||
icon_state = "brainslug"
|
icon_state = "brainslug"
|
||||||
@@ -234,14 +234,45 @@
|
|||||||
src << "\red <B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B>"
|
src << "\red <B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B>"
|
||||||
host << "\red <B>You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.</B>"
|
host << "\red <B>You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.</B>"
|
||||||
|
|
||||||
|
// host -> brain
|
||||||
|
var/h2b_id = host.computer_id
|
||||||
|
var/h2b_ip= host.lastKnownIP
|
||||||
|
host.computer_id = null
|
||||||
|
host.lastKnownIP = null
|
||||||
|
|
||||||
|
del(host_brain)
|
||||||
|
host_brain = new(src)
|
||||||
|
|
||||||
host_brain.ckey = host.ckey
|
host_brain.ckey = host.ckey
|
||||||
|
|
||||||
|
if(!host_brain.computer_id)
|
||||||
|
host_brain.computer_id = h2b_id
|
||||||
|
|
||||||
|
if(!host_brain.lastKnownIP)
|
||||||
|
host_brain.lastKnownIP = h2b_ip
|
||||||
|
|
||||||
|
// self -> host
|
||||||
|
var/s2h_id = src.computer_id
|
||||||
|
var/s2h_ip= src.lastKnownIP
|
||||||
|
src.computer_id = null
|
||||||
|
src.lastKnownIP = null
|
||||||
|
|
||||||
host.ckey = src.ckey
|
host.ckey = src.ckey
|
||||||
|
|
||||||
|
if(!host.computer_id)
|
||||||
|
host.computer_id = s2h_id
|
||||||
|
|
||||||
|
if(!host.lastKnownIP)
|
||||||
|
host.lastKnownIP = s2h_ip
|
||||||
|
|
||||||
controlling = 1
|
controlling = 1
|
||||||
|
|
||||||
host.verbs += /mob/living/carbon/proc/release_control
|
host.verbs += /mob/living/carbon/proc/release_control
|
||||||
host.verbs += /mob/living/carbon/proc/punish_host
|
host.verbs += /mob/living/carbon/proc/punish_host
|
||||||
host.verbs += /mob/living/carbon/proc/spawn_larvae
|
host.verbs += /mob/living/carbon/proc/spawn_larvae
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
/mob/living/simple_animal/borer/verb/secrete_chemicals()
|
/mob/living/simple_animal/borer/verb/secrete_chemicals()
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
set name = "Secrete Chemicals"
|
set name = "Secrete Chemicals"
|
||||||
@@ -329,20 +360,45 @@ mob/living/simple_animal/borer/proc/detatch()
|
|||||||
host.verbs -= /mob/living/carbon/proc/punish_host
|
host.verbs -= /mob/living/carbon/proc/punish_host
|
||||||
host.verbs -= /mob/living/carbon/proc/spawn_larvae
|
host.verbs -= /mob/living/carbon/proc/spawn_larvae
|
||||||
|
|
||||||
if(host_brain.ckey)
|
|
||||||
|
if(host_brain && host_brain.ckey)
|
||||||
|
|
||||||
|
// host -> self
|
||||||
|
var/h2s_id = host.computer_id
|
||||||
|
var/h2s_ip= host.lastKnownIP
|
||||||
|
host.computer_id = null
|
||||||
|
host.lastKnownIP = null
|
||||||
|
|
||||||
src.ckey = host.ckey
|
src.ckey = host.ckey
|
||||||
|
|
||||||
|
if(!src.computer_id)
|
||||||
|
src.computer_id = h2s_id
|
||||||
|
|
||||||
|
if(!host_brain.lastKnownIP)
|
||||||
|
src.lastKnownIP = h2s_ip
|
||||||
|
|
||||||
|
// brain -> host
|
||||||
|
var/b2h_id = host_brain.computer_id
|
||||||
|
var/b2h_ip= host_brain.lastKnownIP
|
||||||
|
host_brain.computer_id = null
|
||||||
|
host_brain.lastKnownIP = null
|
||||||
|
|
||||||
host.ckey = host_brain.ckey
|
host.ckey = host_brain.ckey
|
||||||
host_brain.ckey = null
|
|
||||||
host_brain.name = "host brain"
|
if(!host.computer_id)
|
||||||
host_brain.real_name = "host brain"
|
host.computer_id = b2h_id
|
||||||
|
|
||||||
|
if(!host.lastKnownIP)
|
||||||
|
host.lastKnownIP = b2h_ip
|
||||||
|
|
||||||
|
del(host_brain)
|
||||||
|
|
||||||
var/mob/living/H = host
|
var/mob/living/H = host
|
||||||
|
H.status_flags &= ~PASSEMOTES
|
||||||
|
|
||||||
host = null
|
host = null
|
||||||
|
|
||||||
for(var/atom/A in H.contents)
|
return
|
||||||
if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder))
|
|
||||||
return
|
|
||||||
H.status_flags &= ~PASSEMOTES
|
|
||||||
|
|
||||||
/mob/living/simple_animal/borer/verb/infest()
|
/mob/living/simple_animal/borer/verb/infest()
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
@@ -408,8 +464,6 @@ mob/living/simple_animal/borer/proc/detatch()
|
|||||||
var/datum/organ/external/head = H.get_organ("head")
|
var/datum/organ/external/head = H.get_organ("head")
|
||||||
head.implants += src
|
head.implants += src
|
||||||
|
|
||||||
host_brain.name = M.name
|
|
||||||
host_brain.real_name = M.real_name
|
|
||||||
host.status_flags |= PASSEMOTES
|
host.status_flags |= PASSEMOTES
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -503,4 +557,4 @@ mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate)
|
|||||||
src.mind = candidate.mob.mind
|
src.mind = candidate.mob.mind
|
||||||
src.ckey = candidate.ckey
|
src.ckey = candidate.ckey
|
||||||
if(src.mind)
|
if(src.mind)
|
||||||
src.mind.assigned_role = "Cortical Borer"
|
src.mind.assigned_role = "Cortical Borer"
|
||||||
|
|||||||
Reference in New Issue
Block a user