* Turf Icons Unit Test (#75488)
unit tests turf icons to find... well, missing icons. honk.
fixes#75372
corrects a bunch of things messed up in #65504🆑 ShizCalev
code: Made a new unit test to find turfs with broken/missing icons!
Rejoice!
fix: Fixed a bunch of incorrect and missing turf icons.
/🆑
* Turf Icons Unit Test
* Turf icon unit test modularity support update
* Should hopefully fix all of the failing turf icon tests
---------
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes stacking machine and adds a drone dispenser to Tram as well as the required map items list (#75653)
## About The Pull Request
Fixes#75611Fixes#75609
This makes a small change to a few tiles outside of Science. There were
three turfs that were never actually linked to any of the modular
maintenance areas, so they just sat there as dirt turfs with nothing on
them. I changed them to metal so they'll fit with the surroundings in
each template and put the fab there, since we want it to show up in all
three of them. I can go back and add that area to each of the templates
instead if MMMiracles thinks that's a better choice, but I feel like
this works fine.
Also adds the drone dispenser to required map items so unit tests will
fail if they're not present.
## Why It's Good For The Game
Map consistency and bug fixes are good.
## Changelog
🆑
fix: Adds a drone dispenser to Tramstation.
fix: The stacking machine on Tramstation no longer has incorrect input
and output directions at roundstart.
config: Drone dispensers are now listed as required map items for
passing unit tests. If one is not present on your map, it will fail the
test.
/🆑
* Fixes stacking machine and adds a drone dispenser to Tram as well as the required map items list
---------
Co-authored-by: TheVekter <TheVekter@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* 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>
* Turns Cat Butcher/Surgeon/Whatever into a Basic Mob (#75599)
## About The Pull Request
On the tin, I keep trying to tackle the larger basic mob projects but
burn out, so just enjoy these small ones to just keep that list looking
lighter and less insurmountable.
No big complex AI either, it choppa the tail off. That's all you really
need to be honest.
## Why It's Good For The Game
The cat surgeon will be just that slightly smarter. I suppose they're
still a doctor, just simply infatuated with the thought of cat tails...

noooooo my tail!!!
## Changelog
🆑
code: Cat Surgeons are a bit more smarter about attacking threats to the
world around them on their endless pursuit for those felinid tails.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Turns Cat Butcher/Surgeon/Whatever into a Basic Mob
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Ensures create and destroy never drops anything (#75535)
Just in case we ever elongate initial queue times / stop doing churn,
let's ensure that the "are we done yet" check uses all queues except the
harddel, rather then just the check queue
This also swaps us over to using QDEL time rather then queue time, since
for the check queue these are NOT the same, and they were leading to
false positives here
Required post #62969. Life is pain.
* Ensures create and destroy never drops anything
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.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>
* PT1 MAP RESET
* Lints
* [MDB Ignore] Adds a unit test for typepaths that are required to be mapped onto each station map (#74985)
Inspired by #74967 and #68459 , and the fact that Tramstation regresses
very often -
Adds a unit test, `required_map_items`, which ensures that certain
typepaths which should definitely be mapped onto every map is mapped
onto every map
It can also be used to ensure that items which should not be mapped in
multiple times are not, among other things.
I included a few examples -
- Min 1, max inf of each head of staff stamps
- Min 1, max 1 departmental order consoles
- Min 1, max inf comms console
- Min 1, max 1 Pun Pun
- Min 1, max 1 Poly
- Min 1, max 1 Ian
If, in the future, a mapper decides they (for some reason) do not want a
certain previously-required item on their map, the test can be adjusted
such that it allows excluding or something, but currently it should be
for items which require conscious thought about.
I attempted to make this a linter before realizing two things
1. Someone might make a spawner which spawns the items, or they might
get placed in a locker, in any case this accounts for everything on init
2. Linters run on every map, non-station maps included
So I went with a test
Why is it always the CMO stamp?
Not necessary (unless I find a map missing something, then this will be
updated)
* yay
* Update VoidRaptor.dmm
* Update blackmesa.dmm
* wew
* New sand and water sprites (ported from Bay) (#75254)
* e
* Update AntagInfoClock.tsx
* Update LimbsPage.tsx
* Update area_spawn_entries.dm
* Update LimbsPage.tsx
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* some markings body itself
* Markings and more
* Everything fucking else
* forgot to remove that.
* Fuck me forgot this too.
* More shit I forget ough.
* prrrobably fixes that
* Finally.
* Screenshot test
* screenshot tests 2
* last touches
* Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes (#74791)
## About The Pull Request
Replaces weakref usage in AI blackboards with deleting signals
All blackboard var setting must go through setters rather than directly
## Why It's Good For The Game
This both makes it a ton easier to develop AI for, and also makes it
harder for hard deletes to sneak in, as has been seen with recent 515
prs showing hard deletes in AI blackboards
(To quantify "making it easier to develop AI", I found multiple bugs in
existing AI code due to the usage of weakrefs.)
I'm looking for `@ Jacquerel` `@ tralezab` 's opinions on the matter, also
maybe `@ LemonInTheDark` if they're interested
## Changelog
🆑 Melbert
refactor: Mob ai refactored once again
/🆑
* Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Turns Deer into Basic Mob - They Freeze At The Sight of Vehicles (#74784)
## About The Pull Request
deers only show up in the BEPIS but i decided that they would be easy
enough to turn into a basic mob (they were). it was so easy in fact that
i decided to dip my toes into coding AI behavior, and made them freeze
up whenever they see a vehicle. this required a lot of code in a bunch
of places that i was quite unfamiliar with before starting this project,
so do let me know if i glonked up anywhere and i can work on smoothing
it out.
## Why It's Good For The Game
one less simple animal on the list. deers staring at headlights is
pretty cool i think, neato interaction for when you do get them beyond
the joke the bepis makes
i'm also amenable to dropping the whole "deer in headlights" code if you
don't like that for w/e reason- just wanted to make them basic at the
very least
## Changelog
🆑
add: If you ever happen upon a wild deer, try not to ride your fancy
vehicles too close to it as it'll freeze up like a... you know where I'm
going with this.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Turns Deer into Basic Mob - They Freeze At The Sight of Vehicles
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* refactors poles and trees into basic mobs (#74812)
## About The Pull Request
refactors poles and trees into basic mobs. If trees now see you holding
a chainsaw, hatchet, or some wood they will get angry and knock you out
for longer. Poles will run around giving some of their charge to APCs
they find along the way. i did them both in this PR coz poles were a
subtype of trees.
## Why It's Good For The Game
refactor
## Changelog
🆑
refactor: refactors trees into basic mobs
refactor: refactors poles into basic mobs
add: If trees now see you holding a chainsaw, hatchet, or some wood they
will get angry and knock you out for longer
add: Poles will run around giving some of their charge to APCs they find
along the way
fix: cells charged by the pole will now have their icon correctly
updated to reflect their charge
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* refactors poles and trees into basic mobs
---------
Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.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>
* Expands conversion unit test coverage (#74563)
## About The Pull Request
Requires #74562 and #74556 be merged first.
Unit tests cult conversion and throws in a case for rev AOE flashes
## Changelog
Not necessary
---------
Co-authored-by: san7890 <the@ san7890.com>
* Expands conversion unit test coverage
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fixes taste not existing for mobs without having their tongue changed (#74665)
## About The Pull Request
Fixes#74571
Init order memes.
All carbons innately gained the trait `TRAIT_AGEUSIA` in initialize due
to not having a tongue
Then, their organs would be created and their initial tongue would
remove this trait
But at some point init order changed, unsure when
This caused this trait to be applied at an inappropriate time, causing
all spawned carbons to be tastebud-less until their tongue was changed
## Why It's Good For The Game
mmmm
## Changelog
🆑 Melbert
fix: You can now taste once again, without requiring your tongue be
surgically replaced or reattached
/🆑
* Fixes taste not existing for mobs without having their tongue changed
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Convert Atmos Sanity to use Landmarks
* turns the test back on (and makes compile maps work)
* makes atmos sanity ignore the vr chapel
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Significantly speed up create & destroy by reducing the amount of time to wait for GC (#74604)
The check queue is 5 minutes long because that's the longest a client
can hold onto a reference. Without clients, we can drastically decrease
the time we have to wait. This lowers the time down to 10 seconds
(though everything right now deletes in 5).
This will represent a 5 minute decrease in CI across the board, freeing
up runners.
Makes a few changes to stuff that was being held for more than 10
seconds.
- `VARSET_CALLBACK` now works through weakrefs, to allow for pAIs to
have their holochassis init timers.
- Nar'Sie cleans herself up in GLOB.cult_narsie if she's deleted.
- "Spooky portals" no longer hold onto a reference for 2 minutes.
- `poll_candidates` short circuits to an empty list if there are no
candidates, to avoid several 30 second+ long timers
Originally this was going to be a more clever hack from @ MrStonedOne
about short circuiting if everything deletes before the wait, but we
realized that basically nothing actually holds onto references for that
long without clients, and that nothing really should anyway
* Significantly speed up create & destroy by reducing the amount of time to wait for GC
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.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>
* Moves revolution code of out of flash code, fixes April Fool conversion forcesay never working in any cirumstances (#74411)
## About The Pull Request
- Signallizes head revolutionary flash conversion code, moving it out of
core flash code.
- Removes "tacticool" flashing from head revs, but they can still
convert from any direction
- Fixes April Fools "You son of a bitch! I'm in" force say never
working.
- Revs are muted on conversion so they couldn't talk.
- Fixed by only muting revs on non-holidays
- Cultists are unconscious on conversion so they couldn't talk
- Fixed by only unconscious-ing cultists on non-holidays
- Brainwash victims are more often than not unconscious / asleep so they
couldn't talk
- Just left this one.
- Reduced the chance of them occurring and limits it to April Fools only
- A 1% chance of the force says ocurring means they will happen pretty
much once a week, given multiple rev / cult rounds happen every week and
on average like, 20 people are converted. A little absurd, it's good
that it never worked?
## Why It's Good For The Game
Antag code in core item code is bad
It's funny this meme has existed for like 2, 3 years now? No one's
tested it, it's never worked
## Changelog
🆑 Melbert
refactor: Removes Rev code from core flash code
fix: Getting converted on April Fools now triggers the meme force say as
always intended
del: The meme force say can no longer trigger on any day (it didn't work
before anyways)
/🆑
* Moves revolution code of out of flash code, fixes April Fool conversion forcesay never working in any cirumstances
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes slimes not having a mischievous face (#74483)
## About The Pull Request
The icon state was improperly named, so it didn't actually exist.
This fixes that.
## Why It's Good For The Game
Fixes a bug
## Changelog
🆑
fix: Slimes' mischievous emote now works.
/🆑
* Fixes slimes not having a mischievous face
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* dripped tf out ong
* oops
* catgirl lore
* slight grammar error
* YOU SHOULD APPEAR IN THE PREFS MENU NOW
* barrel activity
* hole in the ground
* oopsie daisies
* I thought I fixed this earlier
* god of war: ragnarok
didnt i do that as a commit name already
* mapping my beloved
* uhhh right the map
* oh yeah its grilling time
* dirt but icebox so I said
* balling
* some stuff idk what i did this commit
* I think the map is done
* I lied
* makes the map actually spawn
* we don't need this anymore!
* I think this time its done
* boowomp
* Those benches didn't look great unfortunately
* last stuff before pr
* I cannot spell this word
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* its not explicitly icebox ig
* christmas, just a week away
* a few of the testing things
* clothing update part 1
* clothing update pt2
* slight errors
* ill get it right first try eventually
* cta
* smelling salts
* fixes gauntlets runtiming
* gives that a desc
* CI moment
* updates the map
* trim failure
* should fix the clothing stuff
* should also fix their body temp and overheat temp
* oopsies
* slight species reflavor
* single missing )
* incorrect comments
* their own language for shittalking outsiders
* oh yeah baby its baking time
* oven tweaks
* map tweaks
* the fog is coming (single line error)
* wait that is completely wrong
* it has been done madam prime minister
* that didnt make a ton of sense now
* single word change
* screenshot test?
* language icon that isn't :3
* makes policy VERY OBVIOUS
* makes their language not pickable
* issue fixes
* likely fixes them not spawning with their species language
* single empty line
* map change
* moves the oven into the cooking module
* we dont have that file anymore
* fixes some stuff
* makes the oven emissives better
* makes for sure they spawn with the stuff they should have
* fixes their mf eyessss
* ever so slightly buffs their night vison
* Update modular_skyrat/modules/primitive_catgirls/code/spawner.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_catgirls/code/language.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* some of that stuff
* makes policy a config
* right so that's how that works
* Update modular_skyrat/modules/primitive_catgirls/code/spawner.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* fixes the screenshot test
---------
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Unit Test connected station areas (#74367)
## About The Pull Request
Ensures that we don't get station areas which are disconnected
### Mapping March
Ckey to receive rewards: N/A
## Why It's Good For The Game
"Drake, why is this room depressurized?"
## Changelog
* Unit Test connected station areas
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Removes networks from the game (#74142)
## About The Pull Request
This is a continuation of
https://github.com/tgstation/tgstation/pull/74085 - I announced in the
comments there that this would be my next PR, and this is it.
Removes SSnetwork, ``/datum/ntnet``,
``/datum/component/ntnet_interface``, ``var/network_root_id``, the
network unit test, and a lot of other things related to networks.
- NTNet circuits now check for an Ntnet relay, and uses signals to
operate.
- Logs in Wirecarp is now only for PDA and Ntnet Relay things, so you
can no longer see what ruins exist using it (why should Wirecarp know
that Oldstation spawned? The flavor is that they dont know its there).
- Removed it from MULEbots entirely, I don't think it even did anything
for them? Botkeeper seems to work without it, so it's possibly there
from pre-tgui PDAs.
- Moves assigning random names to a base proc instead of being tied to
network, this is things like random-naming scrubbers/vents. The behavior
hasn't changed at all.
- Makes Ntos work for consoles when relays are down, as the comments
said they're supposed to (because they're wired). I think this was an
accidental change on my part, so this is a revert of that.
## Why It's Good For The Game
Ntnet is ancient code that hasn't given us much that we can't do with
already existing alternatives, we've been slowly moving away from it for
init times, and though a large portion of that was limited to airlocks,
I still don't think this is a system worth keeping around.
It's way too complex to expect feature coders to do anything with it,
and too old with better alternatives for anyone to want to improve any
of it.
## Changelog
🆑
fix: Computers are now properly connected to Ethernet, and can use Ntos
when Relays are down.
refactor: Removes Ntnet and Ntnet interfaces, which was only used by
Ntnet circuits (which now directly checks for a Relay to work) and
MULEbots, which did nothing with it.
balance: Wirecarp no longer tells you what ruins spawned in a round,
instead it's limited to PDA logs, and tells you the source too. This
means the RD can catch someone running illegal programs if they don't
make any attempt at hiding it.
qol: Wirecarp logs is now set to save 300 at once, instead of 100 and
being increased to 300 by the RD during the round. This is pretty
insignificant, since there's no reason to NOT want as many logs as
possible.
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Removes networks from the game
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Replaces internal_organs with organs
* Makes all of the necessary internal_organs -> organs in our files to compile
And it seems to work too!
---------
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>