Files
Bubberstation/code/datums/memory/general_memories.dm
Waterpig bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00

997 lines
34 KiB
Plaintext

/// A doctor successfuly completed a surgery on someone.
/datum/memory/surgery
story_value = STORY_VALUE_OKAY
// Protagonist - The surgeon, completing the surgery
// Deuteragonist - The mob being operated on
/// What type of surgery it was
var/surgery_type
/datum/memory/surgery/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
surgery_type,
)
src.surgery_type = surgery_type
return ..()
/datum/memory/surgery/get_names()
return list("The [surgery_type] of [deuteragonist_name] by [protagonist_name].")
/datum/memory/surgery/get_starts()
return list(
"[protagonist_name] carefully performing [surgery_type] on [deuteragonist_name]",
"[protagonist_name] using a bone saw on [deuteragonist_name]",
"[deuteragonist_name] being operated on by [protagonist_name]",
)
/datum/memory/surgery/get_moods()
return list(
"[protagonist_name] [mood_verb] after finishing [surgery_type].",
"[protagonist_name] [mood_verb] as a blood splatter lands on [protagonist_name]'s face.",
"[protagonist_name] [mood_verb] as the [surgery_type] continues.",
"[protagonist_name] [mood_verb] as they pick apart [deuteragonist_name].",
"[protagonist_name] [mood_verb] as they tear into [deuteragonist_name].",
)
/// Planted a bomb.
/datum/memory/bomb_planted
story_value = STORY_VALUE_MEH
// Protagonist - Whoever armed the bomb
// Antaognist - The bomb that was armed
/datum/memory/bomb_planted/get_names()
return list("The arming of [antagonist_name] by [protagonist_name].")
/datum/memory/bomb_planted/get_starts()
return list(
"[protagonist_name] pressing an ominous button, causing [antagonist_name] to begin beeping",
"[protagonist_name] slapping down [antagonist_name]",
"[antagonist_name] being armed by [protagonist_name]",
)
/datum/memory/bomb_planted/get_moods()
return list(
"[protagonist_name] [mood_verb] and begins to walk away from it.",
"[protagonist_name] [mood_verb] as it begins to tick.",
"[protagonist_name] [mood_verb] with it winding down.",
"beep... beep... [protagonist_name] [mood_verb]."
)
/datum/memory/bomb_planted/get_happy_moods()
return list("feels too cool to look at [antagonist_name]")
/// Planted a SYNDICATE bomb.
/datum/memory/bomb_planted/syndicate
story_value = STORY_VALUE_AMAZING
/// Planted a NUKE!
/datum/memory/bomb_planted/nuke
story_value = STORY_VALUE_LEGENDARY
/// Got a sweet high five.
/datum/memory/high_five
story_value = STORY_VALUE_MEH
// Protagonist - One of the high-fivers
// Deuteragonist - The other high fiver
/// What type of high five it was - A "high five" or a "high ten"
var/high_five_type
/datum/memory/high_five/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
high_five_type,
high_ten = FALSE,
)
src.high_five_type = high_five_type
src.story_value = high_ten ? STORY_VALUE_OKAY : STORY_VALUE_MEH
return ..()
/datum/memory/high_five/get_names()
return list("The [high_five_type] between [protagonist_name] and [deuteragonist_name].")
/datum/memory/high_five/get_starts()
return list(
"[protagonist_name] and [deuteragonist_name] having a a legendary [high_five_type]",
"[protagonist_name] giving [deuteragonist_name] a [high_five_type]",
"[protagonist_name] and [deuteragonist_name] giving each other a [high_five_type]",
)
/datum/memory/high_five/get_moods()
return list(
"[protagonist_name] [mood_verb] as the [high_five_type] connects.",
"[protagonist_name] [mood_verb] at all the compatriotism going on.",
"What a [high_five_type]! [protagonist_name] [mood_verb].",
"Wow! [protagonist_name] [mood_verb]!",
)
/// Was cyborgized.
/datum/memory/was_cyborged
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_FLAG_NOMOOD|MEMORY_SKIP_UNCONSCIOUS
// Protagonist - The mind of who was just cyborgized
/datum/memory/was_cyborged/get_names()
return list("The borging of [protagonist_name].")
/datum/memory/was_cyborged/get_starts()
return list(
"[protagonist_name] having their brain put into a robot",
"[protagonist_name] getting turned into a bucket of bolts",
)
/// Witnessed someone die nearby.
/datum/memory/witnessed_death
story_value = STORY_VALUE_MEH // this is pretty common on this hellhole
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_CHECK_DEAFNESS|MEMORY_FLAG_NOMOOD
// Protagonist - Who died
/datum/memory/witnessed_death/get_names()
return list("The death of [protagonist_name].")
/datum/memory/witnessed_death/get_starts()
return list(
"[protagonist_name] having perished",
"[protagonist_name] seizing up and falling limp, their eyes appearing dead and lifeless",
"[protagonist_name]'s heart stopping",
"the death of [protagonist_name]",
)
/// Witnessed someone get creampied nearby.
/datum/memory/witnessed_creampie
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - The mob that got pied
/datum/memory/witnessed_creampie/get_names()
return list("The creaming of [protagonist_name].")
/datum/memory/witnessed_creampie/get_starts()
return list(
"[protagonist_name]'s face being covered in cream",
"[protagonist_name] getting cream-pied",
)
/datum/memory/witnessed_creampie/get_moods()
return list(
"[protagonist_name] [mood_verb] as the cream drips off their face",
"[protagonist_name] [mood_verb] because of their now expanded laundry task.",
"[protagonist_name] [mood_verb] as they lick off some of the pie",
)
/// Witnessed someone get splashed with squid ink.
/datum/memory/witnessed_inking
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - The mob that got pied
/datum/memory/witnessed_inking/get_names()
return list("The inking of [protagonist_name].")
/datum/memory/witnessed_inking/get_starts()
return list(
"[protagonist_name]'s face being covered in squid ink",
"[protagonist_name] getting squid-inked",
)
/datum/memory/witnessed_inking/get_moods()
return list(
"[protagonist_name] [mood_verb] as ink drips off their face",
"[protagonist_name] [mood_verb] because of their now expanded laundry task.",
"[protagonist_name] [mood_verb] as they wipe the ink off their face.",
)
/// Got slipped by something.
/datum/memory/was_slipped
story_value = STORY_VALUE_MEH
// Protagonist - The mob that got slipped
// Antagonist - The thing that did the slipping (banana peel, etc)
/datum/memory/was_slipped/get_names()
return list("The slipping of [protagonist_name].")
/datum/memory/was_slipped/get_starts()
return list(
"[protagonist_name] not being able to keep standing when faced with [antagonist_name]",
"[protagonist_name] tumbling right over [antagonist_name]",
"[antagonist_name] which took [protagonist_name] down a notch",
)
/datum/memory/was_slipped/get_moods()
return list(
"[protagonist_name] [mood_verb] as they crawl up from the ground.",
"[protagonist_name] [mood_verb] while on the ground.",
)
/datum/memory/was_slipped/get_sad_moods()
return list("doesn't even want to get up and looks depressed")
/datum/memory/was_slipped/build_story_character(character)
// We can slip on turfs, so we should account for it
if(isturf(character))
var/turf/place = character
return "the [prob(50) ? "perilous " : ""][pick("wet", "lubed", "slippery", "cold")] [place.name]"
return ..()
/// Had spaghetti fall from their pockets.
/datum/memory/lost_spaghetti
story_value = STORY_VALUE_AMAZING // This doesn't happen very often
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - The mob losing their spaghet
/datum/memory/lost_spaghetti/get_names()
return list("[protagonist_name]'s spaghetti blunder.")
/datum/memory/lost_spaghetti/get_starts()
return list(
"[protagonist_name]'s spaghetti pouring out of their pockets",
"[protagonist_name]'s pockets not being able to contain their spaghetti",
)
/datum/memory/lost_spaghetti/get_moods()
return list(
"[protagonist_name] [mood_verb] as the spaghetti poured out.",
"[protagonist_name] [mood_verb] as they try to pick up the scraps.",
)
/// Got kissed! AHHHHH!
/datum/memory/kissed
story_value = STORY_VALUE_MEH
// Sorry but blind people can't feel kisses...
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - The mob being kissed
// Deuteragonist - The mob doing the kissing
/datum/memory/kissed/get_names()
return list("the kiss blown to [protagonist_name]")
/datum/memory/kissed/get_starts()
return list(
"[protagonist_name]'s receiving a blown kiss from [deuteragonist_name]",
"[deuteragonist_name] blowing a kiss to [protagonist_name]",
)
/datum/memory/kissed/get_moods()
return list(
"[protagonist_name] [mood_verb] as the kiss lands on their cheek.",
"[protagonist_name] [mood_verb] as it happen.",
)
/// Had some good food.
/datum/memory/good_food
story_value = STORY_VALUE_MEH
// Protagonist - The mob consuming the food
/// The name of the food item being consumed
var/food
/datum/memory/good_food/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
obj/item/food,
)
src.food = food.name
return ..()
/datum/memory/good_food/get_names()
return list("A delicious [food] [protagonist_name] ate")
/datum/memory/good_food/get_starts()
return list(
"[food] changing [protagonist_name]'s outlook on food",
"[food] is leaving [protagonist_name] round and full",
"[food] leaving a long lasting impression on [protagonist_name]",
"[protagonist_name] enjoying an incredibly good [food]",
"[protagonist_name] producing a slice of life anime reaction to eating [food]",
)
/datum/memory/good_food/get_moods()
return list("[protagonist_name] [mood_verb] as they take another bite.")
/// Had a good drink.
/datum/memory/good_drink
story_value = STORY_VALUE_MEH
// Protagonist - The mob consuming the drink
/// The name of the nice drink reagent
var/drink
/datum/memory/good_drink/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
datum/reagent/drink,
)
src.drink = drink.name
return ..()
/datum/memory/good_drink/get_names()
return list("a delicious [drink] [protagonist_name] consumed")
/datum/memory/good_drink/get_starts()
return list(
"[drink] changing [protagonist_name]'s outlook on classy drinking",
"[drink] leaving a long lasting impression on [protagonist_name]",
"[protagonist_name] enjoying an incredibly good [drink]",
"[protagonist_name] slurping some tasty [drink]",
)
/datum/memory/good_drink/get_moods()
return list("[protagonist_name] [mood_verb] as they take another sip.")
/// Was set on fire and started to burn.
/datum/memory/was_burning
story_value = STORY_VALUE_MEH
// Protagonist - The mob burning
/datum/memory/was_burning/get_names()
return list("The burning of [protagonist_name].")
/datum/memory/was_burning/get_starts()
return list(
"[protagonist_name] bursting into flames",
"[protagonist_name] turning into a human torch",
"the fire that engulfed [protagonist_name]",
)
/datum/memory/was_burning/get_moods()
return list("[protagonist_name] [mood_verb] as their skin melts.")
/// Got a limb removed by force.
/datum/memory/was_dismembered
story_value = STORY_VALUE_AMAZING
// Protagonist - The mob who lost a limb
/// The limb (in plaintext) that got lost (ends up being "left arm" or "right leg")
var/lost_limb
/datum/memory/was_dismembered/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
obj/item/bodypart/lost_limb,
)
src.lost_limb = lost_limb.plaintext_zone
return ..()
/datum/memory/was_dismembered/get_names()
return list("The loss of [protagonist_name]'s [lost_limb].")
/datum/memory/was_dismembered/get_starts()
return list(
"[protagonist_name] becoming eligible for handicapped parking",
"[protagonist_name]'s [lost_limb] being shot into the abyss",
"[protagonist_name]'s [lost_limb] flinging away",
)
/datum/memory/was_dismembered/get_moods()
return list(
"[protagonist_name] [mood_verb] after losing [lost_limb].",
"Without [lost_limb], [protagonist_name] [mood_verb].",
)
/// Our pet died...
/datum/memory/pet_died
story_value = STORY_VALUE_AMAZING
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_CHECK_DEAFNESS
// Protagonist - The mob who saw the pet die
// Deuteragonist - The pet which died
/datum/memory/pet_died/get_names()
return list("The death of [deuteragonist_name].")
/datum/memory/pet_died/get_starts()
return list(
"honoring [deuteragonist_name], the station's pet",
"[deuteragonist_name]'s funeral, which is attended by a group of crew members",
"a shallow hole, with [deuteragonist_name] inside",
)
/datum/memory/pet_died/get_moods()
return list(
"[protagonist_name] [mood_verb] without [deuteragonist_name].",
"Without [deuteragonist_name], [protagonist_name] [mood_verb].",
)
/// The revolution was triumphant!
/// Given to head revs and those nearby when the revs win a revolution.
/datum/memory/revolution_rev_victory
story_value = STORY_VALUE_LEGENDARY
memory_flags = MEMORY_FLAG_NOSTATIONNAME|MEMORY_CHECK_BLINDNESS|MEMORY_CHECK_DEAFNESS
// Protagonist - The head revolutionary that won the revolution
/datum/memory/revolution_rev_victory/get_names()
return list("The revolution of [station_name()] by [protagonist_name].")
/datum/memory/revolution_rev_victory/get_starts()
return list(
"[protagonist_name] raising the flag of the revolution over the corpses of the former dictators",
"a flag waving above a pile of corpses with [protagonist_name] standing over it",
"a poster that says [station_name()] with a cross in it, hailing in a new era",
"a statue of the former captain toppled over, with [protagonist_name] next to it",
)
/datum/memory/revolution_rev_victory/get_moods()
return list(
"[protagonist_name] [mood_verb] at the fall of [station_name()].",
"[protagonist_name] [mood_verb] at the idea of the new era.",
)
/// Given to heads of staff if they lose a revolution and are alive still.
/datum/memory/revolution_heads_defeated
story_value = STORY_VALUE_NONE
memory_flags = MEMORY_FLAG_NOSTATIONNAME|MEMORY_SKIP_UNCONSCIOUS
// Protagonist - The head of staff that lost the revolution
/datum/memory/revolution_heads_defeated/get_names()
return list("The defeat of [protagonist_name] at the hands of the revolution")
/datum/memory/revolution_heads_defeated/get_starts()
return list(
"[protagonist_name] fleeing [station_name()] in shame due to the success of the revolution",
"[protagonist_name] looking at a camera feed of rampaging revolutionaries",
"a poster with [protagonist_name]'s face stratched out",
)
/datum/memory/revolution_heads_defeated/get_moods()
return list(
"[protagonist_name] [mood_verb] at the fall of [station_name()].",
"[protagonist_name] [mood_verb] at their defeat.",
)
/// Given to head revs for failing the revolution!
/datum/memory/revolution_rev_defeat
story_value = STORY_VALUE_NONE
memory_flags = MEMORY_FLAG_NOSTATIONNAME|MEMORY_SKIP_UNCONSCIOUS
// Protagonist - The head revolutionary that lost the revolution
/datum/memory/revolution_rev_defeat/get_names()
return list(
"The defeat of [protagonist_name] at the hands of the Nanotrasen",
"The end of [protagonist_name]'s glorious revolution",
)
/datum/memory/revolution_rev_defeat/get_starts()
return list("[protagonist_name] fleeing [station_name()] in shame due to the failure of their revolution")
/datum/memory/revolution_rev_defeat/get_moods()
return list("[protagonist_name] [mood_verb] at their defeat.")
/// Given to heads of staff, and those around them, upon defeating the revolutionaries.
/datum/memory/revolution_heads_victory
story_value = STORY_VALUE_AMAZING // Not as cool as a rev victory. Everyone loves underdog stories
memory_flags = MEMORY_FLAG_NOSTATIONNAME|MEMORY_SKIP_UNCONSCIOUS
// Protagonist - The head of staff that won the revolution
/datum/memory/revolution_heads_victory/get_names()
return list("The success of [protagonist_name] and Nanotrasen over the hateful revolution")
/datum/memory/revolution_heads_victory/get_starts()
return list(
"[protagonist_name] dusting off their hands in victory over the revoution",
"the banner of Nanotrasen flying on the bridge of [station_name()] with [protagonist_name] proudly beside it",
)
/datum/memory/revolution_rev_defeat/get_moods()
return list("[protagonist_name] [mood_verb] over the defeat of the revolution by the hands of Nanotrasen.")
/// Watched someone receive a commendation medal
/datum/memory/received_medal
story_value = STORY_VALUE_AMAZING
memory_flags = MEMORY_FLAG_NOSTATIONNAME|MEMORY_CHECK_BLINDNESS|MEMORY_CHECK_DEAFNESS
// Protagonist - The person being given a medal
// Deuteragonist - The mob awarding a medal
/// The name of the medal being rewarded
var/medal_type
/// The text on the medal / the commendation / the input
var/medal_text
/datum/memory/received_medal/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
obj/item/medal_type,
medal_text,
)
src.medal_type = medal_type.name
src.medal_text = medal_text
return ..()
/datum/memory/received_medal/get_names()
return list("The award ceremony of [medal_type] to [protagonist_name].")
/datum/memory/received_medal/get_starts()
return list(
"[protagonist_name] accepting a [medal_type] inscribed with \"[medal_text]\" from [deuteragonist_name]",
"[protagonist_name] receiving a [medal_type] with the inscription \"[medal_text]\"",
"a [medal_type] with the inscription \"[medal_text]\" being awarded to [protagonist_name] by [deuteragonist_name]",
)
/datum/memory/received_medal/get_moods()
return list(
"[protagonist_name] [mood_verb] as they receive their medal.",
"[protagonist_name] [mood_verb] with their newly received award.",
)
/// Killed a Megafauna
/datum/memory/megafauna_slayer
story_value = STORY_VALUE_LEGENDARY
// Protagonist - The person who killed the megafauna
// Antagonist - The megafauna
/datum/memory/megafauna_slayer/get_names()
return list("The slaughter of [antagonist_name].")
/datum/memory/megafauna_slayer/get_starts()
return list(
"[protagonist_name] performing the final strike on [antagonist_name], taking it down",
"[protagonist_name] standing with the head of [antagonist_name] in their hand",
"the killing of [antagonist_name], the dangerous megafauna, by [protagonist_name]",
)
/datum/memory/megafauna_slayer/get_moods()
return list(
"[protagonist_name] [mood_verb] as the blood lust fades from their eyes.",
"[protagonist_name] [mood_verb] as they search the corpse for valuables.",
)
/// Got held at gunpoint by someone!
/datum/memory/held_at_gunpoint
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - Who was held at gunpoint
// Deuteragonist - Who held them at gunpoint
// Antagonist - The gun
/datum/memory/held_at_gunpoint/get_names()
return list("[protagonist_name] being held at gunpoint.")
/datum/memory/held_at_gunpoint/get_starts()
return list(
"[protagonist_name] with [antagonist_name] pressed to their skull by [deuteragonist_name]",
"[deuteragonist_name] whipping out [antagonist_name] and pointing it at [protagonist_name]",
)
/datum/memory/held_at_gunpoint/get_moods()
return list(
"[protagonist_name] [mood_verb] as they are faced with the situation.",
"[protagonist_name] [mood_verb] as they stare down [antagonist_name]'s barrel.",
)
/// Saw someone get gibbed.
/datum/memory/witness_gib
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_FLAG_NOMOOD
// Protagonist - Who got gibbed
/datum/memory/witness_gib/get_names()
return list("[protagonist_name] exploding into bits.")
/datum/memory/witness_gib/get_starts()
return list(
"[protagonist_name] exploding into little fleshy bits",
"[protagonist_name] becoming flesh paste in the blink of an eye",
)
/// Saw someone get crushed by a vending machine.
/datum/memory/witness_vendor_crush
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_SKIP_UNCONSCIOUS
// Protagonist - Who got crushed
// Antagonist - The vendor that crushed them
/datum/memory/witness_vendor_crush/get_names()
return list("[protagonist_name] being crushed by [antagonist_name].")
/datum/memory/witness_vendor_crush/get_starts()
return list(
"[protagonist_name] being crushed by the [antagonist_name]",
"the [antagonist_name] that crashed on top of [protagonist_name]",
"the fall of [antagonist_name] onto [protagonist_name]",
)
/datum/memory/witness_vendor_crush/get_moods()
return list(
"[protagonist_name] [mood_verb] as they lie under the machine.",
"[protagonist_name] [mood_verb] as a goodie falls out of the [antagonist_name]."
)
/// Saw someone get dusted by the supermatter.
/datum/memory/witness_supermatter_dusting
story_value = STORY_VALUE_AMAZING
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - Who got dusted
// Antagonist - The supermatter
/datum/memory/witness_supermatter_dusting/get_names()
return list("The dusting of [protagonist_name] by the [antagonist_name].")
/datum/memory/witness_supermatter_dusting/get_starts()
return list(
"[protagonist_name] turning into a pile of bones after touching the [antagonist_name]",
"The [antagonist_name] turning [protagonist_name] into ash",
"The dusting of [protagonist_name] after they got too close to the [antagonist_name]",
)
/datum/memory/witness_supermatter_dusting/get_moods()
return list(
"[protagonist_name] [mood_verb] as they faded way.",
"[protagonist_name] [mood_verb] as they are reduced to atoms.",
)
/// Played cards with another person.
/datum/memory/playing_cards
story_value = STORY_VALUE_MEH
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - The player
// Deuteragonist - The game dealer (which may be a player OR in the players list)
/// What card game is being played
var/game
/// The card the protagonist is holding
var/protagonist_held_card
/// A string (english list) of all the mobs playing the game
var/formatted_players_list
/datum/memory/playing_cards/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
game,
obj/item/protagonist_held_card,
list/mob/living/other_players,
)
src.game = game
src.protagonist_held_card = protagonist_held_card.name
var/list/story_players = list()
for(var/mob/living/player as anything in other_players)
// This will result in some strange structure sometimes -
// "The assistant, the assistant, and the assistant playing a game",
// but meh. Someone can improve upon it in the future
story_players += build_story_character(player)
src.formatted_players_list = english_list(story_players, nothing_text = "no-one")
return ..()
/datum/memory/playing_cards/get_names()
return list("The [game] of [protagonist_name] with [formatted_players_list].")
/datum/memory/playing_cards/get_starts()
return list(
"[formatted_players_list] waiting for [protagonist_name] to start the [game]",
"The [game] has been setup by [deuteragonist_name]",
"[deuteragonist_name] starts shuffling the deck for the [game]",
)
/datum/memory/playing_cards/get_moods()
return list(
"[protagonist_name] [mood_verb] as they hold the [protagonist_held_card] for the [game].",
"[protagonist_name] [mood_verb] as they pickup the [protagonist_held_card].",
"[protagonist_name] [mood_verb] as they put down the [protagonist_held_card].",
)
/// Played 52 card pickup with another person.
/datum/memory/playing_card_pickup
story_value = STORY_VALUE_OKAY
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist - The guy who initiated the game
// Deuteragonist - The guy who got the cards thrown in their face
// Antagonist - The deck of cards
/datum/memory/playing_card_pickup/get_names()
return list("[protagonist_name] tricking [deuteragonist_name] into playing 52 pickup with [antagonist_name].")
/datum/memory/playing_card_pickup/get_starts()
return list(
"[protagonist_name] tossing the [antagonist_name] at [deuteragonist_name] spilling cards all over the floor",
"A [antagonist_name] thrown by [protagonist_name] splatters across [deuteragonist_name] face",
)
/datum/memory/playing_card_pickup/get_moods()
return list(
"[protagonist_name] [mood_verb] as they taunt [deuteragonist_name].",
"[deuteragonist_name] [mood_verb] as they shamefully pickup the cards.",
)
/// Saw someone play Russian Roulette.
/datum/memory/witnessed_russian_roulette
memory_flags = MEMORY_CHECK_BLINDNESS
// Protagonist = The guy who played roulette
// Antagonist = The revolver
/// The bodypart the protagonist was aiming at
var/aimed_at
/// How many rounds were loaded in the revolver
var/rounds_loaded
/// The result of the game ("won"(survived) or "lost"(shot themselves))
var/result
/datum/memory/witnessed_russian_roulette/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
aimed_at,
rounds_loaded = 0,
result,
)
src.aimed_at = aimed_at
src.rounds_loaded = rounds_loaded
src.result = result
if(result == "won")
// The more bullets, the better the story.
story_value = max(STORY_VALUE_NONE, rounds_loaded)
else
story_value = STORY_VALUE_SHIT
return ..()
/datum/memory/witnessed_russian_roulette/get_names()
return list("[protagonist_name] playing a game of russian roulette.")
/datum/memory/witnessed_russian_roulette/get_starts()
return list(
"[protagonist_name] aiming at their [aimed_at] right before they pull the trigger.",
"The revolver has [rounds_loaded] rounds loaded in the chamber.",
"[protagonist_name] is gambling their life as they spin the revolver.",
)
/datum/memory/witnessed_russian_roulette/get_moods()
return list("[protagonist_name] [mood_verb] as they [result] the deadly game of roulette.")
/// When a heretic finishes their ritual of knowledge
/datum/memory/heretic_knowledge_ritual
story_value = STORY_VALUE_AMAZING
// Protagonist = heretic
/datum/memory/heretic_knowledge_ritual/get_names()
return list("[protagonist_name] absorbing boundless knowledge through eldritch research.")
/datum/memory/heretic_knowledge_ritual/get_starts()
return list(
"[protagonist_name] laying out a circle of green tar and candles",
"multiple books around [protagonist_name] flipping open",
"green and purple energy surrounding [protagonist_name]",
"[protagonist_name], eyes wide open and unblinking, reading a strange book",
"a pile of gore and viscera on a complex looking rune",
"a wide, strange looking circle, with [protagonist_name] sketching it"
)
/datum/memory/heretic_knowledge_ritual/get_moods()
return list("[protagonist_name] [mood_verb] as their hand glows with power.")
/datum/memory/heretic_knowledge_ritual/get_happy_moods()
return list("cackling madly")
/datum/memory/heretic_knowledge_ritual/get_neutral_moods()
return list("staring blankly with a wide grin")
/datum/memory/heretic_knowledge_ritual/get_sad_moods()
return list("cackling insanely")
/// Failed to defuse a bomb, by triggering it early.
/datum/memory/bomb_defuse_failure
story_value = STORY_VALUE_NONE // Anyone who gets this is probably dead
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_CHECK_DEAFNESS
// Protagonist = (failed) defuser
// Antagonist = bomb
/datum/memory/bomb_defuse_failure/get_names()
return list("[protagonist_name] failing to defuse [antagonist_name].")
/datum/memory/bomb_defuse_failure/get_starts()
return list(
"[protagonist_name] cutting the wrong wire on [antagonist_name]",
"[protagonist_name] sweating nervously and shielding their face as [antagonist_name] makes a loud noise",
"The clock on [antagonist_name] suddenly jumping to 0 seconds"
)
/datum/memory/bomb_defuse_failure/get_moods()
return list("[protagonist_name] [mood_verb] as they snip a wire on [antagonist_name].")
/// Succeeded in defusing a bomb!
/datum/memory/bomb_defuse_success
story_value = STORY_VALUE_LEGENDARY // Very sick, and can't be gotten from training bombs
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_CHECK_DEAFNESS
// Protagonist = defuser
// Antagonist = bomb
/// This is the time left (in seconds) of the bomb at defusal
var/bomb_time_left
/datum/memory/bomb_defuse_success/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
bomb_time_left = -1,
)
src.bomb_time_left = bomb_time_left
return ..()
/datum/memory/bomb_defuse_success/get_names()
return list("[protagonist_name] successfully defusing [antagonist_name].")
/datum/memory/bomb_defuse_success/get_starts()
return list(
"[protagonist_name] cutting the right wire on [antagonist_name]",
"[protagonist_name] sweating nervously and shielding their face as [antagonist_name] makes a shrill beep",
"The clock on [antagonist_name] stopping at [bomb_time_left]"
)
/datum/memory/bomb_defuse_success/get_moods()
return list("[protagonist_name] [mood_verb] as they snip a wire on [antagonist_name].")
/datum/memory/helped_up
story_value = STORY_VALUE_OKAY
/datum/memory/helped_up/get_names()
return list("[protagonist_name] gentlemanly helping up [deuteragonist_name].")
/datum/memory/helped_up/get_starts()
return list(
"[protagonist_name] helping up [deuteragonist_name]",
"[deuteragonist_name] taking the hand offered graciously by [protagonist_name] to get up",
)
/// Catching a fish
/datum/memory/caught_fish
story_value = STORY_VALUE_OKAY
/datum/memory/caught_fish/get_names()
return list(
"[protagonist_name] catching an absolute honker.",
"[protagonist_name] caught a [deuteragonist_name].",
)
/datum/memory/caught_fish/get_starts()
return list(
"[protagonist_name] reels in the line",
"[protagonist_name]'s eye glints, and they begin reeling",
"in a fishing trance, [protagonist_name] catches something",
"[protagonist_name] begins battle with a fish",
"a whole lot of fishing going on",
)
/datum/memory/caught_fish/get_moods()
return list(
"[protagonist_name] [mood_verb] as a [deuteragonist_name] flies out of the water!",
"[protagonist_name] [mood_verb] as they catch a [deuteragonist_name]!",
"[protagonist_name] [mood_verb] as they pose holding a [deuteragonist_name]!",
)
/datum/memory/caught_fish/get_sad_moods()
return list("partakes in therapy fishing")
/// Becoming a mutant via infusion
/datum/memory/dna_infusion
story_value = STORY_VALUE_MEH
///describing what they turn into, "skittish", "nomadic", etc
var/mutantlike
/datum/memory/dna_infusion/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
mutantlike,
)
src.mutantlike = mutantlike
return ..()
/datum/memory/dna_infusion/get_names()
return list(
"[protagonist_name] infusing with a [deuteragonist_name].",
"[protagonist_name] infusing a [deuteragonist_name] into themselves.",
)
/datum/memory/dna_infusion/get_starts()
return list(
"[protagonist_name] enters a creepy DNA machine",
"[protagonist_name]'s partakes in some mad science",
"the DNA infuser closes with [protagonist_name] inside",
"a [deuteragonist_name] is in the infusion slot"
)
/datum/memory/dna_infusion/get_moods()
return list(
"[protagonist_name] [mood_verb] as they infuse with a [deuteragonist_name]!",
"[protagonist_name] [mood_verb] as they become one the [deuteragonist_name].",
"[protagonist_name] [mood_verb] as their DNA has [deuteragonist_name] folded into it.",
"[protagonist_name] becomes more [mutantlike] as they infuse with a [deuteragonist_name]!",
"[protagonist_name] becomes more [mutantlike] as they become one the [deuteragonist_name].",
"[protagonist_name] becomes more [mutantlike] as their DNA has [deuteragonist_name] folded into it.",
)
/datum/memory/dna_infusion/get_happy_moods()
return list(
"endures the pain for science",
"confidently winces through the pain"
)
/datum/memory/dna_infusion/get_neutral_moods()
return list(
"screams with pain",
"begins to have second thoughts"
)
/datum/memory/dna_infusion/get_sad_moods()
return list("bitterly rejects their humanity")
/// Who rev'd me, so if a mindreader reads a rev, they have a clue on who to hunt down
/datum/memory/recruited_by_headrev
/datum/memory/recruited_by_headrev/get_names()
return list("[protagonist_name] is converted into a revolutionary by [antagonist_name]")
/datum/memory/recruited_by_headrev/get_starts()
return list(
"[protagonist_name]'s mind sets itself on a singular, violent purpose as they're flashed by [antagonist_name]: Kill the heads.",
"[antagonist_name] lifts an odd device to [protagonist_name]'s eyes and flashes him, imprinting murderous instructions.",
)
/// Who converted into a blood brother
/datum/memory/recruited_by_blood_brother
/datum/memory/recruited_by_blood_brother/get_names()
return list("[protagonist_name] is converted into a blood brother by [antagonist_name]")
/datum/memory/recruited_by_blood_brother/get_starts()
return list(
"[antagonist_name] acts just a bit too friendly with [protagonist_name], moments away from converting them into a blood brother.",
"[protagonist_name] is brought into [antagonist_name]'s life of crime and espionage.",
)
/// Saw someone play Russian Roulette.
/datum/memory/witnessed_gods_wrath
memory_flags = MEMORY_CHECK_BLINDNESS|MEMORY_SKIP_UNCONSCIOUS
story_value = STORY_VALUE_AMAZING
/datum/memory/witnessed_gods_wrath/New(
datum/mind/memorizer_mind,
atom/protagonist,
atom/deuteragonist,
atom/antagonist,
)
/datum/memory/witnessed_gods_wrath/get_names()
return list("[protagonist_name] suffering the wrath of [antagonist_name].")
/datum/memory/witnessed_gods_wrath/get_starts()
return list(
"[protagonist_name] burns [deuteragonist_name], and [antagonist_name] turns [protagonist_name] into a fine red mist.",
"[antagonist_name] explodes [protagonist_name] into a million pieces for defiling [deuteragonist_name].",
"[protagonist_name] angers [antagonist_name] by defiling [deuteragonist_name], and gets obliterated.",
)
/datum/memory/witnessed_gods_wrath/get_moods()
return list("[protagonist_name] [mood_verb] as they get annihilated by [antagonist_name].")
/datum/memory/witnessed_gods_wrath/get_happy_moods()
return list(
"cackles hysterically",
"laughs maniacally",
"grins widely",
)
/datum/memory/witnessed_gods_wrath/get_neutral_moods()
return list(
"appears concerned",
"reconsiders their life decisions",
"has a blank expression",
)
/datum/memory/witnessed_gods_wrath/get_sad_moods()
return list(
"appears dejected",
"is filled with regret",
"winces in despair"
)