From 92735f896646288dc67dc789837a7c2b8b28ba67 Mon Sep 17 00:00:00 2001 From: Kirie Saito <77302679+Kitsunemitsu@users.noreply.github.com> Date: Tue, 27 Aug 2024 16:56:29 -0400 Subject: [PATCH] Updates oz abnos to be less punishing. (#2384) * updates oz abnos to be less punishing. * update --- .../simple_animal/abnormality/he/road_home.dm | 14 ++++++++++++-- .../simple_animal/abnormality/he/scarecrow.dm | 13 +++++++++++-- .../simple_animal/abnormality/he/scaredy_cat.dm | 17 ++++++++++++++++- .../simple_animal/abnormality/he/woodsman.dm | 13 +++++++++++-- code/modules/paperwork/records/info/he.dm | 13 +++++++++---- 5 files changed, 59 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm b/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm index bee85dc1b2ba..2558c1664fa4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm @@ -70,9 +70,19 @@ ///Agents with the "stay home" status effect, they will be driven insane when the home is reached. var/list/agent_friends = list() -/mob/living/simple_animal/hostile/abnormality/road_home/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) +// Modifiers for work chance +/mob/living/simple_animal/hostile/abnormality/road_home/WorkChance(mob/living/carbon/human/user, chance, work_type) + var/newchance = chance if(get_attribute_level(user, JUSTICE_ATTRIBUTE) >= 60) //Apparently the original road home is fortitude but I already made scaredy cat fort and I'm too stubborn to change it. - datum_reference.qliphoth_change(-1) + newchance = chance-20 + return newchance + +/mob/living/simple_animal/hostile/abnormality/road_home/NeutralEffect(mob/living/carbon/human/user, work_type, pe) + . = ..() + if(get_attribute_level(user, JUSTICE_ATTRIBUTE) >= 60) + if(prob(40)) + datum_reference.qliphoth_change(-1) + return /mob/living/simple_animal/hostile/abnormality/road_home/FailureEffect(mob/living/carbon/human/user, work_type, pe) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm b/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm index 482fc92bc6da..8d2f0e0f9ce0 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm @@ -105,14 +105,23 @@ QDEL_NULL(O) finishing = FALSE +/mob/living/simple_animal/hostile/abnormality/scarecrow/WorkChance(mob/living/carbon/human/user, chance, work_type) + var/newchance = chance + if(get_attribute_level(user, PRUDENCE_ATTRIBUTE) >= 60) + newchance = chance-20 + return newchance + /mob/living/simple_animal/hostile/abnormality/scarecrow/FailureEffect(mob/living/carbon/human/user, work_type, pe) . = ..() datum_reference.qliphoth_change(-1) return -/mob/living/simple_animal/hostile/abnormality/scarecrow/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) + +/mob/living/simple_animal/hostile/abnormality/scarecrow/NeutralEffect(mob/living/carbon/human/user, work_type, pe) + . = ..() if(get_attribute_level(user, PRUDENCE_ATTRIBUTE) >= 60) - datum_reference.qliphoth_change(-1) + if(prob(40)) + datum_reference.qliphoth_change(-1) return /mob/living/simple_animal/hostile/abnormality/scarecrow/BreachEffect(mob/living/carbon/human/user, breach_type) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm b/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm index f13b314cc091..09f75f99b91e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm @@ -82,11 +82,26 @@ RegisterSignal(SSdcs, COMSIG_GLOB_MOB_DEATH, PROC_REF(OnMobDeath)) RegisterSignal(SSdcs, COMSIG_GLOB_ABNORMALITY_BREACH, PROC_REF(OnAbnoBreach)) -/mob/living/simple_animal/hostile/abnormality/scaredy_cat/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) +/mob/living/simple_animal/hostile/abnormality/scaredy_cat/WorkChance(mob/living/carbon/human/user, chance, work_type) + var/newchance = chance + if(get_attribute_level(user, FORTITUDE_ATTRIBUTE) >= 60) + newchance = chance-20 + return newchance + +/mob/living/simple_animal/hostile/abnormality/scaredy_cat/NeutralEffect(mob/living/carbon/human/user, work_type, pe) + . = ..() + if(get_attribute_level(user, FORTITUDE_ATTRIBUTE) >= 60) + if(prob(40)) + datum_reference.qliphoth_change(-1) + return + +/mob/living/simple_animal/hostile/abnormality/scaredy_cat/FailureEffect(mob/living/carbon/human/user, work_type, pe) + . = ..() if(get_attribute_level(user, FORTITUDE_ATTRIBUTE) >= 60) datum_reference.qliphoth_change(-1) return + /mob/living/simple_animal/hostile/abnormality/scaredy_cat/BreachEffect(mob/living/carbon/human/user, breach_type) protect_cooldown = world.time + protect_cooldown_time //to avoid him teleporting twice for no reason on breach if(priority_friend) //if an oz abno escape they take absolute priority diff --git a/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm b/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm index f113e201acd3..10e34be7d468 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm @@ -323,9 +323,18 @@ icon_state = icon_living can_act = TRUE -/mob/living/simple_animal/hostile/abnormality/woodsman/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) + +/mob/living/simple_animal/hostile/abnormality/woodsman/WorkChance(mob/living/carbon/human/user, chance, work_type) + var/newchance = chance if (get_attribute_level(user, TEMPERANCE_ATTRIBUTE) >= 60) - datum_reference.qliphoth_change(-1) + newchance = chance-20 + return newchance + +/mob/living/simple_animal/hostile/abnormality/woodsman/NeutralEffect(mob/living/carbon/human/user, work_type, pe) + . = ..() + if (get_attribute_level(user, TEMPERANCE_ATTRIBUTE) >= 60) + if(prob(40)) + datum_reference.qliphoth_change(-1) return /mob/living/simple_animal/hostile/abnormality/woodsman/FailureEffect(mob/living/carbon/human/user, work_type, pe) diff --git a/code/modules/paperwork/records/info/he.dm b/code/modules/paperwork/records/info/he.dm index 82e7737ce8d8..d70dd80a4680 100644 --- a/code/modules/paperwork/records/info/he.dm +++ b/code/modules/paperwork/records/info/he.dm @@ -28,7 +28,8 @@ abno_type = /mob/living/simple_animal/hostile/abnormality/scarecrow abno_code = "F-01-87" abno_info = list( - "When an employee with Prudence Level 3 or higher finished their work, the Qliphoth Counter lowered.", + "Employees with Prudence Level 3 or higher had a workrate reduction when working on F-01-87.", + "When an employee with Prudence Level 3 or higher finished their work with a neutral work result, the Qliphoth Counter lowered at a normal chance.", "When the work result was Bad, the Qliphoth Counter lowered.", "When Scarecrow Searching for Wisdom was escaping and killed an employee, it sucked their brain out to recover its HP.") @@ -114,8 +115,9 @@ abno_type = /mob/living/simple_animal/hostile/abnormality/woodsman abno_code = "F-05-32" abno_info = list( + "Employees with Temperance Level 3 or higher had a workrate reduction when working on F-05-32.", + "When an employee with Temperance Level 3 or higher finished their work with a neutral work result, the Qliphoth Counter lowered at a normal chance.", "When the work result was Bad, the Qliphoth Counter lowered.", - "When an employee with Temperance Level 3 or higher completed their work, the Qliphoth Counter lowered.", "When an employee attempts work while the Qliphoth Counter is at 1, they will immediately die. Then, the Abnormality will escape.", "Whenever a body, living or dead, was placed into the Warm-Hearted Woodsman’s chest while the Qliphoth Counter was at 1, the Qliphoth Counter increased.", "WARNING: When a body was placed into the Warm-Hearted Woodsman’s chest when the Qliphoth Counter was not at 1, it breached immediately.") @@ -148,9 +150,11 @@ abno_type = /mob/living/simple_animal/hostile/abnormality/scaredy_cat abno_code = "F-02-126" abno_info = list( + "Employees with Fortitude Level 3 or higher had a workrate reduction when working on F-02-126.", + "When an employee with Fortitude Level 3 or higher finished their work with a neutral work result, the Qliphoth Counter lowered at a normal chance.", + "When an employee with Fortitude Level 3 or higher finished their work with a bad work result, the Qliphoth Counter lowered.", "When another Abnormality breached containment, the Qliphoth Counter lowered.", "When another \"Oz\" Abnormality breached containment, the Qliphoth Counter dropped to 0.", - "When an employee with Fortitude Level 3 or higher completed their work, the Qliphoth Counter lowered.", "When another Abnormality was suppressed, the Qliphoth Counter increased.", "When the Qliphoth Counter reached 0, Scaredy Cat teleported out of the Containment Unit to protect another breached Abnormality.", "Scaredy Cat could not be fully suppressed as long as the Abnormality it protected was alive.", @@ -259,7 +263,8 @@ abno_type = /mob/living/simple_animal/hostile/abnormality/road_home abno_code = "F-01-136" abno_info = list( - "When an employee with Justice Level 3 or higher completed their work, the Qliphoth Counter lowered.", + "Employees with Justice Level 3 or higher had a workrate reduction when working on F-01-136.", + "When an employee with Justice Level 3 or higher finished their work with a neutral work result, the Qliphoth Counter lowered at a normal chance.", "When the work result was Bad, the Qliphoth Counter lowered.", "When the Road Home breached containment, a house landed in a random department, dealing massive white damage around it.", "The Road Home also teleported to another department, and tried to make a golden road to the house.",