* Turns lightgeists into a basic mob (#75626)
## About The Pull Request
https://www.youtube.com/watch?v=bcUuqKrnvVY <- me getting rid of every
simple animal one thing at a time
Turns lightgeists into a basic mob. There are a few key advantages into
its implementation that was previously impossible in the simple animal
framework, which is entirely possible now.
## Why It's Good For The Game
Lightgeists can actually have a bit of AI now, as a treat. They didn't
have it prior because I assume if they attacked anything, they would end
up healing it, and we didn't really have an option in the simple animal
AI to say "do not attack"... This really fixes that so they can wander
around a bit and look cute if some admin decides to spawn them in (but
the only way to get them outright is to use the anomalous crystal, which
auto-assigns a player). You don't see the AI if a player ghosts out of
the lightgeist because the lightgeist will delete itself on ghost
(previous behavior).
It also gets rid of some janky AttackingTarget() override that was
completely un-needed post-#73202.
## Changelog
Nothing really player facing.
* Turns lightgeists into a basic mob
---------
Co-authored-by: san7890 <the@san7890.com>
* Converts Lizards to Basic Mobs (#75515)
This was pretty simple since they didn't have too much custom behavior,
and whatever they did have already had AI behavior. I got really burned
out the last two times I wrote intricate AI action/decision behaviors so
I'm just taking it light and doing the bare minimum.
one day our shackles will be free of the simple animal scourge. they're
also a bit more intelligent, and i daresay a bit cuter too now.
also that lizard gib animation has been sitting there for god knows how
long completely unseen, so let's actually hook it into the mob.
* Converts Lizards to Basic Mobs
* update modular
* TEGU
* me when I update Maps
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Blobs and Kudzu are killed by chasms. (#75469)
## About The Pull Request
Fixes#75451
Originally I just whitelisted them because they're structures that are
supported by their surroundings... but there's still the theoretical
scenario where it has expanded over a reasonably large chasm and then
becomes almost impossible to remove because you can't easily get at the
ones in the middle, and it would be "levitating" after you cut off
everything around the edge.
So instead this adds a trait which restores the original behaviour of
chasms where they delete stuff which falls into them and applies it to
Blobs and Kudzu.
## Why It's Good For The Game
It's a very niche scenario but "expanding structure falls into abstract
chasm storage" causes issues where it potentially keeps processing in
there and there isn't much you can do about it.
Maybe there's other stuff that commonly falls into chasms we'll decide
that we want to delete instead of keeping in pools now that you can just
slap a trait onto something to do it, future consideration.
## Changelog
🆑
fix: Blob and Kudzu tiles which expand into chasms will now be correctly
destroyed by the chasm.
/🆑
* Blobs and Kudzu are killed by chasms.
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
The Shuttle Catastrophe event cannot trigger when the BYOS is purchased, so that it doesn't disappear anyone. The Shuttle Insurance event protects the Shuttle Catastrophe event. Due to (grumble grumble) transitive property grumble grumble this means the BYOS should also prevent the Shuttle Insurance event.
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Demotes Psyker Pirates to Bounty Hunter Duty (#75031)
This PR demotes the Psyker-gang from a pirate team to a fugitive hunting
team. For more information on Psyker pirates, please refer to #71650.
Stuff this also does in the process:
- Gives fugitive hunters their own subfolder in the fugitives antagonist
folder, moves some of their stuff into hunter-specific files rather than
interlacing it with the rest of the fugitive code.
- Moves the hunter backstories to defines, to make reading things easier
while I made this change.
- Exhaustively moves everything related to psykers from being
pirate-oriented to hunter-oriented (typepaths, locations where stuff is
defined, etc. There should be nothing left behind related to psykers in
anything pirate related). (Tell me if I missed anything somehow).
They still get their ship (they even get their own custom
psyker-friendly prisoner capsule). They still have a bunch of lethally
chambered firearms. They're the same gunrunning nutcases they were
before, just as bounty hunters.
To assist with basic tasks such as "getting to the station" or "figuring
out who the fuck we're supposed to be kidnapping", the psykers have
"acquired" a Seer to assist them. They can _try_ to coordinate the
psykers and lead them through situations where their impairments put
them at too great a disadvantage. If you're one of the psykers, make
sure to keep this guy alive at all costs!
Why are they called Shikaris instead of hunters? Mariam-Webster says
it's a Hindi word for some kind of hunter/tracker, and it sounded like
something a bunch of space-junkies would call themselves because they
think it sounds cool.
They now also come with a slightly different motivation, now that they
can't directly threaten the crew for money. Psyker hunters now arrive
tasked with a dirty kidnapping job, payment rendered in GORE.
## Why It's Good For The Game
Psykers aren't up to the challenge of being pirates. They're bogged down
by a number of fundamental issues that render them unable to do anything
expected of pirates. As it currently stands, they present about as much
threat as you would expect from three blind junkies with guns.
Removing them wholesale would be kind of lame. They can function as a
bunch of chaotic-neutral gun-toting space-maniacs, but for the purposes
of gameplay, keeping them as pirates would be a waste of their talents.
Moving them to a lower-stakes role not only moves them to a niche they
are more capable of filling, but gives players a more lax environment to
get a grip on playing psyker without being overwhelmed.
Giving them a seeing-eye role should bring a more unique dynamic to how
psykers are played (that is, some semblance of organization rather than
blind flailing), and should help get over the mechanical hurdles of
being a psyker until better solutions can be made. It shouldn't be too
big of an impact on balance considering the psyker gang only has three
spawns, while most hunter packs have 4+.
* Demotes Psyker Pirates to Bounty Hunter Duty
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Deadchat Announcement Variety Pack 1 (#75140)
## About The Pull Request
Adds announce_to_ghosts()/notify_ghosts() calls to a bunch of different
things.
**THIS INCLUDES:**
- Powersink being activated/reaching critical (explosion) heat capacity.
- His Grace being awoken.
- Hot Potatoes being armed.
- Ascension Rituals being completed.
- Eyesnatcher victims.
- Ovens exploding as a result of the Aurora Caelus event.
- Wizard Imposter spawns.
- Rock-Paper-Scissors with death as the result of Helbital consumption.
- BSA impact sites.
- Spontaneous Appendicitis.
- The purchasing of a badass syndie balloon.
- The Supermatter beginning to delaminate.
This was everything that I could think of that would be worth announcing
to deadchat. These were all chosen with consideration to questions like
"how easy would it be to spam deadchat with this?" and "will observers
actually see the interesting thing happen, or just the aftermath?".
Not gonna lie, I've really become an observer main as of recently. Maybe
that's being reflected in my recent PRs. Who's to say? Deadchat
Announcement Variety Pack 2 will probably never come out. Sorry.
## Why It's Good For The Game
Gives deadchat a better indiciation of when/where something **REALLY
FUNNY** is about to happen. Draws attention to certain things that are
likely to gather an audience anyways, but sooner (for your viewing
pleasure). In simple terms, it helps the observers observe things
better.
Some cases, such as the aurora caelus or helbitaljanken, are occurrences
so rare that they deserve the audience.
## Changelog
🆑 Rhials
qol: Observers now recieve an alert when a powersink is activated/about
to explode.
qol: His Grace being awoken now alerts observers, to give you a
headstart on your murderbone ghost ring.
qol: Ascension Rituals being completed will also alert observers, for
basically the same reason.
qol: Arming a hot potato will now alert observers. Catch!
qol: Eyesnatcher victims will now notify observers, and invite them to
laugh at their state of misery and impotence.
qol: Observers will be notified of any acute references to The Simpsons
or other 20th Television America copyright properties.
qol: Wizard Imposter spawns alert observers, much like any other ghost
role event should.
qol: Playing Rock-Paper-Scissors with death will now alert the observers
and invite them to watch. Better not choke!
qol: Observers now get an orbit link for BSA impact sites. Why does it
keep teleporting me to the AI upload??
qol: Spontaneous Appendicitis now alerts deadchat.
qol: The purchasing of a badass syndie balloon now alerts deadchat. You
might not be any more powerful, but at least you have an audience.
qol: When beginning to delaminate, the Supermatter will alert observers
and invite them to watch the fireworks.
/🆑
* Deadchat Announcement Variety Pack 1
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Shuttle loan fix (#75020)
## About The Pull Request
shuttle_loan_datum.dm had two entries for the department_resupply
variation. One of those is the Syndicate hijacking event, and the other
is the resupply. This fixes that so those two events don't conflict with
each other.
## Why It's Good For The Game
It removes a problem with the code, and makes it so that admins can
force either the syndicate hijacking or the resupply
## Changelog
🆑
fix: Shuttle Loan event's resupply and hijacking have been separated
into two different datums
/🆑
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Shuttle loan fix
---------
Co-authored-by: norsvenska <73006946+norsvenska@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Minor Major Space Dust update, Dust Stormfront station trait (#74901)
## About The Pull Request
This makes three changes regarding the Major Space Dust event.
The first reverts it back to a meteor_wave subtype (rather than a
space_dust subtype), a choice I made in #69866 that feels really stupid
in retrospect.
The second set of changes pertain to the event's numbers. It increases
the weight (8 -> 14) and reduces the earliest_start time (25 MINUTES ->
15 MINUTES). The announce_chance has been reduced (100 -> 85), and there
are a few more announcement messages in the pool.
Lastly, this adds a quick random_event_weight_modifier station trait
that makes the Major Space Dust more common. Let's hope it doesn't
scratch the hull!
This also removes an outdated comment from the revolutionary fervor
station trait, because I was near it.
## Why It's Good For The Game
It's way more sane to handle this event as a meteor_wave. It walks and
talks like a meteor wave, why shouldn't it be one?
Major Space Dust works as a nice fluff event. It's low-impact and might
give engineering something to fix every now and then. It's not
particularly special either, so I don't think it would hurt to make the
event bit more frequent.
New station trait for people (presumably engineering players) to work
around.
## Changelog
🆑 Rhials
add: New event weight station trait -- Dust Stormfront.
balance: Space Weather Forecast -- Expect more frequent Major Space Dust
storms in the foreseeable future.
code: The Major Space Dust event is once again returned to being a
meteor_wave event instead of a Space Dust subtype.
/🆑
* Minor Major Space Dust update, Dust Stormfront station trait
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Turns space bat into a basic mob & moves retaliate mobs to retaliate folder (#74747)
## About The Pull Request
Turns Space Bats into a basic mob, why not.
I also noticed some retaliate mobs weren't in the retaliate folder, and
moved them over. I didn't move goats over because they're in a large
file and didn't want to really expand much on this PR that I just wanted
to focus on just bats.
## Why It's Good For The Game
I was just messing around with some bat stuff and thought I might as
well make them basic mobs.
## Changelog
🆑
code: Space Bats are now Basic mobs.
/🆑
* Turns space bat into a basic mob & moves retalate mobs to retaliate folder
* Update spacehotel_skyrat.dmm
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds a deadchat orbit popup for the Stray Cargo Pod Random Event landing location (#74738)
## About The Pull Request
Adds an announce_to_ghosts for the landing zone indicator spawned by the
cargo pod event. This means that the ghosts are alerted to where the pod
lands and also get to see the effects of the impact if they choose to
hop over.
## Why It's Good For The Game
Gives deadchat yet another form of idle stimulation -- something for
them to congregate around and have a thoughtful discussion about.
I realize that this is the third "adds a ghost orbit popup to a random
event" PR, so give me a heads up if there are any other events that
would benefit from having an announce_to_ghosts and I can just add them
here.
## Changelog
🆑
qol: Ghosts are now notified and given an orbit popup for the Stray
Cargo Pod random event.
/🆑
* Adds a deadchat orbit popup for the Stray Cargo Pod Random Event landing location
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds two new helper procs for finding a maintenance/space spawn turf (#74598)
## About The Pull Request
Adds two new global helper procs, find_maintenance_spawn and
find_space_spawn. These check the list of maintenance/space carp spawn
landmarks, and return the turf of a random one.
The find_maintenance_spawn helper has two arguments, for atmos safety
checks and making sure the spawn is properly shrouded in darkness.
This also includes some tidiness changes to the ghost_role event file,
because the helper was originally just going to be a proc on ghost role
events.
**Stuff moved to find_maintenance_spawn:**
- Spiders
- Nightmares
- Fugitives
- Paradox clones
- Morph
**Stuff moved to find_space_spawn:**
- Space Dragon
- Loneop
- Ninja
- Slaughter Demon
- Revenant backup spawn location
If we ignore all of the autodocing, this should remove about a dozen or
two lines of code.
## Why It's Good For The Game
Reduces an amount of duplicated code. Also makes future implementation a
bit easier and less copy-pastey.
## Changelog
🆑 Rhials
code: Adds two new super-duper helpful helper procs for finding a
maintenance/space spawn location, for all of your
event/midround/whatever needs!
code: Moves all midrounds/ghost_role events that hinged on
maintenance/space carp spawns to the aforementioned helpers.
code: The ghost_role event module file is now autodoced.
/🆑
* Adds two new helper procs for finding a maintenance/space spawn turf
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds a new solo fugitive backstory: The Invisible Man (#74415)
## About The Pull Request
A disgruntled scientist, formerly the project lead at an experimental
cloaking technology lab, now on the run for stealing the very prototypes
they helped create.

You start off with a toggleable cloaking implant (makes you a bit more
invisible than a cloaked ninja), and some Stabilized Saturn-X injectors
(Which turn you COMPLETELY invisible).
The three Saturn-X injectors grant you a cumulative 30 minutes of total
invisibility (with the caveat and associated complications of you having
to be naked and not able to just take them all at once
consequence-free). It may not be as powerful as Waldo and his almighty
Knock spell, but don't underestimate how much the camouflage can do for
you in the dark.

So go on, blend in with the crew. When the hunters come looking, shed
your uniform and disappear...
The color of this PR is: **Purple**.
## Why It's Good For The Game
Adds some variety to solo fugitive selections (Waldo is still a
bastard). Gives the opportunity for High-End SS13 Stealth Gameplay.
## Changelog
🆑 Rhials
add: New solo fugitive backstory: The Invisible Man!
spriteadd: New purple medipen and admittedly bad camouflage icon hud
button sprite.
/🆑
* Adds a new solo fugitive backstory: The Invisible Man
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Reagent soup / Soup rework / Stoves - A kitchen expansion
* fixes that stuff
* puts the range stove on maps that sohuld have it
* fixes some paths that don't exist anymore
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them (#74374)
## About The Pull Request
The xeno_spawn landmark, used to pick spawn locations for many different
midrounds (but NOT xenomorphs, ironically), has been killed and been
replaced with the generic_maintenance_landmark landmark.
This also adds atmos safety checks to some of the midround spawn
location selections that were missing them:
- Paradox Clone
- Nightmare
- Fugitives
- Morph
I decided to do both of these at the same time, since I'd be touching
most of the same files anyways.
This includes an updatepaths that, if you are on a downstream running a
custom map, should probably definitely run.
## Why It's Good For The Game
It may not be a secret that these landmarks aren't used for spawning
xenomorphs anymore, but the name is still deceptive. This should
communicate what they're used for a bit better to both coders and
mappers.
Atmos safety checks (for the midrounds I hadn't yet added them to) make
sure people can play the game.
Closes#74372.
## Changelog
🆑
code: The xeno_spawn landmark is now the generic_maintenance_landmark
landmark.
fix: Certain midrounds will now check for atmos safety before spawning.
/🆑
* Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them
* 0
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fugitive backstories are now selected with consideration to the number of signups (#74347)
## About The Pull Request
Adjusts how the fugitives event decides to select its backstories.
Formerly, the game would decide if it was polling for a solo (Waldo) or
team (4 player) backstory first, meaning the event could fail if only 3
people signed up when the event decided to run a team backstory. It also
meant that, even with thirty people signed up, a solo backstory (still
just Waldo for now) could be selected. What a waste!
Now, the event receives its signups and uses them to decide which
backstory to choose. If there aren't enough players for a team, a solo
backstory is chosen. If a team can be formed, the event may still decide
to run a solo backstory, but the chance scales inversely with the number
of candidates.
This also adds an atmos safety check to their spawn location finder,
because I was in the area.
## Why It's Good For The Game
Helps a deadchat sink even be more of a deadchat sink. Waldo is a
bastard.
## Changelog
🆑
balance: Fugitive team backstories will now be selected with
consideration to the number of people who sign up.
qol: Fugitives can no longer spawn in atmos-unsafe areas.
/🆑
* Fugitive backstories are now selected with consideration to the number of signups
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Disease outbreak properties balance (#74344)
## About The Pull Request
Slight balancing for disease outbreak in conjunction with
https://github.com/tgstation/tgstation/pull/74343
- Fluids transmission reduced
- Respiration transmission slightly increased
- Low severity frequency increased
- Cures list now uses levels 4-7
- Minimum pop/time to avoid shafting lowpop shifts, modified weight to
match carp and radiation leak
## Why It's Good For The Game
- Fluids transmission diseases are quite useless except for one unlucky
person
- Annoying/harmless diseases are more likely, but also more likely to
spread
- With the balance of some cure chemicals, shifted the level for cures
- Don't run when it's super low pop, when they aren't likely to have a
fully staffed medical
## Changelog
🆑 LT3
balance: Random Disease: Fluids transmission frequency reduced
balance: Random Disease: Respiration transmission frequency increased
balance: Random Disease: Low severity frequency increased
balance: Random Disease: Cures list removes dispenser reagents and food
products
balance: Random Disease: Minimum pop and minimum round timer added to
event check
/🆑
* Disease outbreak properties balance
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds the Dark Matt-eor when you emag a stupid amount of meteor shields + lots of meteor file sorting + qol + dark matter singularity + dark matt-eor summoning final traitor objective
* singularity
* Update singularity_s1.dmi
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
* Minor typo fixes (#74317)
## About The Why It's Good For The Game Pull Request
Immersion
## Changelog
🆑 Tattle
spellcheck: fixed a few typos, mostly around breathing
/🆑
Co-authored-by: tattle <article.disaster@ gmail.com>
* Minor typo fixes
---------
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
* Removes Starlight Config (#74289)
## About The Pull Request
It was config'd off to save init time, but having it function in testing
and mapping is more valuble then the time spend on it.
On that topic, we spend roughly 1.7 seconds of init on this.
~1.3 is spent handling the light sources and their light object
modifications (this is potentailly inflated since other sources could
cause the same objects to need updates)
~0.3 is spent searching for space turfs around lighting_objects during
init.
This will impact change_turf slightly too, costing about ~0.07 in local
testing.
It does save time for live however, since we avoid these config checks.
## Why It's Good For The Game
I believe this time is worth spending.
I've had people try to "fix" artifacts of starlight not being enabled,
things that aren't bugs.
The test environment should as much as we can make it reflect the visual
reality of the game. This helps ensure that
## Changelog
🆑
server: The starlight config has been removed, as it is enabled by
default
/🆑
* Removes Starlight Config
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Tram signs malfunction during tram malfunction (#74210)
## About The Pull Request
Tram signs will now display incorrect information when malfunctioning.
## Why It's Good For The Game
For improved Frogger gameplay, no more being crafty and reading the
indicator board to know if the tram is coming.
## Changelog
🆑 LT3
add: Tram signs will now malfunction when the tram is malfunctioning
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Tram signs malfunction during tram malfunction
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* create_midwife_eggs() now checks for safe atmos and spawns each cluster at a different location (#74051)
## About The Pull Request
Bad things always come in pairs. Spiders are no exception. Midwife
spiders, however, don't really benefit from spawning as a pair.
Ultimately, the room they spawn in will fill up with eggs, and then
there's nothing but uncomfortable waiting as they hatch.
Placing the two broodmothers in separate location gives room for each
broodmother to grow their own hive, and means that one wayward
maintcrawler or cyborg won't _completely_ trash the threat. Single
points of failure are BAD! I originally thought spider eggs spawning
together was unintended behavior (bug!!) because of how little of a
difference the second broodmother makes, but there's nothing pointing
towards that being true, so it goes as a balance change.
As for the safe atmos check, I was watching a round and saw both sets of
eggs spawn in a bombed-out room, leading to instant death upon hatching.
I saw it, said to myself "huh, that's lame", then made this PR.
This also makes a minor code adjustment, which makes it so that spider
eggs will spawn until there are no more valid turfs, rather than not
spawning any unless there are enough spots (which wasn't really an issue
until I made the proc pick distinct locations for each egg).
## Why It's Good For The Game
Atmos checks prevent people from spawning into certain death.
There's only so many tiles you can spit eggs out onto before it just
becomes a game of waiting. Giving each broodmother their own space to
work with means less waiting, and less risk of the entire threat being
wiped out by a passing greytider, broken window, or other minor
inconvenience. I guess this constitutes a spider buff, but hey, I'm of
the opinion that they could use the boost anyways.
## Changelog
🆑
balance: midwife spider eggs now spawn in separate locations. Divide and
conquer!
fix: midwife spider eggs can no longer generate in atmos-hazardous
areas.
/🆑
* create_midwife_eggs() now checks for safe atmos and spawns each cluster at a different location
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes stray cargo pod false alarms runtiming. (#74135)
False alarms for stray cargo pods were no generating a impact_area which
is used for the announcements, I've added code that checks if the alarm
is false and generates one in this case.
* Fixes stray cargo pod false alarms runtiming.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)
## About The Pull Request
There's a couple of open issues which fix places where only simple
animals were considered, but they are doing it piecemeal.
I decided to just go through every instance of `isanimal` or
`subtypesof(mob/living/simple_animal)` I could find, identify which
should also affect basic mobs, and fix them.
I left out the two others which are already in PR, I'm not stealing your
GBP.
Fixes https://github.com/tgstation/tgstation/issues/68881
## Why It's Good For The Game
Consistency, mostly.
As far as I can tell all of these things _should_ have effected basic
mobs, but didn't.
This fixes a fair number of bugs but also they're bugs that nobody
noticed or reported.
There are a couple of places I did not update which will need updating
in future. These are:
- Dextrousness checks, because basic mobs don't have that yet.
- The Charge cooldown action, because frankly I couldn't tell what it
was trying to do.
alright here goes
## Changelog
🆑
fix: Carp will once again be healed from being near carp rifts
fix: Sepia slime cores and the rewind camera now work on Ian
fix: Sapient ridden carp (or cows) can throw off their riders by shoving
them, or by performing the spin emote.
fix: Giant Spider AI will be disabled by the timestop spell
fix: Ian can eat envirochow
fix: Mice, Frogs, and Cockroaches will no longer set off bear traps
fix: You can put a macrobomb implant into Cayenne (or Ian)
fix: Ian will now recognise that being squeezed by a cyborg is a nice
hug
fix: The player panel will tell admins if you're currently a corgi
fix: The staff of storms deals massive damage to Bileworms and Giant
Spiders
fix: Ian will whimper if forced to scream
fix: Slimes can consume space carp
fix: Mice can be captured in xenoballs
fix: You can use pacifying potions on Giant Spiders
fix: Sgt Araneus can be fitted with a xenobiological radio implant
fix: Sapient corgis no longer count as living players for the purpose of
highlander escape objectives
fix: The random sentience event can now target corgis and sergeant
araneus
add: The random sentience event can target a wider array of farm animals
fix: Petsplosion wizard event can target corgis
add: Petsplosion wizard event will now target farm animals and
mothroaches
fix: The colossus possession crystal can now actually possess the
cockroach it spawns, does not kill you instantly upon ending possession
/🆑
* Audits usage of isanimal() vs isanimal_or_basic_mob()
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Admins can now customize the wisdom cow event. (#74045)
## About The Pull Request
Gives admins the ability to customize the spawn location of the cow and
the wisdom that it grants.
## Why It's Good For The Game
Wisdom cows lack any sort of customization at present, this allows
admins to set what type of wisdom which is granted which may be thematic
for events and adding positional spawn support for them is a pretty easy
addition.
## Changelog
🆑
admin: Admins can now customize the wisdom cow event.
/🆑
* Admins can now customize the wisdom cow event.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Log forced events in game log (#74000)
## About The Pull Request
Forced events will be logged to game log. Not sure why we don't already.
## Why It's Good For The Game
Even outside of admins forcing events, new code that forces events to
trigger is added often. They should be logged to, just so it's not
completely up to guesswork that something happened
## Changelog
🆑 Melbert
admin: Logs when forced events trigger
/🆑
* Log forced events in game log
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Station Trait: Spider Infestation (#73893)
## About The Pull Request
Hate having your cables eaten by mice? Nanotrasen have heard your
complaints and settled on a natural, _organic_, and eco-friendly
solution.
When this station trait is active, roundstart and event mouse spawns
have a chance to instead be replaced with duct spiders (both will exist,
it doesn't remove mice).
Duct spiders are largely harmless to humans, actively hunt other
maintenance creatures (such as mice), and have only one _tiny_ downside.

These mobs can also sometimes be spawned by a minor scrubber clog event.
As a side note, all spider basic mobs with AI (except Araneus) will now
try to automatically fill a small area around them with webs.
Also I made it so that mobs will ignore their random_walking behaviour
if they're engaged in a `do_after`, just in case.
## Why It's Good For The Game
Adds a little bit of variety to things which can slightly annoy you in
maintenance.
Spiders will automatically make places they live in look like spiders
live there.
## Changelog
🆑
add: A station trait which sometimes populates maintenance with small
spiders. You can wear them as a hat if you wanted to have a spider on
your head for some reason.
add: Spider mobs will automatically start webbing up their environment.
/🆑
* Station Trait: Spider Infestation
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Grand Ritual: Alternate Wizard objective (Wizard Events II) (#72918)
Adds an alternate greentext objective for Wizards known as the "Grand
Ritual". This was initially the gimmick of a different wizard-related
antagonist downstream. I didn't get permission to port it, so I'm
attaching it to regular Wizards instead.
Wizards will spawn in with a new Grand Ritual button next to their
antagonist info button. Pressing it will pinpoint them towards their
next Ritual Location (a randomly chosen region of the space station).
Once within that location, pressing it will summon a magic circle and
obliterate any dense objects which are in the way. This also puts the
ability on a two minute cooldown.
Clicking on the magic circle with an empty hand will begin a three-stage
invocation to gather magical power. You can interrupt this invocation at
any time and will resume from the last stage you completed (if you
finished two stages you only need to do one more).
Once you complete a ritual, a random event will be triggered based on
how many rituals you have performed so far. These tend to be ones which
annoy the crew in some manner, and Wizard Events are included in the
list. Additionally, something weird will usually happen to the room you
are in.
Then you are assigned a new location and can toddle off to do it again.
Once you have done this three times, you will be picked up by the
station's sensors every time you start a subsequent ritual and should
expect annoyed company to come investigate.
Once you have done this six times, you can finally spend all of that
accumulated power on the seventh Grand Finale ritual. Completing this
grants you victory at the end of the round and will have a larger,
flashier effect which you can pick from a list of options, think of it
like a wizard equivalent of a Traitor Final Objective or Heretic
Ascension.
After that you can still keep doing rituals if you want to pester the
crew further by summoning more random events, you've already "won" at
this point so now it's your job to make them want to go home.
I think it'd be more fun to just find out what the Finale ritual can do
by seeing it happen but maintainers will probably want a list of its
precise capabilities, so here it is:
Currently completing a ritual also has a chance to create Heretic
Reality Tears (of both varieties, available for Heretics to eat and
visible to crew) as a kind of cross-antagonist interaction which seemed
to make sense to me but if this seems thematically or mechanically
inappropriate it's easy to strip out.
* wew
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>