Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MDB IGNORE][IDB Ignore] Igor throw the third maint! #535

Merged
merged 298 commits into from
Mar 5, 2024

Conversation

RogueStationAI
Copy link

No description provided.

SkyratBot and others added 30 commits February 22, 2024 00:24
… tails. [MDB IGNORE] (Skyrat-SS13#25768)

* 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 <[email protected]>
…rames with brute force to break them (Skyrat-SS13#26596)

* Comprehensive frame refactor to fix being unable to thwack frames with brute force to break them (#81477)

* There we go?

---------

Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: Useroth <[email protected]>
* Removes a double space from health analyzer (#81589)

## About The Pull Request

Fixes the message saying someone is deaf having 2 spaces in it.

## Why It's Good For The Game

minor typo.

## Changelog

:cl:
spellcheck: Removed a double space in health analyzer's message telling
you someone is deaf.
/:cl:

---------

Co-authored-by: san7890 <the@ san7890.com>

* Removes a double space from health analyzer

---------

Co-authored-by: John Willard <[email protected]>
Co-authored-by: san7890 <the@ san7890.com>
…SS13#26557)

* General maintenance for all things boulder related. (#81358)

## About The Pull Request
**1. Qol**
- Adds screen tips & examines for screwdriver & crowbar acts on BRM,
Refinery & Smelter
- Adds examines to display number of boulders stored inside a refinery &
maximum number of boulders it can hold. Right click screentip to remove
boulders
- Adds examines to display maximum number of boulders than can be
teleported by a BRM & screentips for interacting with wires
- More audio & visual feedback for refinery processing. If a boulder
requires multiple steps you will get a balloon alert saying "crushing"
for refineries & "smelting" for smelters along with a sound per process
tick(which is every 2 seconds so no need for cooldown) giving you a
better idea of what's happening in the pipeline
- BRM now will display all lights when the "Automatic boulder retrieval"
is on & turn off the lights when disabled along with examines giving you
a visual indicator of its state

**2. Code Improvements**
- Splits types of boulders into its own file `boulder_types.dm` for easy
maintainability
- Moves beacon for refinery machines into its own file
`boulder_processing/beacon.dm` for easy maintainability
- Moves the cooldown for processing a boulder `processing_cooldown` into
the refinery machine itself. Since 100's of boulders can be created per
round this var can take up memory quickly so by moving them into the
refinery machine it gives us some savings
- Compressed & merged procs such as `create_mineral_contents()` ,
`flavour_boulder()` etc with the vent code. These procs were only used
by the vent 1 time & by merging the code we removed if conditions to
check if a parent vent was passed or not(since now that's always the
case). Helped in removing boilder plate code

**3. Fixes**
- **Fixes vents always spawning "Small size boulders" & not medium, nor
large boulders.**
 Once a vent generates a boulder it calls  `flavour_boulder()`

https://github.com/tgstation/tgstation/blob/084f56938c0169aeeee0b5f41453f31d072f3f67/code/game/objects/structures/lavaland/ore_vent.dm#L385
however this proc also accepts 2 more params `size` which would always
default to `BOULDER_SIZE_SMALL` and `is_artifact` which is simply unused
in the proc

https://github.com/tgstation/tgstation/blob/fb83617ff94d6294b0d48c8c6c57488237508d11/code/modules/mining/boulder_processing/boulder.dm#L219
Therefore vents would always generate small boulders giving us no
varity. Now the boulder size is set depending on the vent size &
durability for each boulder is set to a random value between 2 & the
boulder max size giving us the flavour we actually wanted

- **Fixes "Expanded Gulag boulders" using "normal gulag material list"
when setting its custom materials.**
If you look at the `add_gulag_minerals()` proc it always picks from the
`gulag_minerals` list & accepts no params

https://github.com/tgstation/tgstation/blob/fb83617ff94d6294b0d48c8c6c57488237508d11/code/modules/mining/boulder_processing/boulder.dm#L235-L236
So when we try to pass params to this proc which in reality doesn't
accept any we were wasting our time doing this

https://github.com/tgstation/tgstation/blob/fb83617ff94d6294b0d48c8c6c57488237508d11/code/modules/mining/boulder_processing/boulder.dm#L274
And for our case `expanded_gulag_minerals` list was simply unused
because our proc doesn't care about it and it went back to just using
`gulag_minerals` list thus ignoring our list

https://github.com/tgstation/tgstation/blob/fb83617ff94d6294b0d48c8c6c57488237508d11/code/modules/mining/boulder_processing/boulder.dm#L282
As i said in the "Code Improvement` section when i moved boulder types
into it's own unique file this was fixed & now expanded gulag boulders
actually has a chance to spawn with bluespace crystals inside them

- **Fixes manual tapping of ore vents by hand not using a cooldown**
`produce_boulder()` accepts a cooldown var for when you need to manually
tap the vent by hand.

https://github.com/tgstation/tgstation/blob/e8b5b52d54a60b651d72e610cfb35a237aef6efe/code/game/objects/structures/lavaland/ore_vent.dm#L374
This var was always set to FALSE because we never passed `TRUE` into it.
Not once here

https://github.com/tgstation/tgstation/blob/e8b5b52d54a60b651d72e610cfb35a237aef6efe/code/game/objects/structures/lavaland/ore_vent.dm#L124
Nor here

https://github.com/tgstation/tgstation/blob/e8b5b52d54a60b651d72e610cfb35a237aef6efe/code/game/objects/structures/lavaland/ore_vent.dm#L131
Now we just pass `TRUE` so tapping these vents by hand have a cooldown

- **Fixes BRM off icon state never being used**
When the room ran out of power it would still look on. Now we use that
state correctly

- **Fixes Automatic Boulder Retrieval by the BRM not actually being
automatic**
You must have noticed that once you do "Right click" and wait for all
the boulders it can teleport (determined by `boulder_processing_max`) to
be teleported it stops permanently after that. Even if more boulders get
generated it won't do anything, You have to again "Right click" &
retoggle automatic boulder retrieval on again, thus forcing someone to
stand there & monitor the BRM

Now once you set Automatic Boulder Retrieval on you can leave & forget.
It will teleport boulders as & when available thus enabling automation
properly.

- **Fixes boulders ejected from refineries via right click from getting
teleported back into the machines loc**
Fixes
tgstation/tgstation#78524 (comment).
The problem is refinery machines & the BRM keep track of all the
boulders that entered into it via the `boulders_contained` list.

Now we directly check `contents` for boulders so we don't have to
maintain 2 seperate lists to keep track of boulders. It also now uses
`processed_by` var of boulders to ensure refinerries don't retake in the
same boulder it just processed. Not sure where exactly the problem got
fixed but implementing these 2 measures fixed it regardless.

- **Fixes boulders with 0 durability[a.k.a steps] from getting ejected
out**
Fixes
tgstation/tgstation#78524 (comment).
So inside `process()` we constantly decrease the durability of the
boulder till it becomes 0.

https://github.com/tgstation/tgstation/blob/0a496f180c627b9de26d3982d775cbf323fbc459/code/modules/mining/boulder_processing/_boulder_processing.dm#L159

  When it reaches 0 it calls `breakdown_boulder()`

https://github.com/tgstation/tgstation/blob/0a496f180c627b9de26d3982d775cbf323fbc459/code/modules/mining/boulder_processing/_boulder_processing.dm#L164-L165

This proc has a chance to reject the boulder if it could not process any
materials

https://github.com/tgstation/tgstation/blob/0a496f180c627b9de26d3982d775cbf323fbc459/code/modules/mining/boulder_processing/_boulder_processing.dm#L219-L222
  
  **"Without resetting its durability"** over here

https://github.com/tgstation/tgstation/blob/0a496f180c627b9de26d3982d775cbf323fbc459/code/modules/mining/boulder_processing/_boulder_processing.dm#L241

So it ends up rejecting a "0" or worse -1 durability boulder. Now we set
the durability in `remove_boulder()` so regardless of what circumstances
the boulder is ejected it always gets a positive durability

- **Fixes BRM & Refinery from rapidly spitting out boulders in their loc
which causes lag in the long terms**
Fixes #81404. Basically even if there is 1 boulder sitting at a BRM's
loc or an refineries loc. Operations are haulted i.e. the BRM will not
teleport any more boulders & the refinery will keep their already
processed boulders inside till their locs are cleared from boulders.
This prevents large number of boulders from pilling up in long rounds

- **[Priority : High] Fixes refineries incorrectly removing materials
from processed boulders**
Fixes #81109. This bug is quite serious because it can't literarily
affect any random item with custom materials in game. This one line of
code over here can break the entire material economy as we know it

https://github.com/tgstation/tgstation/blob/0a496f180c627b9de26d3982d775cbf323fbc459/code/modules/mining/boulder_processing/_boulder_processing.dm#L217
  
**"DONT DO THIS"**. The `custom_materials` list is a **"read only"**
list & if you ever want to change it call the `set_custom_materials()`
proc with your new values but do not edit this list manually as it is
done here.
  
All lists related to materials are cached by the `SSmaterials`
subsystem. List values are cached & shared across multiple objects so
when you edit those values like here, you might end up effecting an
item/multiple items in some random corner of the map that shares this
list.

This also causes boulders with empty list of materials to get spawned at
random so yeah again plzz don't do this

**4. Refactors**
- Repathes `obj/machinery/boulder_processing/brm` -> just
`obj/machinery/brm`.
Even though semantically it looks nice that the brm is a subtype of
`obj/machinery/boulder_processing` from a code & operation perspective
they have 0 similarities.

1) The BRM does not accept boulders feed into it from a conveyer belt
unlike a refinery but instead picks boulders from `SSore` subsystem &
put it on the conveyer belt. This means procs for accepting boulders
such `CanAllowThrough()`, `breakdown_boulder()`, `accept_boulder()` etc
have no use in the BRM. Their just code clutter at this point
2) The BRM overrides `process()` & does not call its parent proc making
that code wasted
3) It has no use for silo materials & mining points making those vars go
to waste

With so much wasted code its better to just let go off all of it & just
make it a basic instance of `obj/machinery` making maintainence easy

- BRM now teleports boulders in a batch (batch size determined by
`boulders_processing_max` max value from upgraded parts is 7) with a
boulder appearing every 1.5 seconds rather than spawning all at once.
After a batch is processed it has a cooldown of 3 seconds before
repeating the process if automatic boulder retrieval is on. This stops
the conveyer belt from getting crowded with boulders and makes the
refining process more efficient.

With this BRM wires are removed because only it had only 1 wire
responsible for toggling boulder retrieval but now since this process is
automatic, we have true control over the timing of boulders spawned &
don't want to leave it in the hands of players

## Changelog
:cl:
qol: adds examines & screentips for crowbar, screwdriver acts to BRM &
refinery machines
qol: adds examines about the number of boulders stored & processed to
BRM & refinery machines
qol: BRM now has its lights turn on/off depending on wether automatic
boulder retrieval is on/off for visual clarity along with examines
qol: refinery machines now display ballon alerts & plays sounds more
frequently when processing boulders for better feedback
fix: vents now spawn boulders of all sizes & not just small ones
fix: expanded gulag boulders now have correct materials in them.
fix: manual tapping of vents now has a cooldown applied as intended.
fix: BRM has its light turned off when area power goes off
fix: boulders ejected from refineries by hand no longer teleport all
over the place occasionally.
fix: refineries no longer eject boulders with 0 durability
fix: Boulders & refineries no longer pile up on top of BRM's &
refineries in long rounds. Their locs have to be clear of boulders
before they spit out more boulders to prevent a large pile of boulders
from causing lag
fix: sheets ejected from lathes no longer get rejected when inserted
back which could happen at random, no more boulders with empty materials
code: splits boulder types into its own file along with other items
code: merges & autodocs procs, vars related to boulders
refactor: repaths BRM to a simpler subtype
refactor: BRM now spawns boulders in batches(batch size can be increased
with upgraded parts) with a boulder appearing every second. After a
batch is processed a 3 second cooldown is applied to stop the conveyer
belt from clogging up, With this BRM wires are removed as there is no
need for timers to be attached to wires which intefers without our batch
processing timings.
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* [NO GBP]Some BRM Fixes (#81551)

## About The Pull Request
- The time from which the boulder is picked to when it's teleported onto
the conveyer belt is 1.5 seconds. During that time the boulder could get
deleted due to many factors and we lose our materials. No one like's
that that so now both steps are combined into 1 proc so we no longer
loose boulders during teleportation.
- Batch processing cooldown was not working when
`boulder_processing_max` is > 1. Now it does

## Changelog
:cl:
fix: boulders are no longer lost when teleported by the BRM
fix: batch processing cooldown works when teleporting multiple boulders
/:cl:

* Path replacements in maps

---------

Co-authored-by: SyncIt21 <[email protected]>
Co-authored-by: Ghom <[email protected]>
Co-authored-by: Useroth <[email protected]>
…13#26600)

* Removes some easily accessible sources of Mythril (#81595)

## About The Pull Request

- Deletes Mythril coins from random spawners, redestributes its weight
where relevant
- Deletes Mythril Sheets from icebox fishing, replaces it with Runite,
which is far less harmful (literally just a strong material)

## Why It's Good For The Game

Mythil's not supposed to be easily player available

Literally the first coin I spawned in testing was summoning, the most
gamebreaking one.

Also see this for more information
tgstation/tgstation#75199 (comment)

![image](https://github.com/tgstation/tgstation/assets/51863163/e5d3b569-4d29-4cd5-bb1e-36f94cbbea84)

With 2 sheets you can farm any prefix you want by combining and
splitting sheets. Nope!

## Changelog

:cl: Melbert
del: Deletes Mythril Coins from random coin spawners
del: Replaces Mythril sheets in icebox vent fishing with Runite sheets
/:cl:

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Removes some easily accessible sources of Mythril

---------

Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
)

* Improves the ForceEvent TGUI Search Function (#81541)

## About The Pull Request

Fixes the search logic about checking for nulls, mostly to prevent it
from being broken if something else is wrong.

## Why It's Good For The Game

Less bugs, more reliable in the case of errors.

## Changelog
:cl:
fix: ForceEvent tgui panel search is more reliable.
/:cl:

* Improves the ForceEvent TGUI Search Function

---------

Co-authored-by: nevimer <[email protected]>
Removes holographic monkey species

Co-authored-by: John Willard <[email protected]>
…26606)

* Fixes CI runtime/race condition with forensics (#81610)

## About The Pull Request

Just a quick fix for the following CI runtime, and additionally passes
through the rest of this file's weakref instances for any other
potential bugs.

![image](https://github.com/tgstation/tgstation/assets/13398309/a58be18a-21e4-40b2-92e0-1a961108c939)

## Why It's Good For The Game

Bugfix

## Changelog

Nothing player facing

---------

Co-authored-by: san7890 <the@ san7890.com>

* Fixes CI runtime/race condition with forensics

---------

Co-authored-by: Bloop <[email protected]>
Co-authored-by: san7890 <the@ san7890.com>
…13#26602)

Make Chefs show up as service on the crew monitor (#81597)

One of the cooks will always be 'promoted' to chef, which has a
different trim assignment. Because the crew monitor didn't account for
this in its display priorities, anyone with a card using its trim would
be displayed as a having departmentless job.
Adding its trim assignment name to the list like departmental security
fixes this.
I put it above cook as it's kind of the head cook.

It was mildly annoying.

:cl:
fix: Chefs (not to be confused with cooks) actually display as being a
part of service on the crew monitor.
/:cl:

Co-authored-by: _0Steven <[email protected]>
…ost on Metastation (Skyrat-SS13#26554)

[NO GBP] Removes a double newscaster from the arrivals sec post on Metastation (#81523)

## About The Pull Request

This fixes a double newscaster in meta arrivals sec post.


![image](https://github.com/tgstation/tgstation/assets/28870487/fed928fe-20c3-4404-9d7a-ea499d4f3729)

I got really confused when I saw this in-game, because I thought I had
fixed it already. I looked into it but apparently I just moved an
intercom and just didn't fix this in #77706? I literally have the double
newscaster in the pic, but I guess I just forgot to also fix that?? I'm
tagging this as no GBP because I cannot believe I missed this and it
should have been fixed in the first PR.

Anyways its gone now!


![image](https://github.com/tgstation/tgstation/assets/28870487/a21d26f3-53a2-4585-881f-18ba53980f6b)

Say, aren't wallmounts supposed to fall down when not supported by a
tile...?
## Why It's Good For The Game

There needs to be 1 not 2 of them there man.
## Changelog
:cl: Rhials
fix: Removes the double-newscaster from the arrivals sec post.
/:cl:

Co-authored-by: Rhials <[email protected]>
Co-authored-by: Pinta <[email protected]>
Co-authored-by: Useroth <[email protected]>
…13#26504)

* Painkillers now actually induce analgesic effects (#81335)

This adds a new trait, `TRAIT_ANALGESIA`, and makes various painkillers
(+ tenacity trauma) apply said trait.

This prevents various pain-related effects, such as screaming due to
pain, and also provides a speed bonus during surgery.

Gives more of an incentive to actually use reagents such as morphine or
miner's salve.

:cl:
add: Painkillers (i.e morphine, miner's salve) now actually induce
analgesic effects, preventing various pain-related effects, such as
screaming due to pain, and also provides a speed bonus during surgery.
add: The tenacity trauma (traumatic neuropathy) also applies analgesic
effects.
refactor: Simplified code related to reagents adding traits.
/:cl:

* Oho, fixed.

---------

Co-authored-by: Lucy <[email protected]>
Co-authored-by: Useroth <[email protected]>
Co-authored-by: Pinta <[email protected]>
SkyratBot and others added 25 commits March 3, 2024 18:43
* Adds COMPONENT_LIVING_BLOCK_SHOCK (#81774)

## About The Pull Request

What it says on the tin--this adds a way for things listening to
`COMSIG_LIVING_BLOCK_SHOCK` to return a cancellation signal.
Refactored silicon mobs to use it.

Before when you wanted to prevent a shock from going through, the only
option was to create snowflake checks for whatever special mob you were
working with and overriding their `electrocute_act()`. This will allow
for more control without having to resort to dealing with mob code
directly, or worry about inheritance.

## Why It's Good For The Game

`electrocute_act()` can be a bit unwieldy to work with sometimes when
you want to add custom behavior, and this will give users more control
and options.

## Changelog

Nothing immediately player facing

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Adds COMPONENT_LIVING_BLOCK_SHOCK

---------

Co-authored-by: Bloop <[email protected]>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
… chameleon skin and adds a new ability! "Darkness Adaptation" (Skyrat-SS13#26727)

* Rebalances and adds more ambush-style cling abilities, buffs chameleon skin and adds a new ability! "Darkness Adaptation" (#81373)

## About The Pull Request
This PR adds a new ambush ability to changelings, "Darkness Adaptation"
and tweaks the balance of "Chameleon Skin".

The new cling ability, "Darkness Adaptation". makes your character
translucent and slightly dark while also giving the ability to see
slightly better into dark than normally (30% better). While this ability
is active, flash protection is lowered by one.

Buffs "Chameleon Skin" by reducing the DNA cost to 1 from 2, and sped up
the time it takes to go full invisible by 2.5x and zero instability cost

Below is the picture of the translucency through normal non-night-vision
vision: (note: this is using extremely dark armor already)

![gambar](https://github.com/tgstation/tgstation/assets/127663818/1f708705-abfc-48e8-a5a2-08a2cb985935)

Below is the picture of the translucency through the poor night-vision
that the ability gives you:

![gambar](https://github.com/tgstation/tgstation/assets/127663818/500169e3-7048-46aa-b33f-0b6d55373886)
## Why It's Good For The Game
This ability was added in Skyrat-SS13#11148 back in 2015 and hasn't been touched
for 9 years. The original ability just gave you the _extremely_
situational "chameleon skin" mutation (one that is accessible to the
crew through genetics already). for a whopping **2 mutation points**
cost. The mutation makes you invisible after half a minute or so of
standing still and is immediately broken the second you move or get
pushed.

Compared to other similarly costed powers you get for 2 mutation points,
this is by far the worst bang for your buck by a large margin.

Needless to say, considering with how power-crept everything else in the
game is after all these years. this ability that hasn't been touched for
ages have fell into disuse to the point of uselessness, especially with
the heavy cost it that came with it.

This PR buffs that ability by making it cheaper, in line with the cost
of other less powerful abilities that clings have. and made it 2.5x
faster to turn invisible.

The PR also adds another ambush-oriented ability, "Darkness adaptation".
The ability allows your character to become translucent and slightly
dark while also giving the ability to see slightly better into dark than
normally (30% better); with the downside of your eyes being slightly
worse than before.

This ability follows the general spirit of clings, an stealth-generalist
oriented antag that you never know when they would strike (disguises
already have this effect, but them being far more able to jump you in
maint even more so.). and encourages more creative strategy than just
your average murderbone.

A Perfect force multiplier for maint combat and maint ambushes. Also
synergises well with augmented sight, and the blackish cling armor.

Don't worry if you think the new ability, combined with the faster cham
skin would make you invisible to the naked eye. The mutation cancels out
the translucency of the adaptation.
## Changelog
:cl:
add: Adds a new changeling ability, "Darkness Adaptation". Making you
more translucent, especially in darkness and allowing you to see
slightly better in the dark
balance: The changeling power "Chameleon Skin" has been buffed, Reduces
the cost to 1 and sped up the time it takes to turn invisible
/:cl:

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* Rebalances and adds more ambush-style cling abilities, buffs chameleon skin and adds a new ability! "Darkness Adaptation"

---------

Co-authored-by: Singul0 <[email protected]>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Pete's corpse no longer eats vines (#81752)

## About The Pull Request

Pete can no longer eat vines while dead.

<!-- Describe The Pull Request. Please be sure every change is
documented or this
can delay review and even discourage maintainers from merging your PR!
-->

## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/28870487/b3156bf2-386d-427f-91b8-61a4dfe83424)

This should probably not be happening even though it was funny to watch.
## Changelog
:cl:
fix: Pete can no longer eat vines while dead.
/:cl:

* Pete's corpse no longer eats vines

---------

Co-authored-by: Rhials <[email protected]>
…3#26717)

* Fishes love kronkaine + Examining fishing spots. (#81519)

## About The Pull Request
Food items with kronkaine in it now count as great baits (this is the
case of the "all-natural" bait from that overpriced cargo pack I'm
converting into a less expensive goodie in another PR)

Sufficiently high fishing skill (and the relative skillchip) allows you
to list fishes in a fishing spot by examining it twice.

## Why It's Good For The Game
Little fishing things off the top of my head before I move on bigger
stuff.

## Changelog

:cl:
add: Fishes love kronkaine.
qol: Examining a fishing spot twice with sufficiently high fishing skill
(or the skillchip) will get you a list of fishes that can be caught.
/:cl:

---------

Co-authored-by: san7890 <the@ san7890.com>

* Fishes love kronkaine + Examining fishing spots.

---------

Co-authored-by: Ghom <[email protected]>
Co-authored-by: san7890 <the@ san7890.com>
* Medical/improvised gauze icons (#81802)

## About The Pull Request

Adds icons for stacks of medical gauze and improvised gauze, so that
they can be differentiated from stacks of cloth. Currently all 3 look
the same. Medical gauze is blue tinted like the medical tape, improvised
gauze is grey and a smaller size than medical gauze. Both have
attachment clips at the edge of the roll.

![image](https://github.com/tgstation/tgstation/assets/83487515/47bcd42e-7270-498e-aacb-15d5a39fd432)

## Why It's Good For The Game

Easier to tell three different items apart at a glance.

## Changelog

:cl: LT3
image: medical and improvised gauze are visibly different from cloth
/:cl:

* Medical/improvised gauze icons

---------

Co-authored-by: lessthanthree <[email protected]>
* New clown shoes: Moffers (#81796)

## About The Pull Request

Adds a new set of clown shoes to the autodrobe under the contraband list
that are moth themed. The shoes look like little moth heads on the ends
and make moth screaming noises when you take a step. It came to me in a
dream and I made this PR in an hour so please be nice to me.

## Why It's Good For The Game

Buying meown shoes has been a staple for certain fun loving players and
clowns alike on TG. Adding an extra pair of basically the moth version
of them can add extra gimmick shenanigans for clowns to baffle onlookers
and elicit a giggle from local assistants. Since autodrobes must be
hacked to gain these moffer slippers, with an inventory amount of 1
maximum per autodrobe, they should be somewhat of a rarity that adds a
little spice to a round.

https://github.com/tgstation/tgstation/assets/105574010/5099d088-d760-4b2a-823a-03bf9b342da9

![Screenshot 2024-03-02
160533](https://github.com/tgstation/tgstation/assets/105574010/5bff7747-72d3-45dc-8994-64a001320d8b)
![Screenshot 2024-03-02
170927](https://github.com/tgstation/tgstation/assets/105574010/d691af0c-9d19-4a78-993a-213ee6bb37dd)

Most importantly: Moth

## Changelog

:cl:
add: Added new clown shoes "moffers"
add: Added moffers to the contraband list of the autodrobe
/:cl:

* New clown shoes: Moffers

---------

Co-authored-by: ValuedEmployee <[email protected]>
…eathmatch does this now (Skyrat-SS13#26746)

* [no gbp] Lazy Templates can be configured to Place on Top, deathmatch does this now (#81783)

## About The Pull Request

this is very much a code thing im not sure what i would say this just
adds an extra variable
also should be no sideeffects this is handled by turf reservations

also virtual domains (fixes  #81779)

## Why It's Good For The Game
![2024-03-02
11_28_18-Window](https://github.com/tgstation/tgstation/assets/70376633/85d094d3-c877-418f-bec9-af2f16736352)
this would formerly breach to space
## Changelog
:cl:
fix: fixes deathmatch baseturfs (you cant crowbar the floor to breach to
space)
/:cl:

* [no gbp] Lazy Templates can be configured to Place on Top, deathmatch does this now

---------

Co-authored-by: jimmyl <[email protected]>
* moon smile effect durations fix (#81794)

## About The Pull Request

Moon smile's durations had some syntax issues, causing their durations
to be much lower than intended, and sanity having very low impact on it.
Also adds a use of SANITY_MAXIMUM define, so that the calculation will
still work if this value is ever changed.
## Why It's Good For The Game

The moon did not smile. It was frowning. Frowning because it was bugged
:( But with this fix it can smile again :)
## Changelog
:cl:
fix: fixed some issues when calculating the duration of moon smile's
effects
/:cl:

* moon smile effect durations fix

---------

Co-authored-by: ViktorKoL <[email protected]>
)

* fixes extra prob() in living flesh Life proc (#81784)

## About The Pull Request
SRT_PROB is prob() already, removed extra in
`/mob/living/basic/living_limb_flesh/Life`
## Why It's Good For The Game
in this commit
tgstation/tgstation@913802c
in this pr tgstation/tgstation#79149 the author
did it by accident, I think. Because It is very low chance
## Changelog
:cl:
fix: fixed the chances of living flesh actions
/:cl:

* fixes extra prob() in living flesh Life proc

---------

Co-authored-by: Rerik007 <[email protected]>
…kyrat-SS13#26749)

* Added a new moth customisation set to the character setup (#81718)

## About The Pull Request
This PR adds a new moth customisation set and makes it available in the
character setup menu.

Introducing, the lightbearer moth!

![image](https://github.com/tgstation/tgstation/assets/161269765/d683fe9c-1dea-44bd-b378-09ae57bbb839)

![image](https://github.com/tgstation/tgstation/assets/161269765/4750affe-4f95-4199-abe7-82da500e0dff)

Setup menu preview:

![image](https://github.com/tgstation/tgstation/assets/161269765/deb27899-6f6e-471e-bd76-f27470845bb0)

![image](https://github.com/tgstation/tgstation/assets/161269765/e9463543-87cd-4e44-9997-840f3169c735)

![image](https://github.com/tgstation/tgstation/assets/161269765/4c492e1b-cb66-436f-95c4-e44ddf7d6f29)

## Why It's Good For The Game
Adds more variety to moth customisation!

## Changelog
:cl:
add: added the lightbearer moth set, available in the character setup.
image: added icons for the lightbearer set; new moth wings, antennae and
markings.
/:cl:

* Added a new moth customisation set to the character setup

---------

Co-authored-by: Dali <[email protected]>
@ORCACommander ORCACommander merged commit 76586cc into master Mar 5, 2024
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.