diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 4b0afce14b47..3cbc091cc62a 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -430,11 +430,6 @@ /datum/quirk/insanity/proc/madness() quirk_holder.hallucination += rand(10, 25) -/datum/quirk/insanity/post_add() //I don't /think/ we'll need this but for newbies who think "roleplay as insane" = "license to kill" it's probably a good thing to have - if(!quirk_holder.mind || quirk_holder.mind.special_role) - return - to_chat(quirk_holder, "Please note that your dissociation syndrome does NOT give you the right to attack people or otherwise cause any interference to \ - the round. You are not an antagonist, and the rules will treat you the same as other crewmembers.") /datum/quirk/social_anxiety name = "Social Anxiety" diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 258e9a56217f..ced086e1dfc6 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -525,11 +525,11 @@ GLOBAL_LIST_INIT(hallucination_list, list( /datum/hallucination/delusion var/list/image/delusions = list() -/datum/hallucination/delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = 300,skip_nearby = TRUE, custom_icon = null, custom_icon_file = null, custom_name = null) +/datum/hallucination/delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = rand(30,300),skip_nearby = TRUE, custom_icon = null, custom_icon_file = null, custom_name = null) set waitfor = FALSE . = ..() var/image/A = null - var/kind = force_kind ? force_kind : pick("nothing","monkey","corgi","carp","skeleton","demon","zombie") + var/kind = force_kind ? force_kind : pick("doe","mi-go","carp","hermit","frontiersman","ramzi") feedback_details += "Type: [kind]" var/list/nearby if(skip_nearby) @@ -540,27 +540,24 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(skip_nearby && (H in nearby)) continue switch(kind) - if("nothing") - A = image('icons/effects/effects.dmi',H,"nothing") - A.name = "..." - if("monkey")//Monkey - A = image('icons/mob/monkey.dmi',H,"monkey1") - A.name = "Monkey ([rand(1,999)])" + if("doe")//Doe + A = image('icons/mob/animal.dmi',H,"deer-doe") + A.name = "Doe" if("carp")//Carp A = image('icons/mob/carp.dmi',H,"carp") A.name = "Space Carp" - if("corgi")//Corgi - A = image('icons/mob/pets.dmi',H,"corgi") - A.name = "Corgi" - if("skeleton")//Skeletons - A = image('icons/mob/human.dmi',H,"skeleton") - A.name = "Skeleton" - if("zombie")//Zombies - A = image('icons/mob/human.dmi',H,"zombie") - A.name = "Zombie" - if("demon")//Demon - A = image('icons/mob/mob.dmi',H,"daemon") - A.name = "Demon" + if("mi-go")//Mi-go + A = image('icons/mob/animal.dmi',H,"mi-go") + A.name = "Mi-go" + if("hermit")//Hermit + A = image('icons/mob/simple_human.dmi',H,"survivor_gunslinger") + A.name = "Hermit Soldier" + if("frontiersman")//Frontiersman + A = image('icons/mob/simple_human.dmi',H,"frontiersmanrangedminigun") + A.name = "Frontiersman" + if("ramzi")//Ramzi + A = image('icons/mob/simple_human.dmi',H,"ramzi_base") + A.name = "Ramzi Commando" if("custom") A = image(custom_icon_file, H, custom_icon) A.name = custom_name @@ -568,8 +565,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(target.client) delusions |= A target.client.images |= A - if(duration) - QDEL_IN(src, duration) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), duration) /datum/hallucination/delusion/Destroy() for(var/image/I in delusions) @@ -580,25 +576,28 @@ GLOBAL_LIST_INIT(hallucination_list, list( /datum/hallucination/self_delusion var/image/delusion -/datum/hallucination/self_delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = 300, custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source +/datum/hallucination/self_delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = rand(30,300), custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source set waitfor = FALSE ..() var/image/A = null - var/kind = force_kind ? force_kind : pick("monkey","corgi","carp","skeleton","demon","zombie","robot") + var/kind = force_kind ? force_kind : pick("doe","mi-go","carp","hermit","frontiersman","ramzi","pai","robot") feedback_details += "Type: [kind]" switch(kind) - if("monkey")//Monkey - A = image('icons/mob/monkey.dmi',target,"monkey1") + if("doe")//Doe + A = image('icons/mob/animal.dmi',target,"deer-doe") if("carp")//Carp A = image('icons/mob/animal.dmi',target,"carp") - if("corgi")//Corgi - A = image('icons/mob/pets.dmi',target,"corgi") - if("skeleton")//Skeletons - A = image('icons/mob/human.dmi',target,"skeleton") - if("zombie")//Zombies - A = image('icons/mob/human.dmi',target,"zombie") - if("demon")//Demon - A = image('icons/mob/mob.dmi',target,"daemon") + if("mi-go")//Mi-go + A = image('icons/mob/animal.dmi',target,"mi-go") + if("hermit")//Hermit + A = image('icons/mob/simple_human.dmi',target,"survivor_base") + if("frontiersman")//Frontiersman + A = image('icons/mob/simple_human.dmi',target,"frontiersmanranged") + if("ramzi")//Ramzi + A = image('icons/mob/simple_human.dmi',target,"ramzi_base") + if("pai")//pAI + A = image('icons/mob/pai.dmi',target,"repairbot") + target.playsound_local(target,'sound/effects/pai_boot.ogg', 75, 1) if("robot")//Cyborg A = image('icons/mob/robots.dmi',target,"robot") target.playsound_local(target,'sound/voice/liveagain.ogg', 75, 1) @@ -610,7 +609,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( to_chat(target, "...you look down and notice... you aren't the same as you used to be...") delusion = A target.client.images |= A - QDEL_IN(src, duration) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), duration) /datum/hallucination/self_delusion/Destroy() if(target.client) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 91927581095c..ab0be2930324 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -259,7 +259,8 @@ taste_description = "sourness" /datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M) - M.hallucination += 5 + if(!M.has_quirk(/datum/quirk/insanity)) + M.hallucination += 5 return ..() /datum/reagent/toxin/plantbgone diff --git a/icons/mob/simple_human.dmi b/icons/mob/simple_human.dmi index 8cbc0f841bcb..83729d2a2ba4 100644 Binary files a/icons/mob/simple_human.dmi and b/icons/mob/simple_human.dmi differ