Commit Graph

2072 Commits

Author SHA1 Message Date
SkyratBot
b44715db5d [MIRROR] ex_act() will work on basic mobs again (lol) + Unit Test [MDB IGNORE] (#20919)
* `ex_act()` will work on basic mobs again (lol) + Unit Test

* COnflict

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:51:49 +01:00
SkyratBot
c4d4e1da63 [MIRROR] Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. [MDB IGNORE] (#20916)
* Minerals have been refactored so costs and minerals in items are now in terms of mineral defines.

* AI GEN RUN ONE

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:48:10 +01:00
SkyratBot
22f68874f4 [MIRROR] Service Borger Upri- Kitchen Upgrades [MDB IGNORE] (#20909)
* Service Borger Upri- Kitchen Upgrades

* Update robot_model.dm

---------

Co-authored-by: Dawnseer <126404225+Dawnseer@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-05-03 00:10:27 -07:00
SkyratBot
16b64484e9 [MIRROR] Ore silo will put machines off its level on hold, instead of disconnecting [MDB IGNORE] (#20859)
* Ore silo will put machines off its level on hold, instead of disconnecting (#74990)

## About The Pull Request

There's a problem where people would try to rebuild a whiteship and use
an Ore Silo for it. However, it would automatically unlink everything
when moving, because it's checking for z level as soon as it changes z
level itself, before the Ore silo has 'moved' as well.

~~To fix this, I'm now only disconnecting ore silos when a shuttle
moves. This mostly does the same as before, but technically you can sync
an unwrenchable connected machine and bring it to space with you
(without using a shuttle) to stay connected, but I don't see this as a
problem, and my original point of the PR was to prevent Lavaland ORMs.~~

I decided against this, instead I've made it so machines that aren't on
a valid level (either both on the same z level or both on the station
level) will be considered 'on-hold', much like if the QM has set it to
hold through the silo directly. This means that machines no longer
disconnect from the Ore silo on moving, they just can't access the
materials in it. This affects gameplay in 2 ways:

1. You no longer need to resync when you bring the machine back
2. It won't unsync itself every time you move station z-level with its
silo (such as on a whiteship).

I also made disconnecting from an ore silo actually remove them from the
ore silo's list of connected machines.

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/69863

## Changelog

🆑
balance: Machines (such as ORM and Techfabs) will no longer unsync from
Ore silos when it moves Z-level, instead it will prevent materials from
being used, as if it was on hold.
/🆑

* Ore silo will put machines off its level on hold, instead of disconnecting

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-05-02 15:50:25 -04:00
SkyratBot
7ddd343a70 [MIRROR] Move dirt [MDB IGNORE] (#20848)
* You can now move dirt (#75028)

## About The Pull Request

Changed the recipe for dirt piles from 3 sandstone bricks to 3 sand.
And made the dirt pile drop these 3 sand on deconstruction instead of
just disappearing.

![dreamseeker_Lj6jELZPjb](https://user-images.githubusercontent.com/3625094/235268536-c9835fa0-ce31-4bd3-a75c-ef2f3dcc7da7.gif)

Also fixed hydrotrays resetting their water and nutriments on
construction.

## Why It's Good For The Game

You could accidentally click on the wrong mouse button and loose your
dirt pile instead of uprooting a plant.
And it didn't make sense why you would need to turn sand into bricks
before making a pile out of it.

## Changelog

🆑
qol: Dirt pile is crafted from sand instead of sandstone and drops it on
deconstruction
fix: You can't have free water and nutriments by rebuilding hydrotray
/🆑

* Move dirt

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-04-30 10:56:18 +01:00
SkyratBot
9c2e07ee7c [MIRROR] Miner Style Points 2: Style on Everyone [MDB IGNORE] (#20826)
* Miner Style Points 2: Style on Everyone (#74690)

## About The Pull Request
A re-open of https://github.com/tgstation/tgstation/pull/66326 with
Fikou's permission

Adds the style meter, it can be bought from the mining vendor for 1500
points, it is an attachment to your glasses.
The style meter creates a display on your hud, with your recent actions,
like attacking enemies, killing them, mining ore etc. Actions like
spinning or flipping increase your score multiplier, making you get more
points.
Your style meter affects how much ore you get from mining rocks. By
default with the meter, you get 20% less ore, but at the highest, you
can get 1.2x the ore from mining. In addition, on B-tier or above, you
can "hotswap" items, by attacking an item in your backpack with one in
your hand (should it fit and all that). Also features a leaderboard for
highest style point count!

New streamable: https://streamable.com/eewi6l

The following are sources of points:

- Killing things
- Killing big things
- Killing small things
- Punching things
- Melee'ing things
- Mining rocks and ores
- Having matrix traps detonate
- Hit, defuse, and detonate gibtonite
- Detonate crusher marks
- Scan geysers
- Parry projectiles (others or your own)

Oh, right. While wearing the style meter, you're able to parry any
lavaland-based projectile by clicking on it or the tile it is on, which
reflects it back in a 7 degree arc, making it 20% faster and 15% more
damaging. Usually not very easy.

Maybe-plan in the future for some syndicate variant of this (with bullet
parrying and appropriate style sources, etc.), but not for this PR

Thanks to Arcane, multitooling the style meter will make it play some
sounds on rank-up.

![image](https://user-images.githubusercontent.com/41448081/231605640-a01c2b60-1ba1-4390-8bea-0aa804ea1973.png)

https://streamable.com/nheaky

Parrying in action

## Why It's Good For The Game
Makes miners bring more ore in a fun way.

## Changelog
🆑 Fikou, Zonespace, Arcane for voicing
add: The mining vendor now has a style meter. This meter gauges your
style points and uses them to improve your ore yield.
/🆑

---------

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

* Miner Style Points 2: Style on Everyone

---------

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-04-28 19:54:39 -07:00
SkyratBot
e8df6da548 [MIRROR] Fixes silo logging + add log file based logging to silo [MDB IGNORE] (#20748)
* Fixes silo logging + add log file based logging to silo

* Update logging.dm

* Update logging.dm

---------

Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-26 21:23:25 +01:00
SkyratBot
dff31c1b23 [MIRROR] Fire Proof Goliath Cloak [MDB IGNORE] (#20786)
* Fire Proof Goliath Cloak

* fixes

---------

Co-authored-by: Dawnseer <126404225+Dawnseer@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-04-26 14:59:08 +02:00
SkyratBot
fe47d6ba35 [MIRROR] Refactors sheet crafting to better support directional construction [MDB IGNORE] (#20594)
* Refactors sheet crafting to better support directional construction (#74572)

## About The Pull Request

0426f7ddba/code/game/objects/items/stacks/stack.dm (L449)

Ok, but can we not?

This PR refactors sheet crafting to generalize all the cases that were
previously locked behind grille/window type checks and such. In their
stead there are bitflags that can be set to achieve certain behaviors.

All the behavior from before should be preserved, but now it can be
extended to other items. E.g. if you want a railing that can be crafted
underneath directional windows, or an item that behaves like a grille
does--it's just a matter of setting the right obj_flags for it now.

This makes it very simple and painless to add new recipes that use
directional crafting! It's all modular now.

<details><summary>Details</summary>

---

### What I've done:

-Eliminated all the type checks, instead it will now be handled by
object flags and recipe vars, making for a much more configurable
system.

-Added two new obj_flags: `BLOCKS_CONSTRUCTION_DIR` and
`IGNORE_DENSITY`.
-Additionally, I renamed the existing flag `NO_BUILD` to
`BLOCKS_CONSTRUCTION`.

-Changes the proc `valid_window_location` to `valid_build_direction`,
and makes it work for things other than windows.

-Removed a deprecated `window_checks` var from the stack_recipe datum.
-Added three more vars to the stack_recipe datum: `check_direction` and
`check_density`, `is_fulltile`

-Decoupled `on_solid_ground` from the object density check. Now you can
set those separately, allowing you to make recipes that forbid/allow
building things over other things while in space.

---

### What the new flags do:

`BLOCKS_CONSTRUCTION` works as before---prevents objects from being
built on the object. I felt that the previous name was not descriptive
enough, you should know exactly what it does just from looking at the
name.
_example: dna scanner_

`BLOCKS_CONSTRUCTION_DIR` -- setting this on an object will prevent
objects from being built on it when their directions are the same.
_example: directional windows, windoors, railings_

`IGNORE_DENSITY` -- setting this on an object will cause its density to
be ignored when performing the construction density check. This could
have other potential uses as well in the future.
_example: grilles, directional windows, tables_

These three flags cover all the bases for the types of items that are
currently craftable, so there is no more need for any type checking or
weird snowflake window checks. Simply set the appropriate flag and it'll
work as you would expect.

---

### What the recipe vars do:
`check_direction` tells the recipe to check if there's something in that
direction with the `BLOCKS_CONSTRUCTION_DIR` flag set.

`check_density` tells the recipe to run the density check when set. This
is true by default. There are very few items in the game that currently
have this set to false--namely grilles. Setting this to false will make
it so that the object can be constructed regardless of what is in that
tile (unless `one_per_turf` is also set, which will make it so that you
can't craft the same thing twice in the same turf).

`is_fulltile` is used for fulltile windows, but it doesn't necessarily
have to be--you can give this to any recipe and it will adopt the same
properties as that of the fulltile window. Basically they have a special
case where they shouldn't be able to be built over directional
constructions, where normally things would be able to be. Setting this
makes check_direction true as well.

---

### In summary:

Sheet crafting still works just as it did before. But the backend of it
has gotten a glow up and will be able to more easily support new
behaviors.

</details>

## Why It's Good For The Game

This makes the crafting system much more flexible to add recipes to, and
will prevent bad code practices of stacking more conditionals down the
line whenever someone wants to add an item that behaves like grilles or
directional windows in how they are constructed.

It had to be done. Those window checks were a mess.

## Changelog

🆑
qol: added fifty stack versions of remaining glass sheet stacks for ease
of debugging
refactor: refactored sheet crafting to better support directional
constructions that aren't windows
/🆑

---------

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

* Refactors sheet crafting to better support directional construction

* fex

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/20636

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-21 02:14:10 +01:00
SkyratBot
2f27f9dec1 [MIRROR] Let there be (held) light! Adds directional flashlight sprites, and many new inhand icons for various light objects [MDB IGNORE] (#20624)
* Let there be (held) light! Adds directional flashlight sprites, and many new inhand icons for various light objects

* fixes

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-04-17 23:51:57 -07:00
SkyratBot
78c9a5b8c3 [MIRROR] Adjustable Goliath Cloaks [MDB IGNORE] (#20574)
* Adjustable Goliath Cloaks (#74709)

## About The Pull Request
I've enabled goliath cloaks to be alt clicked to adjust it to neck slot
instead of over clothing slot.
While adjusted to neck slot, it has no armor values for balance
purposes, while in over clothing slot, it has the same armor values as
usual. The hood has the same values as usual, as it still inhabits the
same slot as usual.

![image](https://user-images.githubusercontent.com/126404225/231837773-97f79c0e-9de2-4bfa-bfec-ed6c67e0d476.png)

![image](https://user-images.githubusercontent.com/126404225/231837688-f1f6ea67-8127-423e-96a0-b125f7778194.png)

![image](https://user-images.githubusercontent.com/126404225/231837716-805f778b-4db1-4dd5-a667-c196524f023f.png)
## Why It's Good For The Game
It enables a cloak to function like a cloak. It gives people the option
to use it not for armor, but for fashion.
## Changelog
🆑
add: Goliath cloak can be worn as a cloak that doesn't provide any armor
benefits
/🆑

* Adjustable Goliath Cloaks

---------

Co-authored-by: Dawnseer <126404225+Dawnseer@users.noreply.github.com>
2023-04-15 16:02:23 +01:00
SkyratBot
7463f2e2d1 [MIRROR] The North Star Expeditionary Vessel - A Second Wind [MDB IGNORE] (#20535)
* The North Star Expeditionary Vessel - A Second Wind (#74371)

## About The Pull Request
A new map for TGstation, in the works! It has 4 fucking Z levels, a
massive expansive maintenance with unique designs, and some unique code
features in the works.

To Do:
- [x] Update the Map to Modern TG
- [x] Local Tests
- [x] Work on Map Optimizations
- [x] Run Live Tests

Fikou has greatly helped with creating an important flavour aspect of
this map, Trek Uniforms on anyone who joins! See the forum thread for
more. This includes the framework for innate station traits, station
traits loaded as long as it's in a map's json

Here's the forum dev thread there are screenshots there.
https://tgstation13.org/phpBB/viewtopic.php?p=657252#p657252

### Mapping March
Ckey to receive rewards: Cheshify

## Why It's Good For The Game
So, this is the North Star. An effort taking multiple mappers and of 9~
months of hard work. This map was not initially designed for TGstation,
but always designed for TGstation code. The process of retooling the map
for TGstation was an absolute joy and I feel like the map definitely has
it's niche as a massive and unique experience for it's players.

I adore this map, it's gorgeous, has a unique aesthetic, and a number of
very funny interactions with multi-Z. The PR comes packed with unique
mechanics for future mappers (innate station traits!), a number of
map-fitting shuttles, and a fun spacefaring uniform gimmick for the
crew.

**This is my second attempt at bringing this map into rotation. It was
initially closed due to concerns about maptick and performance, as I
wasn't willing to push for a map to be added to the repository if it
didn't function to my own standards. I've been informed by a number of
coders far better than I that optimizations are arriving and enroute, so
I think it's time to dust her off and set sail for another journey.**

**Quick Disclaimer: Due to some design decisions disagreed upon by the
headcoder team and myself, the map will not be featuring unique
roundstart uniforms, and despite my design intentions, the innate
station trait features will be shelved for now.**

## Changelog
🆑 Cheshify, Fikou, Blue-Berry, Zytolg, InfiniteGalaxies, Striders,
Sylphet, Riggle, Soal, Andry, Crit, Deranging, and Pumpkin0.
add: Nanotrasen's Newest Exploratory Vessel is now available! Meet the
North Star!
add: More landmines, and a landmine random spawner.
add: energy barriers now have a regenerative subtype, fit for permanent
installations.
code: Raised the number of possible level render to 4, check your
preferences if needed to be reduced.
/🆑

---------

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

* The North Star Expeditionary Vessel - A Second Wind

---------

Co-authored-by: Cheshify <73589390+Cheshify@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-15 00:00:17 +01:00
SkyratBot
9593369b50 [MIRROR] New Crate Visuals [MDB IGNORE] (#20517)
* New Crate Visuals (#74636)

## About The Pull Request

Adds several new crate visuals. Adds a new lid overlay for several
crates. Re-names and re-designs bubblegum chest.

![image](https://user-images.githubusercontent.com/28636915/231009153-3abdc29b-1f47-4b7a-8725-97082b92b510.png)

![image](https://user-images.githubusercontent.com/28636915/231009170-40240220-45ed-4f9d-92b7-7925231a298b.png)

## Why It's Good For The Game

New crate visuals and lids not magically disappearing is cool.

## Changelog
🆑
add: New Lids for several crates.
imageadd: Several new Crate Visuals.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* New Crate Visuals

---------

Co-authored-by: Mey-Ha-Zah <tomboxallghss@gmail.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-04-13 04:31:35 +01:00
SkyratBot
9a594755f3 [MIRROR] Renames delta time to be a more obvious name [MDB IGNORE] (#20507)
* Renames delta time to be a more obvious name

* updates to our code

---------

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 20:45:43 +01:00
SkyratBot
1afaf1562a [MIRROR] [MDB IGNORE] UpdatePaths to convert directional pane windows to their proper subtypes, also creates the /south spawner for consistency [MDB IGNORE] (#20463)
* [MDB IGNORE] UpdatePaths to convert directional pane windows to their proper subtypes, also creates the /south spawner for consistency

* wew

---------

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 20:08:08 +01:00
SkyratBot
1b8d0b3a2f [MIRROR] New sprites for requests, pod, and gulag wall consoles [MDB IGNORE] (#20406)
* New sprites for requests, pod, and gulag wall consoles (#74456)

## About The Pull Request

Changes ancient sprites for requests _(don't confuse them with cargo
requests computer)_ and pod wall consoles, to the new polished ones with
the same style as the newscaster. Also makes the gulag/pod console
actually use overlays, instead of having the screen melted into its icon
(so now when it has no electricity it screen turns off).
Now pods and gulag console's screen changes when they get emagged.

Requests console:

![req_console](https://user-images.githubusercontent.com/42353186/229344252-fd79536a-faa8-47e5-8aa6-01eb172d2efd.png)
![req_0
big](https://user-images.githubusercontent.com/42353186/229344253-3f090c0b-1264-4303-9b83-38fd1a258ef5.gif)
![req_1
big](https://user-images.githubusercontent.com/42353186/229344254-3a5f2c17-a10c-4a76-9fb0-ca2e82e8291b.gif)
![req_2
big](https://user-images.githubusercontent.com/42353186/229344255-95e27da3-1180-4de6-9984-5da503bdfe44.gif)
![req_3
big](https://user-images.githubusercontent.com/42353186/229344256-7d2c44c8-047b-413b-bce8-a1a8c52ea48f.gif)

Pod console:

![pod_console](https://user-images.githubusercontent.com/42353186/229344287-60b33b09-1c36-47d1-8c0c-163be7ffdcd9.png)
![pod_0
big](https://user-images.githubusercontent.com/42353186/229344289-c315e3a4-69f1-4067-83fd-e855e2b9ec39.gif)

Gulag item retrieval console:
![gulag_0
big](https://user-images.githubusercontent.com/42353186/229344308-b09349cf-e607-4c0c-b4b5-e6f53aa6934f.gif)

![gulag_console](https://user-images.githubusercontent.com/42353186/229344310-9bfebc88-a5a4-4525-acb1-34b677fe8c95.png)

Emagged gulag/pod console:
![emagged
big](https://user-images.githubusercontent.com/42353186/229344319-1d523d2c-ca57-4da7-937d-459a5ddec515.gif)

## Why It's Good For The Game
The old sprites of them are really ancient, have bad looks and that old
isometric perspective.
![old gulag and pod
console](https://user-images.githubusercontent.com/42353186/229344549-dae413e1-98e2-4aa8-94fa-fde74ea4a4df.png)
![old req
console](https://user-images.githubusercontent.com/42353186/229344551-3d12705a-8cb6-4c4c-b4f7-adfa013b1956.png)

Having new sprites is always great for people's eyes. This also will
make the requests console more noticeable, that way _maybe_ people will
start using it more often.
Making them use overlays instead of having the screen icon merged into
the base icon is good because it gives more dynamic, as when electricity
turns out it signals more to the players that it's not functional right
now.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

🆑 DrDiasyl aka DrTuxedo#0931
imageadd: Requestions consoles got a new sprite!
imageadd: Gulag consoles got a new sprite!
imageadd: Escape and assault pod consoles got a new sprite!
qol: Now the gulag and pods consoles use overlays, instead of having
turned ON screen in their base icon.
qol: Now the gulag and pods consoles screen change when they are
emagged.
qol: Requests console now shows examine prompt on how to open their
panel. Also shows a prompt if they were hacked.
/🆑

---------

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

* New sprites for requests, pod, and gulag wall consoles

* update modular

* overlays are a fuck

* Update computer.dmi

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 20:01:28 +01:00
SkyratBot
fe8fc4d010 [MIRROR] Split weapons_and_items.dmi icons into their own categories [MDB IGNORE] (#20360)
* Split weapons_and_items.dmi icons into their own categories

* update modular

* I hate the dme

* random ass define removal fix

* missing icons fix

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 19:53:43 +01:00
SkyratBot
4724eb4bec [MIRROR] Gives plasmamen proper masks depending on their job. [MDB IGNORE] (#20458)
* Gives plasmamen proper masks depending on their job. (#74468)

## About The Pull Request
Adds gasmasks plasma filter subtypes for sechailer, explorer and atmos.
Atmosians won't have any updates, it's just to fix ERP Constructor
Plasmaman loadout spawning with mask that won't allow you to breath.

And so med plasmamen will have medical masks. There will be sechailers
for sec (except for the detective). And the miners will have explorer
masks.
Oriented on job_boxes and what jobs spawn with which boxes.
## Why It's Good For The Game
Some love for living plasma mold. And i just think that it should be
this way.
## Changelog
🆑
add: Plasmamen will now spawn with proper masks depending on the job.
/🆑

* Gives plasmamen proper masks depending on their job.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-04-09 19:36:17 -07:00
SkyratBot
a560da119f [MIRROR] [Ready] New Cosmic Heretic Path DLC [MDB IGNORE] (#20416)
[Ready] New Cosmic Heretic Path DLC

Co-authored-by: Comxy <tijntensen@gmail.com>
2023-04-08 19:10:34 +01:00
SkyratBot
749d62c1e3 [MIRROR] makes cursed katana combos into a generic component [MDB IGNORE] (#20419)
* makes cursed katana combos into a generic component (#74543)

## About The Pull Request
what the title says
also the katana's dark cloak move now has some vfx cause i figured why
not

## Why It's Good For The Game
this means anyone can give any weapon combos :D

## Changelog

* makes cursed katana combos into a generic component

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-04-08 18:50:43 +01:00
SkyratBot
6f3befe233 [MIRROR] Reagent soup / Soup rework / Stoves - A kitchen expansion [MDB IGNORE] (#20410)
* Reagent soup / Soup rework / Stoves - A kitchen expansion

* fixes that stuff

* puts the range stove on maps that sohuld have it

* fixes some paths that don't exist anymore

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-04-08 13:30:41 -04:00
SkyratBot
3464b6bfb2 [MIRROR] Refactors Regenerate Organs, and a few organ helpers [MDB IGNORE] (#20094)
* Refactors Regenerate Organs, and a few organ helpers

* MERGE CONFLICTS

* GETORGANSLOT > GET_ORGAN_SLOT

* GETORGAN > get_organ_by_type

* lint repairs

* more lint

* Update tgstation.dme

* Update surgery_step.dm

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 02:51:06 +01:00
Gandalf
e4b4d4d3c0 MISSED MIRROR [Lints Against Unmanaged Local Defines] (#20204)
* https://github.com/tgstation/tgstation/pull/74333

https: //github.com/tgstation/tgstation/pull/74333
Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* var stuff

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* vars

* Update sol_fed.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-01 01:15:22 +01:00
SkyratBot
63feb20ef0 [MIRROR] Organ Unit Tests & Bugfixes [MDB IGNORE] (#19968)
* Organ Unit Tests & Bugfixes

* e

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* e

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

---------

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-03-31 04:04:45 +01:00
SkyratBot
334f92d163 [MIRROR] Rebalances a vast oversight with one of the game's weapons [MDB IGNORE] (#20125)
* Rebalances a vast oversight with one of the game's weapons (#74283)

## About The Pull Request
Makes sure the game is fairly balanced again.
## Why It's Good For The Game
Honestly I'm surprised this weapon went unchanged for so long with no
downsides.
## Changelog
🆑 Wallem
balance: Fixes a glaring oversight with the entrenching tool's
balancing.
/🆑

* Rebalances a vast oversight with one of the game's weapons

---------

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2023-03-29 22:26:28 +01:00
SkyratBot
9faf2a16ec [MIRROR] Removes bepis Techweb and reworks tech disks in general [MDB IGNORE] (#20102)
* Removes bepis Techweb and reworks tech disks in general

* e

Co-Authored-By: san7890 <the@san7890.com>

* e

* it will be done

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-03-29 22:19:32 +01:00
SkyratBot
6e029611ac [MIRROR] Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test [MDB IGNORE] (#19959)
* Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test

* MISSED MIRROR https://github.com/tgstation/tgstation/pull/71606

* Update modules_supply.dm

* Update tgstation.dme

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 03:26:52 +01:00
SkyratBot
2728bbe9a9 [MIRROR] Polishes some side sources of light and color [MDB IGNORE] (#19860)
* Polishes some side sources of light and color (#73936)

## About The Pull Request

[Circuit Floor
Polish](6b0ee98132)

Circuit floors glow! but it looks like crap cause it's dim and the
colors are washed out.
I'd like to make them look nicer. Let's make them more intense and
longer range, and change the colors over to more vivid replacements.

While I'm here, these should really use power and turn on and off based
off that.
Simple enough to do, just need to hook into a signal (and add a setter
for turf area, which cleans up other code too).

[Desklamp
Upgrade](8506b13b9c)

Desklamps look bad. They're fullwhite, have a way too large
range.Crummy.
Let's lower their lightrange from 5 to 3.5, and make the ornate ones
warmer, and the more utilitarian ones cooler. The clown one can be
yellow because it's funny

I'm renaming a color define here so I'm touching more files then you'd
expect

[Brightens
Niknacks](835bae28e9)

Increases the light range of request consoles, status displays,
newscasters, and air alarms (keycard machines too, when they're awaiting
input at least)
Increases the brightness of air alarms, I think they should be on par
with apcs, should be able to tell when they're good/bad.
Increases the brightness of vending machines (I want them to light up
the tiles around them very lightly, I think it's a vibe)

Fixes a bug with ai status displays where they'd display an emissive
even if they didn't have anything on their screen, looking stupid.
This was decently easy but required a define. Looked really bad tho

## Why It's Good For The Game

Pretty

<details>
<summary>
Circuit Floors
</summary>

Old

![image](https://user-images.githubusercontent.com/58055496/224534470-c6eac5f5-5de6-40e9-897d-3212b8796d81.png)

![image](https://user-images.githubusercontent.com/58055496/224534477-ad412ad9-f7c4-44ae-ad75-a1a2c9bd17be.png)

New

![image](https://user-images.githubusercontent.com/58055496/224534486-b7b408a3-546c-4f90-aa9f-0e58bf8128ad.png)

![image](https://user-images.githubusercontent.com/58055496/224534496-626458f7-ab63-429c-a5db-eae9c784d06a.png)
</details>

<details>
<summary>
Desk Lights
</summary>

Old

![image](https://user-images.githubusercontent.com/58055496/224534513-9868b0b8-bc73-4b45-b986-8445078a8653.png)

![image](https://user-images.githubusercontent.com/58055496/224534518-bbbc8c6d-b59e-4f28-a31c-6c6a7e2c2885.png)

New

![image](https://user-images.githubusercontent.com/58055496/224534529-7988f440-03be-42ef-894c-b9e77f577ae5.png)

![image](https://user-images.githubusercontent.com/58055496/224534532-c3f2c6bf-c925-4a59-a8f9-10bb955a9942.png)
</details>

The niknack changes are more minor so I'm not gonna grab photos for
them. I can if you'd like but I don't think it's necessary. Mostly a
vibes in dark spaces sorta thing

## Changelog

🆑
add: I made circuit floors brighter and more vivid.
add: Made air alarms, vending machines, newscasters, request consoles,
status displays and keycard machines slightly "brighter" (larger light
range, tho I did make air alarms a bit brighter too)
add: Tweaked desklamps. Lower range, and each type gets its own coloring
instead of just fullwhite.
fix: AI displays are no longer always emissive, they'll stop doing it if
they aren't displaying anything. Hopefully this'll look nicer
/🆑

* Polishes some side sources of light and color

* yellow

* Update dance_machine.dm

* Merge branch 'upstream-merge-73936' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-merge-73936

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-03-26 01:39:17 -07:00
SkyratBot
c8660eb0d0 [MIRROR] fixes heck suit hiding boots and gloves [MDB IGNORE] (#20011)
* fixes heck suit hiding boots and gloves (#74131)

the armor's worn icon doesnt cover boots or gloves so when you wear it
over them you look all messed up

* fixes heck suit hiding boots and gloves

---------

Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
2023-03-22 00:47:37 -07:00
SkyratBot
408f0e9c5a [MIRROR] Audits usage of isanimal() vs isanimal_or_basic_mob() [MDB IGNORE] (#19938)
* Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)

## About The Pull Request

There's a couple of open issues which fix places where only simple
animals were considered, but they are doing it piecemeal.
I decided to just go through every instance of `isanimal` or
`subtypesof(mob/living/simple_animal)` I could find, identify which
should also affect basic mobs, and fix them.

I left out the two others which are already in PR, I'm not stealing your
GBP.

Fixes https://github.com/tgstation/tgstation/issues/68881

## Why It's Good For The Game

Consistency, mostly.
As far as I can tell all of these things _should_ have effected basic
mobs, but didn't.
This fixes a fair number of bugs but also they're bugs that nobody
noticed or reported.

There are a couple of places I did not update which will need updating
in future. These are:
- Dextrousness checks, because basic mobs don't have that yet.
- The Charge cooldown action, because frankly I couldn't tell what it
was trying to do.

alright here goes

## Changelog

🆑
fix: Carp will once again be healed from being near carp rifts
fix: Sepia slime cores and the rewind camera now work on Ian
fix: Sapient ridden carp (or cows) can throw off their riders by shoving
them, or by performing the spin emote.
fix: Giant Spider AI will be disabled by the timestop spell
fix: Ian can eat envirochow
fix: Mice, Frogs, and Cockroaches will no longer set off bear traps
fix: You can put a macrobomb implant into Cayenne (or Ian)
fix: Ian will now recognise that being squeezed by a cyborg is a nice
hug
fix: The player panel will tell admins if you're currently a corgi
fix: The staff of storms deals massive damage to Bileworms and Giant
Spiders
fix: Ian will whimper if forced to scream
fix: Slimes can consume space carp
fix: Mice can be captured in xenoballs
fix: You can use pacifying potions on Giant Spiders
fix: Sgt Araneus can be fitted with a xenobiological radio implant
fix: Sapient corgis no longer count as living players for the purpose of
highlander escape objectives
fix: The random sentience event can now target corgis and sergeant
araneus
add: The random sentience event can target a wider array of farm animals
fix: Petsplosion wizard event can target corgis
add: Petsplosion wizard event will now target farm animals and
mothroaches
fix: The colossus possession crystal can now actually possess the
cockroach it spawns, does not kill you instantly upon ending possession
/🆑

* Audits usage of isanimal() vs isanimal_or_basic_mob()

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-18 03:15:31 -07:00
GoldenAlpharex
702c3e2ce6 Total refactor of the way we handle and draw mutant_bodyparts (+ missed mirrors that motivated me to do this) (#19635)
* Splits mutant_bodyparts.dmi into several subfiles. (#71408)

Splits the `mutant_bodyparts.dmi` file up, as was suggested, but not
implemented, in #69302.

The following new files were created in the `icons\mob\species` folder,
containing the listed sprites:

- `lizard\lizard_misc.dmi`: Snouts, horns, frills, and body markings.
Anything I didn't feel needed an entire file to itself.
- `lizard\lizard_spines.dmi`: Lizard spines, both animated and not.
- `lizard\lizard_tails.dmi`: Lizard tails, both animated and not.
- `human\cat_features.dmi`: Felinid ears and tails.
- `monkey\monkey_tail.dmi`: The monkey tail.
- `mush_cap.dmi`: The lone mushperson cap, so easily forgotten.

Additionally, I moved `wings.dmi` from `mob\clothing` to `mob\species`.
I'm not sure what it was doing there.

`mutant_bodyparts.dmi` was something of a mess, with parts from four
different species thrown together haphazardly. It probably made sense in
earlier days when "mutant humans" were few and far between, but
splitting it up makes it more intuitive to find these sprites, and
brings it in line with other species - namely, moths. It also means that
any future sprites of these types added will not bloat an oversized file
even more.

Moving the wings file to the species folder just makes sense, because
wings are not a type of clothing.
🆑
refactor: Removed mutant_bodyparts.dmi and distributed its sprites in a
more sensible and granular manner.
/🆑

* External Organ Rework: new bodypart_overlay system (#72734)

Bodypart overlays are now drawn by the new /datum/bodypart_overlay
datum.

External organs no longer draw anything and instead add a special
/datum/bodypart_overlay/mutant to the bodypart, which draws everything

Makes it way easier to add custom overlays to limbs, since the whole
system is now modularized and external organs are just one
implementation of it

I haven't moved anything but external organs to this new system, I'll
move eyes, bodymarkings, hair, lipstick etc to this later

New pipeline is as follows:
- External organ added to limb
- External organ adds /datum/bodypart_overlay/mutant to limb to
bodypart_overlays
- Limb updates its icon, looks for all /datum/bodypart_overlay in
bodypart_overlays
- Very cool new overlay on your limb!

closes #71820

🆑
refactor: External organs have been near-completely refactored.
admin: Admin-spawned external organs will load with a random icon and
color
fix: fixes angel wings not working for non-humans (it was so fucking
broken)
fix: fixes external organs being invisible if they werent initialized
with a human
/🆑

External organs are cool but are pretty limited in some ways. Making
stuff like synthetic organs is kinda fucked. I tried and it was dogshit.
Now you can just give an icon state and icon and you're good (using
/datum/bodypart_accessory/simple)

Stuff like eyes, cat ears and hair seem like good choices for extorgans,
but don't quite work for it because their icons work a lot differently.
This solves for it completely since any organ (or object or whatever)
can add it's own icon to a bodypart.

Want to add an iron plate to someones head? Go ahead. Want a heart to
stick out of someones chest? No problem.

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

* Makes the whole thing compile, although it most likely doesn't work

* Whoopsie daisy

* Now it's starting to work

* ok monkey

* Fixes tails some more

* Moth wings should be wings not moth wings

* Podpeople hair, yeah.

* Okay no more handle_mutant_bodyparts()

* Removed an useless variable from is_hidden()

* Fixes some more can_draw_on_bodypart (I'm gonna have to fix it upstream too)

* Removes the second useless argument of is_hidden()

* No, cat tails are no longer allowed to be snowflake

* Removes some useless variables from humans

* Whoops I forgot to commit this one

* How did I miss this one?

* Okay, yeah, tails and some other stuff show up now. Pod people hair too. Just many of them don't. Good enough for today.

* Okay so after a lot of pain and suffering, many mutant_bodyparts are now functional

* Everything works, except for ears, some of the taur layering, and moth markings (which never worked it seems)

* Alright skintones seem to work rather well now(?)

* Okay, my bad, now they do

* Moth markings can't be selected and won't be added anymore (since they're broken and integrated into the regular markings system anyway)

* Spines are no longer just matching the color of the limb they're attached to

* Moves taur organ and bodypart_overlay out of the sprite_accessory file for taurs, and fixes the taur rendering

* Linters moment

* Alright, spines are working and overlaying properly now

They just need to have a FRONT overlay for the /tg/ ones if we want them to display above the lizard tails, we already have that for vox spines thankfully.

* Disables moth_markings for good

* Fixes some rendering bugs

* Makes ears work (almost, rest of the code has MODsuit stuff in it too :( )

* Made the MODsuit overlays work :)

* Fixed horns and spines

* Fixes all of the screenshot tests

* Removes the Body Markings option from Appearances, use Augments+ instead (because that one works and is just better)

* Bye bye handle_mutant_bodyparts(), I won't miss you :)

* Forgot to take this out, whoops

* Fixes the moth antennae being unticked

* Removes some commented code in a modular file

* Fixes part of the create_and_destroy unit test

* Fixes a pretty big issue that caused some sprite_accessories to be removed from the global list because of the alter_form action (deep copies ftw)

* Fixes the runtimes related to pod_hair

* Gives the vox a better look in the prefs menu

* Fixes the appearance of functional wings

* Makes synths able to access their robotic wings

* Podpeople don't cause runtimes during CI anymore

* Fixes the random appearance of locked functional wings

* Fixed cat and lizard tails using the /tg/ sprites (we have slightly modified ones)

* Fixes the coloring on multi-colored sprites

* Fixes the code for the screenshot of the mammal screenshots and preview, so it has a tail

* Fixes the screenshot tests for a few species

* Fixes tails going invisible when wagging

* Fixes a runtime with horns

* Fixes showing/hiding mutant bodyparts not working at all

* (Hopefully) fully fixes all the issues related to extra and extra2-related icon_states.

* Fixes synth stuff and starts working on pod hair again

* I DID IT PODPEOPLE HAVE HAIR AGAIN

* Fixes the podpeople hair showing up on more than just podpeople

* Fixes the IPC screens showing up on species outside of synthetics

* Fixes a runtime in the pod_hair and the synth_screen's apply_to_human

* Updates the screenshots for podpeople and synths

* Fixes an issue with a certain type of organs

* Fixes another runtime, whoops

* Fixes the markings from /tg/'s Body Markings not being available in our markings system

* Re-adds support for taur-variants of certain mutant bodyparts

* Hopefully fixes a few more runtimes

* Adds some debug variable in the code for now, likely to be removed later if really necessary. This will make my life easier.

* Whoops, that needed to be backwards. :clown:

* Fixes the top snouts not rendering at all

* Fixes the issues where bodytypes weren't handled properly, and thus snouts were getting squished

* Fixes the weird placement of the Xeno Head Emissives in the prefs menu

* Removes a no-longer-necessary override of post_set_preference() in the limbs_and_markings middleware

* Reverts an unnecessary SKYRAT EDIT inside of commented out code

* No longer creates a new body every time we change prefs in the prefs menu, we reusing now lads

I know there's commented out code but I'm going to remove that in another commit

* Removed some more dead code.

* Fixes jellyfish ears being all white

* Fixes plasmaman limbs not displaying because I accidentally hardcoded the limb_id for all augments to "robotic"

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-03-16 13:07:24 +00:00
SkyratBot
4912b160a8 [MIRROR] Removes bad nodamage var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage [MDB IGNORE] (#19768)
* Removes bad `nodamage` var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage

* wew

* Update drinks.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-11 04:19:58 +00:00
SkyratBot
f4ba8c4017 [MIRROR] Reworks sabotage progression traitor objective [MDB IGNORE] (#19766)
* Reworks sabotage progression traitor objective (#73750)

## About The Pull Request

This one is a little bit of a more abstract change than my last traitor
objective rebalancing PR.

The idea here is that I think that the objectives which have you
sabotage a frequently used machine (lathes or the ORM, but we can maybe
expand it to others following this?) are potentially pretty good but
limitations in how the objective are tracked mean that people go about
them in a boring way which rarely inconveniences anyone.

I have reworked these objectives so that you can choose to apply a
provided item to the machine over 10 seconds. The next interaction
following this (clicking on it, or in the case of the ORM loading any
ore into it) will cause the machine to explode, destroying itself and
lightly damaging people nearby (explosion damage is... variable, but
it's a light explosion so it won't instantly kill anyone).
There is a 0.5 second grace period between the bomb triggering and the
explosion actually happening, which players can use to perform some kind
of tactical reaction or simply to feel regret.

Here's a video:
https://www.youtube.com/watch?v=xNIaHsA9YFE

Trapped machines will intermittently beep, though at a volume which is
hard to detect from more than two tiles away, and can be defused by
using a screwdriver on the machine.
If you choose to do this then you will get a little bonus to TC and
reputation, but only if the trap is successfully sprung. This means that
sabotaging a machine in an empty department is unlikely to lead to quick
success.
You can also still do it with screwdriver and crowbar way if you are
boring but this means you will only get reputation and not any
telecrystals.

The two objectives to destroy a radio server or the research machine
remain as they were.

Also I refactored how we set which machines are targets for these
objectives so it doesn't iterate over every machine in the world every
time.

## Why It's Good For The Game

Traitor objectives (and antagonist objectives in general) should:
- Present you with a somewhat engaging task
- Encourage you to interact with at least one other player (at least by
"attempting to sneak past them")
- Move the state of the round forward in some way, usually by creating
inconvenience for at least one other person

Prior to this change you could, and people often did, complete this
objective by accessing a machine that you already _have_ access to,
using a screwdriver and crowbar on it, and then reassembling it.
This prompts interaction with nobody, and inconveniences nobody.

Following this change people will be encouraged to:
- Actually destroy the machine.
- Probably harm somebody.
- Potentially cause some collateral damage.
- Make loud sounds and flashing lights to delight people of all ages.

Even if you opt to set the device in a little-used department and then
blow yourself up, that will prompt you to go and interact with someone
in medbay and will also look pretty suspicious in a way that's much
harder to track with the previous objective.

Also I might reuse this component again in the future, you never know.

## Changelog

🆑 Jacquerel, sprite by J(Clearly Lying)
balance: Traitor objectives which ask you to destroy lathes or the ORM
provide an optional bonus if you _booby trap_ the machine using a
provided tool. This causes the machine to explode the next time it is
interacted with.
balance: Performing the objective without rigging the machine to explode
awards no TC, using it awards more TC than it did previously.
/🆑

* Reworks sabotage progression traitor objective

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-11 01:57:18 +00:00
SkyratBot
36cf718cc7 [MIRROR] Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart [MDB IGNORE] (#19678)
* Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart (#73678)

## About The Pull Request
So, this spiraled from one missing icon being fixed to an entire check
for said icons.
Several icon files no longer use error icons because its assumed that
the checks will handle any missing ones, but the checks don't apply to
emissives nor overlays at all. This led to the radsuit having an
emissive but no icon_state for it - a relic of the old radsuit. This was
only noticed because of a downstream with an error icon appearing for
it...

I was curious how many were actually having the same issue, so I made a
small little stack_trace in the mutable_appearance proc.
There were like, 2k. Lots of them were icons named, like, "transparent"
or "blank" too...
I moved that check to the emissives proc because I semi-understand that
system so could actually fix it, and it moved to around fourty
roundstart. Much more achievable.

(The error usually has more info if you click on it, including the item
that caused it. I dunno how to add that to the check itself because of
where it's located, though.)

![F99cOII1XJ](https://user-images.githubusercontent.com/76465278/221503786-63dc6980-a48b-4290-b891-23c0499500ff.png)

This fixes all the ones I could find, including...
Nonexistant icons that shouldn't be adding emissives on:
- Empty Barsign
- Radsuit
- Mass Driver Controllers
- Telescreens
- Aux Base Consoles
- PanDEMIC
- Kobayashi computer (holodeck)
- Abductor camera console
- Syndie drop pod
- BSA controller
Entirely missing icons on:
- Pwr Game Vendor (this was just misnamed)
- Generic Soda Vendor
- Engivend
- Security Laptop (proud of this one.,.,)
![dreamseeker_36PwO4HSLO](https://user-images.githubusercontent.com/76465278/221544806-3c5ae33a-1360-49e0-ba80-afea6c0a9339.gif)

There are no doubt more of them hidden about, but I don't really know
what I'm doing... If there's a check that'd be better than this, please
review telling me what to change <3
## Why It's Good For The Game
Fixes missing icons, fixes attempts to add icons where we don't need
them, and adds a check to help fix more of the two issues as they occur.
## Changelog
🆑
fix: fixed missing emissives on the Engivend, Pwr-Game Soda, and generic
Soda vendors. Also fixed the seclaptop having no valid screen icon!
fix: fixed a few items trying to apply emissives when they shouldn't.
code: added a stack_trace for emissives with missing icon states.
/🆑

* Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart

* Update cryopod.dm

---------

Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:11:13 +00:00
SkyratBot
4cd00f275a [MIRROR] Faction defines [MDB IGNORE] (#19590)
* Faction defines

* fixes

---------

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:55:18 +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
lessthanthree
7305d12d29 [MANUAL MIRROR] Nightvision Rework (In the name of color) (#19608)
* Nightvision Rework (In the name of color) (#73094)

Relies on #72886 for some render relay expansion I use for light_mask
stuff.

Hello bestie! Night vision pissed me off, so I've come to burn this
place to the ground.
Two sections to discuss here. First we'll talk about see_in_dark and why
I hate it, second we'll discuss the lighting plane and how we brighten
it, plus introducing color to the party.

https://www.byond.com/docs/ref/#/mob/var/see_in_dark

See in dark lets us control how far away from us a turf can be before we
hide it/its contents if it's dark (not got luminosity set)
We currently set it semi inconsistently to provide nightvision to mobs.

The trouble is stuff that produces light != stuff that sets luminosity.
The worst case of this can be seen by walking out of escape on icebox,
where you'll see this

![image](https://user-images.githubusercontent.com/58055496/215683654-587fb00f-ebb8-4c83-962d-a1b2bf429c4a.png)

Snow draws above the lighting plane, so the snow will intermittently
draw, depending on see_in_dark and the luminosity from tracking lights.
This would in theory be solvable by modifying the area, but the same
problem applies across many things in the codebase.
As things currently stand, to be emissive you NEED to have a light on
your tile. People are bad at this, and honestly it's a bit much to
expect of them. An emissive overlay on a canister shouldn't need an
element or something and a list on turfs to manage it.
This gets worse when you factor in the patterns I'm using to avoid
drawing lights above nothing, which leads to lights that should show,
but are misoffset because their parent pixel offsets.

It's silly. We do it so we can have things like mesons without just
handing out night vision, but even there the effect of just hiding
objects and mobs looks baddddddd when moving. It's always bothered me.
I'll complain about mesons more later, but really just like, they're too
bright as it is.

I'm proposing here that rather then manually hiding stuff based off
distance from the player, we can instead show/hide using just the
lighting plane. This means things like mesons are gonna get dimmer, but
that's fine because they suck.

It does have some side effects, things like view() on mobs won't hide
stuff in darkness, but that's fine because none actually thinks about
view like that, I think.

Oh and I added a case to prevent examining stuff that's in darkness, and
not right next to you when you don't have enough nightvision, to match
the old behavior `see_in_dark` gave us.

Now I'd like to go on a mild tangent about color, please bare with me

You ever walk around with mesons on when there's a fire going, or an
ethereal or firelocks down.
You notice how there isn't really much color to our lights? Doesn't that
suck?

It's because the way we go about brighting lighting is by making
everything on the lighting plane transparent.
This is fine for brightening things, but it ends up looking kinda crummy
in the end and leads to really washed out colors that should be bright.
Playing engineer or miner gets fucking depressing.

The central idea of this pr, that everything else falls out of, is
instead of making the plane more transparent, we can use color matrixes
to make things AT LEAST x bright.

https://www.byond.com/docs/ref/#/{notes}/color-matrix

Brief recap for color matrixes, fully expanded they're a set of 20
different values in a list
Units generally scale 0-1 as multipliers, though since it's
multiplication in order to make an rgb(1,1,1) pixel fullbright you would
need to use 255s.

A "unit matrix" for color looks like this:
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0, 0, 0, 0
)
```

The first four rows are how much each r, g, b and a impact r, g, b and
well a.
So a first row of `(1, 0, 0, 0)` means 1 unit of r results in 1 unit of
r. and 0 units of green, blue and alpha, and so on.
A first row of `(0, 1, 0, 0)` would make 1 red component into 1 green
component, and leave red, blue and alpha alone, shifting any red of
whatever it's applied to a green.

Using these we can essentially color transform our world. It's a fun
tool. But there's more.

That last row there doesn't take a variable input like the others.
Instead, it ADDS some fraction of 255 to red, green, blue and alpha.

So a fifth row of `(1, 0, 0, 0)` would make every pixel as red as it
could possibly be.

This is what we're going to exploit here. You see all these values
accept negative multipliers, so we can lower colors down instead of
raising them up!
The key idea is using color matrix filters
https://www.byond.com/docs/ref/#/{notes}/filters/color to chain these
operations together.

Pulling alllll the way back, we want to brighten darkness without
affecting brighter colors.
Lower rgb values are darker, higher ones are brighter. This relationship
isn't really linear because of suffering reasons, but it's good enough
for this.
Let's try chaining some matrixes on the lighting plane, which is bright
where fullbright, and dark where dark.

Take a list like this

```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     -0.2, -0.2, -0.2, 0
)
```
That would darken the lighting a bit, but negative values will get
rounded to 0
A subsequent raising by the same amount
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0.2, 0.2, 0.2, 0
)
```
Will essentially threshold our brightness at that value.
This ensures we aren't washing out colors when we make things brighter,
while leaving higher values unaffected since they basically just had a
constant subtracted and then readded.

You may have noticed, we gain access to individual color components
here.
This means not only can we darken and lighten by thresholds, we can
COLOR those thresholds.
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0.1, 0.2, 0.1, 0
)
```
Something like the above, if applied with its inverse, would tint the
darkness green.
The delta between the different scalars will determine how vivid the
color is, and the actual value will impact the brightness.

Something that's always bothered me about nightvision is it's just
greyscale for the most part, there isn't any color to it.
There was an old idea of coloring the game plane to match their lenses,
but if you've ever played with the colorblind quirk you know that gets
headachey really fast.
So instead of that, lets color just the darkness that these glasses
produce.
It provides some reminder that you're wearing them, instead of just
being something you forget about while playing, and provides a reason to
use flashlights and such since they can give you a clearer, less tinted
view of things while retaining the ability to look around things.

I've so far applied this pattern to JUST headwear for humans (also those
mining wisps)
I'm planning on furthering it to mobs that use nightvision, but I wanted
to get this up cause I don't wanna pr it the day before the freeze.

Mesons are green, sec night vision is red, thermals orange, etc.

I think the effect this gives is really really nice.
I've tuned most things to work for the station, though mesons works for
lavaland for obvious reasons.

I've tuned things significantly darker then we have them set currently,
since I really hate flat lighting and this system suffers when
interacting with it.

My goal with these is to give you a rough idea of what's around you,
without a good eye for detail.
That's the difference between say, mesons, and night vision. One helps
you see outlines, the other gives you detail and prevents missing
someone in the darkness.

It's hard to balance this precisely because of different colored
backgrounds (looking at you icebox)
More can be done on this front in future but I'm quite happy with things
as of now

I have since expanded to all uses of nightvision, coloring most all of
them.

Along the way I turned some toggleable nightvision into just one level.
Fullbright sucks, and I'd rather just have one "good" value.

I've kept it for a few cases, mostly eyes you rip out of mobs.
Impacted mobs are nightmares, aliens, zombies, revenants, states and
sort of stands.

I've done a pass on all mobs and items that impact nightvision and added
what I thought was the right level of color to them. This includes stuff
like blobs and shuttle control consoles
As with glasses much of this was around reducing vision, though I kept
it stronger here, since many of these mobs rely on it for engaging with
the game

<details>
<summary>
Technical Changes
</summary>

filter transitions.
Found this when testing this pr, seemed silly.

This avoids dumbass overlay lighting lighting up wallmounts.
We switch modes if some turfflags are set, to accomplish the same thing
with more overhead, and support showing things through the darkness.

Also fixes a bug where you'd only get one fullscreen object per mob, so
opening and closing a submap would take it away

Also also fixes the lighting backdrop not actually spanning the screen.
It doesn't actually do anything anymore because of the fullscreen light
we have, but just in case that's unsued.
Needs cleanup in future.

color with a sprite

This is to support the above
We relay this plane to lighting mask so openspace can like, have
lighting

vision goggles and such
Side affect of removing see_in_dark. This logic is a bit weak atm, needs
some work.

It's a dupe of the nightvision action button, and newly redundant since
I've removed all uses of it

trasnparent won't render

These sucked
Also transparent stuff should never render, if it does you'll get white
blobs which suck

</details>

Videos! (Github doesn't like using a summary here I'm sorry)
<details>

Demonstration of ghost lighting, and color

https://user-images.githubusercontent.com/58055496/215693983-99e00f9e-7214-4cf4-a76a-6e669a8a1103.mp4

Engi-glass mesons and walking in maint (Potentially overtuned, yellow is
hard)

https://user-images.githubusercontent.com/58055496/215695978-26e7dc45-28aa-4285-ae95-62ea3d79860f.mp4

Diagnostic nightvision goggles and see_in_dark not hiding emissives

https://user-images.githubusercontent.com/58055496/215692233-115b4094-1099-4393-9e94-db2088d834f3.mp4

Sec nightvision (I just think it looks neat)

https://user-images.githubusercontent.com/58055496/215692269-bc08335e-0223-49c3-9faf-d2d7b22fe2d2.mp4

Medical nightvision goggles and other colors

https://user-images.githubusercontent.com/58055496/215692286-0ba3de6a-b1d5-4aed-a6eb-c32794ea45da.mp4

Miner mesons and mobs hiding in lavaland (This is basically the darkest
possible environment)

https://user-images.githubusercontent.com/58055496/215696327-26958b69-0e1c-4412-9298-4e9e68b3df68.mp4

Thermal goggles and coloring displayed mobs

https://user-images.githubusercontent.com/58055496/215692710-d2b101f3-7922-498c-918c-9b528d181430.mp4

</details>

I think it's pretty, and see_in_dark sucks butt.

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: The darkness that glasses and hud goggles that impact your
nightvision (think mesons, nightvision goggles, etc) lighten is now
tinted to match the glasses. S pretty IMO, and hopefully it helps with
forgetting you're wearing X.
balance: Nightvision is darker. I think bright looks bad, and things
like mesons do way too much
balance: Mesons (and mobs in general) no longer have a static distance
you can see stuff in the dark. If a tile is lit, you can now see it.
fix: Nightvision no longer dims colored lights, instead simply
thresholding off bits of darkness that are dimmer then some level.
/🆑

* modular edits

* see_in_dark

* [MIRROR] Adds a unit test to detect double stacked lights [MDB IGNORE] (#19564)

* Adds a unit test to detect double stacked lights

* we really need to get that night vision pr done

* lints fixes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>

* Update augments_eyes.dm

* Update augments_eyes.dm

* eeee

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:17:22 +00:00
SkyratBot
5eed69ba74 [MIRROR] [no gbp] orm correctly displays borg id data [MDB IGNORE] (#19707)
* [no gbp] orm correctly displays borg id data (#73808)

## About The Pull Request
this is a minor thing i forgot to add in my last PR, now the borg's name
will be displayed as well when interacting with the ORM rather than
displaying "no id detected"

## Why It's Good For The Game
## Changelog
🆑
qol: Borgs are now acknowledged by the orm
/🆑

* [no gbp] orm correctly displays borg id data

---------

Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
2023-03-07 10:41:14 -08:00
SkyratBot
1e86c7a0ce [MIRROR] ORM ui qol [MDB IGNORE] (#19681)
* ORM ui qol (#73721)

## About The Pull Request
seperates everything into tabs and allows u to search. ur credits are
displayed on the ui and makes the buttons to print mats similar to
fabricators

![image](https://user-images.githubusercontent.com/95004236/222835992-a4ffa622-b718-4f3b-b8c7-9cbc8355c325.png)

## Why It's Good For The Game
more fun to use the orm

## Changelog
🆑
qol: made ORM easier to use
/🆑

* ORM ui qol

---------

Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
2023-03-06 08:30:41 -08:00
SkyratBot
8dcac79daf [MIRROR] Removes Cult perms from Survival pods [MDB IGNORE] (#19693)
* Removes Cult perms from Survival pods (#73757)

## About The Pull Request

Removes Cult permitted from survival pods, as it's very uninteresting to
have cult bases in places no one will check.
This doesn't affect the mining base itself.

## Why It's Good For The Game

One of the drawbacks of Cult is that they get stronger at the cost of
being more easy to spot, so being to completely bypass the negative part
makes it unfair to fight cult if there's a single shaft miner, or
literally anyone if it's icebox.

## Changelog

🆑
balance: Cult can no longer draw runes in survival pods.
/🆑

* Removes Cult perms from Survival pods

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-03-06 08:28:08 -08:00
lessthanthree
021c9d546e [MANUAL MIRROR] Buff scythes, goats, and plantbgone vs PLANT biotypes (#19215)
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)

This buffs scythes, goats, and plantbgone vs PLANT biotypes:

- Scythes now deal x1.5 damage to venus flytraps (3 hits to kill)
- Scythes now target the flower bud vines
- Goats now target flower bud vines and deal 15 damage to PLANT biotypes
- Goats have a eating sound whenever they bite PLANT biotypes
- Plantbgone now does 2 dmg per unit to PLANT biotypes (10 dmg per
spray)
- Plantbgone now has a 75% chance to remove weeds and deals large damage
to flower buds
- Weed control crates now come with a pair of leather gloves
- Golems are immune to thorn effects
- Any kind of thick glove material will prevent thorn effects when
attacking
- Flower buds will now take x4 damage from fire and sharp weapons
(unless they have fire trait)
- Regular scythes are now a sharp object

Also this fixes a few runtimes with spacevines and nulls. The bane
element now accepts `mob_biotypes` bitflags as an argument.

Before my changes:

- Plant-b-gone was doing 0.4 dmg per unit to PLANT biotypes (2 dmg per
spray)
- Scythes took 5 hits to kill venus flytraps
- Goats only affected podpeople
- Flower bud vines were being ignored by weed killing code
- Plantbgone only had a 50% chance to remove weeds (and this was very
inconsistent due to RNG)
- Botanical gloves and thick gloves didn't protect from thorns
- Golems were getting pierced by thorns despite having pierce immunity
- Flower buds were not taking the x4 damage like they should have been
- Regular scythes were not a sharp object, but other scythes
(chaplain's, megafauna loot) were sharp

This makes the weed killer crate more effective since people were
complaining about it being worthless vs vines and flower buds. These
changes give people more options to respond to threats vs plants.

🆑
add: Add a pair of leather gloves to weed control crate
balance: Mobs with the PLANT biotypes (venus flytraps, pod people,
killer tomatoes) are now much weaker vs scythes, goats, and plantbgone.
balance: Plantbgone is now more effective at destroying weeds.
balance: Regular scythes are now a sharp object
fix: Fixed scythes, goats, and plantbgone not affecting flower bud
vines.
fix: Thick and botanical gloves not protecting from thorns
fix: Golems not having pierce immunity from thorns
fix: Runtime where vines tried to spread into null turf
fix: Runtime where null vines that were destroyed were trying to spread
to nearby turfs
soundadd: Add eat food sound when goats eat plants
code: Improved goat targeting code
code: The bane element now accepts `mob_biotypes` bitflags as an
argument.
/🆑

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-03 18:37:34 +00:00
Tom
f6edbf0b86 [MANUAL MIRROR] Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344) (#19451)
* Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344)

Re-pr of #66644 with some changes to get it working

![image](https://user-images.githubusercontent.com/51863163/209893337-6a35207b-f097-4fd8-bc51-e66b3273919c.png)

- [x] ~~Huds get cut off~~ Resolved
- [x] ~~Very tall helmets get cut off~~ Resolved
- [x] Hair gets cut off
- [x] ~~Needs optimization before releasing to the world as a pref~~ jk
lol

Look at that fella so cute

🆑 Melbert, That REALLY Good Soda Flavor, FatFat, AndreyGusev
add: Spacemen can now have varying height. (Admin only for now)
add: Dwarfs are now slightly shorter, but look way better.
/🆑

Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>

* fix conflict

* clarity

* update rouny

* update screenshots

* Revert "update screenshots"

This reverts commit a5427a5238e574869fe364568b7f043bbd287c79.

* Fixes the dwarf screenshot.

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-28 16:27:27 -05:00
SkyratBot
f302798585 [MIRROR] Fixes the labor claim console not properly linking in shuttle loads [MDB IGNORE] (#19507)
* Fixes the labor claim console not properly linking in shuttle loads (#73590)

## About The Pull Request

Caused by f88edef0fb

I prevented lighting objects transfering between space turfs and not
space turfs.
This meant if you went from space turf -> non space turf, we had to
spawn you a new lighting object.

This would set your luminosity to 0, then queue you for updates.

This meant that shuttles would go fulldark (To things without
see_in_dark) on move. So when we'd try and do a view check to look for a
stacking machine to feed from, we'd get blocked

Lets swap from a view to a dview() then, and default to lit instead of
unlit turfs

Because mobs use infi see_in_dark this only impacts redundant view()
calls. Lets just be nice to em yeah?

## Why It's Good For The Game

Closes #73324

## Changelog
🆑
fix: The gulag shuttle's point claim console will load in again. Whooops
/🆑

* Fixes the labor claim console not properly linking in shuttle loads

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-02-24 01:25:29 -08:00
lessthanthree
c7e7cb494f [MANUAL MIRROR] Lazarus Injected mobs don't fight each other (#19072)
* Dominate & Lazarus Inject basic mobs. Lazarus Injected mobs don't fight each other. (#72440)

Fixes #72404
The Lazarus Injector doesn't currently work on basic mobs, but should.

Problem:
The EMPed state of the Lazarus Injector is intended to make a revived
mob hostile to everyone except you, including other mobs you have
revived wtih an EMPed Lazarus Injector.
This is trivial to achieve for Simple Mobs which essentially all share
the same AI, but I could not think of a single workable solution for
Basic Mobs which don't, or at least any which didn't come with a tedious
requirement to closely consider this niche item when programming any
additional AI.

Solution:
Change the default behaviour of the Lazarus Injector so this is not a
problem.
If all it does it make the mob loyal to you _and_ friendly to other mobs
which are loyal to you, then it's pretty easy because we can just use
the existing faction flags.

This is unambiguously a buff to using the item for nefarious purposes as
now if you revive four ice drakes and fulton them onto the station they
won't kill each other until only one is left, but is the only workable
solution I could really think of.
A lot of the very dangerous mining fauna can't be dragged so
transporting your army to the station still poses a question.

The alternate solution was just to replace the AI controller of any
emp-revived basic mob with a "zombie" AI controller, but this has the
problem that
A- It would now make things like cows and dogs into hostile creatures
when they previously weren't.
B- It loses any interesting behaviour the mob previously had and for
cases like Bileworms doesn't even make any sense (they'd try to walk and
just get stuck in place).
This ultimately leads to needing to make bespoke versions for various
mobs, which doesn't seem desirable from a maintainability standpoint.

As a side note it's still not a great idea to revive Bileworms _anyway_
as, their ability to move is tied to their ability to attack so once
they don't have a target they will just kind of sit there and if they
_do_ get a target their attempts to help you fight are difficult to
distinguish from attempts to kill you... but at least being able to
revive them makes it easier to make one sapient if you really want to
trap a player's mind inside a body which is incapable of leaving
lavaland.

Additional edit:
At Fikou's suggestion I've also added a sentience comparison proc to
`mob/living` and removed some code duplication which dealt with this
problem in the sentience/mind transfer potions, as well as added it to
the Dominate spell.

This device is meant to revive mobs and it shouldn't be required for
players to memorise an arbitrary list of which mobs it does and doesn't
work on.
Especially as the goal is eventually that all simple mobs should be
basic mobs.
This way of working is more intuitive, even if it is also stronger. I
was surprised when I used EMPed injectors and my "new minions" just
killed each other.

🆑
fix: You can now revive 'basic mobs' with a Lazarus Injector, such as
dogs, cows, axolotls, or carp.
fix: The same category of mobs can also now be effected by the Runic
Golem Dominate spell.
fix: Basic Mobs will switch target if they can no longer attack their
current target; meaning that if you become a Bileworm's friend it will
stop attacking you.
balance: Mobs injected with the Lazarus Injector while it is EMPed will
no longer attack other mobs revived by EMPed Lazarus Injectors.
/🆑

* Update code/modules/research/xenobiology/xenobiology.dm

* Update code/modules/research/xenobiology/xenobiology.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-10 20:22:23 +00:00
SkyratBot
7adcdbd4f2 [MIRROR] Fixes the ORM I/O lights [MDB IGNORE] (#19012)
Fixes the ORM I/O lights (#72936)

## About The Pull Request

The ORM's input lights have turned invisible, due to item state names
that have not been updated. This PR fixes that. It also autodocs the
various procs and vars.
 

## Why It's Good For The Game
Fixes #72923 It is good to see which direction you have to place the
ores.

## Changelog
 

🆑 
fix: The ORM's input and output lights are once again visible
/🆑

Co-authored-by: Profakos <profakos@gmail.com>
2023-01-31 02:14:21 +00:00
SkyratBot
69bd792a4c [MIRROR] Mint can gib obese people again [MDB IGNORE] (#18987)
Mint can gib obese people again (#72970)

## About The Pull Request

Changes minttoxin(a toxin) to mintextract(a food).

## Why It's Good For The Game

Fixes https://github.com/tgstation/tgstation/issues/72969

The chef's mint is intended to gib fat people. Due to
https://github.com/tgstation/tgstation/pull/70764, liver functionality
was reworked so that instead of being purged rapidly, toxin's in a mobs
system with 3 units or less have no effect. Since the chef's mint only
has 2 units of mint toxin, it's intended functionality is impossible
under normal circumstances.

By changing the reagent type from toxin to consumable, it restores the
ability to gib.

## Changelog

🆑
fix: Mint Toxin(a toxin) has been changed to Mint Extract(a food). The
chef's mint can once again gib, fatties beware.
/🆑

Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
2023-01-28 20:17:09 +00:00
SkyratBot
0c852c734e [MIRROR] Moves mining points from the ID to the bank account (+credit type shown on order console) [MDB IGNORE] (#18952)
Moves mining points from the ID to the bank account (+credit type shown on order console) (#72726)

## About The Pull Request

Mining points are now stored on the ID's bank accounts instead of the
individual IDs, bringing them on-par with credits. This allows miners to
safely replace their ID and keep their mining points just like they can
for their credits.

I also added the cost type on Produce Consoles, so people using them
will know whether they're using mining points or credits.

Because all IDs have a bank account by default, this won't be a problem
to Golems or the like.

## Why It's Good For The Game

1. It's more clear to the player what type of credit is being used in
the order console
2. Mining points being tied to the ID is no longer needed as all IDs
have a bank account
3. Brings mining points up to the same standard as credits.

## Changelog

🆑
qol: Mining points is now tied to bank accounts instead of individual
IDs, so they transfer over in cases of an ID replacement.
/🆑

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-26 14:29:04 -05:00
SkyratBot
ad6d8dc19f [MIRROR] TGC rulebook added to the card battle arena and fixes a bug with holographic TGC coins [MDB IGNORE] (#18762)
* TGC rulebook added to the card battle arena and fixes a bug with holographic TGC coins (#72595)

## About The Pull Request

The coins spawned by the TGC holodeck arena had monetary value and could
be used as an infinite source of income, they've been replaced with a
worthless subtype.
Also a small QoL change since I've seen people looking for it ICly but
I've added a rulebook to the holodeck so people can access the wiki page
directly.
## Why It's Good For The Game

Infinite money exploit bad and I've watched multiple people go hunting
for a non-existent rulebook.
## Changelog
🆑
qol: Rulebook for TGC has been added to the TGC arena.
fix: Holographic TGC coins are no longer legal tender and cannot be
inserted into your ID.
/🆑

* TGC rulebook added to the card battle arena and fixes a bug with holographic TGC coins

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-01-17 04:41:35 +00:00
SkyratBot
27492ff60d [MIRROR] Autounlock techwebs are shared between machines that use them. [MDB IGNORE] (#18734)
* Autounlock techwebs are shared between machines that use them. (#72515)

## About The Pull Request

Did you know that for every Autolathe, Limbgrower, Biogenerator, ORM,
and Smelter that was built, an entire new techweb was made? The average
round has 2 ORMs (smelters count) if not more from ORM deconstruction
objective, 2 biogenerators, several autolathes and generally 0-1
limbgrower, I think there's more techwebs being created than we need.

Creating a whole techweb was a pretty terrible way to optimize this, so
I made a global list that stores these techwebs. Created on demand,
these autounlocking techwebs now share between the machines that use
them. It also generate all hacked nodes which will be visible if the
machine is hacked, instead of 'researching' them for each hacked
individual machine.

The 'specialized' techweb subtype was removed because its sole purpose
was to allow autounlocking to be a subtype of it. Now autounlocking is
just the direct subtype. I also removed mechfab autounlocking type
because it wasn't used, mechfabs use techwebs directly.

Autolathes and Limbgrowers now locally store 'imported designs' which
are things uploaded from technology disks. Outside of this, the
autounlocking techweb subtype now stores 'hacked designs' which unlocks
when the machine is emagged.
While doing this, I saw ORMs and Biogenerators had disks you can insert
into them, but I did not find anything that can actually be uploaded to
them (I saw Alien Alloys as a possibility, but there's no such disk to
allow uploading this alloy to the machine, and I didn't think an entire
system for 1 single alloy was worth keeping around), so I removed this
unused feature from both machines.

I merged 'Hacked' and 'Emagged' categories because they served the same
purpose, 'hacked' being on hacked autolathes and 'emagged' being on
hacked (emagged) limbgrowers.

Tech disk techwebs (which is created every time a disk is made, however
I hope to change this in the future) into it's own subtype, so admins
understand where its from when looking in VV panel (because I was
confused when I saw them at first).

``autolathe_crafted`` proc was removed because it was entirely unused
too.

Now it looks like this, which I consider an improvement:

![image](https://user-images.githubusercontent.com/53777086/211052875-9215a84d-fb04-450b-a120-4d0316cec6ff.png)

## Why It's Good For The Game

We no longer initialize a brand new techweb for no reason whatsoever.
Each techweb made is making entire lists of experiments and research
papers, all of which is never to be seen in-game and is completely
useless to the player. Cutting down on these techwebs is a good first
step to this needless initializing.

## Changelog

🆑
qol: Removed the tech disk part of the ORM's UI as it was entirely
unused, now it's a little more compact with less scrolling needed.
refactor: Autolathes, Limb growers, Biogenerators, ORMs and Smelters now
share techwebs with other machines of their types, rather than all make
new techwebs each time. This means they only build their nodes once,
including hacked ones. Instead of researching nodes on hacking the
machine, they now show hacked ones depending on if it's hacked.
/🆑

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

* Autounlock techwebs are shared between machines that use them.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
2023-01-14 18:54:19 -08:00
SkyratBot
090174da7a [MIRROR] Biogen shows default reagent container icons instead of beakers [MDB IGNORE] (#18503)
* Biogen shows default reagent container icons instead of beakers (#72247)

## About The Pull Request

With the new crafting menu some reagents now have default container
assigned.
I applied these to visualize reagents in biogen UI too.

<img alt="060ybChTkI"
src="https://user-images.githubusercontent.com/3625094/209483256-e4159a05-46ae-47b8-bc42-9d003cf6c303.png">

## Why It's Good For The Game

Better representation of a reagent.

## Changelog

🆑
qol: Biogenerator shows default reagent containers instead of beakers
/🆑

* Biogen shows default reagent container icons instead of beakers

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-13 16:18:14 -08:00