* Bitrunning 1.5: Secondary Objectives (#81828)
## About The Pull Request
Added secondary objective lockboxes to bitrunning. These pull from a
list of secondary objective loot on the domain, with a limited quantity
of items. Once there are no items left to pull, the secondary objective
disappears. If multiple secondary objective markers are placed, they
will be placed until all markers have been used, or all the items in the
loot pool are already spoken for.
To support this functionality, adds SSbitrunning, which stores all
domains as instances, instead of checking the hardcoded types as
previously. SSbitrunning manages listing domains for the quantum
console, and rolling secondary loot.
As an example of this functionality, added a side path to Glacier Grind
with a polar bear and some loot.
## Why It's Good For The Game
Secondary objectives give mappers ways to encourage players to venture
into a wider range of domains by offering non-trivial loot beyond the
fluff items given in the main caches. The absolute limit on the number
of items available ensures these items can't be farmed.
As well as supporting secondary objectives, SSbitrunning allows for
future support of features relying on mid-round modification of domains,
for instance adding custom domains.
## Changelog
🆑
add: Added secondary objectives to bitrunning!
add: Pick up encrypted curiosities and return them to the safehouse to
claim their contents.
add: Glacier Grind has been given a secondary objective, look out for
the limited edition hat.
add: Bitrunning domains can now be modified during the round by admins.
/🆑
* Bitrunning 1.5: Secondary Objectives
* Update virtual_domain.dm
---------
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
* Extends the metric prefixes. (#81739)
## About The Pull Request
Extends the metric prefixes some things will display. Adds the quecto,
ronto, yocto, zepto. atto, exa, zetta, yotta, ronna and quetta prefixes.
## Why It's Good For The Game
Makes it easier to read the numbers when someone manages to break atmos
or whatever.
## Changelog
🆑
qol: Extended the metric prefixes.
/🆑
* Extends the metric prefixes.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* fix ore vents spawning the wrong wolves and remove simple wolves (#81864)
## About The Pull Request
wolves got refactored but the ore vents were still spawning the old
versions, this fixes it and removes the old wolves from the code
## Why It's Good For The Game
fixes ore vents spawning old wolves
## Changelog
🆑
fix: fixes ore vent spawned wolves being untammable
/🆑
* fix ore vents spawning the wrong wolves and remove simple wolves
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Changes flash Paralyze to Knockdown (#81676)
## About The Pull Request
picking up the dropped rifles of #78515 and #81618 and making only one
small, measurable change that should test the general principles while
making life better if they're proven true:
does what it says on the tin: makes flashes Knockdown rather than
Paralyze
this will be successful if people report more close fights where flashes
were involved and feel better about playing on both sides of
flashing/getting flashed
## Why It's Good For The Game
hardstun rocket-tag combat bad. opportunities for counterplay and combos
good.
Paralyzes
- basically prevent you from doing anything. anything.
Knockdowns
- let you try to deploy your flash protection before the follow-up if
the opponent's just trying to use the flash
- let you try to crawl, juke, and make your opponent's life a little
less simple
- give you an actual choice: do I try to scream HELP immediately after
the flash before I get taken out, or try to use an item, swing back, or
wriggle out?
- still disarm you if you're standing which is pretty cool I think
- still let you stamcrit some goofball crawling at you even if they keep
crawling
doesn't change how mounted flashes or portable flashers work. still 10
and 8s Paralyzes respectively.
not a moth buff because they still can't wear sunglasses to no-sell the
flash entirely ha ha goofy bug
## Changelog
🆑
balance: personal flashes now Knockdown rather than Paralyze direct
targets.
/🆑
* Changes flash Paralyze to Knockdown
---------
Co-authored-by: Higgin <cdonny11@yahoo.com>
* New Shields and Sprites for them (#81615)
## About The Pull Request
Updates shield sprites to new more polished and 3/4 perspective ones.
<details>

</details>
Adds 2 new shield types:
- **Improvised Shield.** Made out of 10 iron sheets and 2 sticky tape
pieces. Weaker then buckler shield and breaks after 2 gunshots or 4
baton hits, but has a 50% (BASE FOR ALL OTHER SHIELDS) blocking chance
instead of 30% that buckler has. Bulky
- **Ballistic Shield.** Printed at Security Techfab for a lot of
titanium after getting weapon research. Strong against projectiles, but
weaker than riot shield against melee. Bulky
Both of these shields break, and both of them are their own subtype. As
such you can still only craft strobe shield with a riot shield.
## Why It's Good For The Game
The sprites of shields were very ancient and extremely flat, this gives
them a more refreshed look.
Ballistic Shield is added because Riot Shield was weakened against
projectiles, Ballistic Shield gives the crew a way to get access to
protection against projectiles at some point in the round.
Improvised Shield adds a second improvised shield in the game (after
Buckler Shield). It's balanced by being weaker than Buckler, but higher
block chance, this adds an interesting choice for players on which
shield to craft.
## Changelog
🆑
add: Adds 2 new shields to the game! Ballistic Shield - researched by
Science, and Improvised Shield - made out of iron and sticky tape
image: Riot, Strobe, Telescopic, Energy shields got new less flat
sprites!
/🆑
* New Shields and Sprites for them
* This should do the trick
* uh oh
---------
Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Does it work? Who knows.
* Mirror of tgstation/tgstation/#81492
* hmmm
* is this it?
* Oh, also synth stuff
* Catching up with some disarm refactors.
* tg's #81400
* Oh right, this
* This should cut it
---------
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* [NO GBP] fixing issues with cutouts and potted plants (#81570)
## About The Pull Request
This should fix#81560 and fix#81561,
## Why It's Good For The Game
Oh no, another invisibility exploit.
## Changelog
🆑
fix: fixed an issue with tactical appearance (potted plants / cardboard
cutouts) not going away after giving the item to someone else.
fix: Fixed slaughter demon cutouts being invisible. Also fixed another
issue with the tactical appearance not going away when the cardboard
cutout is pushed down.
/🆑
* [NO GBP] fixing issues with cutouts and potted plants
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds support for different achievement dmis (#81471)
## About The Pull Request
I am back to pushing my code improvements upstream, sorry in advance.
As the title says, this adds support for achievement icons to be in
different dmi files than the default, pretty much the exact same way
that Language icons (for chat assets) do.
## Why It's Good For The Game
It is one of the few things in game (the only other thing i can think of
that does this rn is barsigns) that cannot have their icon changed when
trying to make a subtype, this is very limiting and very annoying,
especially since dmi conflicts are one of the worst types to deal with,
this would make my life a lot easier.
## Changelog
No player-facing changes.
* Adds support for different achievement dmis
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Adds an IS_CHANGELING helper (#81228)
## About The Pull Request
What it says on the tin. I also replaced checks with it everywhere I
found appropriate, hopefully without accidentally breaking anything.
## Why It's Good For The Game
We have a helper for most other antags, and it makes code a lot cleaner
and easier to read. I'm surprised we didn't have this one already.
## Changelog
🆑
code: added an IS_CHANGELING() helper and used it where applicable
/🆑
* Adds an IS_CHANGELING helper
* skyrat stuff
---------
Co-authored-by: A miscellaneous Fern <80640114+FernandoJ8@users.noreply.github.com>
Co-authored-by: jjpark-kb <mccorvey.norman@gmail.com>
Kicks Martial Arts out of the attack chain (yippee), makes it use signals, plus a large clean up of existing martial arts (#81097)
- Kicks Martial Arts out of the attack chain.
- All Martial Arts attacks are now handled via unarmed attack or grab
signals
- This means all martial arts are now technically on the living level,
allowing any mob that can unarmed attack to martial arts. Sort of. YMMV.
- All martial arts block checking is now handled by the arts themselves,
meaning you can selectively decide for a martial arts strike to not be
blocked. Maybe good for the future.
- A comprehensive cleanup of all existing martial arts. Improving var
names, code, adding some missing animation calls, etc.
Fixes#74829
Untangles the mess that is martial arts, making it a lot easier to work
with the attack chain and making it overall a ton more consistent.
🆑 Melbert
refactor: Big martial arts refactor, they should now overall act a ton
more consistent. Also technically any mob can do martial arts. Let me
know if something is funky.
/🆑
---------
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Dynamic Husk Icons (#81080)
Husk icons are now generated dynamically by greyscaling the limbs and
applying the husk blood overlay
rather than everything using the same husk sprite
Less sprites needed, also good for nonhuman races especially those with
non-humanoid shapes
All that is needed for a husk icon now is a blood overlay instead of an
entire limb set
Human, Lizard, Moth, Monkey husks
PIC IS A BIT OUTDATED, THE BLOOD IN PIC IS DARKER THAN HUSK BLOOD
(fixed) AND IT DOESNT "FIT" TO LIMB SPRITE (fixed)

🆑
refactor: Husk icons are now dynamically generated. See if you can
identify what species it was!
/🆑
* Design datum time cleanup (#81133)
Fast little PR, with the autolathe and design datum time changes, I saw
that we didn't have design datums moved over to using time defines
uniformly, and in a few cases the times were using material quantity
defines (oops!), so I've quickly moved those over to using our correct
time defines as guided by common sense.
Cleans up the code for this section going forward so that when everyone
copypastes a new design datum for the next feature at least we're using
consistent and correct standards.
No player facing changes.
* Hmmm
* uh oh not yet
* Yo, this should do the trick.
---------
Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* split area.contained_turfs up by zlevel, make init 10 seconds faster (#80941)
## About The Pull Request
Situation: areas have a list of all turfs in their area.
Problem: `/area/space` is an area and has a 6 to 7 digit count of turfs
that has to be traversed for every turf we need to remove from it. This
can take multiple byond ticks just to preform this action for a single
space rune
Solution: split the list by zlevel, and only search the right zlevel
list when removing turfs from areas.
replaces `area.get_contained_turfs()` with a few new procs:
* `get_highest_zlevel()` - returns the highest zlevel the area contains
turfs in. useful for use with `get_turfs_by_zlevel`
* `get_turfs_by_zlevel(zlevel)` - returns a list of turfs in the area in
a given zlevel. Useful for code that only cares about a specific zlevel
or changes behavior based on zlevel like lighting init.
* `get_turfs_from_all_zlevels()` - the replacement for
`get_contained_turfs()`, renamed as such so anybody copying/cargo
culting code gets a hint that a zlevel specific version might exist.
Still used in for loops that type checked so byond would do that all at
once
* `get_zlevel_turf_lists()` - returns the area's zlevel lists of lists
but only for non-empty zlevels. very useful for for loops.
The area contents unit test has been rewritten to ensure any improper
data triggers failures or runtimes by not having it use the helpers
above (some of which ensure a list is always returned) and access the
lists directly.
* split area.contained_turfs up by zlevel, make init 10 seconds faster
* eeyes
* Update area_spawn_subsystem.dm
* Unshits turf contain code slightly (#81023)
Literally just implements my reviews from #80941
I am frankly a smidge pissed that the pr was merged without them being
handled. No code is worth merging past known issues, and if the author
is just gonna dip then that's life.
I don't like privileging mso on stuff like this, especially because
frankly I'm kinda mad at him rn but also because when a pr is made the
onus on finishing it falls to the person who made it.
Should not need to clean up after someone as a maintainer, and shouldn't
normalize doing it. I'm not like mad at zypher directly mind he offered
to do this too, just the idea he was espousing here.
---------
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes assorted head harddels, removes specific organ vars in head (#80950)
Fixes#80926, fixes#80372
The tongue, eyes, ears and brain vars were also being updated and
cleared elsewhere, runtiming whenever a regular head got dismembered and
then emptied, which would eventually cause a harddel due to improper
clean-up
I've fixed the errant proc and just removed those vars because I don't
like having duplicate references for no reason (they should always
already be in contents)
Not player facing
* Fixes assorted head harddels, removes specific organ vars in head
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
* Optimizes Reftracking (Bigly) (Plus harddel fixes) (#80443)
## About The Pull Request
### Reftracking BS
Alllright so reftracking is slow, really really slow.
That's a problem for me, both because I want it to be fast so I can more
efficiently torture players by running it on live, but also because it
impedes both local and CI runs.
So I've set out to micro optimize the DoSearchVar proc, one of the
hottest in the game.
I've done this in a few different ways.
#### The simple shit
Removing redundant proc args
Yeeting assoc arg setting (extra cost)
Moving if statements around to prioritize the more common case
Ignoring empty lists.
#### The not simple shit
Throwing our snowflake list checking into the sun
(Background, byond has some special lists that cannot be accessed like
an assoc list, trying to will lead to runtimes)
The way we handle this involves inspecting their ref string, and it eats
a LOT of time.
Faster then to mark all the lists we know are special by var name, and
then use try/catch to detect and silence anything that sneaks through
(this is on the order of like 1/3 per run, kinda curious what they are
tbh)
Thanks to MSO for the idea for this btw.
Removes the vars and logic that tied ref searching to clients.
It's not how this code is used, and it slows everything else down for
really no reason
Added support for handing in a known "hanging reference" count, and then
searching for that.
This lets us early exit the ref search if we find everything we were
looking for, which is REALLY powerful, and why I asked for refcount() in
the first place.
### Harddel Fixes
[Fixes some harddels w gulag stuff born of the 515 one way ref
issues](046d7daa03)
[Ensures proximity cameras clean their ref to their proximity datum if
it's
deleted](ff607e9ccb)
[Deleting a pipe connected via the gas_machine_connector datum to a
machine should also delete that machine (harddel
fix)](9eecca22e7)
## Why It's Good For The Game
All this combined speeds up refsearching massively, on the order of
hundreds of seconds, and makes it far less time consuming for both CI
and running on live.
I'll be bullying some servers semi soon, want to see what I can cut out.
* Optimizes Reftracking (Bigly) (Plus harddel fixes)
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Yeets Hallucination GFI for Images (#80859)
## About The Pull Request
THEY PRODUCE IMAGES ANYWAY WE CAN JUST COPY THE MA
AHHHHHHHHHHH
* Yeets Hallucination GFI for Images
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes confetti shotgun shells (#174)
* initial
* fix confetti shell
* donkpocket sprites and more
* this is for a different PR
* forgot these
* ..()
* reviews
* // instead of /// for overrides
---------
Co-Authored-By: Bloop <13398309+vinylspiders@users.noreply.github.com>
* New Quirk: Appendicitis Survivor (#77)
## About The Pull Request
Title.
## How This Contributes To The Nova Sector Roleplay Experience
Spontaneous appendicitis is.. an event!
This adds the Appendicitis Survivor quirk from my server,
[TaleStation](https://github.com/TaleStation/TaleStation).
Its a positive (-2) quirk, while low impact, some people may appreciate.
Its also another low cost quirk, so people could pick it up if so
desired.
## Proof of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑 Jolly
add: New quirk for those who hate their appendix: Appendicitis Survivor!
A positive (-2) quirk.
/🆑
* Improves the names, descriptions, and extended descriptions of nearly all my firearms (#90)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
Three steps
1. Guns no longer list their company in their name, this made some gun
names too long to refer to or just look weird.
2. Every gun now tells you what it fires in its examine if it didn't
before.
3. Every gun's examine text now hints that you can double examine for
more info on the weapon.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
Makes a lot of information about these weapons more convenient or more
apparent than they were before, and removes some unneeded information
(like we didnt really have to have the guys that made the gun displayed
straight in the name, you can see the company that makes them in the
examine text already).
<!-- Please add a short description of why you think these changes would
benefit the game and the roleplay atmosphere of the server. If you can't
justify it in words, it might not be worth adding. -->
<!-- Include any screenshots/videos/debugging steps of the code
functioning successfully, between the </summary> and </details> code
blocks. -->
<!-- To our mappers and spriters: Posting screenshots of content INSIDE
EDITORS (aseprite, PDN, SDMM, ect) is NOT valid proof of testing. Please
make sure that you COMPILE the game and provide PROOF you tested your
edits. -->
<details>
<summary>Screenshots/Videos</summary>


</details>
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
qol: The names and descriptions of every paxilmaniac weapon have been
improved to be shorter (names) and mention at least what bullet the
weapon fires (description)
qol: Every weapon with an extended description has a hint in its normal
examine telling you that you can look further to get more info on the
weapon
code: Two instances of now-deleted weapons paths (which i found out
about through someone getting one in a christmas tree) existing due to
manufacturer examines of all things have been cleaned up, players wont
notice this one i think
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
* Re-adding Cat Scream (Normalized) (#123)
* Re-adding Cat Scream (Normalized)
* Update modular_nova/modules/emotes/code/scream_datums.dm
Renamed the file from cat.ogg to cat_scream.ogg
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Renamed cat.ogg to cat_scream.ogg
* removed cat.ogg and replaced with cat_scream.ogg
* Removes old scream sounds, renames it properly
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* [MODULAR] Fixes clockcult slab ui, some runtimes (#122)
Fixes slab ui, some runtimes
* [MODULAR] Fixes colonial cloaks not being able to hold any suit storage items (#129)
* Fixes imperial police cloak not being able to hold any suit storage items
* Moves this to the NRI police cloak
* Moves this to the NRI police cloak
* Update clothing.dm
* Update modular_nova/modules/novaya_ert/code/police_outfit.dm
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Resprited Vox Clothing (Nova Station Edition) (#97)
* Resprited Vox Clothing
* Update screenshot_humanoids__datum_species_vox_primalis.png
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Chitter emote is the TG chitter sound unless you're a moth (#111)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
Changes the *chitter emote to play the standard TG chitter sfx, unless
you're a moth, then it plays the moth chitter.
TG chitter is cute.
<!-- Include any screenshots/videos/debugging steps of the code
functioning successfully, between the </summary> and </details> code
blocks. -->
<!-- To our mappers and spriters: Posting screenshots of content INSIDE
EDITORS (aseprite, PDN, SDMM, ect) is NOT valid proof of testing. Please
make sure that you COMPILE the game and provide PROOF you tested your
edits. -->
<details>
<summary>Screenshots/Videos</summary>
https://github.com/NovaSector/NovaSector/assets/77534246/eae4fc45-d104-4588-8537-394da9304151
</details>
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Chitter emote has a different sound effect, unless you're a moth
/🆑
* Adds fancy masquerade masks (#180)
* Adds masquerade masks, making them available in the AutoDrobe
Thanks to Crumpaloo for the sprites!
* Early mirror of https://github.com/tgstation/tgstation/pull/80663
They're not properly usable otherwise
* Updates the sprites so they've got transparent eyes
* Adds the masks to the loadout
* Fixes variation flags and muzzled GAGS config, makes it act as internals
* Adjust some of the sprites a bit more, making snouted ones have smaller eyeholes, and vox ones looking more like masquerade masks
* Updates the sprites for the Vox Primalis!
---------
* Update greyscale_configs.dm
* Fixes Niftsoft Settings Panel (#208)
Fixes Niftsoft Settings
* 0
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Kyogon <30851775+Kyogon@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: HalcyonicWolf <mmeade362@gmail.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
* hygeienbots basic bots (#80435)
## About The Pull Request
turns hygenic bots into basic bots. also now PAIs and people can play as
hygeinebots. and they can wear hats
## Why It's Good For The Game
transforms hyginebots into basic bots. their old AI used to handle all
the logic. i moved some of the logic to the mob itself so players can
also clean (or burn) things. also this pr will add pathing limits to
bots, in the case the jps movement thinks it can reach something, but
actually cant, in which case the bot will give up the chase
## Changelog
🆑
refactor: hygeinebots are now basic bots. please report all the bugs
fix: fixes hygenebots not being able to patrol
add: hygeinebots can now be controlled by Players
/🆑
* hygeienbots basic bots
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Creates a unit test for loadout item duplicates
* Update loadout_dupes.dm
* Update loadout_dupes.dm
* Update loadout_dupes.dm
* Update loadout_datum_under.dm
* I'm going to put the cargo shorts under misc/under
* Revert "I'm going to put the cargo shorts under misc/under"
This reverts commit e4cdbd80e42424091ad76be67502ced2cbadec13.
* Deletes unused hydroponics code (#80156)
## About The Pull Request
`/obj/item/seeds/sample` was completely unused, ever since it's
inception in #16082
(d513f52244)
as far as I can tell
(Me when "adds plant samples for future use" never makes use of them in
the future)
All this does is complicate hydro code so it dies.
Anything it is doing should be handled by genes probably
While I was here I made sure nothing in `can_add` will break and touched
up the code a tiny tiny bit. I kept it as `SHOULD_CALL_PARENT` even
though it doesn't make use of it at the moment because every trait
currently calls parent / respects return value, so sure, why not
## Changelog
Not necessary
* Deletes unused hydroponics code
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds medical record descriptions for quirks without any
* Fix Conflict, Preserve SR edit
* Updates Ration Ticket with medical Records
* Two more quirks
---------
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com>
* basic cats and mini kitchen helpers (#79800)
## About The Pull Request
this pr transforms cats into basic pets! cats now have some new
behavior. they can carry fish and hunted mice in their mouths to deliver
it to kittens, and kittens will eat them.


if a kitten sees you holding food, it will point at you and meow loudly
until u give it the food.
becareful when putting male cats near each other, there is a small
chance they get into a heated argument and meow loudly at each other
until one of them flees.
also added a new small cat house for cats. cats will use these homes if
u build one near them (using 5 wood planks)

Chefs can craft the cake cat and breadcat. these are useful cats because
they can help the chef around in the kitchen. they will turn stoves and
grills off when food is ready, so they dont burn. and the cake cat will
help the chef decorate his donuts
## Why It's Good For The Game
refactors cats into basic mobs and gives them a deeper ai
## Changelog
🆑
refactor: cats are now basic pets. please report any bugs.
add: the cake cat and bread cat can now help the chef around in the
kitchen
/🆑
* basic cats and mini kitchen helpers
* Modular
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Bumps compile to 515 (#79134)
## About The Pull Request
LSP supports it, let's GOOOOOO
I've removed the 515 tests since they're stable, alongside the libcall
wrapper. left the rustgcall wrapper cause yaknow memes
Just removed all the 515 and 514 particular define wrappers. gaming
## Changelog
🆑
server: Minimum compile version has been bumped to 515. clients still
support 514 but we're gonna start using 515 restricted features for
serverside now.
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Bumps compile to 515
* Fixes a TGS regression in its API
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes failure state indication message (#79988)
This is actually determining if the item was deleted before it had a
chance to Initialize.
* Fixes failure state indication message
---------
Co-authored-by: oranges <email@oranges.net.nz>
* Add the space turf type to the space unittest (#79986)
This might seem pointless, but it helps identify spurious failures due
to something else blowing a hole in the station before this test runs.
* Add the space turf type to the space unittest
---------
Co-authored-by: oranges <email@oranges.net.nz>
* Fixes hearing messages from speakers on another z level (515 fix) (#79888)
515 changed get_dist to return inf when either end is on another z
level, instead of just the maximum range. `/mob/living/Hear` early
returns when the speaker is too far away to hear. Previously we would
get around this by passing in INFINITY as the range for the message, but
the INFINITY define is just a very large number instead of real infinity
which is what byond gives back for get_dist.
I also improved the unit test a little while debugging this.
* Fixes hearing messages from speakers on another z level (515 fix)
---------
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Monkey Business actually spawns monkeys on the station. (#79276)
## About The Pull Request
The monkey business unit test was apparently not actually spawning
monkeys on the station like it was supposed to. It was trying to find
open turfs inside of area _typepaths_, which obviously do not contain
turfs. Functionally, this means it was summoning a number of monkeys
into the same turf of the unit test z-level equal to the number of areas
on the station map. Now it will actually place one monkey in every area
of the station itself.
This was an incidental discovery while trying to diagnose #79147 with
Jacquerel. We still don't know what's causing that one, and I doubt this
will do anything about it, but nonetheless the unit test wasn't working
right.
## Why It's Good For The Game
Makes a unit test do what it was actually intended to do, which is put a
bunch of monkeys all over the station and see if they ruin anything.
This might actually cause _more_ test failures since they're being put
in a less controlled environment, but we'll see.
## Changelog
Nothing player facing.
* Monkey Business actually spawns monkeys on the station.
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Reworks transformation sting to be temporarily in living mobs, forever in dead mobs
* Modular updates
* Recaches the icons generated in the `changeling` unit test
* Pain
* More tweaks
* Disable unit test
* Let's see if we can pass test temporarily
* Makes transformation sting unobtainable more cleanly
* Unit test
* Cursed proc
* Kill the unholy copy pasta
Seriously this stuff is just awful. This is not maintainable.
* test this
* Update comments
* Fixing the screenshot test, maybe?
* grrr
* Update changeling.dm
* Attempt to fix this nonsense
* Update changeling.dm
* Update changeling.dm
* Update changeling.dm
* Update dna.dm
* Fixes it?
* Screenshot test
* Update _traits.dm
* Update _traits.dm
* Fix this
* Update dna.dm
* Update dna.dm
* Hmm
* This proc needs a new name
* I want to scream but I have no mutant parts
* Fix
* Update species.dm
* Update species.dm
* Update species.dm
* Update species.dm
* Some touch ups
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
* Refactors Parrots into Basic Mobs (ft. Ben10Omintrix/Kobsamobsa)
* UpdatePaths
* Modular, cleanup, porting parrot commands into the new system
* makes poly slightly less of a dick
* Update parrot.dm
* Update parrot.dm
* Update tgstation.dme
* Revert "Update tgstation.dme"
This reverts commit a8b40c4aba524c271db02c271089664649dea1eb.
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Calls Allocate on the spawn humans unit test humans (#79827)
## About The Pull Request
I have found a unit test that spawn instances of
`/mob/living/carbon/human/consistent`, without using `allocate`, so they
won't get into the list of things to be deleted when CI finishes
running. This PR ensures that they won't stick around after the unit
test has finished.
I kept them picking a random tile from the unit test room, instead of
going with `allocate`'s default of the test area's bottom left corner.
Could have maybe swapped it to pick_n_take so there is no chance of them
piling up, but that is not relevant to the CI issue.
## Why It's Good For The Game
Maybe this will stop the random CI failures where
`/mob/living/carbon/human/consistent` fails to be deleted.
## Changelog
Nothing player facing
* Calls Allocate on the spawn humans unit test humans
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Fixes bug with high luminosity eyes, & fixes eyes being on the wrong side of the head! (#79760)
* Fixes bug with high luminosity eyes, & fixes eyes being on the wrong side of the head!
* Screenshot test
* Merge skew
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Splits placeontop proc (#79702)
## About The Pull Request
I find the proc hard to read honestly. There's no reason we can't split
this into two functions - the secondary functionality is used only once,
in reader.dmm.
## Why It's Good For The Game
Code improvement
Glorious snake case
## Changelog
N/A nothing player facing
---------
Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com>
* Splits placeontop proc
* Update brass_spreader.dm
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>