From 6527848b900099469314bfb0dc83360cbf8998de Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 6 Jun 2021 19:24:29 -0300 Subject: [PATCH 01/11] Revamps Apathy --- code/__DEFINES/traits.dm | 1 + code/datums/traits/good.dm | 1 + code/modules/mob/living/carbon/death.dm | 6 ------ code/modules/mob/living/carbon/human/death.dm | 7 +++++++ hyperstation/code/datums/mood_events/events.dm | 6 +++--- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 1dd7ce26..50014406 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -194,6 +194,7 @@ #define TRAIT_VIRILE "virile" //you have 20% more chance of impreg #define TRAIT_MACROPHILE "macrophile" //likes the big #define TRAIT_MICROPHILE "microphile" //likes the small +#define TRAIT_APATHETIC "apathetic" //doesn't care #define TRAIT_TOUGH "tough" //you have 10% more maxhealth #define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index b1e073b9..fc4124a2 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -16,6 +16,7 @@ desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess." value = 1 category = CATEGORY_MOODS + mob_trait = TRAIT_APATHETIC mood_quirk = TRUE medical_record_text = "Patient was administered the Apathy Evaluation Scale but did not bother to complete it." diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 4b91526b..6182befe 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -19,12 +19,6 @@ if(SSticker.mode) SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now - //watching someone die is traumatic - for(var/mob/living/carbon/human/H in oview(5, src)) - SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) - if(prob(10)) //10% chance to pump adrenaline into their body - H.jitteriness += 5 - /mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) var/atom/Tsec = drop_location() for(var/mob/M in src) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index f61c8741..e93eae25 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -52,6 +52,13 @@ if(is_devil(src)) INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) + //watching someone die is traumatic + for(var/mob/living/carbon/human/H in oview(5, src)) + if(!HAS_TRAIT(H, TRAIT_APATHETIC)) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) + if(prob(10)) //10% chance to pump adrenaline into their body + H.jitteriness += 5 + /mob/living/carbon/human/proc/makeSkeleton() ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC) set_species(/datum/species/skeleton) diff --git a/hyperstation/code/datums/mood_events/events.dm b/hyperstation/code/datums/mood_events/events.dm index 6ef7c115..a82050e2 100644 --- a/hyperstation/code/datums/mood_events/events.dm +++ b/hyperstation/code/datums/mood_events/events.dm @@ -15,10 +15,10 @@ /datum/mood_event/deathsaw description = "I saw someone die!\n" - mood_change = -8 - timeout = 20 MINUTES //takes a long time to get over + mood_change = -5 + timeout = 3 MINUTES //20 minutes is too much, medical is moving around sluggishly because of this constantly. /datum/mood_event/healsbadman description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!\n" mood_change = -4 - timeout = 2 MINUTES \ No newline at end of file + timeout = 2 MINUTES From db7e03157e26a30a8b073041274ab8c34535aca9 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 6 Jun 2021 19:25:55 -0300 Subject: [PATCH 02/11] Double var --- code/modules/mob/living/carbon/human/death.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index e93eae25..69172745 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -53,11 +53,11 @@ INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) //watching someone die is traumatic - for(var/mob/living/carbon/human/H in oview(5, src)) - if(!HAS_TRAIT(H, TRAIT_APATHETIC)) - SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) + for(var/mob/living/carbon/human/C in oview(5, src)) + if(!HAS_TRAIT(C, TRAIT_APATHETIC)) + SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) if(prob(10)) //10% chance to pump adrenaline into their body - H.jitteriness += 5 + C.jitteriness += 5 /mob/living/carbon/human/proc/makeSkeleton() ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC) From 81377a6255a5477abebf78599747021d6cdcb72f Mon Sep 17 00:00:00 2001 From: Archie Date: Mon, 7 Jun 2021 16:46:32 -0300 Subject: [PATCH 03/11] 10 --- hyperstation/code/datums/mood_events/events.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperstation/code/datums/mood_events/events.dm b/hyperstation/code/datums/mood_events/events.dm index a82050e2..a92b0fa7 100644 --- a/hyperstation/code/datums/mood_events/events.dm +++ b/hyperstation/code/datums/mood_events/events.dm @@ -16,7 +16,7 @@ /datum/mood_event/deathsaw description = "I saw someone die!\n" mood_change = -5 - timeout = 3 MINUTES //20 minutes is too much, medical is moving around sluggishly because of this constantly. + timeout = 10 MINUTES //20 minutes is too much, medical is moving around sluggishly because of this constantly. /datum/mood_event/healsbadman description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!\n" From 7b835c21288b0dc0d70361586da4952e15f361ca Mon Sep 17 00:00:00 2001 From: Archie Date: Mon, 7 Jun 2021 17:47:39 -0300 Subject: [PATCH 04/11] Better logic. --- code/modules/mob/living/carbon/human/death.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 69172745..a589df81 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -54,10 +54,11 @@ //watching someone die is traumatic for(var/mob/living/carbon/human/C in oview(5, src)) - if(!HAS_TRAIT(C, TRAIT_APATHETIC)) - SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) - if(prob(10)) //10% chance to pump adrenaline into their body - C.jitteriness += 5 + if(C.mind) //We don't need to give this to anything that doesn't have a mind. That's wasted processing. + if(!HAS_TRAIT(C, TRAIT_APATHETIC) || !C.mind.assigned_role == "Medical Doctor") //Shamelessly stolen from the Doctor's Delight + SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) + if(prob(10)) //10% chance to pump adrenaline into their body + C.jitteriness += 5 /mob/living/carbon/human/proc/makeSkeleton() ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC) From 0fdba26fe0b9a6a9e51dba6cb62a0df1d486fdcb Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 13:27:39 -0300 Subject: [PATCH 05/11] I am a cruel fuck --- hyperstation/code/mobs/mimic.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 9683b6f0..bbb70ba2 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -43,11 +43,16 @@ wander = FALSE vision_range = initial(vision_range) switch(transformitem) - if(1 to 20) + if(1 to 10) name = "drinking glass" icon = 'icons/obj/drinks.dmi' icon_state = "glass_empty" desc = "Your standard drinking glass." + if(11 to 20) + name = "insulated gloves" + icon = 'icons/obj/clothing/gloves.dmi' + icon_state = "yellow" + desc = "These gloves will protect the wearer from electric shock." if(21 to 30) name = "Private Security Officer" desc = "A cardboard cutout of a private security officer." From 439d6cf27d310b3c8071112872b6b1bfbd9d81a9 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 18:06:09 -0300 Subject: [PATCH 06/11] Test --- hyperstation/code/mobs/mimic.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index bbb70ba2..b94cf367 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -123,6 +123,14 @@ else if(!target && unstealth) trytftorandomobject() +/mob/living/simple_animal/hostile/hs13mimic/adjust_bodytemperature() + . = ..() + var/mod = 0 + else if(bodytemperature < 183.222) + mod = (283.222 - bodytemperature) / 10 * 1.75 + if(mod) + add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + /mob/living/simple_animal/hostile/hs13mimic/proc/restore() //back to normal name = initial(name) From 1f124358b059827df8f176a259b57e5c8370f6a9 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 21:00:35 -0300 Subject: [PATCH 07/11] Mimic behavioral changes and a runtime --- code/game/objects/items/devices/scanners.dm | 2 +- hyperstation/code/mobs/mimic.dm | 55 +++++++++++++++------ 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index d2c9f5a1..56237527 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -232,7 +232,7 @@ GENE SCANNER msg += "\tSubject has abnormal brain fuctions.\n" //Astrogen shenanigans - if(M.reagents.has_reagent(/datum/reagent/fermi/astral)) + if(M.reagents?.has_reagent(/datum/reagent/fermi/astral)) if(M.mind) msg += "\tWarning: subject may be possesed.\n" else diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index b94cf367..7b9c346a 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -7,12 +7,13 @@ icon_dead = "mimic_dead" gender = NEUTER speak_chance = 0 + maxHealth = 38 + health = 38 turns_per_move = 5 - maxHealth = 50 - health = 50 - //move_to_delay = 4 - speed = 0 - see_in_dark = 3 + move_to_delay = 3 + speed = 1 + see_in_dark = 6 + pass_flags = PASSTABLE butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 2) response_help = "prods" response_disarm = "pushes aside" @@ -21,12 +22,17 @@ melee_damage_upper = 12 attacktext = "slams" attack_sound = 'sound/weapons/punch1.ogg' + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) ventcrawler = VENTCRAWLER_ALWAYS + blood_volume = 0 faction = list("mimic") gold_core_spawnable = NO_SPAWN vision_range = 2 aggro_vision_range = 9 wander = TRUE + minbodytemp = 250 //VERY weak to cold + maxbodytemp = 1500 + pressure_resistance = 600 var/unstealth = FALSE var/knockdown_people = 1 @@ -36,9 +42,13 @@ unstealth = FALSE Mimictransform() -/mob/living/simple_animal/hostile/hs13mimic/proc/Mimictransform() //The list of default things to transform needs to be bigger, consider this in the future. +/mob/living/simple_animal/hostile/hs13mimic/attack_hand(mob/living/carbon/human/M) + . = ..() + trigger() +/mob/living/simple_animal/hostile/hs13mimic/proc/Mimictransform() //The list of default things to transform needs to be bigger, consider this in the future. var/transformitem = rand(1,100) + medhudupdate() if(unstealth == FALSE) wander = FALSE vision_range = initial(vision_range) @@ -123,16 +133,31 @@ else if(!target && unstealth) trytftorandomobject() -/mob/living/simple_animal/hostile/hs13mimic/adjust_bodytemperature() +/mob/living/simple_animal/hostile/hs13mimic/death(gibbed) + restore() . = ..() - var/mod = 0 - else if(bodytemperature < 183.222) - mod = (283.222 - bodytemperature) / 10 * 1.75 - if(mod) - add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + +/mob/living/simple_animal/hostile/hs13mimic/med_hud_set_health() + if(!unstealth) + var/image/holder = hud_list[HEALTH_HUD] + holder.icon_state = null + return //we hide medical hud while morphed + ..() + +/mob/living/simple_animal/hostile/hs13mimic/med_hud_set_status() + if(!unstealth) + var/image/holder = hud_list[STATUS_HUD] + holder.icon_state = null + return //we hide medical hud while morphed + ..() + +/mob/living/simple_animal/hostile/hs13mimic/proc/medhudupdate() + med_hud_set_health() + med_hud_set_status() /mob/living/simple_animal/hostile/hs13mimic/proc/restore() - //back to normal + //back to normal mimic sprite + medhudupdate() name = initial(name) icon = 'hyperstation/icons/mobs/mimic.dmi' icon_state = "mimic" @@ -155,12 +180,13 @@ C.trigger() /mob/living/simple_animal/hostile/hs13mimic/proc/trytftorandomobject() + unstealth = FALSE + medhudupdate() var/list/obj/item/listItems = list() for(var/obj/item/I in oview(9,src.loc)) listItems += I if(LAZYLEN(listItems)) var/obj/item/changedReference = pick(listItems) - unstealth = FALSE wander = FALSE vision_range = initial(vision_range) name = changedReference.name @@ -168,5 +194,4 @@ icon_state = changedReference.icon_state desc = changedReference.desc else - unstealth = FALSE Mimictransform() From dd13eebde49d59b6ce111c0dceba8f88c8732cf4 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 21:02:48 -0300 Subject: [PATCH 08/11] That too. --- hyperstation/code/mobs/mimic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 7b9c346a..bc1bb976 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -11,7 +11,7 @@ health = 38 turns_per_move = 5 move_to_delay = 3 - speed = 1 + speed = 0 see_in_dark = 6 pass_flags = PASSTABLE butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 2) From 8a3d26fa2607ca8f90b5592ffdc348cec43c0d59 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 21:15:31 -0300 Subject: [PATCH 09/11] Some rev changes --- code/modules/antagonists/revenant/revenant_abilities.dm | 6 +++--- code/modules/antagonists/revenant/revenant_spawn_event.dm | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index e69e0a9f..2fa5306c 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -28,15 +28,15 @@ to_chat(target, "You feel as if you are being watched.") return draining = TRUE - essence_drained += rand(15, 20) + essence_drained += rand(30, 40) to_chat(src, "You search for the soul of [target].") if(do_after(src, rand(10, 20), 0, target)) //did they get deleted in that second? if(target.ckey) to_chat(src, "[target.p_their(TRUE)] soul burns with intelligence.") - essence_drained += rand(20, 30) + essence_drained += rand(40, 60) if(target.stat != DEAD) to_chat(src, "[target.p_their(TRUE)] soul blazes with life!") - essence_drained += rand(40, 50) + essence_drained += rand(80, 100) else to_chat(src, "[target.p_their(TRUE)] soul is weak and faltering.") if(do_after(src, rand(15, 20), 0, target)) //did they get deleted NOW? diff --git a/code/modules/antagonists/revenant/revenant_spawn_event.dm b/code/modules/antagonists/revenant/revenant_spawn_event.dm index 2ff8503b..eee89f83 100644 --- a/code/modules/antagonists/revenant/revenant_spawn_event.dm +++ b/code/modules/antagonists/revenant/revenant_spawn_event.dm @@ -1,4 +1,4 @@ -#define REVENANT_SPAWN_THRESHOLD 15 +#define REVENANT_SPAWN_THRESHOLD 12 /datum/round_event_control/revenant name = "Spawn Revenant" // Did you mean 'griefghost'? @@ -20,7 +20,8 @@ if(!ignore_mobcheck) var/deadMobs = 0 for(var/mob/living/carbon/M in GLOB.dead_mob_list) - deadMobs++ + if(is_station_level(M.z)) + deadMobs++ if(deadMobs < REVENANT_SPAWN_THRESHOLD) message_admins("Event attempted to spawn a revenant, but there were only [deadMobs]/[REVENANT_SPAWN_THRESHOLD] dead mobs.") return WAITING_FOR_SOMETHING From 6e495567ce6250a405ce6431291430c780e830d5 Mon Sep 17 00:00:00 2001 From: ArchieBeepBoop <53913550+ArchieBeepBoop@users.noreply.github.com> Date: Fri, 11 Jun 2021 21:54:52 -0300 Subject: [PATCH 10/11] Update hyperstation/code/datums/mood_events/events.dm Co-authored-by: Dahlular <55758850+Dahlular@users.noreply.github.com> --- hyperstation/code/datums/mood_events/events.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperstation/code/datums/mood_events/events.dm b/hyperstation/code/datums/mood_events/events.dm index a92b0fa7..01bbcf51 100644 --- a/hyperstation/code/datums/mood_events/events.dm +++ b/hyperstation/code/datums/mood_events/events.dm @@ -16,7 +16,7 @@ /datum/mood_event/deathsaw description = "I saw someone die!\n" mood_change = -5 - timeout = 10 MINUTES //20 minutes is too much, medical is moving around sluggishly because of this constantly. + timeout = 20 MINUTES //20 minutes is too much, medical is moving around sluggishly because of this constantly. /datum/mood_event/healsbadman description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!\n" From 0dea745d057d2000e51b169447d951fd39b0593c Mon Sep 17 00:00:00 2001 From: ArchieBeepBoop <53913550+ArchieBeepBoop@users.noreply.github.com> Date: Fri, 11 Jun 2021 21:55:51 -0300 Subject: [PATCH 11/11] Comment --- hyperstation/code/datums/mood_events/events.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperstation/code/datums/mood_events/events.dm b/hyperstation/code/datums/mood_events/events.dm index 01bbcf51..5c58d9ab 100644 --- a/hyperstation/code/datums/mood_events/events.dm +++ b/hyperstation/code/datums/mood_events/events.dm @@ -16,7 +16,7 @@ /datum/mood_event/deathsaw description = "I saw someone die!\n" mood_change = -5 - timeout = 20 MINUTES //20 minutes is too much, medical is moving around sluggishly because of this constantly. + timeout = 20 MINUTES //May be fine tuned in the future. /datum/mood_event/healsbadman description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!\n"