diff --git a/ModularTegustation/lc13_effects.dm b/ModularTegustation/lc13_effects.dm index 74e1ce012827..37158b5e9d4b 100644 --- a/ModularTegustation/lc13_effects.dm +++ b/ModularTegustation/lc13_effects.dm @@ -62,6 +62,26 @@ animate(src, alpha = 100, time = 30) addtimer(CALLBACK(src, PROC_REF(StartAnimation)),30) +// Abnormality work flavor text handler. Uses snowflake vars to handle spacing and such. +/obj/effect/overlay/workflavortext + name = "overlay" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + alpha = 0 + maptext_height = 64 + maptext_width = 256 + layer = UNDER_HUD_LAYER + plane = HUD_PLANE - 1 + pixel_y = 128 + pixel_x = -32 + +/obj/effect/overlay/workflavortext/Initialize() + . = ..() + animate(src, alpha = 255, time = 10) + +/obj/effect/overlay/workflavortext/proc/FadeOut() + animate(src, alpha = 0, time = 10) + QDEL_IN(src, 12) + //Kikimora Graffiti /obj/effect/decal/cleanable/crayon/cognito name = "graffiti" diff --git a/ModularTegustation/lc13_obj/lc13_computers/abnormality_work.dm b/ModularTegustation/lc13_obj/lc13_computers/abnormality_work.dm index 9f32b4db72a1..5d24e27d74c9 100644 --- a/ModularTegustation/lc13_obj/lc13_computers/abnormality_work.dm +++ b/ModularTegustation/lc13_obj/lc13_computers/abnormality_work.dm @@ -257,7 +257,7 @@ else datum_reference.current.WorktickFailure(user) total_boxes++ - datum_reference.current.Worktick(user) + datum_reference.current.Worktick(user, total_boxes) else if(!CheckStatus(user)) // No punishment if the thing is already breached or any other issue is prevelant. break diff --git a/code/datums/abnormality/datum/abnormality.dm b/code/datums/abnormality/datum/abnormality.dm index d9cc49f312e9..11ac75f02d86 100644 --- a/code/datums/abnormality/datum/abnormality.dm +++ b/code/datums/abnormality/datum/abnormality.dm @@ -130,6 +130,7 @@ max_boxes = (threat_level * 4) + 6 if(threat_level >= 5) max_boxes += 4 + current.max_boxes = max_boxes // Prevents abnormalities from having 0 max_boxes at the mob level. else max_boxes = current.max_boxes if(!current.success_boxes) diff --git a/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm b/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm index 2e193361b91d..20673cd4190b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm @@ -102,9 +102,21 @@ var/list/grouped_abnos = list() //Abnormaltiy portrait, updated on spawn if they have one. var/portrait = "UNKNOWN" + + /// Abnormality core icon and info var/core_icon = "" var/core_enabled = TRUE + /// Floating text object reference + var/obj/effect/overlay/workflavortext/flavor_text = null + var/list/work_start_lines = list("%PERSON started working on %ABNO...") + var/list/early_work_lines = list() + var/list/middle_work_lines = list() + var/list/late_work_lines = list() + var/list/work_end_lines = list() + var/nextline_boxes = -1 + var/boxes_divisor = -1 + /// If an abnormality should not be possessed even if possessibles are enabled, mainly for admins. var/do_not_possess = FALSE @@ -279,14 +291,14 @@ return ..() /mob/living/simple_animal/hostile/abnormality/proc/HarvestChem(obj/item/reagent_containers/C, mob/user) - visible_message(HarvestMessageProcess(harvest_phrase_third, user, C), HarvestMessageProcess(harvest_phrase, user, C)) + visible_message(MessageProcess(harvest_phrase_third, user, C), MessageProcess(harvest_phrase, user, C)) if(chem_type) C.reagents.add_reagent(chem_type, chem_yield) else C.reagents.add_reagent(pick(dummy_chems), chem_yield) chem_cooldown_timer = world.time + chem_cooldown -/mob/living/simple_animal/hostile/abnormality/proc/HarvestMessageProcess(str, user, vessel) // Jacked from announcement_system.dm +/mob/living/simple_animal/hostile/abnormality/proc/MessageProcess(str, user, vessel) // Jacked from announcement_system.dm str = replacetext(str, "%PERSON", "[user]") str = replacetext(str, "%VESSEL", "[vessel]") str = replacetext(str, "%ABNO", "[src]") @@ -401,6 +413,9 @@ The variable's key needs to be non-numerical.*/ // Called by datum_reference when work is done /mob/living/simple_animal/hostile/abnormality/proc/WorkComplete(mob/living/carbon/human/user, work_type, pe, work_time, canceled) SHOULD_CALL_PARENT(TRUE) + if(flavor_text) + flavor_text.FadeOut() + flavor_text = null if(pe >= datum_reference.success_boxes) SuccessEffect(user, work_type, pe, work_time, canceled) else if(pe >= datum_reference.neutral_boxes) @@ -457,7 +472,10 @@ The variable's key needs to be non-numerical.*/ return TRUE // Additional effect on each work tick, whether successful or not -/mob/living/simple_animal/hostile/abnormality/proc/Worktick(mob/living/carbon/human/user) +/mob/living/simple_animal/hostile/abnormality/proc/Worktick(mob/living/carbon/human/user, boxes) + if(boxes != nextline_boxes) + return + FlavorTextHandler(user, boxes, FALSE) return // Additional effect on each individual work tick success @@ -485,6 +503,7 @@ The variable's key needs to be non-numerical.*/ // Dictates whereas this type of work can be performed at the moment or not /mob/living/simple_animal/hostile/abnormality/proc/AttemptWork(mob/living/carbon/human/user, work_type) + FlavorTextHandler(user, null, TRUE) return TRUE // Overrides the normal work delay. Called in abnormality_work.dm each worktick. @@ -630,6 +649,40 @@ The variable's key needs to be non-numerical.*/ return return new /obj/effect/gibspawner/generic(drop_location(), src, get_static_viruses()) +// This could be optimized. A LOT! Currently should be considered a draft. +// Really, these numbers suck and are weird, but they're the first numbers that I could come up with that worked. +/mob/living/simple_animal/hostile/abnormality/proc/FlavorTextHandler(mob/living/carbon/human/user, boxes, started = FALSE) + var/display_text + var/display_text_style = "font-family: 'Railway'; text-align: center; font-size:9pt;" + if(started) + if(flavor_text) // How do we have one? Get rid of it + flavor_text.FadeOut() + var/turf/target_turf = get_ranged_target_turf(src, SOUTHWEST, 1) + var/obj/effect/overlay/workflavortext/T = new(target_turf) + flavor_text = T + display_text = pick(work_start_lines) + boxes_divisor = (round(datum_reference.max_boxes * 0.15)) + nextline_boxes = boxes_divisor + else if(boxes) + if(boxes == boxes_divisor) + if(early_work_lines.len) + display_text = pick(early_work_lines) + nextline_boxes = boxes_divisor * 2 + if(boxes == (boxes_divisor * 2)) + if(middle_work_lines.len) + display_text = pick(middle_work_lines) + nextline_boxes = (boxes_divisor * 4) + if(boxes == (boxes_divisor * 4)) + if(late_work_lines.len) + display_text = pick(late_work_lines) + nextline_boxes = (datum_reference.max_boxes - (boxes_divisor * 2)) + if(boxes == (datum_reference.max_boxes - (boxes_divisor * 2))) + if(work_end_lines.len) + display_text = pick(work_end_lines) + if(display_text) + flavor_text.maptext = "[MessageProcess(display_text, user, "NULL")]
" + return TRUE + // Actions /datum/action/innate/abnormality_attack name = "Abnormality Attack" diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm index c8d309147f0f..fd922a095f25 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm @@ -59,6 +59,9 @@ You opened your eyes and looked again at the heart.
It remains in the air, floating towards a new beginning."), ) + work_start_lines = list("Often, some of our employees will be eager to throw themselves into %ABNO.") + middle_work_lines = list("Our %ABNO was born in an abyss of despair and floats towards a new beginning.") + var/pulse_cooldown var/pulse_cooldown_time = 8 SECONDS var/pulse_damage = 30 // Scales with distance; Ideally, you shouldn't be able to outheal it with white V armor or less @@ -123,7 +126,7 @@ animate(user, transform = user.transform*0.01, time = 5) QDEL_IN(user, 5) return FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/bluestar/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) if(get_attribute_level(user, PRUDENCE_ATTRIBUTE) < 100) diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm index 8f540e935f78..543176615386 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm @@ -56,6 +56,10 @@ You're not ready to build the future."), ) + work_start_lines = list("%PERSON is (CENSORED) to (CENSORED).") + early_work_lines = list("%PERSON is feeling (CENSORED) from (CENSORED).") + late_work_lines = list("(CENSORED) is doing (CENSORED) and... Goodness, that's disgusting.") + var/can_act = TRUE var/ability_damage = 50 var/ability_cooldown @@ -205,7 +209,6 @@ L.apply_status_effect(STATUS_EFFECT_OVERWHELMING_FEAR) can_act = TRUE -/* Work */ /mob/living/simple_animal/hostile/abnormality/censored/AttemptWork(mob/living/carbon/human/user, work_type) if(work_type == "Sacrifice") to_chat(user, span_warning("You hesitate for a moment...")) @@ -236,7 +239,7 @@ user.AdjustStun(-999) //run for your life datum_reference.working = FALSE return null - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/censored/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) if(user.sanity_lost) diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm index 6a33477a4c1e..a587ebca40eb 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm @@ -56,6 +56,9 @@ "I don't recognize them" = list(FALSE, "They're holding all the laughter of those who cannot be seen here.
The mounds begins to shamble, upon borrowed hands and feet, it has your scent now and it will never be satisfied."), ) + work_start_lines = list("%ABNO is searching for the smell of a body, carrying the smiles of many.") + middle_work_lines = list("%ABNO waits for the oncoming smell of blood, holding all of the laughter of those who cannot be seen here.") + /// Is user performing work hurt at the beginning? var/agent_hurt = FALSE var/death_counter = 0 @@ -382,7 +385,7 @@ /mob/living/simple_animal/hostile/abnormality/mountain/AttemptWork(mob/living/carbon/human/user, work_type) if(user.health != user.maxHealth) agent_hurt = TRUE - return TRUE + return ..() /* Abnormality breach */ diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm index b8b72acdfa7c..2a0cd60416c7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm @@ -390,7 +390,7 @@ var/growl_prob = (work_type in list(ABNORMALITY_WORK_REPRESSION, ABNORMALITY_WORK_INSIGHT)) ? 100 : 25 if(prob(growl_prob)) // Spooky playsound(get_turf(src), 'sound/abnormalities/nothingthere/growl.ogg', 25, 0) - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/nothing_there/WorkChance(mob/living/carbon/human/user, chance) var/adjusted_chance = chance diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm index fc40b13034b2..e75417d2a19c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm @@ -241,7 +241,7 @@ animate(user, transform = user.transform*0.01, time = 5) user.death(TRUE) QDEL_IN(user, 5) - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/space_lady/FailureEffect(mob/living/carbon/human/user, work_type, pe) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm index 6c8aecb244bc..4d2e359110ce 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm @@ -270,7 +270,7 @@ /mob/living/simple_animal/hostile/abnormality/titania/AttemptWork(mob/living/carbon/human/user, work_type) if(user.sanityhealth != user.maxSanity) agent_notfullsp = TRUE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/titania/FailureEffect(mob/living/carbon/human/user, work_type, pe) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm index ca8640e41584..d2abfe16a015 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm @@ -64,6 +64,14 @@ GLOBAL_LIST_EMPTY(apostles) "Why have you come?" = list(FALSE, "Thy question is empty, I cannot answer"), ) + work_start_lines = list("%PERSON, repented, enters the Containment Unit, following His divine light.", "\"What maketh thee hesitate? I work miracles here.\"") + early_work_lines = list("%ABNO looks like a fetus, but it seems as though He needs no nannying.", + "When the bell struck twelve, the facility was swallowed by a blinding light. It was the light of redemption for His disciples.") + middle_work_lines = list("Only silence fills the air around %ABNO.", "%ABNO absorbs all light and sound which surrounds Him.") + late_work_lines = list("%ABNO came here to redeem you and lead the new world.", "%ABNO arrived from the end of the world, and He walks towards the beginning of the new world.") + work_end_lines = list("\"%PERSON, why art thou in fear? I shall not leave thee until I have completed my mission.\"", + "\"%PERSON, be not frightened. I am thy savior and I shall be with thee.\"", "\"I heard thy cries. Thy heart reached me. %PERSON, thou hath called me.\"") + var/holy_revival_cooldown var/holy_revival_cooldown_base = 75 SECONDS var/holy_revival_damage = 80 // Pale damage, scales with distance diff --git a/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm b/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm index d79bbde43b8a..20130a64d771 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm @@ -70,7 +70,7 @@ else if(work_type == "Input Zero" || work_type == "Input Zero" && !isopen) to_chat(user, span_notice("You have not recieved an input.")) return FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/khz/PostWorkEffect(mob/living/carbon/human/user, work_type, pe) if(!isopen) //Can't input the first time diff --git a/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm b/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm index c9bbef8792d4..c4ea63544cbd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm @@ -156,7 +156,7 @@ /mob/living/simple_animal/hostile/abnormality/kqe/AttemptWork(mob/living/carbon/human/user, work_type) if((work_type != "Write HELLO") && (work_type != "Write GOODBYE") && (work_type != "Write DUMBASS") && !question) - return TRUE + return ..() if(((work_type == "Write HELLO") || (work_type == "Write GOODBYE") || (work_type == "Write DUMBASS")) && !question) to_chat(user, span_notice("The terminal is blank.")) return FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm b/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm index d70faec6f2f9..3c708888ed36 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm @@ -63,6 +63,18 @@ A kaledioscope of butterflies follows you as you leave the containment unit."), ) + work_start_lines = list("Having someone to mourn for you after your death is a blessing.", + "Those who remain have no time to remember those who've died, all they can do is prepare for the next death.", "%ABNO gazes upon %PERSON in still silence.") + early_work_lines = list("%ABNO dreams. The curtain draws down on the ideal born in vain, but it is without an accompanying conclusion.", + "The huge coffin isn't nearly enough to substitute the hundreds of undug graves.", "%PERSON witnesses the funeral procession of the butterflies.", + "The burdensome fluttering wings come closer in a familiar yet strange way.") + middle_work_lines = list("There are no flowers or trees in this place, so where do all these butterflies come from?", + "The employees cannot return to whence they came, and have no choice but to endlessly repeat the day.", "The funeral procession never ends; %PERSON continues to calmly mourn.", + "%PERSON thinks about the end of one's life.") + late_work_lines = list("Returning to whence one came in one piece is now a miracle that will never happen.", "Peaceful death in one's finest hour is an unexpected blessing.", + "In fact, most of the employees who've died here wanted to live as long as they could.") + work_end_lines = list("Some thought death would be a new beginning; however, there is nothing but the void after death.") + var/gun_cooldown var/gun_cooldown_time = 4 SECONDS var/gun_damage = 20 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm b/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm index dbbb02288de2..9806ee7b5c6c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm @@ -119,4 +119,4 @@ Strangle(user) return FALSE last_worker = user - return TRUE + return ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm b/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm index efec0c795ec1..732881fefee1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm @@ -99,7 +99,7 @@ icon_living = "pmermaid_laying" icon_state = "pmermaid_laying" workingflag = TRUE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/pisc_mermaid/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) if(status_flags & GODMODE) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm b/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm index e2e4f49d8411..8af1e4cdaf95 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm @@ -148,7 +148,7 @@ if(lying_timer) datum_reference.qliphoth_change(1) deltimer(lying_timer) - return TRUE + return ..() //makes buddy scarred if his suffering is high enough /mob/living/simple_animal/hostile/abnormality/red_buddy/proc/UpdateScars() diff --git a/code/modules/mob/living/simple_animal/abnormality/he/will_you_play.dm b/code/modules/mob/living/simple_animal/abnormality/he/will_you_play.dm index d95655dd6800..e11cc6b15f07 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/will_you_play.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/will_you_play.dm @@ -40,7 +40,7 @@ say("You again? Fine. We'll play again.") else say("I'll go fer scissors. How 'bout you?") - return TRUE + return ..() //Losing is good, Lose means the player loses the game diff --git a/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm b/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm index 4e4cb2ab4cec..a4411e0ec554 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm @@ -111,7 +111,7 @@ return FALSE if(!(work_type in list("YES", "NO")) && !question && ..()) icon_state = "you_strong_work" - return TRUE + return ..() if((work_type in list("YES", "NO")) && !question) to_chat(user, span_notice("You have not been prompted.")) return FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm b/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm index 455f375206cc..093951f5baf9 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm @@ -49,6 +49,11 @@ "Forget" = list(FALSE, "But you can't forget. Not until you've atoned."), ) + work_start_lines = list("%PERSON feels the ominous pressure of the Containment Unit.") + early_work_lines = list("%PERSON can sense the twinge of sadness and rage that looms over the entire Containment Unit.") + middle_work_lines = list("%PERSON can smell a fishy stench coming from somewhere.") + work_end_lines = list("%PERSON mistakenly thought there were sounds of people wailing from afar.") + var/reset_time = 4 MINUTES //Qliphoth resets after this time. To prevent bugs /mob/living/simple_animal/hostile/abnormality/mhz/WorkChance(mob/living/carbon/human/user, chance) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm b/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm index f64c26b35b3c..b152627e7491 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm @@ -51,7 +51,7 @@ work_damage_upper *= 2 work_damage_lower *= 1.5 climbing = TRUE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/beanstalk/proc/ResetWorkDamage() work_damage_upper = initial(work_damage_upper) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm b/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm index 7029ddf9df53..e04c7b6d21d8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm @@ -44,6 +44,10 @@ "Because I don't have a knife" = list(FALSE, "You are lying. You know you can pull out that knife out from your pocket whenever you want."), ) + work_start_lines = list("%ABNO forever searches for someone to lift the curse.", "%ABNO is so appalled by its grotesque appearance, it repeatedly tries to kill itself.") + middle_work_lines = list("However, the curse continues eternally, never broken.", "The curse has existed for centuries, inflicting agony upon many unfortunate victims.") + work_end_lines = list("Death is another form of joy brought by birth.") + var/injured = FALSE //it needs to use PostSpawn or we can't get the datum of beauty diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm b/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm index 688553be66f6..63e8da895988 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm @@ -49,6 +49,13 @@ "Did not grab a hand" = list(FALSE, "You looked away.
This is not the first time you ignore them.
It will be the same afterwards."), ) + work_start_lines = list("\"You know, after joining Lobotomy Corporation I really feel like I have my life back together.\"", "%PERSON can feel the sadness of %ABNO.", + "%PERSON's wrist aches when they look at %ABNO.") + middle_work_lines = list("\"Depression is a disease of the mind. We are the first doctors who discovered how to be happy.\"", "%PERSON stares at the despair which floats in the bath.", + "%PERSON senses overwhelming despair and sadness.") + work_end_lines = list("\"Medicine to heal the body has developed at such a tremendous rate, meanwhile treatments for the mind lie stagnant.\"", + "%PERSON can see upcoming hardship and failure.", "%PERSON can see upcoming hardship and many ordeals in the future. No matter what they do, it will only result in failure.") + var/hands = 0 var/can_act = TRUE var/special_attack_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm b/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm index f16cacd32a03..bcc609c06fc4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm @@ -38,6 +38,14 @@ "Dont't put it on" = list(FALSE, "The armor waits for another reckless one."), ) + work_start_lines = list("Cowardly employees sense something ominous about %ABNO.", "Alone with the armor, %PERSON feels the Abnormality’s piercing gaze upon them. \ + Of course, there is not a single living thing inside that armor.", "Rumor has it that passionate battle cries or shouts such as \"CHARGE!\" can be heard from the armor in the middle of the night.") + early_work_lines = list("Although it is slightly broken, this armor is in an unbelievably well-preserved state considering that it is an artifact forged hundreds of years ago.", + "Many past generals had possession of this armor. Nobody knows whether it was the war or the armor that took their lives.") + middle_work_lines = list("The right arm of the suit is broken. After a light investigation, the conclusion was that the damage stemmed from the inside, not externally", + "%ABNO was forged hundreds of years ago. The craftsman that created this armor remains unidentified, but at the very least it is certain that he hated cowards.") + work_end_lines = list("The armor still awaits those who are reckless, and those who have given up on life.") + var/buff_icon = 'ModularTegustation/Teguicons/tegu_effects.dmi' var/user_armored var/numbermarked diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm b/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm index 8f973dd9f9de..23fb97eaad06 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm @@ -74,7 +74,7 @@ say("Hey, I know I'm all for high stakes, but you've already put your life on the line once. I've got standards.") return FALSE else - return TRUE + return ..() //TODO: Add the revolver open sprite, replace gibbing with "death" sprite /mob/living/simple_animal/hostile/abnormality/dealerdamned/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm b/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm index 918feafa3c32..cb88a102508f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm @@ -106,7 +106,7 @@ /mob/living/simple_animal/hostile/abnormality/fairy_longlegs/AttemptWork(mob/living/carbon/human/user, work_type) if((work_type != "Take cover")&& !raining) - return TRUE + return ..() if((work_type == "Take cover") && !raining) //dumbass to_chat(user, span_notice("There's no reason, the skies are clear.")) return FALSE @@ -122,7 +122,7 @@ work_count = 0 ignored = TRUE raining = FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/fairy_longlegs/FailureEffect(mob/living/carbon/human/user, work_type, pe) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm b/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm index b409c616939e..466b0b85ee4b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm @@ -86,7 +86,7 @@ happy = TRUE else happy = FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/falada/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) liked = pick( diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm index 5cf46c043f08..0d71a9454658 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm @@ -90,6 +90,11 @@ "Cut the rope" = list(FALSE, "\"You think I'm pathetic, huh? But is you people who are really pathetic. Because you get killed. By people like me.\""), ) + work_start_lines = list("%ABNO stands like a statue in the corner of the Containment Unit.", "At times, %ABNO murmurs while shaking.", "%ABNO may scream from time to time, but as he’s tied up, there probably isn’t any need to worry.") + early_work_lines = list("%PERSON senses despair.", "%PERSON smells the unbearable odor of despair.") + middle_work_lines = list("Why is this place always so dark and cold?", "In the darkness, %ABNO’s brain slowly rotted.") + late_work_lines = list("Forsaken even by death, %ABNO shall remain confined here till the end of time.", "It was no longer rage, but a deeper and more twisted, maniacal abhorrence that found him.") + //Unique variable im defining for this abnormality. This is the timer for their during work emotes. var/work_emote_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm b/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm index 0a236d03aa43..70a0fba9062a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm @@ -49,6 +49,11 @@ "Plug your ears" = list(FALSE, "You are not prepared yet. The song stopped when you plugged the ears."), ) + work_start_lines = list("The moment we enter %ABNO’s universe, then we will finally understand the secrets of the universe.", + "%ABNO and other employees who went crazy look like they are calling for something with their song.") + middle_work_lines = list("%ABNO once told us, \"There are no coincidences in the universe.\"", "Employees shudder in fear when %ABNO tries to laugh.") + work_end_lines = list("Whatever their original purpose is, those tentacles inflict severe damage to human brain.", "%ABNO’s tentacles blur the line between human and alien dimension.") + var/song_cooldown var/song_cooldown_time = 10 SECONDS var/song_damage = 3 // Dealt 8 times diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm b/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm index 9f4eaa101445..e30ffbc0ac52 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm @@ -46,6 +46,10 @@ "Call for security" = list(FALSE, "Something so beautiful had no right to exist in the City. You called for security and left in a hurry back to your grey workplace."), ) + work_start_lines = list("%ABNO watches %PERSON with its mysteriously luminous organ protruding out of the ground.") + early_work_lines = list("Not a single employee has seen %ABNO’s full form.") + late_work_lines = list("If %ABNO completely gets out of its Containment Unit, our corporation may collapse.") + var/can_act = TRUE var/detect_range = 1 var/chop_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm b/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm index 5f838175b4a6..f5b55ec4fbd2 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm @@ -58,10 +58,10 @@ /mob/living/simple_animal/hostile/abnormality/old_lady/AttemptWork(mob/living/carbon/human/user, work_type) if(work_type == "Clear Solitude" && datum_reference.qliphoth_meter == 0) - return TRUE + return ..() else if(datum_reference.qliphoth_meter == 0 || work_type == "Clear Solitude") return FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/old_lady/PostWorkEffect(mob/living/carbon/human/user, work_type, pe) if(work_type == "Clear Solitude") diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm b/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm index cefde42ee203..2578a1ac8e81 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm @@ -46,7 +46,7 @@ //Prudence too high, random damage type time. if(get_attribute_level(user, PRUDENCE_ATTRIBUTE) >= 40) work_damage_type = pick(WHITE_DAMAGE, RED_DAMAGE, BLACK_DAMAGE, PALE_DAMAGE) - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/penitentgirl/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) // you are going to cut your own leg off diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm b/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm index 88b5dfba0394..e6138c26e9f9 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm @@ -119,7 +119,7 @@ /mob/living/simple_animal/hostile/abnormality/skin_prophet/AttemptWork(mob/living/carbon/human/user, work_type) ..() HandleCandles() - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/skin_prophet/WorkChance(mob/living/carbon/human/user, chance, work_type)//set the new work chances . = chance // Set default Return to chance diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm b/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm index 5e4fe3f0b121..707429e1b050 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm @@ -50,6 +50,12 @@ "Nothing" = list(FALSE, "Your imagination must be going haywire due to the stress.
There's no way such an out-of-place thing could be there!"), ) + work_start_lines = list("%ABNO is a training dummy who sincerely believes he’s an employee of our facility.") + early_work_lines = list("It seems %ABNO likes people.") + middle_work_lines = list("%ABNO circles around and around %PERSON, however %PERSON is completely absorbed in their work.") + late_work_lines = list("%ABNO is thinking about the center of the Earth.") + work_end_lines = list("%ABNO is very sad that %PERSON has to leave so soon. It seems that he wants to follow them.") + /mob/living/simple_animal/hostile/abnormality/training_rabbit/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() GiveTarget(user) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm b/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm index cd77b493838a..7ea734cb9bcd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm @@ -47,6 +47,11 @@ "Please, eat my dreams" = list(FALSE, "It's alright, dreams are harmless but unnecessary things.
So, just close your eyes and show me your most delectable dream..."), ) + work_start_lines = list("%ABNO is always asleep in the Containment Unit.") + early_work_lines = list("%ABNO's dream is sublime, showing everything.") + middle_work_lines = list("%ABNO grants sweet dreams to all; but in reality, this sweetness is unreachable and chips away at the hope of the dreamer.") + work_end_lines = list("\"I always wanted to sleep. I just want to have a happy dream.\"") + var/punched = FALSE var/pulse_damage = 15 var/ability_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm b/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm index 2c1c0036184b..99a3a8341e2f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm @@ -43,6 +43,13 @@ Gradually, my exipation was drawing to an end hectically."), ) + work_start_lines = list("The one who was born naked, shall return to the earth naked.", "%ABNO remembers the scorches inside.") + early_work_lines = list("Perchance we tried to make a human without a heart.", "Unwithering flowers violently blossom.") + middle_work_lines = list("%PERSON wants to hibernate cozily in a bed of flowers.", "%PERSON is deeply impressed by the lavender that suffuses the Containment Unit.") + late_work_lines = list("Once bloomed and withered, %ABNO realized the meaning of resurrection; wherever it may head, its traces will remain, and all lives will gather with %ABNO.", + "A refreshing scent gushes out of %PERSON instead of metallic blood as they fall asleep, covered in flowers.") + work_end_lines = list("A flower blooms in everyone’s heart.") + /// Currently displayed petals. When value is at 3 - reset to 0 and perform attack var/petals_current = 0 /// World time when petals_current will increase by 1 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm b/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm index 7c4c43a3932b..9a73ec7f7523 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm @@ -106,7 +106,7 @@ if(user.health != user.maxHealth) work_damage_upper = 8 work_damage_lower = 6 - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/apex_predator/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) if(user.health < 0) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm index c02873cc63b1..9cbde017a17e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm @@ -74,6 +74,20 @@ "Don't pet it" = list(FALSE, "The bird could get angry and bite you.
You ran out of the room in fear."), ) + work_start_lines = list("%ABNO’s most notable features are its numerous eyes that cover its whole body, and the bright lamp it carries.", + "In fact, we don’t know the reason behind why %ABNO was killing people.", + "%ABNO being unable to fly like most birds is a huge benefit. If it could, half of our staff would be headless by now.", + "An idea struck %ABNO’s mind: \"If I kill the creatures first, then no one would be killed by the beast!\" It was then that the forest found peace.") + early_work_lines = list("The ghastly sound of fluttering eyes and a flickering, burning lamp fills the Containment Unit.", + "The eyes and lamp of %ABNO light up the dark chamber like stars.", "Scores of %ABNO’s eyes suddenly direct themselves towards %PERSON.", + "Facing towards %ABNO, %PERSON shrinks away and shudders nervously.") + middle_work_lines = list("Behind %PERSON, the rumbling sound of a hairy black bird can be heard.}, {The sporadic squeals of a bird can be heard.}, {%ABNO cries behind %PERSON, acting as if it feels anxious.}, {%ABNO circles and roams around %PERSON, crying.") + late_work_lines = list("%PERSON turns their head away to avoid eye contact, and is met with a burning lamp.", + "A dazzlingly bright lamp is held in front of %PERSON, who turned away to avoid looking towards %ABNO.","%PERSON sees %ABNO holding its illuminating lamp.", + "It was a very good decision for %PERSON to face away from %ABNO.") + work_end_lines = list("%ABNO is walking towards %PERSON", "%ABNO is audibly grinding its teeth", + "%ABNO approaches %PERSON while making threatening noises.", "%ABNO's eyes are turning crimson.") + var/bite_cooldown var/bite_cooldown_time = 5 SECONDS var/can_act = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm b/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm index 7a6864588bd1..ed28bb077353 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm @@ -69,6 +69,18 @@ (The wolf seems unhappy)"), ) + work_start_lines = list("Hey, %PERSON. By any chance, is there a little chubby baby pig in this place? Oh, it’s nothing important. \ + He was my friend, I just want to see how he’s doing nowadays.", "Oh little %PERSON, will you open the door, please? I won’t hurt anyone, I swear it. I’m just a little bit hungry.", + "%PERSON, I’ll give you something good if you let me out!") + early_work_lines = list("%ABNO vividly remembers the moment when his belly was torn open and his guts spilled out.", + "%ABNO likes meat over anything else. He used to be always hungry, now he wants to be always full.") + middle_work_lines = list("%ABNO suffers from chronic indigestion. The origin of this problem of his goes back to the very, very far past...", + "According to reports from employees who have been inside %ABNO’s stomach, it is a dark, empty, lonely place.") + late_work_lines = list("What big teeth I have, all the better for eating with.", "\"I’ll huff, and I’ll puff, and I’ll blow this room away with one breath!\"", + "\"Open the door sweetheart, I’ve brought you a basket of gifts from the forest.\"") + work_end_lines = list("I am a big bad wolf, I’ll gobble you all up and get out of this place!", "%{PERSON, #0, I’m telling this secret only to you.\ + If you ever build a house, make it a sturdy brick house.") + var/can_act = TRUE //For when the wolf becomes incorporal and flees. var/last_reached_health = 75 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm b/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm index 0cef4caa249e..ee27cc78de43 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm @@ -70,6 +70,9 @@ They spread their wings and took flight to the sky, high above the fog, leaving the black swan behind. Elijah clutched her brooch tighter, she only had to work a little harder..."), ) + work_start_lines = list("%ABNO's brothers just blink; it's as if that's the only thing they can do inside the Containment Unit.") + middle_work_lines = list("When her brothers show any sign of pain, %ABNO will approach them, dragging her exhausted body.") + //family breach conditions var/insane_humans = 0 var/dead_humans = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm b/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm index 2be9f63e16ae..220ecef076c6 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm @@ -50,6 +50,12 @@ "I am no longer a monk" = list(TRUE, "A demon shall never reach Heaven."), ) + work_start_lines = list("%PERSON gazes at %ABNO, who sits peacefully in meditation.") + early_work_lines = list("%ABNO never stops practicing self-discipline, looking far into serenity and yearning to return to the way of righteousness he lost in his living years.") + middle_work_lines = list("%ABNO’s myriad anguish, which he once so tragically failed to control, fills the Containment Unit.") + late_work_lines = list("%ABNO is desperately holding the shattered pieces of a japamala in his hands.") + work_end_lines = list("What is this? That which I cannot gain through leaving, and that I leave by gaining.") + var/datum/looping_sound/cloudedmonk_ambience/soundloop var/charging = FALSE var/revving_charge = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm index ef0d7c31b504..0739602da459 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm @@ -56,6 +56,10 @@ "Fire an arrow" = list(FALSE, "You fire an arrow at what you percieve to be the source of the light and miss entirely.
You return empty-handed like so many hunters before you."), ) + work_start_lines = list("A legend of %ABNO says that once upon a time, those who came across its feather were granted with both blessing and ordeal.") + middle_work_lines = list("At times, %ABNO heals wounded employees.") + work_end_lines = list("%ABNO may become happy if the employees act as though they are hunting for it.") + var/pulse_cooldown var/pulse_cooldown_time = 1 SECONDS var/pulse_damage = 2 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm b/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm index 98f26e0d11be..d102a27dba17 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm @@ -123,7 +123,7 @@ if(breached) //You will have to start a new performance to delete the breached abno. killspawn = TRUE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/luna/proc/BreachEnd(mob/living/carbon/human/user) datum_reference.qliphoth_change(3) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm b/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm index 852d79ed6bd7..0dbc289a2f5f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm @@ -52,6 +52,13 @@ Defeating the murderer also surpresses the abnormality. "Shoot someone else" = list(TRUE, "Whether you shoot or not, the play ends with tragedy."), ) + work_start_lines = list("There is a book made of antique parchments.", "It is quite thick, but the book’s every single page is blank.", + "There is a book which seems like the cover is going to be torn if handled thoughtlessly.") + early_work_lines = list("Despite its old appearance, there are no dust on it as if it’s managed constantly.", "It seems it aged at least several decades, but it didn’t mold a bit.") + middle_work_lines = list("%PERSON is a person who often reads, but %PERSON feels that this is not the kind of book that should be read.", + "%PERSON doesn’t read books that often, but a strange urge compelled %PERSON to turn the pages.") + work_end_lines = list("%PERSON wondered if there was some hidden meaning to the scenario described by %ABNO.") + pet_bonus = "shuffles" //saves a few lines of code by allowing funpet() to be called by attack_hand() var/mob/living/simple_animal/hostile/aminion/actor/A var/happy = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm b/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm index 2bcd86f196e1..08304f03e896 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm @@ -128,7 +128,7 @@ else happy_works = 0 happy = FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/shrimp_exec/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) liked = pick(ABNORMALITY_WORK_INSTINCT, ABNORMALITY_WORK_INSIGHT, ABNORMALITY_WORK_ATTACHMENT) diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm index 895999bc4a46..498d1eeb44fe 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm @@ -49,6 +49,12 @@ "No" = list(FALSE, "Come back after watching the fast and the furious 7 five more times."), ) + work_start_lines = list("%PERSON is starting to feel that hair is just a burden.", "%PERSON is beginning to think that having a tattoo on a bald head would be super cool.", + "%PERSON is taking off their wig because they feel proud of their partial balding.") + middle_work_lines = list("You can look just like Bruce Willis if you’re bald!", "Somehow, bald people always look professional no matter what they’re doing!", + "If you’re bald, you never have to worry about clogging the drain!") + work_end_lines = list("So you still have your silky hair?") + var/bald_users = list() chem_type = /datum/reagent/abnormality/bald diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm index 525814ca5e2b..32a9c300e343 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm @@ -75,6 +75,11 @@ All that’s left is the sticky blue resin."), ) + work_start_lines = list("%ABNO is sitting languidly still and crying strange noises.") + early_work_lines = list("%ABNO protruding eyeballs were shifting around, making %PERSON feel uneasy.") + middle_work_lines = list ("%ABNO was sitting still, holding those patches of gloomy resin, covering bottom part of it's containment unit") + work_end_lines = list("As %PERSON was finishing their work, %ABNO fell silent for a moment, before returning to cavernous wailing.") + //work var/pulse_healing = 15 var/healing_pulse_amount = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm index 7dcaf8e82243..6fa1427ce618 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm @@ -76,7 +76,7 @@ if(work_type != "Dining" && work_type != "Drink") if(datum_reference.console.meltdown) cake_regen = TRUE - return TRUE + return ..() if(work_type == "Drink") //it's just work speed var/consume_speed = 2 SECONDS / (1 + ((get_attribute_level(user, TEMPERANCE_ATTRIBUTE) + datum_reference.understanding) / 100)) @@ -91,7 +91,7 @@ datum_reference.working = FALSE return null - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/bottle/update_icon_state() if(cake == 3) diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm index bc85e2dfc55f..b8f0e41576ca 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm @@ -67,6 +67,9 @@ You retreat from the cell and the fairies' hungry gazes.
You've always known the true meaning of The Fairies' Care."), ) + work_start_lines = list("If %PERSON can show that they are competent, then they may be able to draw %ABNO's attention.") + middle_work_lines = list("Most of the employees do not know the true meaning of \"The Fairies' Care\".") + /mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/FairyHeal() for(var/mob/living/carbon/human/P in protected_people) if(heal_cooldown <= world.time) diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm index d57b32b58135..c90df73bf78c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm @@ -39,9 +39,15 @@ Someday, someone made an offer to me. \"If you accept it, your whole world will change.\"
\ Such a tempting offer. I would become something that I could only hope to be." observation_choices = list( - "Accept the offer" = list(TRUE, "I accepted the offer and paid the price.
The $0 Hammer of Light shined.") + "Accept the offer" = list(TRUE, "I accepted the offer and paid the price.
The Hammer of Light shined.") ) + work_start_lines = list("There is a hammer, chained like a prisoner who haven’t seen sunlight for a long time.") + early_work_lines = list("The hammer and the chains are not separated. They are one abnormality.", "It seems safe, for it is chained.", + "Chains are binding the hammer tightly to make sure no one can lift it.") + middle_work_lines = list("%PERSON is curious about the chains binding $0.", "Employee %PERSON feels shame for working for the company while managing %ABNO.") + work_end_lines = list("%ABNO waits for the day to be free from these chains.") + pet_bonus = "hums" // saves a few lines of code by allowing funpet() to be called by attack_hand() var/sealed = TRUE var/hammer_present = TRUE @@ -201,7 +207,7 @@ // Item version /obj/item/ego_weapon/hammer_light name = "hammer of light" - desc = "The $0 \[Hammer of Light\] is such a simple abnormality. It takes as much it gave to you. What price will you pay to it?" + desc = "The \"Hammer of Light\" is such a simple abnormality. It takes as much it gave to you. What price did you pay to it?" special = "Use in hand to summon an army of spectral warriors to your location." icon_state = "hammer_light" lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm index 4867566da999..cd26427902c5 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm @@ -84,7 +84,7 @@ else to_chat(user, span_warning("The abnormality seems to be ignoring you... maybe try confessing.")) return FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/onesin/SpeedWorktickOverride(mob/living/carbon/human/user, work_speed, init_work_speed, work_type) //THE RIDE NEVER ENDS if(wn_work) diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm index 225ca0b36535..74e0b6de0d44 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm @@ -127,7 +127,7 @@ user.drowsyness += 30 user.Sleeping(30 SECONDS) // Won't get any info, but you can listen for any breaches for 30 seconds return FALSE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/oracle/proc/OnAbnoBreach(datum/source, mob/living/simple_animal/hostile/abnormality/abno) SIGNAL_HANDLER diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm index 2e0799be3cdc..7392b765b0b4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm @@ -89,7 +89,7 @@ /mob/living/simple_animal/hostile/abnormality/we_can_change_anything/AttemptWork(mob/living/carbon/human/user, work_type) if(work_type != "Enter machine") - return TRUE + return ..() if(total_energy >= 2000) // Cant just spam the work say("[total_energy] PE Boxes accumulated, processing energy, please stay on standby!") return FALSE @@ -98,7 +98,7 @@ StoreWorker(user) //Yoink. datum_reference.max_boxes = 100 //much longer than a normal work. sacrifice = TRUE - return TRUE + return ..() /mob/living/simple_animal/hostile/abnormality/we_can_change_anything/Worktick(mob/living/carbon/human/user) if(!sacrifice) diff --git a/icons/fonts/font.dm b/icons/fonts/font.dm index 042389a9166c..efaf806a474a 100644 --- a/icons/fonts/font.dm +++ b/icons/fonts/font.dm @@ -1,5 +1,5 @@ // Simple datum to have fonts loaded in // Hopefully one day I can make this a bit cleaner looking - Coxswain /datum/fonts -// Lobotomy Corporation Fonts : Baskerville, BM DoHyeon - var/list/lobotomyfonts = list('icons/fonts/baskvl.ttf', 'icons/fonts/BMDOHYEON.ttf', 'icons/fonts/bettervcr.ttf') +// Lobotomy Corporation Fonts : Baskerville, BM DoHyeon, Railway + var/list/lobotomyfonts = list('icons/fonts/baskvl.ttf', 'icons/fonts/BMDOHYEON.ttf', 'icons/fonts/bettervcr.ttf', 'icons/fonts/railway.ttf') diff --git a/icons/fonts/railway.ttf b/icons/fonts/railway.ttf new file mode 100644 index 000000000000..954187e1dfe5 Binary files /dev/null and b/icons/fonts/railway.ttf differ