mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
## Interface Science You know what the problem is with our features? They're all too easy, too optimized to use. Look at Genetics; we went from a confusing UI that a 14 year old hardcoded with html into byond to a polished UI using tgui, optimized for player comfort, and gameplay has suffered. Too long we have coddled players with fun and easy content, no more I say!!! To fix ss13, I have added a feature with the most awful, unusable UI ever. It's just wires with random sequences that may or may not do something. And yet, you will use it till your fingers bleed and your eyes go white, and you will be grateful. "Thank you coder daddy", you say as you sacrifice yourself to a display of unending, procedurally generated dogshit. <img width="563" height="294" alt="image" src="https://github.com/user-attachments/assets/e56c947f-a40c-4df9-beed-672812357576" /> Or maybe you're a sick little deviant, and you don't respect me. Instead of using my awful UI, you start optimizing. You've forced the secret pulse code, and you're not going to pulse them again and again. You make your own interface by connecting it with signallers, or integrated circuits. Ahhh, you beat me! Damn it, and you're gonna get away with it too. ## About the Pull Request Adds new job content to science. Science spawns with a few "gizmo" devices and can order more through cargo. These gizmo's have random functionalities, like the strange objects you can find in maintenance. These functionalities come with different settings to change how they operate. However, there are no buttons, just wires or a voice interface. You need to solve, for example, a wire puzzle. You just pulse the wires, and if you hear ping the sequence is good, if you hear buzz its bad. Just keep going till you hear a creak sound. If you do a sequence correctly, there are a bunch of randomly generated ways this interacts with the functionality, mimicking real life settings and interactions. Imagine a TV remote with randomized buttons, and you have to map them out again. Once you've mapped the sequences, you can make an interface. For simple ones, you can just make some signaller assemblies. For the best control, you could connect it with a bunch of integrated circuit signallers, and program sequences into an integrated circuit machine. Below is a short video of how the puzzle solving works. (I can't be arsed to figure out how to record tgui, here's a video I made with my phone. Also I had the sequences written down, which I STRONGLY recommend you do.) https://github.com/user-attachments/assets/93f79f0f-df14-4ff9-8096-f079ebae7e91 <details> <summary>Actual details</summary> I have hidden the details to make exploring the feature itself more fun. The whole thing was written to be convoluted, but intuitive. You should be able to hit it with a multitool, and figure out everything from there. It will take a bit to get the gist of it. Nonetheless, for review purposes I have written down the details here. If you're reading this for non-review purposes, you should know I have embedded an internet curse that will at some point in 2026 teleport you 2 meters in a random direction. Continue reading at your own discretion. The gizmo objects is usually generated with 1 or 2 'gizmodes'. 'Gizmodes' contains the fun-ctionality, and holds different operating modes (so dubbed 'gizpulse'). You can't directly select a gizpulse, but instead it generates a bunch of mode selections. For example, a function that toggles lights has two gizpulses: toggle_on and toggle_off. There are four different mode selects: Cycle mode: Adds signal to cycle to the next gizpulse, and to activate the current gizpulse Select mode: Adds a signal for selecting every gizpulse, and a signal to activate whatever the activate gizpulse is Direct activate mode: Adds a signal for selecting every gizpulse, and also immediately activates that gizpulse Cycle-active mode: Cycles to the next mode, and activates it (inconvenient but only has 1 signal to worry about) So a light gizmode with the randomly selected 'select mode' has three signals: select toggle_on, select toggle_off and trigger the currently selected gizpulse. Currently implemented gizmodes: - Lights: toggle on, toggle off - Move: start moving, stop moving - Food printer (its filled with the spongebob grey goop thing): print food (donut or burger) - Mood pulser (AOE): happy pulse, sad pulse, radiation pulse - Mopper: select different reagent, dump onto tile (1/2/3 range), make smoke cloud - Teleporter (5 to 15 tiles, random dir): Teleport self, teleport mobs in range 1, do both - Electric: charge from nearest cell (looks into objects and stuff), magically gain some charge, make lightning, make emp, charge nearby object, defibrillate in an area - Copier (makes fake copies of mobs and objects, visual copy only): scan objects, print objects, erase all copies - Sputter: dump oil and shake, throw self - Bad: explode, explode, explode harder, explode with fire, stab you, warning, make robot spider, breaks your bones, throws a grenade at you, radiation pulses - Some behind the scenes gizmodes (language toggle for voice interface, for example) The voice interface starts with wires, with signals to toggle the language or dump the code words. After that, you can talk to it using the code words similarly to the wire sequence to solve the rest of the gizmodes. </details> I've added two to every map, somewhere in or near the experimentor room. They may ocassionally spawn from a maintenance crate spawner <img width="611" height="331" alt="image" src="https://github.com/user-attachments/assets/3782700f-57d3-4591-9282-e0de590056e1" /> ## Why It's Good For The Game It's really difficult to have "experimentation" type features in the game. It all has to fit into 1h rounds, and people get used to it real quick. The experimentor and strange objects kinda try, but it's just one button and praying a bear doesnt spawn you explodes you. I don't claim to have solved this perfectly, but I think this is fun. You truly have to start experimenting, be systematic and write things down. If you figure out how something works, you can go to the next stage of making it more convenient to use. I think it's really fun to mess around with integrated circuits and USB's, and make, for example, a BCI controlled bluespace launchpad. So I lean into it! There's different settings to account for, and its up to you to make it usable! If you like integrated circuits, you'll love this (maybe). The gizmo functions are aimed at benefiting the station as a whole in some ways, to motivate people to make some fun systems for these to get maximum benefit! A mood pulser near a busy area will make everyone happier! (I do need to add more like these, I got distracted doing stupid shit.)
663 lines
19 KiB
Plaintext
663 lines
19 KiB
Plaintext
/datum/mood_event/handcuffed
|
|
description = "I guess my antics have finally caught up with me."
|
|
mood_change = -1
|
|
|
|
/datum/mood_event/broken_vow //Used for when mimes break their vow of silence
|
|
description = "I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow..."
|
|
mood_change = -4
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/on_fire
|
|
description = "I'M ON FIRE!!!"
|
|
mood_change = -12
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/suffocation
|
|
description = "CAN'T... BREATHE..."
|
|
mood_change = -12
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/burnt_thumb
|
|
description = "I shouldn't play with lighters..."
|
|
mood_change = -1
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/cold
|
|
description = "It's way too cold in here."
|
|
mood_change = -5
|
|
|
|
/datum/mood_event/hot
|
|
description = "It's getting hot in here."
|
|
mood_change = -5
|
|
|
|
/datum/mood_event/creampie
|
|
description = "I've been creamed. Tastes like pie flavor."
|
|
mood_change = -2
|
|
timeout = 3 MINUTES
|
|
event_flags = MOOD_EVENT_WHIMSY // if whimsical, no penalty
|
|
|
|
/datum/mood_event/inked
|
|
description = "I've been splashed with squid ink. Tastes like salt."
|
|
mood_change = -3
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/slipped
|
|
description = "I slipped. I should be more careful next time..."
|
|
mood_change = -2
|
|
timeout = 3 MINUTES
|
|
event_flags = MOOD_EVENT_WHIMSY // if whimsical, no penalty
|
|
|
|
/datum/mood_event/eye_stab
|
|
description = "I used to be an adventurer like you, until I took a screwdriver to the eye."
|
|
mood_change = -4
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/delam //SM delamination
|
|
description = "Those goddamn engineers can't do anything right..."
|
|
mood_change = -2
|
|
timeout = 4 MINUTES
|
|
|
|
/datum/mood_event/cascade // Big boi delamination
|
|
description = "I never thought I'd see a resonance cascade, let alone experience one..."
|
|
mood_change = -8
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/depression
|
|
description = "I feel sad for no particular reason."
|
|
mood_change = -12
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/shameful_suicide //suicide_acts that return SHAME, like sord
|
|
description = "I can't even end it all!"
|
|
mood_change = -15
|
|
timeout = 60 SECONDS
|
|
|
|
/datum/mood_event/dismembered
|
|
description = "AHH! MY LIMB! I WAS USING THAT!"
|
|
mood_change = -10
|
|
timeout = 8 MINUTES
|
|
|
|
/datum/mood_event/dismembered/add_effects(obj/item/bodypart/limb)
|
|
if(limb)
|
|
description = "AHH! MY [uppertext(limb.plaintext_zone)]! I WAS USING THAT!"
|
|
|
|
/datum/mood_event/reattachment
|
|
description = "Ouch! My limb feels like I fell asleep on it."
|
|
mood_change = -3
|
|
timeout = 2 MINUTES
|
|
event_flags = MOOD_EVENT_PAIN
|
|
|
|
/datum/mood_event/reattachment/add_effects(obj/item/bodypart/limb)
|
|
if(limb)
|
|
description = "Ouch! My [limb.plaintext_zone] feels like I fell asleep on it."
|
|
|
|
/datum/mood_event/tased
|
|
description = "There's no \"z\" in \"taser\". It's in the zap."
|
|
mood_change = -3
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/embedded
|
|
description = "Pull it out!"
|
|
mood_change = -7
|
|
|
|
/datum/mood_event/table
|
|
description = "Someone threw me on a table!"
|
|
mood_change = -2
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/table/add_effects()
|
|
if(isfelinid(owner)) //Holy snowflake batman!
|
|
var/mob/living/carbon/human/feline = owner
|
|
feline.wag_tail(3 SECONDS)
|
|
description = "They want to play on the table!"
|
|
mood_change = 2
|
|
|
|
/datum/mood_event/table_limbsmash
|
|
description = "That fucking table, man that hurts..."
|
|
mood_change = -3
|
|
timeout = 3 MINUTES
|
|
event_flags = MOOD_EVENT_PAIN
|
|
|
|
/datum/mood_event/table_limbsmash/add_effects(obj/item/bodypart/banged_limb)
|
|
if(banged_limb)
|
|
description = "My fucking [banged_limb.plaintext_zone], man that hurts..."
|
|
|
|
/datum/mood_event/brain_damage
|
|
mood_change = -3
|
|
|
|
/datum/mood_event/brain_damage/add_effects()
|
|
var/damage_message = pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")
|
|
description = "Hurr durr... [damage_message]"
|
|
|
|
/datum/mood_event/hulk //Entire duration of having the hulk mutation
|
|
description = "HULK SMASH!"
|
|
mood_change = -4
|
|
|
|
/datum/mood_event/epilepsy //Only when the mutation causes a seizure
|
|
description = "I should have paid attention to the epilepsy warning."
|
|
mood_change = -3
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/photophobia
|
|
description = "The lights are too bright..."
|
|
mood_change = -3
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/nyctophobia
|
|
description = "It sure is dark around here..."
|
|
mood_change = -3
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/claustrophobia
|
|
description = "Why do I feel trapped?! Let me out!!!"
|
|
mood_change = -7
|
|
timeout = 1 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/bright_light
|
|
description = "I hate it in the light... I need to find a darker place..."
|
|
mood_change = -12
|
|
|
|
/datum/mood_event/family_heirloom_missing
|
|
description = "I'm missing my family heirloom..."
|
|
mood_change = -4
|
|
|
|
/datum/mood_event/healsbadman
|
|
description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!"
|
|
mood_change = -4
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/healsbadman/long_term
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/jittery
|
|
description = "I'm nervous and on edge and I can't stand still!!"
|
|
mood_change = -2
|
|
|
|
/datum/mood_event/jittery/add_effects(...)
|
|
if(HAS_PERSONALITY(owner, /datum/personality/paranoid))
|
|
mood_change -= 1
|
|
|
|
/datum/mood_event/choke
|
|
description = "I CAN'T BREATHE!!!"
|
|
mood_change = -10
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/vomit
|
|
description = "I just threw up. Gross."
|
|
mood_change = -2
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/vomitself
|
|
description = "I just threw up all over myself. This is disgusting."
|
|
mood_change = -4
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/painful_medicine
|
|
description = "Medicine may be good for me but right now it stings like hell."
|
|
mood_change = -5
|
|
timeout = 60 SECONDS
|
|
event_flags = MOOD_EVENT_PAIN
|
|
|
|
/datum/mood_event/startled
|
|
description = "Hearing that word made me think about something scary."
|
|
mood_change = -1
|
|
timeout = 1 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/phobia
|
|
description = "I saw something very frightening!"
|
|
mood_change = -4
|
|
timeout = 4 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/spooked
|
|
description = "The rattling of those bones... It still haunts me."
|
|
mood_change = -4
|
|
timeout = 4 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/notcreeping
|
|
description = "The voices are not happy, and they painfully contort my thoughts into getting back on task."
|
|
mood_change = -6
|
|
timeout = 3 SECONDS
|
|
hidden = TRUE
|
|
|
|
/datum/mood_event/notcreepingsevere//not hidden since it's so severe
|
|
description = "THEY NEEEEEEED OBSESSIONNNN!!"
|
|
mood_change = -30
|
|
timeout = 3 SECONDS
|
|
|
|
/datum/mood_event/notcreepingsevere/add_effects(name)
|
|
var/list/unstable = list(name)
|
|
for(var/i in 1 to rand(3,5))
|
|
unstable += copytext_char(name, -1)
|
|
var/unhinged = uppertext(unstable.Join(""))//example Tinea Luxor > TINEA LUXORRRR (with randomness in how long that slur is)
|
|
description = "THEY NEEEEEEED [unhinged]!!"
|
|
|
|
/datum/mood_event/tower_of_babel
|
|
description = "My ability to communicate is an incoherent babel..."
|
|
mood_change = -1
|
|
timeout = 15 SECONDS
|
|
|
|
/datum/mood_event/back_pain
|
|
description = "Bags never sit right on my back, this hurts like hell!"
|
|
mood_change = -15
|
|
event_flags = MOOD_EVENT_PAIN
|
|
|
|
/datum/mood_event/sacrifice_bad
|
|
description = "Those darn savages!"
|
|
mood_change = -5
|
|
timeout = 2 MINUTES
|
|
event_flags = MOOD_EVENT_SPIRITUAL
|
|
|
|
/datum/mood_event/artbad
|
|
description = "I've produced better art than that from my ass."
|
|
mood_change = -2
|
|
timeout = 2 MINUTES
|
|
event_flags = MOOD_EVENT_ART
|
|
|
|
/datum/mood_event/artbad/add_effects()
|
|
if(HAS_PERSONALITY(owner, /datum/personality/creative))
|
|
mood_change = 0
|
|
description = "Everyone has to start their art journey somewhere!"
|
|
|
|
/datum/mood_event/graverobbing
|
|
description = "I just desecrated someone's grave... I can't believe I did that..."
|
|
mood_change = -8
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/deaths_door
|
|
description = "This is it... I'm really going to die."
|
|
mood_change = -20
|
|
|
|
/datum/mood_event/gunpoint
|
|
description = "This guy is insane! I better be careful..."
|
|
mood_change = -10
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/tripped
|
|
description = "I can't believe I fell for the oldest trick in the book!"
|
|
mood_change = -5
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/untied
|
|
description = "I hate when my shoes come untied!"
|
|
mood_change = -3
|
|
timeout = 60 SECONDS
|
|
|
|
/datum/mood_event/gates_of_mansus
|
|
description = "I HAD A GLIMPSE OF THE HORROR BEYOND THIS WORLD. REALITY UNCOILED BEFORE MY EYES!"
|
|
mood_change = -25
|
|
timeout = 4 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/high_five_full_hand
|
|
description = "Oh god, I don't even know how to high-five correctly..."
|
|
mood_change = -1
|
|
timeout = 45 SECONDS
|
|
|
|
/datum/mood_event/too_slow
|
|
description = "NO! HOW COULD I BE... TOO SLOW???"
|
|
mood_change = -2 // multiplied by how many people saw it happen, up to 8, so potentially massive. the ULTIMATE prank carries a lot of weight
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/too_slow/add_effects(param)
|
|
var/people_laughing_at_you = 1 // start with 1 in case they're on the same tile or something
|
|
for(var/mob/living/carbon/iter_carbon in oview(owner, 7))
|
|
if(iter_carbon.stat == CONSCIOUS)
|
|
people_laughing_at_you++
|
|
if(people_laughing_at_you > 7)
|
|
break
|
|
|
|
mood_change *= people_laughing_at_you
|
|
return ..()
|
|
|
|
/datum/mood_event/surgery
|
|
description = "THEY'RE CUTTING ME OPEN!!"
|
|
mood_change = -8
|
|
event_flags = MOOD_EVENT_FEAR
|
|
var/surgery_completed = FALSE
|
|
|
|
/datum/mood_event/surgery/success
|
|
description = "That surgery really hurt... Glad it worked, I guess..."
|
|
timeout = 3 MINUTES
|
|
surgery_completed = TRUE
|
|
|
|
/datum/mood_event/surgery/failure
|
|
description = "AHHHHHGH! THEY FILLETED ME ALIVE!"
|
|
timeout = 10 MINUTES
|
|
surgery_completed = TRUE
|
|
|
|
/datum/mood_event/bald
|
|
description = "I need something to cover my head..."
|
|
mood_change = -3
|
|
|
|
/datum/mood_event/bald_reminder
|
|
description = "I was reminded that I can't grow my hair back at all! This is awful!"
|
|
mood_change = -5
|
|
timeout = 4 MINUTES
|
|
|
|
/datum/mood_event/bad_touch
|
|
description = "I don't like when people touch me."
|
|
mood_change = -3
|
|
timeout = 4 MINUTES
|
|
|
|
/datum/mood_event/very_bad_touch
|
|
description = "I really don't like when people touch me."
|
|
mood_change = -5
|
|
timeout = 4 MINUTES
|
|
|
|
/datum/mood_event/noogie
|
|
description = "Ow! This is like space high school all over again..."
|
|
mood_change = -2
|
|
timeout = 60 SECONDS
|
|
|
|
/datum/mood_event/noogie_harsh
|
|
description = "OW!! That was even worse than a regular noogie!"
|
|
mood_change = -4
|
|
timeout = 60 SECONDS
|
|
|
|
/datum/mood_event/aquarium_negative
|
|
description = "All the fish are dead..."
|
|
mood_change = -3
|
|
timeout = 90 SECONDS
|
|
|
|
/datum/mood_event/tail_lost
|
|
description = "My tail!! Why?!"
|
|
mood_change = -8
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/tail_balance_lost
|
|
description = "I feel off-balance without my tail."
|
|
mood_change = -2
|
|
|
|
/datum/mood_event/tail_regained_wrong
|
|
description = "Is this some kind of sick joke?! This is NOT the right tail."
|
|
mood_change = -12 // -8 for tail still missing + -4 bonus for being frakenstein's monster
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/tail_regained_species
|
|
description = "This tail is not mine, but at least it balances me out..."
|
|
mood_change = -5
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/tail_regained_right
|
|
description = "My tail is back, but that was traumatic..."
|
|
mood_change = -2
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/burnt_wings
|
|
description = "MY PRECIOUS WINGS!!"
|
|
mood_change = -10
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/holy_smite //punished
|
|
description = "I have been punished by my deity!"
|
|
mood_change = -5
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/banished //when the chaplain is sus! (and gets forcably de-holy'd)
|
|
description = "I have been excommunicated!"
|
|
mood_change = -10
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/heresy
|
|
description = "I can hardly breathe with all this HERESY going on!"
|
|
mood_change = -5
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/soda_spill
|
|
description = "Cool! That's fine, I wanted to wear that soda, not drink it..."
|
|
mood_change = -2
|
|
timeout = 1 MINUTES
|
|
|
|
/datum/mood_event/watersprayed
|
|
description = "I hate being sprayed with water!"
|
|
mood_change = -1
|
|
timeout = 30 SECONDS
|
|
|
|
/datum/mood_event/gamer_withdrawal
|
|
description = "I wish I was gaming right now..."
|
|
mood_change = -5
|
|
event_flags = MOOD_EVENT_GAMING
|
|
|
|
/datum/mood_event/gamer_lost
|
|
description = "If I'm not good at video games, can I truly call myself a gamer?"
|
|
mood_change = -6
|
|
timeout = 10 MINUTES
|
|
event_flags = MOOD_EVENT_GAMING
|
|
|
|
/datum/mood_event/lost_52_card_pickup
|
|
description = "This is really embarrassing! I'm ashamed to pick up all these cards off the floor..."
|
|
mood_change = -3
|
|
timeout = 3 MINUTES
|
|
event_flags = MOOD_EVENT_WHIMSY | MOOD_EVENT_GAMING
|
|
|
|
/datum/mood_event/russian_roulette_lose_cheater
|
|
description = "I gambled and lost! Good thing I wasn't aiming for my head..."
|
|
mood_change = -10
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/russian_roulette_lose
|
|
description = "I gambled my life and lost! I guess this is the end..."
|
|
mood_change = -20
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/russian_roulette_lose/add_effects()
|
|
if(HAS_PERSONALITY(owner, /datum/personality/gambler))
|
|
mood_change *= 0.5
|
|
description = "I gambled my life and lost! Truth is, the game was rigged from the start..."
|
|
return
|
|
|
|
/datum/mood_event/bad_touch_bear_hug
|
|
description = "I just got squeezed way too hard."
|
|
mood_change = -1
|
|
timeout = 2 MINUTES
|
|
|
|
/datum/mood_event/rippedtail
|
|
description = "I ripped their tail right off, what have I done!"
|
|
mood_change = -5
|
|
timeout = 30 SECONDS
|
|
|
|
/datum/mood_event/sabrage_fail
|
|
description = "Blast it! That stunt didn't go as planned!"
|
|
mood_change = -2
|
|
timeout = 4 MINUTES
|
|
|
|
/datum/mood_event/body_purist
|
|
description = "I feel cybernetics attached to me, and I HATE IT!"
|
|
|
|
/datum/mood_event/body_purist/add_effects(power)
|
|
mood_change = power
|
|
|
|
/datum/mood_event/unsatisfied_nomad
|
|
description = "I've been here too long! I want to go out and explore space!"
|
|
mood_change = -3
|
|
|
|
/datum/mood_event/moon_insanity
|
|
description = "THE MOON JUDGES AND FINDS ME WANTING!!!"
|
|
mood_change = -3
|
|
timeout = 5 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/moon_insanity/add_effects()
|
|
if(HAS_PERSONALITY(owner, /datum/personality/spiritual))
|
|
mood_change *= 2
|
|
|
|
/datum/mood_event/amulet_insanity
|
|
description = "I sEe THe LiGHt, It mUsT BE stOPPed!"
|
|
mood_change = -6
|
|
timeout = 5 MINUTES
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/mallet_humiliation
|
|
description = "Getting hit by such a stupid weapon feels rather humiliating..."
|
|
mood_change = -3
|
|
timeout = 10 SECONDS
|
|
|
|
///Wizard cheesy grand finale - what everyone but the wizard gets
|
|
/datum/mood_event/madness_despair
|
|
description = "UNWORTHY, UNWORTHY, UNWORTHY!!!"
|
|
mood_change = -200
|
|
special_screen_obj = "mood_despair"
|
|
|
|
/datum/mood_event/all_nighter
|
|
description = "I didn't sleep at all last night. I'm exhausted."
|
|
mood_change = -5
|
|
|
|
//Used by the Veteran Advisor trait job
|
|
/datum/mood_event/desentized
|
|
description = "Nothing will ever rival what I've seen in the past..."
|
|
mood_change = -3
|
|
special_screen_obj = "mood_desentized"
|
|
|
|
//Used for the psychotic brawling martial art, if the person is a pacifist.
|
|
/datum/mood_event/pacifism_bypassed
|
|
description = "I DIDN'T MEAN TO HURT THEM!"
|
|
mood_change = -20
|
|
timeout = 10 MINUTES
|
|
|
|
//Gained when you're hit over the head with wrapping paper or cardboard roll
|
|
/datum/mood_event/bapped
|
|
description = "Ow.. my head, I feel a bit foolish now!"
|
|
mood_change = -1
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/bapped/add_effects()
|
|
// Felinids apparently hate being hit over the head with cardboard
|
|
if(isfelinid(owner))
|
|
mood_change = -2
|
|
|
|
/datum/mood_event/encountered_evil
|
|
description = "I didn't want to believe it, but there are people out there that are genuinely evil."
|
|
mood_change = -1
|
|
timeout = 1 MINUTES
|
|
|
|
/datum/mood_event/smoke_in_face
|
|
description = "Cigarette smoke is disgusting."
|
|
mood_change = -3
|
|
timeout = 30 SECONDS
|
|
|
|
/datum/mood_event/smoke_in_face/add_effects(param)
|
|
if(HAS_TRAIT(owner, TRAIT_ANOSMIA))
|
|
description = "Cigarette smoke is unpleasant."
|
|
mood_change = -1
|
|
if(HAS_TRAIT(owner, TRAIT_SMOKER))
|
|
description = "Blowing smoke in my face, really?"
|
|
mood_change = 0
|
|
|
|
/datum/mood_event/slots/loss
|
|
description = "Aww dang it!"
|
|
mood_change = -2
|
|
timeout = 5 MINUTES
|
|
event_flags = MOOD_EVENT_GAMING
|
|
|
|
/datum/mood_event/slots/loss/add_effects()
|
|
if(HAS_PERSONALITY(owner, /datum/personality/gambler))
|
|
mood_change = 0
|
|
description = "Aww dang it."
|
|
if(HAS_PERSONALITY(owner, /datum/personality/industrious) || HAS_PERSONALITY(owner, /datum/personality/slacking/diligent))
|
|
mood_change *= 1.5
|
|
|
|
/datum/mood_event/lost_control_of_life
|
|
description = "I've lost control of my life."
|
|
mood_change = -5
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/empathetic_sad
|
|
description = "Seeing sad people makes me sad."
|
|
mood_change = -2
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/misanthropic_sad
|
|
description = "Seeing happy people makes me uneasy."
|
|
mood_change = -2
|
|
timeout = 3 MINUTES
|
|
|
|
/datum/mood_event/paranoid/one_on_one
|
|
description = "I'm alone with someone - what if they want to kill me?"
|
|
mood_change = -3
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/paranoid/large_group
|
|
description = "There are so many people around - any one of them could be out to get me!"
|
|
mood_change = -3
|
|
event_flags = MOOD_EVENT_FEAR
|
|
|
|
/datum/mood_event/nt_disillusioned
|
|
description = "I hate the company, and everything it stands for."
|
|
mood_change = -2
|
|
|
|
/datum/mood_event/disillusioned_revs_lost
|
|
description = "The revolution was defeated... greaaaat."
|
|
mood_change = -2
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/loyalist_revs_win
|
|
description = "The revolution was a success... This will hurt quarterly profits."
|
|
mood_change = -2
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/slacking_off_diligent
|
|
description = "I should get back to work."
|
|
mood_change = -1
|
|
|
|
/datum/mood_event/unimaginative_patronage
|
|
description = "That felt like a waste of money."
|
|
mood_change = -2
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/unimaginative_framing
|
|
description = "I could've hung something more useful there."
|
|
mood_change = -2
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/unimaginative_sculpting
|
|
description = "That felt like a waste of materials."
|
|
mood_change = -2
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/splattered_with_blood
|
|
description = "Eugh, I just got coated in blood!"
|
|
mood_change = -4
|
|
timeout = 4 MINUTES
|
|
|
|
/datum/mood_event/splattered_with_blood/can_effect_mob(datum/mood/home, mob/living/who, ...)
|
|
if(isvampire(who))
|
|
return FALSE
|
|
|
|
return ..()
|
|
|
|
/datum/mood_event/splattered_with_blood/add_effects(...)
|
|
if(HAS_TRAIT(owner, TRAIT_CULT_HALO))
|
|
mood_change = 2
|
|
description = "Blood, blood! The Geometer will be pleased."
|
|
return
|
|
if(HAS_TRAIT(owner, TRAIT_MORBID) || HAS_TRAIT(owner, TRAIT_EVIL))
|
|
mood_change = 0
|
|
description = "I just got coated in blood. Fascinating!"
|
|
return
|
|
if(IS_DESENSITIZED(owner))
|
|
mood_change *= 0.5
|
|
|
|
/datum/mood_event/teetotal_hangover
|
|
description = "What a disgraceful display! This is what happens when one indulges in alcohol!"
|
|
mood_change = -4
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/normal_hangover
|
|
description = "Ugh, what a night."
|
|
mood_change = 0
|
|
timeout = 10 MINUTES
|
|
|
|
/datum/mood_event/jabbed_with_tester
|
|
description = "Man, getting jabbed with that thing really sucked."
|
|
mood_change = -4
|
|
timeout = 5 MINUTES
|
|
|
|
/datum/mood_event/gizmo_negative
|
|
description = "I hear a voice whispering, and I don't like what it says."
|
|
mood_change = -3
|
|
timeout = 30 SECONDS
|