13 Commits
Author SHA1 Message Date
50499dba9a Adds opium and meth rocks! (#92699)
## About The Pull Request


![demo2](https://github.com/user-attachments/assets/26223fa6-6eb8-43eb-ba87-54be7d2c19b3)<img
width="612" height="185" alt="dreamseeker_SNMvxqCRiR"
src="https://github.com/user-attachments/assets/1d3103e9-edc1-4e50-8793-c8c2ace53aea"
/>

This is a small expansion to narcotics, their production, and presence
in the game! For my esteemed Terry and Manuel/Sybil sector colleagues
I've added:
- 2 new solid drug items: **crystal meth and opium**!
- A **precipitation reaction** for meth after it's been cooled,
producing a solid crystal form, 2u sulfuric acid, 10u meth. **Above 90%
purity, the meth will gain an increasingly blue tint!**
- A production method for opium! Slice a well developed poppy pod with
any sharp item, **before it's fully mature and flowered** to extract a
small amount of opium to enjoy! It's a small container for morphine. Can
be pressed together to combine the concentrations up to 10u, as each
extraction contains trace amounts. Scales off poppy's potency.
- Populated narcotics/contraband spawners with new items, and items that
really should have been on there.
- Added a brand new smoking apparatus, the glass pipe! Can be crafted.
Fixed the transparent pixel.
- **Fixed methsplosions so that now spacemen can finally smoke meth
without exploding!!!** Omegaweed too. Normal methsplosions are
untouched!
- **Expanded the ability for players to insert all drug items into
pipes**, so now players can smoke moon rocks, SaturnX, and my new items!
Previously, only 'dried' items were.
- Fentanyl patch box for narcotics spawner, also for a new ruin I've
made.
- **Expanded these changes to the black market uplink.** 
<img width="640" height="256" alt="demo"
src="https://github.com/user-attachments/assets/c8a0eb2c-b0fa-4e70-b6c1-2e741cd170a2"
/>

Now, players can precipitate meth into a solid form, and produce opium.
I added a lot of these substances and the ones that didn't exist into
spawners that they were partially in, or could reasonably be in. The
opium poppy extraction required a new variable that can be used for
similar interactions too. Crystal sprites are transparent, smoked sprite
has a nice little animation and glow.

These items are now on the black market uplink, in both expensive dealer
shipments of varying rarities for different narcotics, as well as
personal use quantities on a different rotation, at a steeper price.
Expanded randomized spawners to give the black market and ruins more
teeth and edge, without adding another weapon.

Credit to the moon rock guy, I'm just happy I made your stuff smokable!!
<img width="219" height="201" alt="dreamseeker_N8x9bsN3kS"
src="https://github.com/user-attachments/assets/64d23c27-92b9-423b-91ac-903b8476d0b4"
/>


tl;dr added opium and meth
## Why It's Good For The Game
For **too long**, narcotics, chems and stims have been mere integers or
buffs/debuffs in pills or syringes, so I introduced two new methods for
making them and populated niche, criminal vectors with them. These are
real items now, with more interactions. Allowing these to be smoked also
allowed moon rocks and SaturnX to be smoked too, including them into
this and enticing players to have another reason to make them as well.
Buffs with drawbacks, addictions and problems are actually great.

It's a new venue for flavor. I've put thought into the balance for
addition and quantity. It'll add a criminal, or exotic tone to a round,
provide new business opportunities, and new access to stims and chems
without going over the top. Perhaps something peaceful antagonists can
do. More proverbial floor pills give security or command something to
selectively enforce, and absolutely provide novel opportunities for
medical staff!

Also, methsplosions now don't happen in cigarette items! You can smoke
omegaweed without fucking dying!
## Changelog
🆑
add: Added meth, opium, and their production! Also added to black market
uplink.
add: Added a craftable glass pipe.
add: Added to contraband spawners. 
qol: Can now insert any drug item into a pipe.
fix: Spacemen can now smoke meth without exploding!!
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2025-09-09 01:13:46 +00:00
GhomandGitHub 4f6727024d Crafting refactor, implementing materials (#89465)
## About The Pull Request
My original plan was to just implement materials into crafting so that
items would inherit the materials of their components, allowing for some
interesting stuff if the material flags of the item allow it. However to
my dismay crafting is a pile of old tech debt, starting from the old
`del_reqs` and `CheckParts` which still contain lines about old janky
bandaids that are no longer in use nor reachable, up to the
`customizable_reagent_holder` component which has some harddel issues
when your custom food is sliced, and items used in food recipes not
being deleted and instead stored inside the result with no purpose as
well as other inconsistencies like stack recipes that transfer materials
having counterparts in the UI that don't do that.

EDIT: Several things have come up while working on this, so I apologise
that it ended up changing over 100+ files. I managed to atomize some of
the changes, but it's a bit tedious.

EDIT: TLDR because I was told this section is too vague and there's too
much going on. This PR:
- Improves the dated crafting code (not the UI).
- replaced `atom/CheckParts` and `crafting_recipe/on_craft_completion`
with `atom/on_craft_completion`.
- Reqs used in food recipes are now deleted by default and not stored
inside the result (they did nothing).
- Renames the customizable_reagent_holder comp and improves it (No
harddels/ref issues).
- Adds a unit test that tries to craft all recipes to see what's wrong
(it skips some of the much more specific reqs for now).
- In the unit test is also the code to make sure materials of the
crafted item and a non-crafted item of the same type are roughly the
same, so far only applied to food.
- Some mild material/food refactoring around the fact that food item
code has been changed to support materials.

## Why It's Good For The Game
Improving the backbone of the crafting system. Also materials and food
code.

## Changelog

🆑
refactor: Refactored crafting backend. Report possible pesky bugs.
balance: the MEAT backpack (from the MEAT cargo pack) may be a smidge
different because of code standardization.
/🆑
2025-06-01 16:37:43 -07:00
fleurandGitHub 8e667c7c7d Monkey plush (#91154) 2025-05-24 23:18:38 +00:00
SmArtKarandGitHub d9ef15ec5c Cleans up crafting code, fixes multiple bugs (#90157)
## About The Pull Request
Cleaned up an unnecessary proc on base crafting datum, fixed balloon
sutra-exclusive items being craftable by anyone, air sensors being only
craftable via search, crafters adding a second comma when failing to
craft something and missing capitalization in slapcrafting errors.

## Changelog
🆑
fix: You can no longer craft balloon armor and weapons without knowing
Balloon Sutra
fix: Air sensors now show up in atmospherics category
spellcheck: Fixed grammar/capitalization in crafter/slapcrafting error
messages
code: Cleaned up some crafting code
/🆑
2025-03-23 19:54:27 +01:00
GhomandGitHub 778ed9f1ab The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request
This PR kills the abstract internal and external typepaths for organs,
now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds.

This PR also fixes fox ears (from #87162, no tail is added) and
mushpeople's caps (they should be red, the screenshot is a tad
outdated).

And yes, you can now use a hair dye spray to recolor body parts like
most tails, podpeople hair, mushpeople caps and cat ears. The process
can be reversed by using the spray again.

## Why It's Good For The Game
Time-Green put some effort during the last few months to untie functions
and mechanics from external/internal organ pathing. Now, all that this
pathing is good for are a few typechecks, easily replaceable with
bitflags.

Also podpeople and mushpeople need a way to recolor their "hair". This
kind of applies to fish tails from the fish infusion, which colors can't
be selected right now. The rest is just there if you ever want to
recolor your lizard tail for some reason.

Proof of testing btw (screenshot taken before mushpeople cap fix, right
side has dyed body parts, moth can't be dyed, they're already fabolous):

![immagine](https://github.com/user-attachments/assets/2bb625c9-9233-42eb-b9b8-e0bd6909ce89)

## Changelog

🆑
code: Removed internal/external pathing from organs in favor of a bit
flag. Hopefully this shouldn't break anything about organs.
fix: Fixed invisible fox ears.
fix: Fixed mushpeople caps not being colored red by default.
add: You can now dye most tails, podpeople hair, mushpeople caps etc.
with a hair dye spray.
/🆑
2024-10-30 08:03:02 +01:00
necromanceranneandGitHub e4adc1a939 Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death (#84435)
## About The Pull Request

Adds a new crate to the Service section of cargo. The Fletching and
Bow-Making Starter Kit. Comes with some materials and a fletching
instruction manual.

The manual teaches you how to make shortbows (18 force from normal
arrows utilizing projectile multipliers), arrows, holy arrows (but you
need a divine bow to make them), quivers (but they only hold 10 arrows),
plastic arrows and violins. For reasons.


![image](https://github.com/tgstation/tgstation/assets/40847847/576732f2-03b4-47b7-9bad-d85ff06480f0)


### Fixes

Bows now no longer utilize hardcoded sprites for their loaded sprite.
Now they use overlays.

Bows properly become undrawn once fired. No longer can your bow
magically launch arrows by sheer force of will.

## Why It's Good For The Game

Initially I just wanted to provide a way for bow wielding chaplains to
produce additional arrows for their bow. Running out of those always
felt pretty lame. But then I got to thinking; actually, I kind of want
to LARP sometimes as an archer. I think that'd be kind of goofy and fun.
So I bundled that together into a solution for both.

The shortbow is really, really not meant to be a meaningful weapon. It's
just kind of silly, and meant to let people pretend to be Robin Hood and
occasionally hurt someone in a workplace accident. I'm particularly
thinking of clowns being the perfect users for this with their clumsy
trait. I will make this weaker if I have too.

(I am not, at this moment, redoing flaming arrows okay? I saw the code
comment. I know. Not right now. @tralezab, if you have any flaming arrow
sprites lying around, please let me know.)

## Changelog
🆑
add: Fletching starter kit! Make your own bow, shoot your friends in an
unfortunate workplace accident. Replace all those holy arrows you lost.
fix: Bows now properly undraw once they have fired an arrow.
code: Bows now utilize overlays in order to display loaded arrows.
Unique overlays per arrow.
/🆑
2024-07-07 17:57:32 +02:00
b5fa92d691 Adds Medieval Pirates (and small assault_pod change) (#82392)
## About The Pull Request

(short, slightly outdated video compilation of the pirates)
https://youtu.be/j9BNFzcUSjc

Adds the **MEDIEVAL WARMONGERS** pirate gang, these pirates are focused
on causing chaos directly on the station with the use of melee weaponry
and swarming tactics.
they are not very smart when it comes to using technology, so they crash
in the station in an attempt to dock.

the pirates spawn with the NOGUN trait as they have never used guns
before but have access to dashing and the unbreakable component(small
heal burst upon reaching crit).
Warlord spawns with a better version of hulk(isnt removed upon crit and
can still do stuff while critted) and gigantism mutation by default
because ~~Chad Maximus~~ the other pirates require someone to run to
when stuff like flashbangs, batons or lasers are present. The warlord
spawns with a boarding axe which is a better axe that is good at
destroying things and a meat hook. **there's a total of 5 pirates.**

the pirate shuttle has:
- thermite barrel and 3 large beakers
- single weak claymore
- 3 extra military spears
- 3 kite shields
- 3 heavy bolas
- 4 regular bolas
- a stack of wood
- 2 stacks of mourning poultice (15 uses each)
- one burn medkit

**shuttle was made by striders18, big thanks to him**

![image](https://github.com/tgstation/tgstation/assets/114047053/766d0b96-4487-47d3-b524-70d811ce4d73)


things added:

- the new pirate gang
- a gamberson jumpsuit
- crude armor (good melee and wound protection but lacks on the rest)
- warlord armor (extreme protection at the cost of slowdown)
- a shortsword(bootleg claymore with 30 block chance and goes on belt
instead of back)
- military spear (better at throwing, better wounding, deals blunt
wounds instead of sharp)
- axe with better damage and demolition mod for the warlord
- a var to specify the name of the landing zone destination for the
assaultpod
- an assault pod targeting device item for the medieval shuttle
- a thermite barrel
- kite shields
- new hulk variant that doesnt go away when crit and has tenacity
## Why It's Good For The Game
I always liked the chaotic nature of the russian bounty hunters that
would come from their extra numbers and lack of tools. i thought
something of a similar idea on pirates would be good, a very direct and
scary militia rushing in with sword and faith would create some awesome
scenarios

## Changelog
🆑
add: New heavy weight pirates, medieval warmongers
add: Adds military spear, shortsword, boarding axe, kite shields
add: Adds warlord and crude armor
add: Adds medieval shuttle (made by striders18)
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-22 21:16:06 -07:00
ValuedEmployeeandGitHub f86004ef73 Moffers Crafting Recipe (#81829)
## About The Pull Request

Adds a crafting recipe to make Moffers clown shoes, using 2 mothroach
hides and 1 pair of clown shoes, to the entertainment section of the
crafting menu. Only the basic clown shoes can be used to make it, so
other clown shoes like meown shoes won't work.



https://github.com/tgstation/tgstation/assets/105574010/527424d7-107b-4a62-aa29-92056be2b136

![Screenshot 2024-03-04
095521](https://github.com/tgstation/tgstation/assets/105574010/ba3b53f4-3ebf-4f32-b61c-734360e00de2)

## Why It's Good For The Game

Creates an additional use for mothroach hides so that they're not only
for making moth plushies, giving another mechanical reason to butcher
mothroaches. This will also allow the clown to psychotically pull the
hide of a mothroach over each of their shoes and parade them around
proudly to the horror of anyone watching.

## Changelog
🆑
add: Added Moffers as a crafting recipe in the entertainment section.
/🆑
2024-03-13 15:19:11 +13:00
e4082228ff Blesses the codebase with Blahaj (#81862)
## About The Pull Request

Adds the Shark and Shork Costume to the game, craftable via carp scales.
In addition, adds the ability to use a shark costume to craft a shark
plushy.


![ge1uucdAYn8xAAAAABJRU5ErkJggg](https://github.com/tgstation/tgstation/assets/81540056/52d66419-4946-4c0e-8061-8b03e6858a53)

![J2YyKAAI2pNXkXCAyMAAI0sAajuhAYE4FeBciufHkQc53Vij1rxorYmNyadxkKAQRo3lII0FBclnqOiQAChACNyZ95l4ER6FWAbFjkcSrxraha5Q7MF6guBHongADNkZcQvt5bkwIhMDACCBACNDCXpbpjItCrAI0JHO8CAQikE0CA0hliAQIQ6EgAAeoIjmwQgEA6gf8Bgzt4GlTrNLUAAAAASUVORK5CYII](https://github.com/tgstation/tgstation/assets/81540056/a2691688-b6e9-493d-99ec-ef729cf6cb06)


It is five carp scales and five leather to craft the shark costume, take
the costume and craft it with wirecutters to make a shork costume. Take
a shark costume, 10 cotton, and five cloth to craft a shark plush.

## Why It's Good For The Game

Good and funny costumes that give an additional use to pre-existing
crafting materials = good
Giving players another way to craft the shark plushie = good

Todo:
- [x] Make sure shit wont break
- [x] Add the crafting recipe for the costume
- [x] Add the crafting recipe for the shark plushie
- [x] Profit??

## Changelog

🆑 Drag
add: Adds the Shark and Shork costume. Blahaj lovers rejoice!
/🆑

---------

Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2024-03-08 19:37:25 +01:00
199c250975 Reworks gym equipment (#75389)
## About The Pull Request

Gym equipment are currently ported from Goon code, and I didn't like how
it currently worked as it was buggy and the code was a mess. I decided
to just rework how they worked entirely. I left the parts that weren't
Goon code (like tooltips & deconstruction) alone because it's not goon
code and I think it's fine that way.

- Now you buckle yourself to it (like a chair, I didn't like how it
didn't work like one) and can work out with an action button you get on
buckle, you can do as many sets as you want, then unbuckle & go.
- You aren't hardstunned for 8 seconds for clicking on it anymore, you
aren't flying around because the stun doesn't even last the duration of
the animation anymore.

Video demonstration


https://github.com/tgstation/tgstation/assets/53777086/f5ae86f1-65fb-46c6-8a5f-8f9d9f0548b3

## Why It's Good For The Game

Reworks old code
Removes un-documented Goon code
Makes gym equipment less broken than it currently is.

## Changelog

🆑
qol: Gym equipment was reworked. You now buckle yourself to weight
machines to use them, rather than clicking on it and getting stunned for
a few seconds. It also means it works like a chair now.
qol: Gym equipment no longer breaks a sweat in no gravity.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-05-19 15:01:01 -06:00
BloopandGitHub bd4392ab74 New inhand icons for light tubes, makes latex balloons craftable, and various other fixes/improvements (#74576)
## About The Pull Request

This ended up turning into a bit of a junk drawer of a PR I'll admit,
but there's really not a whole lot to it.

There are three parts:

### Part I - Inhand sprites for light tubes.

Adds inhand sprites for light tubes. No more cardboard tube placeholder.
This is self explanatory-they have unique sprites for all 3 states
(normal, broken, and burnt out). The broken version has sharpness now.

Also refactored light_items.dm a bit, it was using a bespoke proc called
`update` to do icon updates. Now it has been _updated_ to use
`update_appearance` instead.


![dreamseeker_6WC8vJMiBW](https://user-images.githubusercontent.com/13398309/230615134-31c51e94-cee5-4eef-ba63-c348a3b2debc.gif)

### Part II - Latex Balloons

Latex balloons, a very old piece of code that was full of typos, has had
some life breathed back into it. It is a fun little item, and I saw no
reason to let it rot. It can now be crafted using a latex glove and some
cable. Also, you can pop them using anything sharp... such as a broken
light tube! Aha!

We've come full circle.


![image](https://user-images.githubusercontent.com/13398309/230617764-3a304fd2-05d0-4b2f-b420-056a93c0dce3.png)

### Part III - update_inhand_icon proc

A new atom helper function, `/atom/proc/update_inhand_icon(mob/target =
loc)`

I was struggling to find an existing proc that could update inhand icons
of a mob that was holding any given atom, without necessarily having a
ref to the mob yet.

So I ended up writing one that did that, and finding the spots in the
code which were using a similar way of doing it (that is in fact how I
stumbled upon the latex balloon item).

...........But then Iearned of the
`/datum/element/update_icon_updates_onmob` component and ended up using
that instead. There are still some very niche cases where you might not
be able to use the component where the proc would come in handy however
e.g. in transforming.dm--and if anything, I think it could serve as a
good spot to leave a comment informing would be users of
`update_icon_updates_on_mob` as an alternative.

For that reason especially I thought it worth keeping. 

## Why It's Good For The Game

New inhand sprites, and a fun little craftable balloon. What's not to
like?

## Changelog

🆑
add: latex balloons can now be crafted using a latex glove and some
cable. You can fill them with air using a tank. They also have a new
sound effect.
imageadd: light tubes have a new inhand sprite
fix: broken light tubes now actually have sharpness to them as they are
basically spikes of glass.
refactor: refactored latex balloon code
/🆑
2023-04-09 19:51:35 -04:00
BloopandGitHub c2f6a4408d Fixes toilet bongs, and fixes a serious bug in the crafting system (#72893)
## About The Pull Request

The PR everyone has been waiting for...fixed toilet bong crafting. Now
you can craft them just as before using the new crafting system.


![image](https://user-images.githubusercontent.com/13398309/213944308-74b3e50e-965d-4e69-9025-d011764b3247.png)

In attempting to fix this I encountered one of the gnarliest, nastiest,
meanest and most infuriatingly difficult to debug bugs I have come
across so far. And it's existed for as long as the crafting system has,
but due to unique circumstances it has been allowed to go unnoticed this
whole time.

Technical details below. Full list of changes here:

- crafting recipes can now contain structures as part of their
requirements
- removed deprecated var 'additional_req_tex' and changed text to use
the 'steps' list instead so they actually show in the gui
- toilet bongs are now passable terrain like normal toilets are
- fixed an atrocious bug with crafting that was by pure coincidence not
causing any problems
- this bug would prevent any recipes that did not contain a material
from deleting properly
- this bug would also cause any recipes that are supposed to use but not
consume machinery to consume them regardless

---

Basically, the bug that took me hours upon hours of debugging and
head-scratching to find is this:

from crafting.dm:
```
	main_loop:
		for(var/path_key in requirements)
			amt = R.reqs[path_key] || R.machinery[path_key]
			if(!amt)//since machinery can have 0 aka CRAFTING_MACHINERY_USE - i.e. use it, don't consume it!
				continue main_loop
```
specifically this line:

`amt = R.reqs[path_key] || R.machinery[path_key] `

The culprit ended up being that if you do machinery[path_key] on an
empty list, it can lead to very unexpected behavior (see: EXITING THE
FUNCTION without actually doing anything).

I spent so much time thinking that item deletion wasn't working because
amt was being set to 0, false, or null perhaps when no, it wasn't that.
The function was just exiting out even before the (!amt) check due to
the atrocities committed by someone before me.

Setting amt = `R.reqs[path_key] || R.machinery[path_key]` on the other
hand always evaluates to a positive integer (either the successfully
retrieved reqs amt, or a 1 from the OR expression). It was only by
coincidence that the code did what it was supposed to, because:

1) Every single recipe has R_reqs, so the first part will never cause
the function-exiting failure because the list is never empty.
2) As for the second part of the expression, there are no recipes that
make use of CRAFTING_MACHINERY_USE, so the fact that machinery[path_key]
was never actually being accessed and thus set to a var (which is what
causes the function to exit) didn't matter.

So these two things together have basically allowed a really bad bug to
go unnoticed this whole time. I only noticed it because when trying to
add a third part to the expression it just did not work at all how you
would expect.

The solution is rather simply to add a check like so:
```

	main_loop:
		for(var/path_key in requirements)
			amt = R.reqs?[path_key] || R.machinery?[path_key]
			if(!amt)//since machinery can have 0 aka CRAFTING_MACHINERY_USE - i.e. use it, don't consume it!
				continue main_loop
```

Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/18732 .

## Why It's Good For The Game

Fixes a bug with crafting that would inevitably torment someone else as
soon as they tried to add the right kind of recipe, if that hasn't
already happened by now.

<details>
<summary>Toilet bongs are back baby!!</summary>


![image](https://user-images.githubusercontent.com/13398309/213941079-ae7d007a-ca92-4de3-9de6-7a156b4a0618.png)

</details>

## Changelog
🆑
fix: toilet bongs crafting recipes
fix: fixed crafting itself
refactor: cleaned up some old code in the recipes file, added support
for structures in recipes
/🆑
2023-01-23 12:53:28 +01:00
57e88e6091 Crafting fireaxe cabinets, mech removal cabinets, and mirrors (#72856)
## About The Pull Request
Breaking down #72371 because it's... unreasonably large.
So this PR splits the crafting recipe file, and adds 3 new recipes for
fireaxe cabinets, mech removal cabinets, and mirrors.

## Why It's Good For The Game
Wallening compliance, and more of me on my shit breaking down long
files.

## Changelog
🆑 Tattle
qol: fireaxe cabinets, mech removal cabinets, and mirrors can now all be
crafted
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
2023-01-23 10:45:27 +01:00