From 63f3e5ccd9f2030281c375a893bb1a8632b1d184 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 18 May 2014 10:50:13 +0930 Subject: [PATCH] Adds PASSEMOTES flag to setup.dm, dionaea and borers. Conflicts: code/modules/mob/living/carbon/monkey/diona.dm code/modules/mob/living/simple_animal/borer.dm --- .../modules/mob/living/carbon/monkey/diona.dm | 12 +++++++ code/modules/mob/living/living.dm | 7 ++++ .../silicon/robot/drone/drone_abilities.dm | 1 + .../modules/mob/living/simple_animal/borer.dm | 32 ++++++++++--------- code/setup.dm | 1 + 5 files changed, 38 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm index dc2911cfcad..7e6ff87b3dc 100644 --- a/code/modules/mob/living/carbon/monkey/diona.dm +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -76,6 +76,7 @@ D.attack_hand(M) M << "You scoop up [src]." src << "[M] scoops you up." + M.status_flags |= PASSEMOTES return ..() @@ -123,6 +124,8 @@ if(istype(M,/mob/living/carbon/human)) M << "You feel your being twine with that of [src] as it merges with your biomass." + M.status_flags |= PASSEMOTES + src << "You feel your being twine with that of [M] as you merge with its biomass." src.loc = M src.verbs += /mob/living/carbon/monkey/diona/proc/split @@ -142,10 +145,19 @@ src.loc << "You feel a pang of loss as [src] splits away from your biomass." src << "You wiggle out of the depths of [src.loc]'s biomass and plop to the ground." + + var/mob/living/M = src.loc + src.loc = get_turf(src) src.verbs -= /mob/living/carbon/monkey/diona/proc/split src.verbs += /mob/living/carbon/monkey/diona/proc/merge + if(istype(M)) + for(var/atom/A in M.contents) + if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) + return + M.status_flags &= ~PASSEMOTES + /mob/living/carbon/monkey/diona/verb/fertilize_plant() set category = "Diona" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index ffb06c91634..b97d653baa9 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -461,6 +461,13 @@ else if(istype(H.loc,/obj/item)) src << "You struggle free of [H.loc]." H.loc = get_turf(H) + + if(istype(M)) + for(var/atom/A in M.contents) + if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) + return + + M.status_flags &= ~PASSEMOTES return //Resisting control by an alien mind. diff --git a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm index a01b7cb6e5a..80324f18190 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm @@ -54,6 +54,7 @@ D.attack_hand(M) M << "You scoop up [src]." src << "[M] scoops you up." + M.status_flags |= PASSEMOTES return ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index 5411500c15c..d4a669520c1 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -58,7 +58,6 @@ ..() - if(host) if(!stat && !host.stat) @@ -335,8 +334,14 @@ mob/living/simple_animal/borer/proc/detatch() host_brain.name = "host brain" host_brain.real_name = "host brain" + var/mob/living/H = host host = null + for(var/atom/A in H.contents) + 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() set category = "Alien" set name = "Infest" @@ -390,23 +395,20 @@ mob/living/simple_animal/borer/proc/detatch() if(M in view(1, src)) src << "You wiggle into [M]'s ear." - src.perform_infestation(M) - return - else - src << "They are no longer in range!" - return + if(!M.stat) + M << "Something disgusting and slimy wiggles into your ear!" -/mob/living/simple_animal/borer/proc/perform_infestation(var/mob/living/carbon/M) - src.host = M - src.loc = M + src.host = M + src.loc = M - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - var/datum/organ/external/head = H.get_organ("head") - head.implants += src + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + var/datum/organ/external/head = H.get_organ("head") + head.implants += src - host_brain.name = M.name - host_brain.real_name = M.real_name + host_brain.name = M.name + host_brain.real_name = M.real_name + host.status_flags |= PASSEMOTES /mob/living/simple_animal/borer/verb/ventcrawl() set name = "Crawl through Vent" diff --git a/code/setup.dm b/code/setup.dm index de684f75e44..d7b7fb92704 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -485,6 +485,7 @@ var/list/global_mutations = list() // list of hidden mutation things #define CANPARALYSE 4 #define CANPUSH 8 #define LEAPING 16 +#define PASSEMOTES 32 //Mob has a cortical borer or holders inside of it that need to see emotes. #define GODMODE 4096 #define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath #define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system