* 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>
* Reworks gym equipment (#75389)
## About The Pull Request
Gym equipment are currently ported from Goon code, and I didn't like how
it currently worked as it was buggy and the code was a mess. I decided
to just rework how they worked entirely. I left the parts that weren't
Goon code (like tooltips & deconstruction) alone because it's not goon
code and I think it's fine that way.
- Now you buckle yourself to it (like a chair, I didn't like how it
didn't work like one) and can work out with an action button you get on
buckle, you can do as many sets as you want, then unbuckle & go.
- You aren't hardstunned for 8 seconds for clicking on it anymore, you
aren't flying around because the stun doesn't even last the duration of
the animation anymore.
Video demonstration
https://github.com/tgstation/tgstation/assets/53777086/f5ae86f1-65fb-46c6-8a5f-8f9d9f0548b3
## Why It's Good For The Game
Reworks old code
Removes un-documented Goon code
Makes gym equipment less broken than it currently is.
## Changelog
🆑
qol: Gym equipment was reworked. You now buckle yourself to weight
machines to use them, rather than clicking on it and getting stunned for
a few seconds. It also means it works like a chair now.
qol: Gym equipment no longer breaks a sweat in no gravity.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Reworks gym equipment
* updatepaths
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@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>
* Requests console helpers (#75224)
## About The Pull Request
This PR adds mapping helpers for requests consoles. Two of them set up
if the console can receive ore updates, and if it can make
announcements, flipping their relevant variables to TRUE. The other
three adds the consoles to their relevant department console lists
during late initialize. This allowed me to remove three variables
directly from the consoles themselves.

New sprites by CoiledLamb!
~~This PR also anchors mapping helpers, to prevent effects like the
roundstart crate initialization from moving them.~~ This was fixed by a
different PR.
## Why It's Good For The Game
Less var edits, easier to see a console's type at a glance.
## Changelog
🆑 Profakos, sprites by CoiledLamb
qol: Most request console varedits have been moved to mapping helpers.
/🆑
* Requests console helpers
* updatepaths
---------
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@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>
* Lints against UpdatePaths Scripts without a numeric prefix (#75066)
I forgot this for like the third time in #75001 and I'm sick of never
remembering to do it so I'm adding a lint so I never forget again (and
will also help other people never forget to add the PR-number prefix).
## Why It's Good For The Game
UpdatePaths scripts should have a prefix with the PR number that adds
them, but since you don't know the PR number when you're making the
script (since I make the script very early in my development process),
it's often forgotten (especially since no one really looks at file
names). Let's end forgetfulness by failing CI if a script without a
numeric prefix is detected.
* Lints against UpdatePaths Scripts without a numeric prefix
---------
Co-authored-by: san7890 <the@san7890.com>
* Converts Spiderlings from Structures to Basic Mobs (#75001)
If I could've made this more atomic, I would have in a heartbeat, trust
me.
## About The Pull Request
Hey there. People were mocking us for having spiderlings still be a
subtype of `/obj/structure`. I decided to take a lot of time to fix
that. A lot of behavior it was implementing was just pseudo-mob stuff,
so it was actually easier than it looked for the raw conversion. A lot
of the footwork on spider stuff in the basic framework was already done
previously by Jacquerel, so that was pretty nice.
However, there are two new things that weren't introduced in the code
that had to be put in.
A) A component to handle growth and differentiation into a mob. This may
have already existed, no clue. If it does (and it's NOT
evolutionary_leap), let me know.
B) AI Behavior to handle seeking out a vent, entering a vent, and then
exiting out of a different vent. I may have gone a bit wacky on the
code, but it certainly works as expected (spiderling goes in one vent,
exits the other). Let me know if you can think of a way it can be better
optimized, but it was deliberately written to be very failsafey in case
shit goes yonkers.
One fundamental difference between structure spiderlings and basic mob
spiderlings (beyond the AI and not just a random prob() check for
movement) is the fact that they had vent movement coded in... but we
_really_ don't need stuff like that for our intents and purposes. If the
range turns out to be too OP in the current framework, we can always
change it up a bit, but also there's a _lot_ of vents we can end up in
the station (my testing had one spiderling end up in the AI sat to get
obliterated).
## Why It's Good For The Game
Spiderlings aren't structures! They behave like a mob should! Players
can possess spiderlings! They work seamlessly with differentiating into
a giant spider! Better AI! More room for people to add into this very
under-utilized buggers!
## Changelog
🆑
refactor: Spiderlings are now basic mobs, report any complete
weirdness/deviation from known behavior. They should be a lot more
intelligent now though.
add: AI Spiderlings are super fragile, but they're also super fast,
especially when they get into a vent. Once they're in circulation, they
could end up everywhere! Maybe in the armory, maybe in a locked closet
in maintenance. Be sure to be vigilant and splat them whenever you can
to save the station from a whole lotta heartache!
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Converts Spiderlings from Structures to Basic Mobs
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Adds helpers for apc. (#74651)
## About The Pull Request
I asked someone in discord if it was worth it, they said it was, from
what i remember at least.
## Why It's Good For The Game
More comfort with apc's for mappers.
---------
Co-authored-by: san7890 <the@ san7890.com>
* Adds helpers for apc.
* wew
* wew
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@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>
* Updates `space_bat.txt` to match our current UpdatePaths .txt naming conventions (#74771)
## About The Pull Request
Willard man bad.
## Why It's Good For The Game
Its not its not even important, although San made this change a long
time ago and we're keeping it consistent.
* Updates `space_bat.txt` to match our current UpdatePaths .txt naming conventions
---------
Co-authored-by: Jolly <70232195+Jolly-66@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>
* Atmospherics Asteroid UpdatePaths Fix (#74489)
## About The Pull Request
I replaced the wrong subtype, so this change never went through. Whoops.
It was also missing the proper naming scheme, that's also my bad.
## Why It's Good For The Game
i made the subtypes but they never got applied because i ballsed it up.
## Changelog
Nothing that concerns players.
(i found this because we're still getting active turfs on this ruin in
production, but I was unable to replicate it with or without this fix...
ugh)
* Atmospherics Asteroid UpdatePaths Fix
---------
Co-authored-by: san7890 <the@san7890.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>
* Chasm Hell On Icebox - 300 Active Turfs on Prod Moment (#74410)
## About The Pull Request
Spontaneous regressions introduced by #74359
(1e58c1875d).
```txt
- Z-Level 2 has 150 active turf(s).
- Z-Level 3 has 150 active turf(s).
- Z-Level trait Ice Ruins Underground has 300 active turf(s).
- Z-Level trait Mining has 300 active turf(s).
- Z-Level trait Station has 300 active turf(s).
- End of active turf list.
```

Basically the lavaland ruin sucks dogshit and I had to do a lot of stuff to account for everything failing. There was even a moment where we were adding something to `flags_1` instead of `turf_flags` and that was also really bad to figure out.

i also had to add orange genturfs because it was really getting bad with all of the assertions we had to keep making, especially since stuff like this could also show up:

That's the prison in the red box, those are active turfs because a chasm scraped it away.
Sorry if this is hard to follow but I promise you everything in this is essential. I wish we didn't have to rely on turf flags as much as we do but this is a fix PR, not a refactor.
## Why It's Good For The Game
Even one active turf on IceBox ate up _three_ seconds of SSair's initialization every single time it was really fucking bad.
We haven't had to deal with chasms for about two years so there's a lot of mapping assertions we made since they just weren't a thing, but now they're back so lets do it properly.
## Changelog
🆑
fix: The prison on IceBox should no longer leak air as often.
/🆑
I have compiled this map about 30 times until active turfs stopped fucking happening and now I am content. This likely doesn't fix _everything_ because some stuff can still be hidden to me, and we still have PRs that need to be merged to reduce the amount of noise we're getting on prod.
* Chasm Hell On Icebox - 300 Active Turfs on Prod Moment
---------
Co-authored-by: san7890 <the@san7890.com>
* [MDB IGNORE] Gets rid of the /brig shuttle floor subtype (#74100)
## About The Pull Request
Removes the /brig red plastitanium shuttle floor, replaces the checks
related to it with checking if the area is the shuttle brig
From what I checked in vscode, all the shuttles that use this floor
already also have the shuttle brig area on the same tiles so it changes
nothing (and might even fix things if shuttles don't use this floor type
for their shuttle brig)
## Why It's Good For The Game
Why the fuck are we checking for a TURF
## Changelog
Not player facing
* [MDB IGNORE] Gets rid of the /brig shuttle floor subtype
* rest the affected maps
* Update emergency_outpost.dmm
---------
Co-authored-by: SgtHunk <68669754+SgtHunk@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* "Biscuit" cards, and also now slip papers are actually paper! (#74329)
## About The Pull Request
**This is not a literal biscuit which you eat. "Biscuit" is just a
nickname of this kind of snap-cards.**
Slip paper is now actually paper, before that, it was just literally
nothing, an object which does nothing. Because of that, the paper cutter
was useless as well, as it turned normal paper into useless paper slips.
Because of this now paper cutters are placed at:
- Bridge
- HoP office
- Warden office
- Cargo
Also adds biscuit cards. If you have no idea what it is, it's a kind of
card placed around a piece of paper usually to conceal some document and
it can be opened by cracking it with a crunchy sound (that's why it's
named a biscuit). Those are usually only opened in certain situations or
emergencies (The most famous example is the US president's nuclear
biscuit, which contains nuclear codes)
There are 2 biscuits: Normal and Confidential.
Normal is a plain biscuit with nothing really special, can be coloured
if you want as it's white.

The confidential biscuit is blue and has "NT" on it.

There is a not-sealed biscuit you can print in autolathe, it starts open
so you can put paper in and seal later making it a normal crackable one.
Now spare ID safe code automatically spawns in a confidential biscuit in
a new paper slip subtype - corporate slip paper. It's a plastic card
which is sturdier than the normal paper clip.

You can also create the corporate paper slip paper using - normal paper
slip, plastic, and captain rubber stamp (making this paper having a rare
status)


## Why It's Good For The Game
Paper slips being not paper is stupid and has no point in being that
way. This also made the paper cutter useless; hence, it was never placed
on any map (and never used).
This PR makes it paper, so it's usable when crew members need a paper
slip instead of a full-size sheet.
Placing paper cutters around the station makes it so the crew can
produce paper slips when they need them, this also gives it finally a
use and place on the station.
The 'biscuits' are cool and give more flavour to the spare ID safe
codes, as well as to other documents people might put in future PRs.
This also makes those paranoid captains which are scared of their spare
ID safe code being stolen and read can sleep tight, as now if someone
opens it up it's really obvious. Now also you can really make sure if
that head is lying about "not touching the spare ID", _but not as anyone
cares really._
**Okay, it's draft for now just so I can add some new things, and fix
the dupe bug:**
- [x] Being able to fax the paper biscuits
- [x] Make it impossible to cut paper slips into paper slips
- [x] Make corporate paper slips craftable or printable
- [x] Make confidential biscuits craftable or printable
- [x] Make paper cutters orderable at the cargo
_CRUNCH_
## Changelog
🆑 DrDiasyl aka DrTuxedo#0931
add: Added 'biscuit' cards! They can contain documents and can only be
accessed by cracking them open, you can't close them back. Nanotrasen
now stores spare ID safe codes in them.
add: Placed paper cutters around the station. They're in Bridge, HoP
office, Warden office, and Cargo.
add: Now you can order paper cutters at cargo.
fix: Now the paper slip is actually paper.
imageadd: The paper slips sprite was slightly tweaked to have text lay
more logically, added the corporate paper slip.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* "Biscuit" cards, and also now slip papers are actually paper!
---------
Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Adds The Sturdy Shako (HoS Hat) (#74277)
## About The Pull Request
Adds a new craftable HoS shako, made from the standard peaked cap and
some plasteel and gold.

Moves the HoS cap into a subtype `/obj/item/clothing/head/hats/hos/cap`
to avoid catching the beret in the crafting recipe, the base type
`/obj/item/clothing/head/hats/hos` is now a generic subtype which should
never exist.
(Yes there's a TF2 reference included with the hat)
## Why It's Good For The Game
Adds an additional level of style for an HoS willing to put a little
effort into gathering the required materials. As it is crafted as a
one-to-one trade with another headgear there is no additional spare
headgear introduced.
## Changelog
🆑
add: The Nanotrasen Costuming Department has released specifications for
how to convert the Head of Security's cap into a shako.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Adds The Sturdy Shako (HoS Hat)
---------
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Add a mapping helper for welding airlocks (#74206)
## About The Pull Request
What it says on the tin. Warning: copy-pasted mapper sprites.
## Why It's Good For The Game
Fewer varedits, better maintainability, more obvious in the map editor
what's been applied to a given airlock.
## Changelog
No player facing changes.
* Add a mapping helper for welding airlocks
---------
Co-authored-by: Vire <66576896+Maurukas@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Minigame DLC - Intergalactic Basketball League (#72459)
## About The Pull Request
New DLC bout to drop.

Lots of new things included:
- New basketball minigame that can be played between 2-7 players
- Crafting recipe for basketballs using leather sheets
- Crafting recipe for basketball hoops using metal, rods, and durathread
- New basketball sounds for the ball and hoops
- New scorecard that can be reset using CtrlClick
- Basketball hoops can be rotated using a wrench and AltClick
- Dunking and shooting animations.
### New basketball mechanics that now utilize stamina:
- Dunking costs large stamina and you must be directly adjacent to the
hoop and click on it.
- Shooting costs medium stamina and uses RMB. Shooting lets you aim the
ball over peoples heads, meaning anyone obstructing your path will be
bypassed. There is a half second delay during shooting where someone can
bump or push to prevent the shot from succeeding.
- Shooting from further away results in less accuracy. If you do not
click directly on the hoop, there is also an accuracy penalty!
- Passing costs no stamina and uses LMB. Trying to score into the hoop
via passing results in a reduced chance.
- Spinning costs medium stamina while holding the ball. It gives a
reduced chance for the ball to be stolen but decreases accuracy for
shooting.
- Pushing a player using RMB will attempt to steal the ball and drain
their stamina.
- The chance to steal the ball is based on the stamina of both players
and the direction they are facing. If the person with the ball is at low
stamina, and the person stealing is at full stamina, they will have a
higher chance. Likewise, if the person with the ball is face to face
with the stealer, then there is a higher chance for the ball to be
stolen. If the person has their back to the stealer, then it's a lower
chance.
- Shooting from more than 2 tiles away, results in 3 points. See below
picture to know the distance.

### Now to introduce the teams:
<details>
<summary>Nanotrasen Basketball Department</summary>

</details>
<details>
<summary>Greytide Worldwide</summary>

</details>
<details>
<summary>Lusty Xenomorphs</summary>

</details>
<details>
<summary>Space Surfers</summary>

</details>
---
Big shoutout to the nukie round a few weeks ago where the nuke ops
challenged the crew (and clown) to a basketball match on their rebuilt
basketball shuttle. The nukies won, but it made me realize that the
basketball mechanics were very raw and needed some polishing.
#### TODO LIST
- [x] Fix bug where ball only goes over peoples heads if they are 1 tile
away
- [x] Remove leftover code comments and procs
- [x] Rebalance stamina values (maybe move this to different ball types)
- [x] Fix basketball stadium template runtiming from wall smoothing
during load
- [x] Fix space surfer stadium having an air breach somewhere
- [x] Add more sounds for when ball is passed, shot, or dunked
- [x] Make it so that holding a ball while on the floor isn't possible
(to avoid those meta cheese strats)
- [x] Drop basketball lets mobs make sounds when spinning (need to
detach signal?)
- [x] Finish adding a simple lobby menu for minigame
## Why It's Good For The Game
_If you can't slam with the best, then jam with the rest._
## Changelog
🆑
add: Add crafting recipe for basketballs (leather sheets) and basketball
hoops (metal, rods, and durathread)
add: Add new basketball minigame for 2-7 players. There are 4 different
courts and teams by default with more planned to be added later.
add: New basketball mechanics that uses stamina. Shoot with RMB, pass
with LMB, and dunk by clicking the hoop while adjacent. Spinning while
holding the ball decreases the chance for someone to steal the ball, but
it decreases your shooting accuracy. Shooting from 2 tiles away lets you
score 3 points.
qol: Basketballs now play a buzzer sound when someone scores. CtrlClick
will reset the scorecard and AltClick with a wrench will rotate the
hoop.
qol: Dunking and shooting animations for basketball.
soundadd: Added basketball bounce sound with credits attribution
imageadd: Added basketball icon to minigames. Move baseball and
dodgeball icons to toy/balls.dmi
/🆑
* Minigame DLC - Intergalactic Basketball League
* Update CentCom_skyrat_z2.dmm
* raptor
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Gives the chainsaw start/stop/loop SFX, makes the arm-mounted chainsaw a subtype of a regular chainsaw (#73996)
## About The Pull Request
The chainsaw now has an audio loop, as well as SFX for starting and
stopping. I'm pretty confident that I did the attribution stuff
correctly.
https://user-images.githubusercontent.com/28870487/225054900-4bf87ee7-9245-4004-b414-77d0e6e83a7c.mp4
I think this came out well. It may be a bit loud, but I wanted the
volume to be about the same as how the chainsaw slash sound comes out.
Audio stuff isn't really my forte, so let me know if anything sounds
off, or if any adjustments should be made.
To make this work for the mounted chainsaw (more specifically, the
abstract object that enters your hand), it has been made into a chainsaw
subtype. An updatepaths script has been included in the event that
someone has a map where the former path was included (why??).
## Why It's Good For The Game
Makes the chainsaw more menacing. It's one of the most powerful and
beloved pieces of crew weaponry, in addition to being a fucking
chainsaw. If you aren't keen on walking around the hallways with the
chainsaw loop playing like the badass you are, you can always just keep
it off until you get into a fight.
Gives an extra bit of immersion for those special moments where you get
to chainsaw someone to death.
## Changelog
🆑
soundadd: The chainsaw now has SFX for starting, stopping, and idling.
/🆑
* Gives the chainsaw start/stop/loop SFX, makes the arm-mounted chainsaw a subtype of a regular chainsaw
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Records: Clerical expansion (#73022)
A few changes to sec records geared towards making it obvious how and
why someone is wanted.
- You can no longer set someone to arrest via console unless they have a
valid prior.
- Setting players to arrest via HUD creates a crime entry for that
person.
- Priors can be edited by the author and qualified personnel (armory
access).
- Priors can be invalidated by qualified personnel. This redacts the
info from huds and rapsheets.
- Invalidating the last crime sets a player to discharged
- Much like real life, you can no longer outright delete crimes. This
prevents gaming the arrest system by adding/deleting.
- Deleting an individual record in a sec console removes it from the
manifest (@JohnFulpWillard) this was previous behavior
- Purging records in sec requires higher access
Have you ever brought a wanted person into the brig only to find there's
no reasons listed and no one in sec will explain why they're wanted?
🆑
fix: Deleting a sec record removes it from the manifest again
qol: It's now easier to see security notes via HUD.
qol: It's now easier to see why someone is set to arrest.
qol: Crime authors and armory access can edit crimes.
balance: Setting players to arrest requires a valid crime.
balance: Armory access can invalidate priors.
balance: Setting players to arrest via HUD creates a crime for the
suspect.
/🆑
---------
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
* Records hotfix [NO GBP] (#73363)
A remake of #73169
Repaths records consoles to their own subtype
Fixes some weirdness with observers logging into sec/med consoles
Fixes security notes not being able to be set etc
Bug fixes and cleaner code
🆑
fix: Security can set notes through consoles again
fix: Observers are now properly logged out of record consoles
/🆑
---------
Co-authored-by: Jeremiah <jlsnow301@pm.me>
* Fixes the map merge conflicts, hopefully.
* Fixes player created security records being unprintable for wanted/missing posters. (#73666)
## About The Pull Request
If a player created a security record during a round and attempted to
print it the printing process would runtime and result in the printer
being unusable.
As a side effect of fixing this I've discovered an annoying bug with
posters with them defaulting to the bottom left corner of a record. So
currently mugshot uploads has been restricted to 32x32 pixels with
approval from @jlsnow301 . Ideally at some point a player exposed photo
cropping system can be implemented to make it easier to create mugshots
using larger photos.
## Why It's Good For The Game
Fixes a bug.
## Changelog
🆑
fix: You can now create wanted/missing posters using player created
security records. Due to a visual bug and usability issue photos above 1
by 1 meters in size will no longer work for mugshots in records.
/🆑
* Fixes ui_data on ntosrecords [NO GBP] (#73670)
## About The Pull Request
Missed this while redoing records, this makes it match what the UI is
expecting
## Why It's Good For The Game
Bug fixes
## Changelog
🆑
fix: Fixes NTOS records program receiving bad medical disability data
/🆑
Co-authored-by: Jeremiah <jlsnow301@pm.me>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Updates all of our maps with the new records computer paths
* Actually I don't know where this came from but I think it'll fix the linters
* Okay now it should work properly, hopefully
* mapas
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Jeremiah <jlsnow301@pm.me>
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fully removes departmentType var from Requests Consoles (#72916)
I was thinking about updating the requests console's UI, when I noticed
that #67219 started the process of moving away from the ancient
departmentType field. I have decided to put off the UI update until
later, and finished the necessary map updates using the power of
UpdatePaths.
Also autodocced the requests console vars and procs.
Finishes the removal of a deprecated (and may I say, badly named)
variable. Mappers will not accidentally try to set the outdated bitflag
fields, instead they will the more descriptive fields.
* Fully removes departmentType var from Requests Consoles
* Update CentCom.dmm
* update paths
* fix var edits
* fix
* a
---------
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Reworked PDA menu & NtOS themes (#73070)
## About The Pull Request
This is a port/rework of
https://github.com/yogstation13/Yogstation/pull/15735 - I changed a lot
of how it acted (some themes are locked behind maintenance apps).
The original author allowed this port to happen, and I really liked how
it looked there so I'd like to add it here.
### Applications
Removes the hardware configurator application, as all it did was show
you your space and battery now that all hardware was removed. These are
things your PC does by default, so it was just a waste of space.
Adds a Theme manager application instead, which allows you to change
your PDA's theme at will.
Adds a new Maintenance application that will give a new theme, however
it will also increase the size of the theme manager app itself as it's
bloatware.
### Menu
There's now a bar at the top of the menu showing 'special' tablet apps
which, for one reason or another, should stand out from the rest of the
apps. Currently this is PDA messenger and the Theme manager
Flashlight and Flashlight color is now only an icon, and is shown on the
same line as Updating you ID
https://cdn.discordapp.com/attachments/961874788706574386/1069621173693972551/2023-01-30_09-10-52.mov

### Themes
Adds a lot of themes to choose from, although SOME are hidden behind
Maintenance applications, which will give you a random theme. These are
bloatware however, so they come with some extra cost to the app's
required space storage.
Themes are now supported on ALL APPLICATIONS! If you have a computer
theme, you will have that theme in EVERY app you enter, rather than just
a select few.
ALSO also, emagging the tablet will automatically set & unlock the
Syndicate theme, which makes your PDA obvious but you can disguise it if
you wish through just re-painting it to something else.
https://cdn.discordapp.com/attachments/828923843829432340/1069565383155122266/2023-01-30_05-29-53.mov
### Preferences
This also adds a pref for theme, reworking the ringtone code to work
with it as well. I also removed 2 entirely unused PDA prefs just 'cause.
Screenshot not up-to-date, they now have proper names.

### Other stuff
Made defines for device_themes
Added support for special app-side checks to download files
Fixed programs downloading themselves TWICE because defines all had the
same definition
Removes the Chemistry computer disk as it was empty due to chemistry
app's removal
Removes the 'run_emag' proc, since apps can directly refer to the
computer to check for emag status instead.
Moved over and added better documentation on data computer files, and
moved the ordnance ones to the same file as the others.
## Why It's Good For The Game
It makes PDAs a lot more customizable while adding more features to
maintenance applications. I think the themes look cool and it fits with
PDAs being "personal" anyways.
I also explained most of my other arguments in the about section, such
as the hardware configuration application.
## Changelog
🆑 Chubbygummibear & JohnFulpWillard
add: A ton of new NtOS themes, which are accessible by the new Themify
application that comes with all PCs.
add: Emagging a PC now defaults it to the Syndicate option (and adds it
to go back to it if you wish)
add: There's a new maintenance app that gives you rarer themes
qol: The NtOS Main menu was moved around, added "header" applications
that are shown where the Flashlight is, such as your Theme manager and
PDA messenger.
code: Made defines for device_themes
code: Added support for special app-side checks to download files
code: Removes the 'run_emag' proc, since apps can directly refer to the
computer to check for emag status instead.
fix: Programs no longer download twice.
del: Removes the Chemistry computer disk as it was empty due to
chemistry app's removal
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Reworked PDA menu & NtOS themes
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code (#73106)
The barsign code is over a decade old so this is a big refactor with
some notable improvements:
- Emissive effects (neon lights now glow in the dark)
- Balloon alerts instead of `to_chat` messages
- Mapping helpers based on direction and all_access
- Barsigns are considered machinery now and use power
* Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code
* fixes modular maps
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Updatepaths script for #72736 (#72779)
## About The Pull Request
Adds an updatepaths script for #72736
Turned `72479_replace_faithless` into a .txt file for consistency
## Why It's Good For The Game
#72736 changes the paths of some very common items seen throughout the
game, such as hardhats and nitrile gloves. This PR adds an updatepaths
script for such revisions.
## Changelog
code improvement, no player facing changes, whatever you call it. I
can't be bothered.
* Updatepaths script for #72736
Co-authored-by: SpaceSmithers <105393050+SpaceSmithers@users.noreply.github.com>
* Refactor lighting items that use fuel (#72146)
Fixes#71826
This does the following:
- Makes candles a subtype of flare
- Fixes candles having lighting inconsistencies
- Fixes burning items (welder, candles, flares, etc.) not causing
ignition effects when held in hand
- Adds burnt flares and melted candles to maint loot and trash spawners
- Add match lighting sound when candles are lit
- Add time defines for fuel amounts and rounded them (ex. instead of
32.3333 minutes, it's now 35 minutes)
- Light sources that burn will now spawn a trash item once fuel is spent
- Light sources that burn now have a welder hitsound
- Light sources that burn can now be extinguished by a fire extinguisher
(except flares)
- Light sources that burn can now be used to ignite another object on
fire (ex. a lit candle can be used to light a cigarette)
- Light sources that burn and are lit now do `BURN` damage while
attacking
Code is more cleaner and consistent. Also fixes some bugs.
🆑
soundadd: Candles will now use the match lighting sound when lit
soundadd: Light sources that burn will now have a welding hitsound
fix: Fix candle light behaving erratically
fix: Fix burning items that are held in hand will now have an ignition
effect on the turf. (ex. lit welders in hand will now ignite plasma in
the air)
balance: Light sources that burn and are lit now do `BURN` damage while
attacking
balance: Light sources fuel amounts were rounded to exact numbers (ex.
instead of 32.3333 minutes, it's now 35 minutes)
qol: Light items that burn can now be extinguished by a fire
extinguisher (except flares), used to ignite another object on fire, and
will now leave a trash item once fuel is used
qol: Add burnt flares and melted candles to trash spawners
refactor: Refactor lighting items that use fuel to be more robust
/🆑
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Modular!
* Toggle Light
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>