* Gives stairs infinite move resistance (#75120)
Gives stairs `move_resist = INFINITY`, preventing anything with
above-average move force from moving them.
Currently, mobs with above average move forces, like Goliaths and
Megafauna will break stairs on their first use, not by destroying them
but by physically moving the stairs one tile.
While funny, this really does mess with a few maps, opens up easy grief,
and doesn't make too much sense.
* Gives stairs infinite move resistance
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Removal of Kilostation (#75039)
## About The Pull Request
Removes Kilostation from the game.
Since I know this is bound to be a touchy subject (the map has its fans,
after all), I feel I need to explain the situation and why this decision
has been made.
While working on mapping for TGStation, there's an inherent struggle
between what's good for mappers, and what's good for coders. On the
mapping side, we want as many maps as we reasonably can have in the
repo. On the code side, every map added introduces a new layer of
complexity for adding new features. While we're attempting to make
strides in improving cooperation between the two teams so we can handle
both many maps and lots of new features, in the here and now this means
that we find ourselves limited in how many maps we can maintain at once.
With this in mind, we find ourselves in a conundrum when new maps come
along. While it would be nice to accept everything new without needing
to remove anything else, the above problems force us to stick to a
limit. Via a fair amount of discussion on the maintainer team, this was
set to 6 recently, which we reached when Northstar was merged, and
meaning that a removal was required for any new maps.
As for why the decision was made to take Birdshot over Kilo, I believe
it is better for us to have a map that has room to grow and an active
creator. As much as I was personally a Kilo enjoyer, the map has
consistently proven to be problematic for new code additions due to its
scale, and it receives little maintenance outside of the bare essentials
as a result. With all this in mind, it comes out as the obvious choice
for removal in this case. Of course, nothing stops it from coming back
in future if any of the above changes.
## Why It's Good For The Game
TL:DR: In order to keep the maintenance budget down, we need to remove a
map for the sake of new blood, and in this case Kilo was the simplest
choice.
## Changelog
🆑
del: Kilostation has went back to its home planet. It served us
faithfully for nearly 3 and a half years. May it rest in peace.
/🆑
---------
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Removal of Kilostation
---------
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Miner Style Points 2: Style on Everyone (#74690)
## About The Pull Request
A re-open of https://github.com/tgstation/tgstation/pull/66326 with
Fikou's permission
Adds the style meter, it can be bought from the mining vendor for 1500
points, it is an attachment to your glasses.
The style meter creates a display on your hud, with your recent actions,
like attacking enemies, killing them, mining ore etc. Actions like
spinning or flipping increase your score multiplier, making you get more
points.
Your style meter affects how much ore you get from mining rocks. By
default with the meter, you get 20% less ore, but at the highest, you
can get 1.2x the ore from mining. In addition, on B-tier or above, you
can "hotswap" items, by attacking an item in your backpack with one in
your hand (should it fit and all that). Also features a leaderboard for
highest style point count!
New streamable: https://streamable.com/eewi6l
The following are sources of points:
- Killing things
- Killing big things
- Killing small things
- Punching things
- Melee'ing things
- Mining rocks and ores
- Having matrix traps detonate
- Hit, defuse, and detonate gibtonite
- Detonate crusher marks
- Scan geysers
- Parry projectiles (others or your own)
Oh, right. While wearing the style meter, you're able to parry any
lavaland-based projectile by clicking on it or the tile it is on, which
reflects it back in a 7 degree arc, making it 20% faster and 15% more
damaging. Usually not very easy.
Maybe-plan in the future for some syndicate variant of this (with bullet
parrying and appropriate style sources, etc.), but not for this PR
Thanks to Arcane, multitooling the style meter will make it play some
sounds on rank-up.

https://streamable.com/nheaky
Parrying in action
## Why It's Good For The Game
Makes miners bring more ore in a fun way.
## Changelog
🆑 Fikou, Zonespace, Arcane for voicing
add: The mining vendor now has a style meter. This meter gauges your
style points and uses them to improve your ore yield.
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Miner Style Points 2: Style on Everyone
---------
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Restores ability for borgs to adjust reflector angles (#74913)
## About The Pull Request
Adds an override for `attack_robot()` on reflectors, which is called
when a borg clicks on an object with no tool selected. Only allows
rotating if the borg is adjacent to the reflector.
## Why It's Good For The Game
This was an undocumented change of #74800, and I assume unintended. In
any case, the inability to adjust reflectors somewhat restricts engineer
borgs' ability to engineer.
## Changelog
🆑
fix: Restores ability for borgs to adjust reflector angles. This is now
a left-click with nothing selected, similar to humans' left-click with
an empty hand.
/🆑
* Restores ability for borgs to adjust reflector angles
---------
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Refactors sheet crafting to better support directional construction (#74572)
## About The Pull Request
0426f7ddba/code/game/objects/items/stacks/stack.dm (L449)
Ok, but can we not?
This PR refactors sheet crafting to generalize all the cases that were
previously locked behind grille/window type checks and such. In their
stead there are bitflags that can be set to achieve certain behaviors.
All the behavior from before should be preserved, but now it can be
extended to other items. E.g. if you want a railing that can be crafted
underneath directional windows, or an item that behaves like a grille
does--it's just a matter of setting the right obj_flags for it now.
This makes it very simple and painless to add new recipes that use
directional crafting! It's all modular now.
<details><summary>Details</summary>
---
### What I've done:
-Eliminated all the type checks, instead it will now be handled by
object flags and recipe vars, making for a much more configurable
system.
-Added two new obj_flags: `BLOCKS_CONSTRUCTION_DIR` and
`IGNORE_DENSITY`.
-Additionally, I renamed the existing flag `NO_BUILD` to
`BLOCKS_CONSTRUCTION`.
-Changes the proc `valid_window_location` to `valid_build_direction`,
and makes it work for things other than windows.
-Removed a deprecated `window_checks` var from the stack_recipe datum.
-Added three more vars to the stack_recipe datum: `check_direction` and
`check_density`, `is_fulltile`
-Decoupled `on_solid_ground` from the object density check. Now you can
set those separately, allowing you to make recipes that forbid/allow
building things over other things while in space.
---
### What the new flags do:
`BLOCKS_CONSTRUCTION` works as before---prevents objects from being
built on the object. I felt that the previous name was not descriptive
enough, you should know exactly what it does just from looking at the
name.
_example: dna scanner_
`BLOCKS_CONSTRUCTION_DIR` -- setting this on an object will prevent
objects from being built on it when their directions are the same.
_example: directional windows, windoors, railings_
`IGNORE_DENSITY` -- setting this on an object will cause its density to
be ignored when performing the construction density check. This could
have other potential uses as well in the future.
_example: grilles, directional windows, tables_
These three flags cover all the bases for the types of items that are
currently craftable, so there is no more need for any type checking or
weird snowflake window checks. Simply set the appropriate flag and it'll
work as you would expect.
---
### What the recipe vars do:
`check_direction` tells the recipe to check if there's something in that
direction with the `BLOCKS_CONSTRUCTION_DIR` flag set.
`check_density` tells the recipe to run the density check when set. This
is true by default. There are very few items in the game that currently
have this set to false--namely grilles. Setting this to false will make
it so that the object can be constructed regardless of what is in that
tile (unless `one_per_turf` is also set, which will make it so that you
can't craft the same thing twice in the same turf).
`is_fulltile` is used for fulltile windows, but it doesn't necessarily
have to be--you can give this to any recipe and it will adopt the same
properties as that of the fulltile window. Basically they have a special
case where they shouldn't be able to be built over directional
constructions, where normally things would be able to be. Setting this
makes check_direction true as well.
---
### In summary:
Sheet crafting still works just as it did before. But the backend of it
has gotten a glow up and will be able to more easily support new
behaviors.
</details>
## Why It's Good For The Game
This makes the crafting system much more flexible to add recipes to, and
will prevent bad code practices of stacking more conditionals down the
line whenever someone wants to add an item that behaves like grilles or
directional windows in how they are constructed.
It had to be done. Those window checks were a mess.
## Changelog
🆑
qol: added fifty stack versions of remaining glass sheet stacks for ease
of debugging
refactor: refactored sheet crafting to better support directional
constructions that aren't windows
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Refactors sheet crafting to better support directional construction
* fex
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/20636
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Makes a whole bunch of wooden objects flammable (#74827)
## About The Pull Request
This whole PR started because I realized that baseball bats are not
actually flammable which I found weird, then I looked at a whole bunch
of other stuff that really should be flammable but also isn't.
## Why It's Good For The Game
Makes wooden objects behave slightly more consistently? Honestly, most
of these seem like oversights to me.
## Changelog
🆑
balance: The following structures are now flammable: Picture frame,
fermenting barrel, drying rack, sandals, painting frames, paintings,
spirit board, notice board, dresser, displaycase chassis, wooden
barricade
balance: The following items are now flammable: Baseball bat, rolling
pin, mortar, coffee condiments display, sandals, wooden hatchet, gohei,
popsicle stick, rifle stock
/🆑
* Makes a whole bunch of wooden objects flammable
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
* Rolling table gets rolling sound (#74805)
## About The Pull Request
I realized while working on another project, that the rolling table does
not play the rolling sound when it's moved. Absolutely criminal. I took
it upon myself to right this wrong. And not just because it will go
great with said project I'm working on. I swear.
## Why It's Good For The Game
Makes the visuals of the table moving work with the audio of the table
moving, instead of wondering due to the rarity of the rolling table
'Huh, is the table bugged?' if they haven't noticed the table name.
## Changelog
🆑
fix: The rolling table actually plays the rolling sound, as the lord
intended.
/🆑
* Rolling table gets rolling sound
---------
Co-authored-by: Dawnseer <126404225+Dawnseer@users.noreply.github.com>
* Ports cool tgui menu for reflectors from Aether. (#74800)
* Ports cool tgui menu for reflectors from Aether.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Basic pollen-particles for plants pollenating. (#74675)
Legally endorsed nightcode 👍
## About The Pull Request
When 2 plants are adjacent to each other, they will begin to
cross-pollenate, sharing their potency, instability, and yield values
between the two. This has been in the game since #50001 , however we
never added a more clear visual tell that cross-pollenation exists.
Thanks to the magic of *barticles*, now you can!

_pictured: wheat and tomatoes pollenating_
Adds a simple particle effect, largely lifted from bonfires, that
indicates that two plants are sharing stats at minimum.
## Why It's Good For The Game
Following discussion from #74621, it was decided we needed and preferred
a more visual cue to the mechanic. As a general point I think that's a
longer term fix to the issue, and this adds more visual clarity to an
otherwise arcane mechanic (heh).
Looking for feedback on how to improve the look of the particles but for
fast nightcode I think I did okay for a first try
## Changelog
🆑
imageadd: Hydroponics trays now have pollen particles that they generate
when they share stats and chems. Non-allergenic!
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Basic pollen-particles for plants pollenating.
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* North Star Merge Plaque and Requests Console for QM [NO GBP] (#74712)
* North Star Merge Plaque and Requests Console for QM [NO GBP]
---------
Co-authored-by: Cheshify <73589390+Cheshify@users.noreply.github.com>
* Add contextual screentips, balloon alerts, and examine hints to lockers (#74681)
## About The Pull Request
Gives lockers screentips, more balloon alerts, and examine hints to make
interactions more obvious.
## Why It's Good For The Game
Quality of life is good.
## Changelog
🆑
qol: Add contextual screentips, balloon alerts, and examine hints to
lockers
/🆑
* Add contextual screentips, balloon alerts, and examine hints to lockers
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
* Reworks burning objects to be a component (#74688)
## About The Pull Request
Title.
## Why It's Good For The Game
Simply put, allows for atoms which are not /obj but use atom_integrity
to burn up too, which is nice and good.
But also, it allows for neat behavior like burning particle effects
(only structures use that right now to spawn smoke)

## Changelog
🆑
add: Burning structures spawn smoke particles. Sick.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Reworks burning objects to be a component
* modular
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Code clean-up & refactor for all RCD related & like devices. (#74527)
## About The Pull Request
1. Debloats the RCD.dm file i.e. renames it to RHD[Rapid handheld device
the base for all rcd like devices] and moves its subtypes into their
respective files
`/obj/item/construction/rcd` moved to RCD.dm
`/obj/item/construction/rld` moved to RLD.dm
`/obj/item/construction/plumbing` moved to RPLD.dm
`/obj/item/construction/rtd` stays in RTD.dm
Other rcd like device i.e. RPD, RFC, RWD, along with the above mentioned
files are now all moved into 1 folder called "rcd"
majority of the `to_chat()` are now replaced with `balloon_alert()` to
reduce spam
2. Adds early returns, optimizes & adds extra resource sanity checks
before and after the `do_after()` proc for the RLD. RLD silo links now
works again.
- RLD now uses an ammo bar just like the RCD for updating only its
overlays & not its entire icon state, it also has a blinking yellow icon
state when low on ammo
- Remove unused empty blinking yellow icon state for plumbing RCD.
nobody designed the ammo bars for them so having`has_ammobar = TRUE`
caused the unit tests to fail
4. Adds extra structure placement & resource sanity checks for RCD, RTD
& Plumbing RCD before & after the `do_after()` proc
RCD Patches
- removes unused vars window_type & window_glass, these can be infered
from window_type directly
- removes furnish type & cost and let the rcd_vals() proc decide those
for consistency
- copies the rcd stuff from turf/floor to turf/open/misc with some
exceptions, It wasen't updated in a long time
- rcd vals i.e. cost & delay for window types are set for each
directional, full-tile, reinforced types. These all used constant values
& now they are adjusted accordingly
RTD patches
- Fixes#74526 RTD can lay floor tiles on all types of plating's
- The cost of deconstructing tiles was not calculated correctly i.e. it
always used the cost of the selected design & not the cost of the actual
floor type we are trying to deconstruct
- The construction & deconstruction time was constant & very fast for
all tile types, now the delay is adjusted based on the cost of the type
of tile in question
- RTD now has a blinking yellow empty icon state just like the RCD when
low on ammo
6. Fixes#73479 RCL now updates its pipe cleaning coil appearance when
changing colours & selecting white colour no longer yields a random coil
colour
7. makes sure `useResource() ` actually succeeds before doing any
action. The return value of this proc was not previously checked for
some devices
## Why It's Good For The Game
1. rcd like devices all moved into 1 folder for better organization
2. splits the original RCD.dm file into more logical & manageable files
for better maintainability
3. removes unused code & adds some extra sanity checks for everything
4. adds missing sprites for RLD & RTD
## Changelog
🆑
code: RCD & all its subtypes and other devices like it[RTD, RLD,
Plumbing RCD, RWD, RFC, RPD] now moved into 1 folder, removes unused
vars
refactor: RCD window type cost & delay are set based on the window type
selected.
refactor: RLD, RCD & plumbing RCD now has extra resource & target
placement sanity checks, optimizes RLD and code readability.
refactor: RTD now sets the correct delay with the cost of the tile type
currently being constructed/deconstructed taken into account
refactor: large majority of to_chat() replaced with balloon alerts
fix: RLD silo link now works again
fix: RTD can place tiles on any subtype of plating
fix: RCL now lays the correct colour of pipe cleaner when its colour is
changed
imageadd: empty blinking yellow icon states for RTD & RLD & an ammo bar
for RLD
/🆑
* Code clean-up & refactor for all RCD related & like devices.
* Update RHD.dm
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Makes uprooting and digging out plants use tool_behaviour instead of just typepath of shovel. (#74630)
## About The Pull Request
Closes https://github.com/tgstation/tgstation/issues/74564.
You can now uproot plants with any item that has TOOL_SHOVEL flag
instead of just item/shovel. So you can use trench tool for this
purpose.
And the same with digging out plants. It was originally limited to just
spade shovel, which is rather strange considering that there is bone
shovel recipe and one of it's ingridients is spade.
Changed icon of omnitool's shovel because spade won't be the only shovel
used for uprooting plants.
Also removed a bunch of code and it didn't affect anything in my tests
so I'm assuming it was unused and completely useless.
Maybe i'm not right and it affects something tho.
## Why It's Good For The Game
Trench tool can be used as a normal shovel.
## Changelog
🆑
fix: You can now uproot and dig out plants with any shovel and not just
spade.
/🆑
* Makes uprooting and digging out plants use tool_behaviour instead of just typepath of shovel.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Componentizes loomability (#74552)
## About The Pull Request
As shrimple as the title might imply, the ability for an item to be
processed in a loom is now a component.
Behavior on looming cotton, durathread, and wool, should all be the
exact same in terms of cost, time, results, etc.
## Why It's Good For The Game
If, for any reason, someone might want to extend the behavior of "this
thing can be loomed" to other items, it can be done.
## Changelog
🆑
code: The ability for objects to be loomed is now a component, with all
of the looming behavior moved off of the structure and into said
component. The actual behavior for looming cotton (clicking on a loom
with cotton) is completely unchanged.
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Componentizes loomability
---------
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Icemoon Hermit Ruin Active Turf Fix - For Real This Time (#74476)
In #74306, I _thought_ I knew what the cause was, and I both attempted a
potential fix _and_ made tracking it easier. The fruits of my labor paid
off, I know exactly what caused it now.
Basically, the demonic portal will scrape away all turfs in a 5-tile
radius on its `Initialize()`, and if a spawner spawned right next to the
hermit ruin... it would count it as a mineral turf and scrape it away as
well. That's so fucking silly. At least we know now.
## Why It's Good For The Game
The fix is to just make those tiles unscrapeable, which is accomplished
via another turf_flag and filtering those out in the `Initialize()` of
the demonic portals.
I also cleaned up the calls to scrapeaway being `null`, which is really
weird because it just defaulted to the normal proc behavior. Naming the
arguments instead does the same thing (I checked)
* Icemoon Hermit Ruin Active Turf Fix - For Real This Time
---------
Co-authored-by: san7890 <the@san7890.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>
* Changes guillotine tips to span_notices and fixes a bug about it. (#74161)
## About The Pull Request
Current description of guillotine isn't quite comfortable to read so i
changed it to span_notices.


Also fixed a bug, which occurs if you try to behead already beheaded
body and then you just can't use the guillotine anyway.
## Why It's Good For The Game
yee
## Changelog
🆑
qol: guillotine description tips are now span_notices (blue text)
instead of just a bunch of grey text.
fix: fixed a bug that if you try to behead body without a head with
guillotine it just stops working.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Changes guillotine tips to span_notices and fixes a bug about it.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* [NO GBP] Aux construction console RCD works again. (#74158)
## About The Pull Request
Fixes#74145
Forgot to make aux construction console RCD use `afterattack()`.
🆑
fix: aux construction console RCD works again
/🆑
* [NO GBP] Aux construction console RCD works again.
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Fix holo signs being able to be frozen (#74103)
🆑 coiax
fix: Holosigns, like the atmos holofan, can no longer be frozen by low
temperature water vapour.
/🆑
Seen this a couple of times where a holofan's been "frozen" which is
quite silly.
This won't actually _do_ anything until #74102 is merged though, but
let's keep our changes separate.
* Fix holo signs being able to be frozen
---------
Co-authored-by: Jack Edge <yellowbounder@gmail.com>
* Makes all CTF windows actually indestructible (#74021)
## About The Pull Request
Adds a spawner for indestructible shuttle windows
Replaces all "hardened windows" (which were actually not unbreakable)
with proper unbreakable windows
## Why It's Good For The Game
Fixes#73297, people shouldn't be breaking into space in CTF
## Changelog
🆑
fix: All CTF windows are now indestructible, fixes breaking into space
during CTF.
/🆑
* Makes all CTF windows actually indestructible
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* More stuff to construct & destroy (#73942)
## About The Pull Request
**1. Suit Storage Units**
- What about them?
1. You can print "suit storage unit" circuit boards from engineering &
science circuit printer's after research to make more suit storage
units, now since they behave like regular constructable machines you can
deconstruct them via screwdriver & crowbar.
2. You can upgrade its capacitor to get faster charging speeds
- Why its good for the game?
1. You can rebuild these in the event they get destroyed
2. Better tier capacitors = faster charging speeds
3. More storage units = More places to decontaminate your equipment +
Recharge more mod suits made in robotics
4. If you decide to leave the game or your done using a mod suit e.g. a
mining mod suit rather than keeping it to yourself or throwing it away,
just build a suit storage unit and hang it there so other players can
use it i.e., sharing is caring.
**2. Freezer Cabinet**
- What about them?
1. They are now craftable

3. You can deconstruct them with a welding tool.
- Why its good for the game?
1. You can now make more of them if they get stolen/destroyed
2. More places to store food, dead bodies, whatever
**3. Flood Lights**
- What about them?
They can now be fully deconstructed in the exact opposite sequence you
constructed them.
- First use screwdriver to open its panel
- Then use empty hand to remove light
- Then use screwdriver to unscrew the wiring from frame
- Use wire cutter to remove wiring completely
- Finally use wrench to completely deconstruct frame
- Why it's good for the game?
Reclaim used material to build flood light else where . Also much more
clean than what the wiki is suggesting.

## Changelog
🆑
add: suit storage unit circuit boards to engineering & science
department circuit printers.
add: freezer cabinet as a craftable & destructible item.
qol: flood light can now be deconstructed rather than destroyed/thrown
away.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* More stuff to construct & destroy
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Fixes the metallic hydrogen axe being silent when being used as a crowbar and crowbars can now hit windows. (#73974)
## About The Pull Request
The metallic hydrogen axe had no usesound var set despite having a
tool_behavior applied to it, this meant that when using it as a crowbar,
for example to remove floor tiles no sound was played. I've given it the
default crowbar sound for this.
Bonus fix: Crowbars were incapable of hitting fully constructed default
windows, this included the H2 axe, They are now able to be used on
standard windows (they already worked on reinforced windows)
## Why It's Good For The Game
Missing sound bad. Pretty sure the crowbar thing is a bug too.
## Changelog
🆑
fix: The metallic hydrogen axe is no longer silent when using it as a
crowbar.
fix: You are now capable of hitting standard windows with a crowbar when
they're fully constructed.
/🆑
* Fixes the metallic hydrogen axe being silent when being used as a crowbar and crowbars can now hit windows.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Post-Revolutionary Fervor station trait, revolutionary bedsheets, and a megaphone (#73799)
## About The Pull Request
Upon revolution success, the chosen headrev will now also receive a
megaphone, and a "revolutionary bedsheet" repurposed from a stolen CC
bedsheet to commemorate their success. The post-revs confusion and lack
of command/security usually leads to an instantaneous, total breakdown
in cohesion. It's every man for himself -- that's no way to run a
commune! Just because the revolution has succeeded and nobody can see
your big blue "R" anymore doesn't mean you can't be a leader!

This also adds a new revolution-themed negative station trait --
Post-Revolutionary Fervor. When present, this trait trashes the command
areas at the start of the round. This means cracked windows, broken
consoles, vendors getting knocked over, and the occasional dead
greytider.

If you start cleaning at the start of the round, you might finish right
as the next batch of revs decides to crop up.
## Why It's Good For The Game
Giving one of the headrevs a bigger voice and a cool cape (or uncool,
depending on how you view the sprite) means that there's a chance for
them to step up and try to keep the wheels on. Just remember -- Nobody
is obligated to actually listen to this person, it's just a bedsheet.
Adds a neato station trait, which probably counts as command gameplay
content.
## Changelog
🆑 Rhials
add: The headrev who receives the revolutionary banner after a win will
also receive a commemorative bedsheet and megaphone.
add: Post-Revolutionary Fervor station trait. I hope you enjoy fixing
broken computer screens.
spriteadd: A revolutionary bedsheet.
/🆑
* Post-Revolutionary Fervor station trait, revolutionary bedsheets, and a megaphone
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds Pinatas that can be purchased by cargo and clown operatives! (#73868)
## About The Pull Request
Pinata's drop various items when struck with a sufficiently powerful
weapon. This PR adds two types, a standard one which can be bought from
cargo which contains various candy items and a syndicate one which
contains both candy items and explosives purchasable by clown
operatives.
The pinata functionality is also a component so admins can turn any
structure/machine/mob into a pinata and customize the "candy" inside
Sprites by @ Mey-Ha-Zah animated versions by me
## Why It's Good For The Game
Adds a cute little celebration themed structure that can be bought by
players to accommodate a celebration based gimmicks or the party trait.
I think the options on things to do as a crew during a celebration are a
bit limited at present with most of the options being making/purchasing
food, activity wise the main example of a celebration item is pin the
tail on the corgi which is a bit uninteresting, the pinata on the other
hand is more cathartic and provides a "reward" in the form of various
candy items for people who participate in smashing it. I also think its
just funny to have clown operative gambling half their TC to try and get
explosives.
## Changelog
🆑 Mey-Ha-Zah & NamelessFairy
add: Added pinata crates to cargo, they contain various candy items. Fun
at parties.
add: Clown operatives can now purchase a weapons grade pinata, this
contains both candy and explosives. Still fun at parties.
admin: Admins can now turn players, mobs and objects into pinata's with
the new pinata component.
/🆑
* Adds Pinatas that can be purchased by cargo and clown operatives!
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Limit theft/destroy secondary objectives to items which at least one person cares about
* Update objective_items.dm
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Some more RCD Designs & Patches (#72757)
Adds some more stuff you can build with the RCD
1. Under structures you can now build/deconstruct catwalks & construct
Reflector Frames. Destorying a catwalk will cut any cable on it leaving
pieces of it behind

2. If you have the frames upgrade you can construct APC, Air Alarm &
Fire Alarm frames on walls & Flood light fixtures[fully wired]. It only
creates the wall mount and sticks it on the wall. Wiring, Circuits and
finishing the frame is still your job

3. If you have the furnishing upgrade you can create racks & beds &
additional bar stool

**Important Code Refractors**
1. `/turf/closed/wall/proc/try_wallmount()` will return true only after
you have successfully mounted the wallframe or stuck an poster on it &
not simply check if you are trying to mount a valid thing on it
2. `apc_tool_act/rcd_act()` was incorrectly checking passed_mode for the
simple circuit upgrade and not the `the_rcd.upgrade `flag. Thats fixed
now to
3. newly created APC's weren't assigning themselves to their areas
allowing multiple to be created in one area. Thats fixed now
4. Walls, Airlocks & other stuff could be built on tiles having
something dense that would block it. For example a wall could be build
on top of a machine frame!!. Thats also fixed now
More stuff you can build rapidly with the RCD
🆑
add: more designs for the rcd
refactor:` try_wallmount()` to return true only after successful mount
fix: `apc_tool_act/rcd_act()` incorrecly checking for simple circuits
upgrade in the wrong variable
fix: newly created APC's not assigning themselves to their areas.
fix: rcd building structures [walls, airlocks etc] on turf's that
already have structures on them
/🆑
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>