Commit Graph

827 Commits

Author SHA1 Message Date
SkyratBot
ba96aedf6d [MIRROR] Adds The Sturdy Shako (HoS Hat) [MDB IGNORE] (#20123)
* 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.

![shako](https://user-images.githubusercontent.com/5479091/227799392-ad2ea145-5c58-45d7-8763-a76e9323ec09.png)

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>
2023-03-29 22:25:53 +01:00
SkyratBot
1210dfb9ef [MIRROR] Adds wire brush to janivend and janiborg. Also adds ability to put it in janibelt. [MDB IGNORE] (#20012)
* Adds wire brush to janivend and janiborg. Also adds ability to put it in janibelt.

* merge conflicts

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-03-25 01:28:55 -07:00
SkyratBot
e7afde2a85 [MIRROR] Bone gel now spawns in stacks of 4 inside Paramedic and Medical ERT belts [MDB IGNORE] (#19943)
* Bone gel now spawns in stacks of 4 inside Paramedic and Medical ERT belts (#74063)

## About The Pull Request
Bone gel spawned inside player medical belts, for the roles of Paramedic
and Medical ERT, now spawns in a stack of 4. Previously they would spawn
with only a single stack. This new amount matches the stack size
received when purchasing the identical item from a Nanomed, or ordering
it in a Cargo crate.

As such, this change creates consistency around the number of uses in an
fresh, "unopened" bottle of bone gel.

## Why It's Good For The Game
Creating a uniform, default stack size for bone gel keeps interactions
with the item consistent and predictable. In the case of paramedics,
their starting kit also includes 5 stacks of surgical tape, so having a
few stacks of bone gel matches the player expectation that they have
enough supplies to treat a few instances of each type of injury (rather
than only one).

Addressing this discrepancy also Closes #71393.

## Changelog
🆑
balance: Bone gel now spawns in stacks of 4 in Paramedic and Medical ERT
belts
/🆑

* Bone gel now spawns in stacks of 4 inside Paramedic and Medical ERT belts

---------

Co-authored-by: Antonio Tosti <5588048+atosti@users.noreply.github.com>
2023-03-18 11:21:40 -07:00
SkyratBot
679ff9222d [MIRROR] Minor grammar fixes [MDB IGNORE] (#19895)
* Minor grammar fixes (#73994)

## About The Pull Request
Not much to discuss.
Fixed name of box of party poppers and camera tag of tech_storage.
## Why It's Good For The Game
Grammar
## Changelog
🆑
spellcheck: fixed a box of party_poppers and camera tag "tech_storage"
/🆑

* Minor grammar fixes

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-03-16 15:06:53 +00:00
SkyratBot
763c0c5eb7 [MIRROR] Reworks trashbags slightly [MDB IGNORE] (#19864)
* Reworks trashbags slightly

* fex

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-03-15 18:38:27 -07:00
SkyratBot
426b390001 [MIRROR] Adds stickers [MDB IGNORE] (#19856)
* Adds stickers (#73892)

## About The Pull Request

Adds stickers to the game, purchasable from cargo. They are flammable,
applied instantly, and fall off when washed by
spacecleaner/showers/soap. They burn instantly if the mob it is attached
to is ignited or the turf it is attached to reaches 100+ Celsius

![2023-03-10
13_22_31-Window](https://user-images.githubusercontent.com/70376633/224326335-08848332-f51d-476e-9aaf-c6064ca82c30.png)
Syndicate-only stickers on the left, normal on the right

![image](https://user-images.githubusercontent.com/70376633/224433519-a92c6124-392f-4e96-81bf-f51df2ab2e80.png)
![2023-03-10
22_34_42-Window](https://user-images.githubusercontent.com/70376633/224433579-c29d0d39-d544-47f7-baa8-249abe1bbb96.png)
![2023-03-10
22_34_58-Window](https://user-images.githubusercontent.com/70376633/224433599-8c991983-ea6b-4187-b74c-a786b4c4f3b9.png)

## Why It's Good For The Game

Stickers probably could be cool if the clown puts googly-eyes on beepsky
or smiley faces on the captain
Probably good for tile art?

look at this guy go

![image](https://user-images.githubusercontent.com/70376633/224326733-add34f1f-0127-4499-8a4d-7caa1ca2ab5c.png)

## Changelog
🆑
add: Added stickers, purchasable from cargo
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds stickers

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-03-15 00:50:11 +00:00
SkyratBot
fd0d736291 [MIRROR] Calomel Rework [MDB IGNORE] (#19835)
* Calomel Rework (#73762)

## About The Pull Request
This transforms the Calomel now into a better version called Ammoniated
Mercury and brings the old Calomel back. Calomel purges all chemicals
again and Ammoniated Mercury purges toxins. Calomel deals toxin damage
until you have less than 100 health in which case it starts doing to
opposite. Ammoniated Mercury heals toxin damage if you do not have
enough brute or fire damage.

Paramedics now get a bottle of Ammoniated Mercury since it is the new
Calomel.
## Why It's Good For The Game
I always used to use Calomel back in the day to get rid of all
chemicals. Multiver does the same but has very weird conditions, so now
I split the old and new Calomel into two chemicals for both uses to
become available. I have never seen anyone use Calomel so now it can be
used to fix overdoses again.
## Changelog
🆑
add: Adds Ammoniated Mercury, a chemical to the game.
balance: Calomel now purges all chemicals again, and now Ammoniated
Mercury only purges toxins.
/🆑

* Calomel Rework

---------

Co-authored-by: Comxy <tijntensen@gmail.com>
2023-03-14 01:58:17 +00:00
SkyratBot
a98484d624 [MIRROR] Adds Pinatas that can be purchased by cargo and clown operatives! [MDB IGNORE] (#19829)
* 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>
2023-03-13 16:20:54 -07:00
SkyratBot
b5bfa4db46 [MIRROR] Resprites Donut Boxes [MDB IGNORE] (#19799)
* Resprites Donut Boxes (#73896)

## About The Pull Request
Resprites the donut boxes to look better. and to be more accurate since
the resprites of the actual donuts.

![image](https://user-images.githubusercontent.com/75904284/224395088-973270be-0664-41f0-8eb7-83990d5f8354.png)

![image](https://user-images.githubusercontent.com/75904284/224493041-3f347cb1-9ed7-4a25-83b2-a7791d1b9913.png)
Old sprite for reference

![image](https://user-images.githubusercontent.com/75904284/224493157-661ca228-8e96-45d2-aece-677f409b4e33.png)

![image](https://user-images.githubusercontent.com/75904284/224493176-f7f3ce75-564b-4f6b-972c-f18daacb9558.png)

## Why It's Good For The Game
I think it looks better, and it removes some very old sprites. Also
shifts the sprite to be in 3/4ths.
## Changelog
-Changes all sprites for the donut box, and relating to the donut box.
🆑
imageadd: Resprites Donut Box, and all sprites for donuts in it.
/🆑

* Resprites Donut Boxes

---------

Co-authored-by: kinnebian <75904284+kinneb@users.noreply.github.com>
2023-03-13 01:57:48 +00:00
Gandalf
0d030f5cbc [MANUAL MIRROR] [MIRROR] https://github.com/tgstation/tgstation/pull/72290 (#19753)
* Turns miming into a trait instead of an unsightly mind boolean (#72290)

https://github.com/tgstation/tgstation/pull/72254 turned to be wildly
unpopular so i'm simplifying it and keeping only the important, code
backend stuff

makes the code gooder, makes mobs without a mind capable of miming (if
that becomes necessary for whatever reason)

Not player facing

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>

* Update scream_emote.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-03-10 06:42:19 +00:00
SkyratBot
f8f2abb11f [MIRROR] Refactor, improve, and rename canUseTopic to be can_perform_action [MDB IGNORE] (#19391)
* Refactor, improve, and rename canUseTopic to be can_perform_action

* updoot

* https://github.com/tgstation/tgstation/pull/72876

https://github.com/tgstation/tgstation/pull/72876

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:19:25 +00:00
SkyratBot
a8758f9ab0 [MIRROR] Fix fancy boxes to fold like regular boxes [MDB IGNORE] (#19420)
* Fix fancy boxes to fold like regular boxes (#73406)

🆑 coiax
fix: Folding a "fancy box" like donut or candles will now put cardboard
in your hand, rather than on the floor.
fix: You can always see how many pickles are in a jar of pickles, or
rolling papers there are in a pack of rolling papers, since it's not
possible to close them.
/🆑

Currently, folding a "fancy box", one where the contents are visible in
the icon, like a donut or candle box, the cardboard will drop on the
floor.

The `attack_self()` proc between the two types of boxes have been
unified.

In addition, the `is_open` for fancy boxes has been expanded to include
the "always open" option, where the contents of the box are always
countable on examine, and the box does not have a closed appearance.
Candle boxes previously special cased the `attack_self()` proc, and with
this addition, no longer need to.

## Why It's Good For The Game

Consistency in box interaction. Cardboard in hand. Always can count
pickles.

* Fix fancy boxes to fold like regular boxes

* Update gunsets.dm

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 02:44:27 +00:00
SkyratBot
893e1996ad [MIRROR] New Station Trait, Employee Birthday! [MDB IGNORE] (#19690)
* New Station Trait, Employee Birthday!

* Update generic_positive_events.dm

* vr additions

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-03-09 21:51:44 +00:00
SkyratBot
0dfde9b1a6 [MIRROR] Tape Wizard, the distant cousin of the Paper Wizard [MDB IGNORE] (#19640)
* Tape Wizard, the distant cousin of the Paper Wizard (#73739)

## About The Pull Request

Adds a new wizard costume and non magical variant, made exclusively from
tape.

![qTwAAAAASUVORK5CYII](https://user-images.githubusercontent.com/81540056/222332110-96af21bc-d568-40fc-a813-1464577521ff.png)

## Why It's Good For The Game

New unique nice looking thing = good
Opens the door for more uses of an already niche mechanic

![ducktape](https://user-images.githubusercontent.com/81540056/222332139-83f01340-299a-48e0-b68a-3c5e57e20547.png)
Roleplay.

## Changelog
🆑
add: Adds the tape wizard costume, both a real and fake variant
add: Adds the costume behind the autodrobe contraband wire, and the real
variant in the wiz den
🆑

* Tape Wizard, the distant cousin of the Paper Wizard

---------

Co-authored-by: Thedragmeme <81540056+Draggeru@users.noreply.github.com>
2023-03-04 05:00:35 +00:00
SkyratBot
46c6a7512f [MIRROR] Refactors lizard fake canned food into real canned food [MDB IGNORE] (#19403)
* Refactors lizard fake canned food into real canned food (#73469)

## About The Pull Request

/obj/item/food/canned_jellyfish, /obj/item/food/desert_snails, and
/obj/item/food/larvae are now all /canned subtypes. All this means is
that to eat them, you use them once, and now they drop an empty tin
rubbish item.

## Why It's Good For The Game

Making fake false versions of real types that exist is such a pet peeve
of mine, we recently had a bug from it where the snails would go bad.
But even with that fixed you're just chomping the container of snails
and it's not the same behavior as all the other cans
grumgrugmrg I FIXED IT.

## Changelog
🆑
refactor: Lizard related canned food now acts like canned food
/🆑

* Refactors lizard fake canned food into real canned food

* updates all the modular canned stuff

* desert_

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-02-20 20:53:53 -08:00
SkyratBot
9435aeb31d [MIRROR] Purchasing weapon goodie packs require weapon permits, rather than actually being a head of security (includes other small changes) [MDB IGNORE] (#19133)
* Purchasing weapon goodie packs require weapon permits, rather than actually being a head of security (includes other small changes)

* Update inventory.dm

* Update goodies.dm

* Update inventory.dm

* update modular

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-19 19:19:59 +00:00
OrionTheFox
3334cbf891 Modular Suit Sorting 3: Winter Coats (#19230)
* Makes A-Formal coat into our SR basetype (and removes ugly xmas coat)

* Few fixes and formatting things

* Move Bartender and HoPFormal to Skyrat

* Move Narsie/Ratvar coats to Skyrat, remove unused armored variants

* Move christmas coats to Skyrat

* Tosses obsolete HoPFormal (We have a HoP coat that's updated now)

* Syndie coat to skyrat subtype, assorted cleaning, rename

* oopsies

* Does checklist, adds todo notes for upcoming sorting, removes politics

* whoops

* tiny formalcoat sprite update per Hal
2023-02-14 02:38:53 +00:00
SkyratBot
406b6870bd [MIRROR] adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths [MDB IGNORE] (#18785)
* adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths (#72736)

repaths a lot of gloves off /color because they were incredibly stupid
firefighter gear has gotten an update (it doesnt cover hands anymore
though, you need something else)
firefighter helmets no longer hide your mask or glasses

![image](https://user-images.githubusercontent.com/23585223/212542599-c004d0e4-c141-40b4-a1bb-c838f9893c4b.png)
fixed engine goggles starting with darkness vision
to the atmos lockers adds atmospheric gloves, a pair of thick (chunky
fingers) gloves that are fireproof and fire protective, slightly shock
resistant and let you fireman carry people faster.
atmospheric firefighter helmets now are a subtype of welding hardhats,
you can enable a welding visor.
welding hardhats change mode with right click instead of altclick

im not a good spriter but i think this resprite makes them fit nicer
with other engi equipment
lets me firefighter rp

🆑
add: Atmospheric Gloves, thick gloves that are fully fireproof and fire
protective and let you fireman carry people faster.
fix: fixes engine goggles starting with darkness vision
qol: firefighter helmets can now enable a welding visor
qol: welding hardhats change mode with right click instead of altclick
balance: firesuits no longer protect your hands
/🆑

* Makes shit compile

* Updates the digi and snouted stuff to match the new sprites (thanks Halcyon!)

* Fixes a whole ton more issues that popped up

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-27 12:15:17 -05:00
SkyratBot
0765bd55ae [MIRROR] RTD fits in toolbelt [MDB IGNORE] (#18842)
RTD fits in toolbelt (#72813)

## About The Pull Request

RTD fits in toolbelt.

## Why It's Good For The Game

Don't give me rapid construction devices that don't fit in my toolbelt,
that's lame!

## Changelog

🆑 Melbert
qol: RTD fits in toolbelts. 
/🆑

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-01-21 04:01:46 +00:00
SkyratBot
51262140f9 [MIRROR] Fix pickle jar crafting [MDB IGNORE] (#18804)
Fix pickle jar crafting (#72590)

## About The Pull Request

Fixes #72568 but not the underlying bug here. also pulls pickles made in
line with the cost

![afbeelding](https://user-images.githubusercontent.com/36102060/211295436-0d654d27-bfbc-4e9b-815a-d0161e9fbc8a.png)


## Why It's Good For The Game

The large beaker is used in the process it should not be added to the
pickle jar, the reason for the post-qdel instead of fixing the
underlying root is because this seems for some part intended, in the
extend that the parts get added to the finished craft. if that isn't
supposed to be the case I could rework it a bit so that reagent
containers dont get added but this will very likely cause bugs in other
crafting recipes

## Changelog
🆑
fix: Pickle crafting no longer gives an empty beaker
fix: Pickle crafting costs/gives 10 cucumbers/pickles
/🆑

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>

Co-authored-by: Autisem <36102060+Autisem@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-19 15:25:33 -05:00
SkyratBot
18dc1abc43 [MIRROR] Refactor lighting items that use fuel [MDB IGNORE] (#18545)
* 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>
2023-01-17 14:37:02 +13:00
SkyratBot
0fd25257a9 [MIRROR] Fix blood overlays on energy daggers [MDB IGNORE] (#18682)
* Fix blood overlays on energy daggers

* CLANG

* has this ever worked?

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2023-01-13 21:56:37 -08:00
Zonespace
8fabd54ad6 Mirrors #72354 (#18654)
* [no gbp] removes all duplicate armor datums (#72354)

closes #72348
Title

My bad

Heres the script I used this time if you want to
```cs
var baseDir = Environment.CurrentDirectory;

var allFiles = Directory.EnumerateFiles($@"{baseDir}\code", "*.dm", SearchOption.AllDirectories).ToList();
var known = new Dictionary<string, List<KeyValuePair<string, int>>>();

foreach (var file in allFiles)
{
	var fileLines = File.ReadAllLines(file);
	for (var i = 0; i < fileLines.Length; i++)
	{
		var line = fileLines[i];
		if (line.StartsWith("/datum/armor/"))
		{
			var armorName = line.Replace("/datum/armor/", "").Trim();
			if (!known.ContainsKey(armorName))
				known[armorName] = new List<KeyValuePair<string, int>>();
			var knownList = known[armorName];
			knownList.Add(new KeyValuePair<string, int>(file, i));
		}
	}
}

Console.WriteLine($"There are {known.Sum(d => d.Value.Count)} duplicate armor datums.");

var duplicates = new Dictionary<string, List<int>>();
foreach (var (_, entries) in known)
{
	var actuals = entries.Skip(1).ToList();
	foreach (var actual in actuals)
	{
		if (!duplicates.ContainsKey(actual.Key))
			duplicates[actual.Key] = new List<int>();
		duplicates[actual.Key].Add(actual.Value);
	}
}

Console.WriteLine($"There are {duplicates.Count} files to update.");

foreach (var (file, idxes) in duplicates)
{
	var fileContents = File.ReadAllLines(file).ToList();
	foreach (var idx in idxes.OrderByDescending(i => i))
	{
		string line;
		do
		{
			line = fileContents[idx];
			fileContents.RemoveAt(idx);
		}
		while (!String.IsNullOrWhiteSpace(line));
	}
	File.WriteAllLines(file, fileContents);
}
```

* modular

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-13 18:05:12 -05:00
Zonespace
fa0735b1f6 MIrror #72127 (#18652)
* Food code sweepups + heart boxes have more chocolate variety (#72127)

- Chocolate boxes now contain bonbons (formerly tiny chocolates),
truffles, and peanut butter cups
- Slices of bread now taste like their respective breads instead of
tasting "indescribable"
- Fiesta skewers have food categories now
- Misc food file has had more split out of it into sweets.dm,
vegetables.dm, and packaged.dm
- Removed a bunch of redundant food_reagent code
- Changed the sugar in clown cakes' food_reagents to banana juice
- Increased the amount of vitamin in pound cakes (it's four whole cakes
and the amount of vitamin doesn't go up?)

* modular foods

* Fixes the first merge skew of 2023 (#72414)

https://github.com/tgstation/tgstation/pull/72232

skews with

https://github.com/tgstation/tgstation/pull/72127

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-12 10:04:20 -05:00
SkyratBot
39b446b307 [MIRROR] Fixes a oversight with cummerbund. closes #72357 [MDB IGNORE] (#18451)
Fixes a oversight with cummerbund. closes #72357

Co-authored-by: jughu <melvin2626@live.nl>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-11 22:08:09 -08:00
SkyratBot
8e5251ea60 [MIRROR] Captain's Spare ID Safe Can Only Hold ID Cards [MDB IGNORE] (#18631)
* Captain's Spare ID Safe Can Only Hold ID Cards (#72584)

## About The Pull Request

I've personally seen this strategy play out the exact same way on more
than one occasion in an higher frequency lately (I've never played as
either side, just witnessed it)- and it always just seems to be an abuse
of a skewed in-game mechanic. So, this PR makes it so that you can only
put IDs into the spare ID safe. Nothing else.
## Why It's Good For The Game

I think this balance change is needed because it really sort of ruins
what I like about nuclear operatives, having to run around and stay
fluid for whatever the nuclear operatives could have, not "HAHA WE WILL
PUT IT IN OUR (NEARLY) IMPENETRABLE SAFE THAT THEY WILL NEED TO USE A C4
DIRECTLY ON AND JUST END UP PLAYING BLOONS TOWER DEFENSE SIX AS WE AWAIT
THOSE RED FUCKS TO ARRIVE". I miss when it would be fun to inject it
into a monkey who could crawl around vents, put it in a disposals loop
around the station to keep the nukies on a wild goose chase, or just
holding your ground in the brig and retreating if they batter you down.
It's just a very OP location in a very OP place with lots of warranted
OP armor for it's intended use case, which is not really being followed
by putting the all-important disk in the safe.

It's just very strong overall due to how protected-from-damage the spare
ID safe is, and I don't really like the fact that this is emerging as a
new "meta gameplay" (even used when there aren't any nuclear
operatives), it just sullies the different variety of ways you can
defend yourself against nuclear operatives when there appears to be
**the clear choice**. I don't like that concept where you can have a
strategy so good that you _shouldn't_ do it.

Also, it's an _ID Safe_. Not a disk safe.
## Changelog
🆑
balance: Due to materials costing a lot more than ever, Nanotrasen's
Spare ID Safe Supplier have cut down on the space inside of the ID Safe,
meaning you can only cram in things as thin as an ID Card.
/🆑

* Captain's Spare ID Safe Can Only Hold ID Cards

Co-authored-by: san7890 <the@san7890.com>
2023-01-10 15:12:27 -08:00
SkyratBot
be18901411 [MIRROR] [ready] unit tests all worn icons [MDB IGNORE] (#18491)
* [ready] unit tests all worn icons (#72370)

Fixes #71692

🆑 ShizCalev
code: Added a unit test for ALL worn icons.
fix: Fixed a bunch of broken worn icons!
/🆑

* [ready] unit tests all worn icons

* Should have fixed most of the failures now

* Here, hopefully that should fix what was left

* Okay maybe it just hadn't been fixed yet

* I can be a bit dumb sometimes

* Okay, now it's going to work, I promise

* I'm so tired of this

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-09 21:10:28 -05:00
SkyratBot
ae713bf18a [MIRROR] Crafting/Cooking menu update [MDB IGNORE] (#18334)
* Crafting/Cooking menu update

* Yeeted away all of the merge conflicts, time to fix the code

* Okay, now it compiles, and after testing, it seems to work just fine

* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu

* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-08 15:02:18 -05:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

Co-authored-by: John Doe <gamingskeleton3@gmail.com>

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
650d64f6d4 [MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item

* Update _neck.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 06:55:38 +00:00
SkyratBot
b80abedb59 [MIRROR] refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock [MDB IGNORE] (#18209)
* refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock

* merge conflict

* Surplus balance, Consolidated our surplus crate and the new tg one to just use our stats

* use upstream surplus loot crates

* syndicrate

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-07 01:42:14 -05:00
SkyratBot
6ce3f3857f [MIRROR] removes extra turtleneck from research directors garment bag [MDB IGNORE] (#18212)
* removes extra turtleneck from research directors garment bag

* Update garment.dm

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-07 00:48:23 -05:00
SkyratBot
f1ceee89dd [MIRROR] QM has a garment bag now [MDB IGNORE] (#18258)
* QM has a garment bag now

* Update garment.dm

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-06 17:32:12 +00:00
SkyratBot
e7dd9219e8 [MIRROR] Add Croissants & Traitorous Baking Techniques [MDB IGNORE] (#18463)
* Add Croissants & Traitorous Baking Techniques (#72232)

## About The Pull Request

This is my Christmas present to mimes everywhere.

First of all this adds Croissants, because I thought they already
existed and was shocked to learn that they did not.

![image](https://user-images.githubusercontent.com/7483112/209454610-4e69563f-b83d-465b-b28e-7e0b482ff01b.png)
Here's a croissant and an unbaked croissant.
In terms of food they are GRAIN, DAIRY, and BREAKFAST and made fairly
simply from sugar, dough, and butter.

Secondly it adds this pack of traitor gear, exclusively for Mimes and
Chefs.

![image](https://user-images.githubusercontent.com/7483112/209454613-059759b2-774c-45e2-9e1e-97adb43f75f1.png)
The contents of this pack are:
- One combat baguette, indistinguishable from a regular baguette. If
wielded as a sword it gains a 50% block chance (equal to the Captain's
sabre) and does 20 damage.
- Two throwing croissants, which do 20 throwing damage and return to
your hand like boomerangs.
- A cookbook which teaches you the secret to turning croissaints into
deadly boomerang weapons.

You make a croissant into a throwing croissant simply by inserting an
expertly bent iron rod into it.
The chef can't make any use of the baguette unless they also gain the
ability to mime, but they can use it to make food.

https://user-images.githubusercontent.com/7483112/209454703-feafcf4c-6d0a-4e9a-ac4a-d3e2fc7c0ffb.mp4

Watch me here struggle to use them to kill an ape (they don't return to
your hands if thrown at an adjacent tile).

## Why It's Good For The Game

It's insane that croissants aren't already in the game.
This gives mimes an "invisible" sword to go with their invisible gun (it
announces to everyone nearby when you're about to use it, but they can't
know if it's just a _regular_ baguette).
It's funny to throw bread at people.

## Changelog

🆑
add: You can now bake croissants to add to your breakfast.
add: Traitorous chefs can bake dangerous throwing croissants, Mimes can
do this and gain the additional benefit of a deadly combat baguette.
/🆑

* Add Croissants & Traitorous Baking Techniques

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-01-01 16:49:48 -08:00
SkyratBot
7f2a6abc75 [MIRROR] adds an admin combat-ready miner outfit [MDB IGNORE] (#18383)
* adds an admin combat-ready miner outfit

* Update code/modules/jobs/job_types/shaft_miner.dm

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-28 23:18:03 -08:00
SkyratBot
5c6c91144c [MIRROR] Changes the missing food icon test to cover ALL /obj's [MDB IGNORE] (#18139)
* Changes the missing food icon test to cover ALL /obj's

* Update implant.dm

* Hopefully fixes all the failing integration tests!

* Fixes more missing icons

* Even more icon fixes

* Hopefully that was all of them

* Okay now SURELY that's all of them

* I'm tired of this shit man

* Hopefully that's all, for real this time!

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-12-28 19:30:05 -05:00
SkyratBot
36b718511c [MIRROR] Right-clicking a Cigarette pack takes out a cigarette, while Alt-Clicking takes out a lighter (if there is one) [MDB IGNORE] (#18377)
* Right-clicking a Cigarette pack takes out a cigarette, while Alt-Clicking takes out a lighter (if there is one) (#72104)

## About The Pull Request
Right-clicking a Cigarette pack takes out a cigarette, while
Alt-Clicking takes out a lighter. If there's no lighter, then it just
takes out a cigarette instead.
## Why It's Good For The Game
Currently, if you put your lighter in the cigarette pack, then trying to
fish it out requires you to take out the packet and mill through all the
cigarettes until you get to the lighter.
This fixes that while still keeping the quick and easy functionality.

## Changelog
🆑 Wallem
qol: Smokers rejoice, you no longer need to mill through your cigarette
packet to get your lighter out. Alt-Click a cigarette packet to extract
a lighter from it, if you've put it in there. Right-Clicking will still
take out a cigarette.
/🆑

* Right-clicking a Cigarette pack takes out a cigarette, while Alt-Clicking takes out a lighter (if there is one)

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2022-12-28 05:52:19 +00:00
SkyratBot
c699ea6f1f [MIRROR] Fixes secure briefcase and wall safes not sending icon update signals properly [MDB IGNORE] (#18238)
* Fixes secure briefcase and wall safes not sending icon update signals properly (#72081)

#71788 used the wrong procs.

🆑 ShizCalev
fix: Fixed secure briefcase and wall safes not sending icon update
signals properly
/🆑

* Fixes secure briefcase and wall safes not sending icon update signals properly

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-12-25 18:00:57 -08:00
SkyratBot
08afdf1c93 [MIRROR] Fix briefcase in the MetaStation vault being useless and not having the surprisingly-extremely-good contents its supposed to [MDB IGNORE] (#18290)
* Fix briefcase in the MetaStation vault being useless and not having the surprisingly-extremely-good contents its supposed to (#72157)

## About The Pull Request
This was using `newlist`, which is both not supported but unfortunately
also not linted for. This is the only case like it in maps.

Pretty surprisingly good contents, like a gun and a telescopic baton. I
hope it doesn't turn into something like the captain's antique because
that is cringe but at least the QM has no reason to take the baton now

## Changelog
🆑
fix: The briefcase in the MetaStation vault now contains the
(surprisingly good) spoils it's supposed to.
/🆑

* Fix briefcase in the MetaStation vault being useless and not having the surprisingly-extremely-good contents its supposed to

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-12-24 21:40:12 -08:00
SkyratBot
6abd24776d [MIRROR] Lockboxes and wrapped crates are no longer invisible [MDB IGNORE] (#18090)
* Lockboxes and wrapped crates are no longer invisible

* Apply suggestions from code review

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-19 19:49:16 +13:00
SkyratBot
d5b5191e9d [MIRROR] Revolver Resprites: Imaginos Edition [MDB IGNORE] (#18166)
* Revolver Resprites: Imaginos Edition

* Removes the aesthetic module sprite

Co-authored-by: Imaginos16 <77556824+Imaginos16@users.noreply.github.com>
Co-authored-by: Halcyon <81479835+Ebin-Halcyon@users.noreply.github.com>
2022-12-16 01:15:37 +00:00
SkyratBot
da0a127243 [MIRROR] Delimbs Stamina [MDB IGNORE] (#17981)
* Delimbs Stamina

* SR skews

* out of band upstream hotfix

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-12-15 17:50:49 -05:00
SkyratBot
57e99cbc5a [MIRROR] Refactors to add directly to desc less [MDB IGNORE] (#18160)
* Refactors to add directly to desc less (#71996)

## About The Pull Request
Refactors some of the desc += calls to instead use examine() additions
## Why It's Good For The Game
There were a few parts in the code where the description was directly
written to after an action, where that extra note is information on the
status of the item. Moving it to examine() lets you call those procs
multiple time without worry and makes it look more consistent to players
(extra item info displayed as notice/warning spans under desc)
## Changelog
🆑
refactor: moved some description edits to examine hooks
/🆑

Co-authored-by: etherware-novice <candy@ notarealaddr.com>

* Refactors to add directly to desc less

Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
2022-12-15 16:30:41 -05:00
SkyratBot
5ffc3c2dc8 [MIRROR] Fixes cursed duffelbag's permanent curse (again), unit tests it. [MDB IGNORE] (#18146)
* Fixes cursed duffelbag's permanent curse (again), unit tests it. (#71969)

## About The Pull Request

Curse of hunger did some funky stuff by checking for
`slot_equipment_priority` (which ONLY BUCKETS use) and registering
certain signals based on that

The signals they were using instead didn't pass the unequipper, so the
curse never got removed on unequip.

Replaced them with just equip and drop, as equipped and dropped work
just fine for it.

Unit tests this.

## Why It's Good For The Game

Infinite curse of clumsy and pacifism is kinda bad

## Changelog

🆑 Melbert
fix: Dufflebag Curse no longer lasts forever after the bag is destroyed.
fix: Dufflebag Cursing someone already afflicted properly doesn't try to
add the curse again
/🆑

* Fixes cursed duffelbag's permanent curse (again), unit tests it.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-14 22:39:53 -08:00
lessthanthree
79805d068a [MANUAL MIRROR] Coupons now fit in wallets (#18134)
coupons go in wallets
2022-12-13 21:58:53 +00:00
SkyratBot
b08e6d24b2 [MIRROR] 3/4ths-ify some wall mount sprites (by Kryson and Viro) [MDB IGNORE] (#18039)
* 3/4ths-ify some wall mount sprites (by Kryson and Viro) (#71788)

posters are now 24px tall, new sprites for nanomeds, emergency safes, and ticket machines
(by Kryson)

* 3/4ths-ify some wall mount sprites (by Kryson and Viro)

* DON'T INCLUDE FUCKING OVERRIDES IF THEY DON'T DO ANYTHING HHHNGH MY CI IS FAILING CODERS

* FUCK

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-12-12 13:56:40 -05:00
SkyratBot
84b1612201 [MIRROR] Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. [MDB IGNORE] (#18019)
* Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. (#71674)

## About The Pull Request

- The chaplain choice beacon now uses a radial to select the armor set,
instead of a list, giving the user a preview of what each looks like.

![image](https://user-images.githubusercontent.com/51863163/205417930-f5ceab11-6974-48a9-a871-abcb8228bcf2.png)

- Lots of additional cleanup to choice beacon code in general. Less copy
pasted code.
- All beacons now speak from the beacon with their message, instead of
some going by "headset message". Soul removed

## Why It's Good For The Game

I always forgot when selecting my armor which looks like what, and
choosing an ugly one is a pain since you only get one choice. This
should help chaplains get the armor they actually want without needing
to check the wiki.

## Changelog

🆑 Melbert
qol: The chaplain's armament beacon now displays a radial instead of a
text list, showing previews of what all the armor sets look like
qol: (Almost) all choice beacons now use a pod to send their item,
instead of just magicking it under your feet
code: Cleaned up some choice beacon code.
/🆑

Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>

* Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup.

* update modular

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-09 19:24:00 +00:00
SkyratBot
cf67304574 [MIRROR] Refactors Pirates into Pirate Gangs, Adds the Psyker-gang as new pirates [MDB IGNORE] (#17920)
* Refactors Pirates into Pirate Gangs, Adds the Psyker-gang as new pirates

* [PR to PR] NRI raider de-conflicting (#17921)

* sosig

Update revolver.dm

* Update nri_raiders.dm

* Apply suggestions from code review

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>

* Update nri_raiders.dm

* uhuh

* Update nri_raiders.dm

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Stalkeros2 <42087567+Stalkeros2@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-12-08 09:43:43 -08:00
SkyratBot
2b800b9a23 [MIRROR] Removes tablets (not PDAs) entirely. [MDB IGNORE] (#17880)
* Removes tablets (not PDAs) entirely.

* contractor changes

* map changes

* Update assistant.dm

* conflicts

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-07 01:07:02 +00:00
SkyratBot
7cee200350 [MIRROR] captain can no longer steal cargo goodies [MDB IGNORE] (#17949)
* captain can no longer steal cargo goodies (#71649)

## About The Pull Request

Last night while messing around with some cargo order stuff I used the
captains ID while inside its PDA and saw an unfamiliar box.

![image](https://user-images.githubusercontent.com/116288367/205162064-7cd08de7-8dcc-4e47-b04b-492ecd113271.png)

Then I experimented and found out the following.
The Captains PDA can open cargo goodies.
The EMAG can also open cargo goodies.
When it does these things, the code goes through to the parent of the
order lockboxes and runs the /lockbox/attackby which means it goes
through access which means that it recognizes that the captain has
access and lets the captain open it.
This also updates their sprites into icon_unlocked and icon_broken which
don't exist for the secure briefcase that is used for cargo goodies.

![image](https://user-images.githubusercontent.com/116288367/205163658-3d88abe8-7620-428b-ace2-d1abb8b0ef96.png)
In this PR I added in a icon_broken because I think that it is fine to
emag goodies and that if so it should be consistent with the other
emag'd locked boxes.

I then made a small change that stops the captain from being able to
open goodies that do not belong to them, where it now reads the ID
inside of the PDA (or wallet) to compare bank accounts instead of
returning to the parent's version of the code.

Then I added screentips where if you have an ID (or something that
contains an ID) you can attempt to unlock a lockbox, it doesn't check if
you actually CAN unlock it because it's probably fine for screentips to
not be smart like that.

## Why It's Good For The Game

I think that the captain should not be able to steal cargo goodies and
it is against the spirit of how cargo goodies are coded. Emaging them is
fine, but it shouldn't turn into a completely different item if it is
emag'd.

Also personally I don't think that only being able to open cargo goodies
with the ID in hand is like, compelling enough to stay.

Screentips.

## Changelog

🆑
qol: lockboxes have screentips,
qol: cargo goodies can be opened with your ID even if it is inside a PDA
or Wallet
fix: captain can no longer open cargo goodies
imageadd: secure lockboxes have a broken sprite when emag'd
/🆑

* captain can no longer steal cargo goodies

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
2022-12-06 22:16:38 +00:00