Commit Graph

391 Commits

Author SHA1 Message Date
SkyratBot
b79167c173 [MIRROR] Organ movement refactor *Un-nullspaces your organs* [MDB IGNORE] (#25530)
* Organ movement refactor *Un-nullspaces your organs*

* Fix conflicts

I checked the conflicts on the two weird conflicts and no previous TG pr touches them i assume its just github being github because those shoulden't be conflicts *shrug

* Fix #1 uhh...this is going to be a long one

* Fix #2 Modular Movement Flags

* Fix #3 It builds now

* Fix #4 Oh god it builds now, I missed some things

* Fix #5 No more Runtimesplosion Now time for Synths

* Update nightmare_organs.dm

* on_mob_insert

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

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

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

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

* bro the fucking brain does not go into the chest.

* seriously? undocumented code causing shit. if it breaks ghouls, so be it.

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-24 19:06:09 +00:00
SkyratBot
3658c80e57 [MIRROR] Explodes device.dmi [MDB IGNORE] (#25523)
* Explodes device.dmi

* Demodularize these

* Update traitordevices.dm

* Update traitordevices.dm

* Modularizes hypnotic flash

* Modular dmi repath

* Modular dmi repath

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-09 09:48:43 -05:00
SkyratBot
b15b16976a [MIRROR] Attack chain refactoring: Broadening tool_act into item_interact, moving some item interactions to... atom/item_interact / item/interact_with_atom [MDB IGNORE] (#25516)
* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`

* Patches up merge skew (#80197)

## About The Pull Request

Yeah #79968 (1e76fd70b4) was not
compatible with master but no one said anything on the PR so i got
jebaited into merging it. The code should be up to the same standards
per the documentation I read (preventing thwacking the target in certain
situations while not returning anything in other situations)

master will definitely compile now though

* Patches up merge skew

* Merge conflicts

* Modular adjustments

* Removes this entirely duplicated proc...

* Update tool_override.dm

* Update weldingtool.dm

* Update tool_override.dm

* Update tool_override.dm

* Nope. Copy paste begone.

A skyrat edit is so much easier to deal with here

* Update brand_intelligence.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-09 08:22:19 -05:00
SkyratBot
3d816fc0d5 [MIRROR] basic cleanbots refactor and new janitor skillchip [MDB IGNORE] (#25511)
* basic cleanbots refactor and new janitor skillchip

* Update medbot.dm

* UpdatePaths

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-12-08 19:59:00 -05:00
SkyratBot
8b2da46cf7 [MIRROR] Punished sect blessing rework [MDB IGNORE] (#25368)
* Punished sect blessing rework (#80043)

## About The Pull Request
Instead of punished sect healing people like the normal bibble- you take
their burdens on instead!
All bodypart damage and wounds is transferred onto you, as well as
blood, suffocation, cloning damage and toxins
The amount of damage you take is dependant on your burden level,
decreasing by 7% with every burden level (100% at level 0, 93% at level
1, 37% at level 9 (the point at which you become a psyker))
the punished sect is now an absolute trauma, this makes more sense
because aheals shouldnt really clear it more than they clear stuff like
paraplegics

## Why It's Good For The Game
I think it's an interesting tweak of letting this chaplain sect do
something the others can't in healing, yet at a possibly huge cost.

## Changelog
🆑
add: Instead of punished sect healing people like the normal bibble- you
take their burdens on instead!
/🆑

---------

Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>

* Punished sect blessing rework

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
2023-12-01 17:11:29 -05:00
SkyratBot
2c8f0151a4 [MIRROR] Adds INTJ skillchip [MDB IGNORE] (#25223)
* Adds INTJ skillchip (#79902)

## About The Pull Request

Adds a new skillchip, it lets you taste food by examining it.

![image](https://github.com/tgstation/tgstation/assets/7483112/666ab42e-2918-43e5-835c-99c71a552325)
This has all of the effects of tasting food (various moodlets based on
quality and food type) and can also trigger food allergies if you have
them, however it does not consume the food nor give you any nutritional
benefit.
You can buy it from a vendor or sometimes it spawns in maintenance.

## Why It's Good For The Game

The players are constantly clamouring for more additions to our most
loved and useful feature, skill chips.
<details>

![intj](https://github.com/tgstation/tgstation/assets/7483112/58de56aa-b4bc-48fc-8c22-fa9c7a74314b)

</details>

## Changelog

🆑
add: A new skill chip can be found in maintenance or purchased from the
vendor, allowing you to experience food in new and exciting ways.
add: Abductors also have access to this incredible power, simply using
their genius level brains.
/🆑

* Adds INTJ skillchip

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-11-23 19:02:29 -05:00
SkyratBot
d66c7fab66 [MIRROR] Paraplegics can use the skillchip machine. [MDB IGNORE] (#25177)
* Paraplegics can use the skillchip machine. (#79860)

## About The Pull Request

Fixes #64387.

Gives the Skillsoft station `INTERACT_ATOM_IGNORE_MOBILITY`, making it
possible to use while lying down. This means that it can actually be
used by paraplegics, or anyone else without functional legs.
## Why It's Good For The Game

As this particular machine can only be used from inside, and you cannot
bring a wheelchair in, it is currently impossible for paraplegic
characters to use skillchips at all. There is no good reason _why_
paraplegics or people without legs should be barred from this system,
and it doesn't make much sense that this machine would need legs to
function - so it no longer requires them.
## Changelog
🆑
fix: Skillsoft's skillchip stations are now ADA-compliant (Astronauts
with Disabilities Act). Paraplegic characters can now implant themselves
with skillchips, the same as anyone else.
/🆑

* Paraplegics can use the skillchip machine.

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
2023-11-21 22:54:14 -05:00
SkyratBot
9c78808284 [MIRROR] Nukes radio.dmi, adds inhands for somewhat relevant items. [MDB IGNORE] (#25147)
* Nukes radio.dmi, adds inhands for somewhat relevant items. (#79792)

## About The Pull Request

Third /icon/ cleansing splinter 1. Comments on commits say all it does
pretty much.

![image](https://github.com/tgstation/tgstation/assets/122572637/6540e588-bed8-4e98-81f5-2a6f449c53c3)

## Why It's Good For The Game

Inhand for walkietalkie was requested in the project, gets rid of some
usecases of old 'gangtool', headset splitoff requested by Fazzie.
Inhands reflecting the items they are supposed to represent is nice.

## Changelog

🆑
image: Following now have unique item sprites: syndicate war declaration
radio, curator and chief beacon's, chaplain beacon.
image: Following now have unique inhand sprites: radio, export scanner,
walkie-talkie, syndicate war declaration radio, curator and chief
beacon's, chaplain beacon.
/🆑

* Nukes radio.dmi, adds inhands for somewhat relevant items.

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
2023-11-20 09:05:49 -05:00
SkyratBot
bc1e8de059 [MIRROR] Fixes Wiki Book Manuals not working [MDB IGNORE] (#24870)
* Fixes Wiki Book Manuals not working

* Fixing diffs

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-09 03:47:02 -05:00
SkyratBot
45346de410 [MIRROR] Basic Shades [MDB IGNORE] (#24770)
* Basic Shades (#79469)

## About The Pull Request

Makes shades into basic mobs. As they are solely player-controller and
have no AI, this was a very simple conversion.

Things of note:
- I've made shades use the same "theme" system as constructs, to
determine their drops and coloration - as opposed to these things being
manually set by the type of soulstone they're held in.
- I've reorganized files slightly, putting both constructs and shades in
a new "cult" basic mob folder.

That's more or less it. As I said, shades are simple.
## Why It's Good For The Game

Basic-izes another mob and cleans up the code a little. Removes the last
cult-related simplemob, too.
## Changelog
🆑
refactor: Shades now use the basic mob framework. Please report any
bugs.
/🆑

* Basic Shades

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
2023-11-03 19:40:49 -04:00
SkyratBot
6e677a2bbd [MIRROR] Invisibility refactor [MDB IGNORE] (#24405)
* Invisibility refactor (#78908)

This adds a tracker for sources of invisibility and a priority system. I
needed this for another thing so I'm doing this first since it touches a
lot of code. As for the bugs fixed in the changelog, it's only what I
noticed while going through everything and there's likely a few more
things fixed with this. This should be testmerged for a while, I'll
bring this out of draft when it feels safe.

🆑
admin: Invisimin can now be used on mobs that are already invisible,
whether through temporary or permanent effects.
fix: Monkeyize/Humanize mob transformations no longer permanently reveal
invisible mobs if they had effects making them invisible otherwise.
fix: Objects with the undertile element that have been made invisible
through other means are no longer revealed by being uncovered.
/🆑

* Invisibility refactor

---------

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2023-10-18 00:36:09 -04:00
SkyratBot
6da5503e2d [MIRROR] Refactors Revenants into Basic Mobs [MDB IGNORE] (#24233)
* Refactors Revenants into Basic Mobs

* Update revenant_abilities.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 20:39:03 -04:00
SkyratBot
0c9149bf35 [MIRROR] Refactor gib code to use bitflags and have documentation [MDB IGNORE] (#24143)
* Refactor gib code to use bitflags and have documentation

* Modular updates

* Modular updates

* Modular updates

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 15:00:17 -04:00
SkyratBot
59e1231c8b [MIRROR] A thorough audit of damage procs and specifically their use in on_mob_life() (with unit tests!) [MDB IGNORE] (#24087)
* A thorough audit of damage procs and specifically their use in on_mob_life() (with unit tests!)

* Modular changes--bonus, removes a bunch of completely unused code signals code that was taking up resources needlessly

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-03 05:27:34 -04:00
SkyratBot
13a9abdf2c [MIRROR] The fishing portal generator expansion (plus skill-chip) [MDB IGNORE] (#24052)
* The fishing portal generator expansion (plus skill-chip) (#78203)

## About The Pull Request
This is a PR I worked on last month, but had to put on hold while
dealing with some pressing issues with fishing feature, minigame and
other stuff, and because I had to atomize out some of the stuff
previously present here.

I've expanded on the fishing portal generator to do something other than
dispense guppies and goldfishes. It now has multiple settings,
unlockable by performing scanning experiments for fish types, available
from the get go, which also reward a meager amount of techweb points
upon completion. The generator can now be built too. No longer it has to
be ordered from cargo.
It can also be emagged for the syndicate setting, tho right now it only
dispenses donkfish and emulsijack, both otherwise impossible to get
outside of... exodrone adventures.

The advanced fishing rod now comes with an experiment handler component,
specific to the fish scanning experiment, that automatically scans
fished content. The node to get it now requires 2000 points and the
first fish scanning exp to be unock.

A new skillchip has been added, which adds a trait that changes the icon
of the fish shown in the minigame UI, giving some clues on what the
reward will be. The same trait is also gained by reaching the master
(penultimate) level of the fishing skill.

A new fish type has been added, with its own quirks. One of these quirks
included temporarily switching movement direction of the bait.
Currently, it can only be fished in the hyperspace and randomizer
setting of the fishing portal.

Screenshots:
![fuck
yea](https://github.com/tgstation/tgstation/assets/42542238/b4c75951-fa07-44ae-99ee-f602adf8a5a4)

![radial](https://github.com/tgstation/tgstation/assets/42542238/68ff21d8-69fd-4ba5-aa58-9976b6e3282f)

## Why It's Good For The Game
The fishing portal generator is but a stale and underdeveloped prototype
of the fishing feature right now, so much I was thinking of removing it
at first. However, we also have a lot of fishes which are pretty much
unfishable, so I came up with the idea of adding new portal settings
that allow people to actually get them.

As for the skillchip and trait, it's but an extra to both the vending
machine in the library and the fishing skill itself, which has an
overall humble impact on the minigame.

## Changelog

🆑
add: Expanded the fishing portal generator. It now comes with several
portal options that can be unlocked by performing fish scanning
experiments, which also award a modest amount of techweb points.
balance: The fishing portal generator is now buildable and no longer
orderable. The board can be printed from cargo, service and science
lathes.
balance: Advanced fishing tech is no longer a BEPIS design. It now
requires the base fish scanning experiment and 2000 points to be
unlocked.
add: The advanced fishing rod now comes with an incorporated
experiscanner specific for fish scanning.
add: Added a new skillchip that may change the icon of the "fish" shown
in the minigame UI to less generic ones. Reaching master level in
fishing also does that.
qol: The experiment handler UI no longer shows unselectable experiments.
/🆑

* The fishing portal generator expansion (plus skill-chip)

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-09-30 23:41:29 -04:00
SkyratBot
d4bb0d4c86 [MIRROR] Adds Summon Cheese [MDB IGNORE] (#23430)
* Adds Summon Cheese

* Update staff.dm

---------

Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-08-31 18:09:25 -07:00
SkyratBot
2644a9e37d [MIRROR] New Mech UI and equipment refactor [MDB IGNORE] (#23098)
* New Mech UI and equipment refactor

* Update mecha_defense.dm

* Update clothing.dm

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-15 19:59:50 -04:00
SkyratBot
598952c1c2 [MIRROR] Refactors chameleon actions, Adds chameleon outfit saving, Adds chameleon scanner [MDB IGNORE] (#22773)
* Refactors chameleon actions, Adds chameleon outfit saving, Adds chameleon scanner

* Update cards_ids.dm

* Update _glasses.dm

* Delete chameleon.dm

* Update _glasses.dm

* Update _glasses.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-07-29 21:09:06 -04:00
SkyratBot
0112c3f681 [MIRROR] Buffs the Syndicate Tome [MDB IGNORE] (#22542)
* Buffs the Syndicate Tome (#76733)

## About The Pull Request

Betcha forgot this item even existed huh?
Well the wiki page about it is wrong, and its been pretty much untouched
since its implementation so i'll tell you what it does do before I tell
you about the buff.
So, the syndicate tome is a 5tc traitor item that functions as a bible.
It also has a very high force of 18 burn, and you hurt people with it
instead of healing them with in on harm intent. Because normally only
chaps can use the bible, the first person to use the bible inhand can
"bind" to it which deals 5 damage, gives them the priest trait, and adds
their true name to the item's description.

Now, it also functions like a nullrod, granting anti-magic and allowing
the clearing of heretic/cult runes.

## Why It's Good For The Game

When this thing was introduced magic could hardly even exist in the same
round as a traitor. But in the world of dynamic, we have antag on antag
interactions all the time. This gives traitors the opportunity to go
anti-cultist/anti-wizard/anti-heretic if they wish, and at a cost.

* Buffs the Syndicate Tome

---------

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-18 16:42:10 -04:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
Zergspower
bb3d041572 [Manual Mirror Fix] Removes shitty "status" variable on organs, makes them use organ_flag (#22480)
* Removes shitty "status" variable on organs, makes them use organ_flags instead (#76350)

Title.

Seriously this shit pisses me off, why are ORGAN_SYNTHETIC and
ORGAN_ROBOTIC two different things?

not applicable unless i fucked up

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>

* Modulars

* Some merge skew

* More diffs

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 17:27:49 -04:00
SkyratBot
e264ee3644 [MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts

* Update communications.dm

* Modular override

* Some modular adjustments, removes 'emagged' vars in favor of obj_flags

* whoops, mobs don't have obj_flags.

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 16:46:17 -04:00
SkyratBot
4a779bb4b6 [MIRROR] Bibles, Lighters, and Cowboy Hats can block bullets [MDB IGNORE] (#22282)
* Bibles, Lighters, and Cowboy Hats can block bullets (#76521)

## About The Pull Request

If you are wearing a bible or lighter in your suit slot, or a cowboy hat
on your head, there is a small (2%) chance that bullets (only bullets,
not lasers) will hit them instead of you.
This destroys lighters, removes the storage capacity of the bible, or
sends the hat flying off your head.

The Bounty Hunter's cowboy hat has a significantly higher chance to
intercept bullets.

## Why It's Good For The Game

Adds some fun flavour to these items.

## Changelog

🆑
add: A bible or lighter in your suit slot, or cowboy hat on your head
will occasionally intercept a bullet.
/🆑

* Bibles, Lighters, and Cowboy Hats can block bullets

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-11 23:59:06 -04:00
SkyratBot
32310aedf6 [MIRROR] Library barcode scanner resprite & unique sound effects [MDB IGNORE] (#22059)
* Library barcode scanner resprite & unique sound effects (#76182)

## About The Pull Request

Resprites the barcode scanner & adds unique sounds for switching modes &
scanning books
## Why It's Good For The Game

This Pr was a labor of love. I love playing curator and thought the
scanner could use some sounds and then thought it could benefit from a
new sprite
## Changelog
🆑
sound: Adds unique sounds to library barcode scanner
image: Removes soul from library
/🆑

https://github.com/tgstation/tgstation/assets/97811257/3ee693a4-7a75-46c5-aa58-66a870e83357

* Library barcode scanner resprite & unique sound effects

---------

Co-authored-by: kate <97811257+winterboekje@users.noreply.github.com>
2023-06-27 20:38:45 -07:00
SkyratBot
1b48ff46e4 [MIRROR] Admin Library Moderation (in-game edition) [MDB IGNORE] (#21565)
* Admin Library Moderation (in-game edition)

* conflicts

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 14:19:01 +01:00
SkyratBot
64867887dc [MIRROR] Improves some confusing aspects of the Library [MDB IGNORE] (#21893)
* Improves some confusing aspects of the Library (#75781)

## About The Pull Request

The barcode scanner now uses balloon alerts and only has 2 modes: check
in and add to inventory. It used to have 4, 2 of which were useless.

Added a title and author to chuuni granter so it's not broken to the
Curator's console. Moves inventory ui data stuff to ui static data so we
can reference it in checkout, which now uses a dropdown list of all
books in checkout, instead of having you fill out the name of the book
yourself.

Removes sending things to a computer by scanning a book then connecting
it to a computer. Just connect it to a computer first, there's no need
for this copy and paste stuff.

Finally, lets the book bag hold posters, since the Curator prints them
and it would be nice if they can also carry them without filling a bag.

Video was taken before the balloon alert stuff so just ignore that part

https://github.com/tgstation/tgstation/assets/53777086/e78011af-fb23-4553-a92d-f3dcc8bb5601

## Why It's Good For The Game

The library is currently very confusing for new people to figure out, I
thought this might be able to help with that.
The dropdown in the UI now means it's easier to give out books in
inventory, and you can no longer just type whatever the hell you wanted.

## Changelog

🆑
qol: The Curator's barcode scanner has been simplified into 2 modes:
check-in and add to inventory.
qol: The Book bag can now hold posters.
ui: The library console can now lend books out easier with a dropdown
menu to all inventory books.
/🆑

---------

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

* Improves some confusing aspects of the Library

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-06-18 14:02:19 +01:00
SkyratBot
14862dd679 [MIRROR] Adjust objects to tabletop when wrenched [MDB IGNORE] (#21486)
* Adjust objects to tabletop when wrenched (#75671)

![dreamseeker_2f6HEd87Kb](https://github.com/tgstation/tgstation/assets/3625094/c272df94-cdb6-427e-a3dc-c0e7d9cca4ea)

## About The Pull Request

Added a variable to `/obj/` that can be set to adjust the object sprite
when it mapspawns or being wrenched on top of a table.

Set this variable for some popular tabletop machines, removing the
default `pixel_y` offsets for some of them.

Also moved the wrenching logic to /obj/. It was under machinery for some
reason.

## Why It's Good For The Game

Did you ever unwrench something from the table by accident and then was
annoyed that you can't revet it back?

## Changelog

🆑
qol: Objects have a variable to adjust them visually when they're
wrenched or spawned on a table
refactor: Removed redundant code that had similar purpose, moved `obj`
wrenching logic into the `objs.dm`
qol: food/slime processor can be moved on table and adjusts to it when
wrenched
/🆑

* Adjust objects to tabletop when wrenched

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-05-27 20:49:30 -07:00
SkyratBot
4c0da7d43b [MIRROR] Book patches [MDB IGNORE] (#21321)
* Book patches (#75565)

## About The Pull Request
1. Fixes #75555 knives already have their `sharpness = SHARP_EDGED` so
there's no need to explicitly type check for them and overall that if
condition was just a mind blender, so it's better now
2. Fixes #75577 bibles can convert other bibles again and will not
attempt to store it inside. Carrying over the fix that was implemented
in #73137

## Changelog
🆑
fix: wire cutter's can carve out book's again.
fix: bibles can convert other bibles
/🆑

---------

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

* Book patches

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-05-21 22:07:43 +01:00
SkyratBot
d3f2386664 [MIRROR] Bible refactor [MDB IGNORE] (#21190)
* Bible refactor

* Delete book.dm

* updatepaths

* you're meaning to tell me i have to edit CODE??

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-05-16 09:34:10 -04:00
SkyratBot
81427795ee [MIRROR] Resprites Skillchips [MDB IGNORE] (#21192)
* Resprites Skillchips (#75183)

## About The Pull Request

Replaces the skillchip sprite with a new, smaller one that looks more
like a chip rather than an 8-inch floppy. (With a fancy housing because
consumer electronics can't just be bare circuit boards that's not
stylish.)

![image](https://user-images.githubusercontent.com/5479091/236567052-1dc2aee2-9360-45f5-939c-45a1d47061f5.png)

## Why It's Good For The Game

The old one looks like this and takes up most of a tile, need I say
more?

![image](https://user-images.githubusercontent.com/5479091/236566803-d82f2857-99b9-4381-9d41-6abf4a30e0ab.png)

## Changelog
🆑
image: Skillchips have been resprited to be smaller and more chip-like
/🆑

* Resprites Skillchips

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
2023-05-14 22:24:27 -07:00
SkyratBot
a2ccde9f68 [MIRROR] Allows the book binder to remember font typing [MDB IGNORE] (#20827)
* Allows the book binder to remember font typing (#75007)

use that for book binding
## About The Pull Request

Closes https://github.com/tgstation/tgstation/issues/74996
## Why It's Good For The Game
## Changelog
🆑
fix: Bookbinder no longer takes your pen's font and throws it out the
nearest window
/🆑

* Allows the book binder to remember font typing

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-04-29 09:51:09 +01:00
SkyratBot
5122630c7a [MIRROR] Books now render Markdown, fixing paper importing [MDB IGNORE] (#20770)
* Books now render Markdown, fixing paper importing (#74902)

## About The Pull Request

Books didn't render markdown and instead just dumped the raw contents,
(after a html encode), into the window.
Changes them to use tgui and support markdown rendering.
## Why It's Good For The Game

Books should should look the same as the paper used to make them.
## Changelog
🆑
fix: Book's no longer take your formatting and throw it out the window.
refactor: Book display and rendering
/🆑

---------

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

* Books now render Markdown, fixing paper importing

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-04-25 19:33:20 -07:00
SkyratBot
08f12c62e7 [MIRROR] Adds book burning [MDB IGNORE] (#20727)
* Adds book burning (#74873)

## About The Pull Request

For some reason, unlike other paper items, you couldn't ignite books
with a lighter or other hot item.
Now, you can!

(Also made it so the odd obscure mechanic of cutting pages out of books
can be done by any sharp item, not just wirecutters or knives)

## Why It's Good For The Game

Consistency.
~~Burning copies of WGW.~~

## Changelog

🆑
add: Books can now be burned just like any other paper item.
add: You can cut pages out of books with any sharp item, not just knives
or wirecutters.
/🆑

---------

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

* Adds book burning

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-04-23 21:48:48 -04:00
SkyratBot
c79bd4f13b [MIRROR] Adds Chuunibyou Spell + Granter [MDB IGNORE] (#20299)
* Adds Chuunibyou Spell + Granter

* aazaasdaw

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-04 16:34:11 +01: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
4f983f9b2f [MIRROR] Fixes machines not releasing their contents when opened (such as mobs), when they otherwise should. [MDB IGNORE] (#20059)
* Fixes machines not releasing their contents when opened (such as mobs), when they otherwise should.

* e

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 03:27:33 +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
6d08ad8984 [MIRROR] Machines can now be pried open multiple times and maintain their initial densities [MDB IGNORE] (#20044)
* Machines can now be pried open multiple times and maintain their initial densities (#74163)

## About The Pull Request
These changes fix how machines are pried open with crowbars. Currently,
most machines can be pried open, but many of them have no method for
being closed again. This means they can be pried once, and then never
again (as their internal logic has them stuck in an "open" state).

Additionally, the densities of these machines is also inconsistent, as
density is tied to the procs for opening/closing machines (open =
non-dense, closed = dense). Thus, these new changes allow desired
densities to be passed to `open_machine()` and `close_machine()`, as
well as `default_pry_open()`, meaning that atypical machine densities
can be maintained (e.g. machines that should remain dense when open, or
non-dense when closed).

I've also added a `close_after_pry` boolean parameter to the
`default_pry_open()` proc, which determines whether to immediately close
a machine after opening it. This is useful for machines that don't
really have a use case for remaining open, often lacking a sprite to
represent this state as well.
* Note: Opening and immediately closing machines with this boolean will
still drop their contents onto the floor, but will now immediately
"close" in their logic, allowing for further prying attempts in the
future.

It's worth noting that this implements default density values for these
procs, which match the existing behavior for machines, so as to
(hopefully) not disrupt existing or expected machine behavior.

Two caveats to these changes currently exist:
1. On machines that immediately close after prying, the prying action
can now be spammed to the chat with repeated clicking. I'm uncertain if
this needs some sort of spam protection or if it's fine as is.
2. I've only been able to manually test this code. I'd love to write
unit tests for it, as it affects a lot of different machines, but don't
know where to begin with DM Unit Testing (or which files would be good
examples to reference in the code base).
* Note: I did manually test each and every machine that calls
`default_pry_open()` and they all seem to be working correctly. (Except
for `obj/machinery/plumbing/sender`, but that doesn't seem to need
prying, as it has no contents to drop, only reagents.)

As always, let me know if any improvements/changes should be made.

This closes #26833.

## Why It's Good For The Game
These changes allow crowbar prying to correctly occur multiple times on
any machine, which is intended behavior. It prevents player confusion
that could occur when a machine couldn't be pried open a second time
during a shift, even though it had previously been pried before, forcing
players to question themselves. (Are they missing something? Did they
perform the action a different way last time? Is the machine actually
still powered on instead of off? Etc.)

These changes also maintain the correct density for machines after
prying, preventing scenarios where a machine might behave differently
once it had been pried open. (An example of this was being able to walk
through a smartfridge after prying it open.) Additionally, players are
no longer required to know/use workarounds (such as machine disassembly)
to retrieve a powered-off machine's contents.

Overall, these changes improve consistency around machines, creating
more scenarios where they behave as players would expect.

## Changelog
🆑
fix: machines can now be pried open more than once.
fix: machines now have the correct density when pried open.
/🆑

---------

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

* Machines can now be pried open multiple times and maintain their initial densities

* wew

---------

Co-authored-by: Antonio Tosti <5588048+atosti@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 02:36:29 +01: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
Zonespace
8fabd54ad6 Mirrors #72354 (#18654)
* [no gbp] removes all duplicate armor datums (#72354)

closes #72348
Title

My bad

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

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

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

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

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

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

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

* modular

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-13 18:05:12 -05:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

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

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
63c29b58c0 [MIRROR] Implements Cooldown On Uploading Books to Newscaster [MDB IGNORE] (#18337)
* Implements Cooldown On Uploading Books to Newscaster (#72112)

## About The Pull Request

Hey there,

Pretty much on the tin. We implement a cooldown on the backend for a set
amount of time to prevent people spamming the newscaster channel with a
shitload of books (rather than have absolutely no safeguards against
it), and then pipe information to the UI for user feedback.
## Why It's Good For The Game

Fixes #71290

In case you weren't already aware, letting users absolutely wreck the
shit out of player's chat via newscaster spam (all newscasters forcesay
a message when something's uploaded to it) as well as just fill the shit
up of a channel with various vulgarities isn't a really good thing.
## Changelog
🆑
fix: To prevent spam, there is now a cooldown on being able to upload
assorted books into the newscaster's channel feed.
/🆑

Let me know if the cooldown seems too long, not hard to change.

* Implements Cooldown On Uploading Books to Newscaster

Co-authored-by: san7890 <the@san7890.com>
2022-12-25 17:59:35 -08:00
SkyratBot
b9b6a803b0 [MIRROR] Throws a bunch of parenthesis around to ensure dear Aunt Sally is always properly excused. [MDB IGNORE] (#17654) 2022-11-22 19:44:59 -08:00
SkyratBot
49d1a6d1a9 [MIRROR] Adds falling hazard element, beware of falling tools, wear your hardhat, comically timed piano falling on the clown [MDB IGNORE] (#17539)
* Adds falling hazard element, beware of falling tools, wear your hardhat, comically timed piano falling on the clown (#70970)

## About The Pull Request

https://user-images.githubusercontent.com/82386923/199180691-6605c8cc-e8aa-490e-ab65-909d45d12ca0.mp4

Do note that the damage in this video is extremely exaggerated compared
to what the normal value is.
## Why It's Good For The Game

All these signs about engineers needing to wear their hardhat, and for
what? For the assistant dropping toolboxes onto them from above, that's
what! Also allows people to do as god intended by allowing them to drop
pianos on people.
## Changelog
🆑
add: A variety of items, mainly tools, around the station might hurt if
they fall on your head, remember to wear your hardhat and to avoid
standing under large red X marks on the ground with a piano hanging
above them.
/🆑

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

* Adds falling hazard element, beware of falling tools, wear your hardhat, comically timed piano falling on the clown

* Made anvil and large mortar falling hazards

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-11-18 14:10:59 -05:00
SkyratBot
bd0e38f788 [MIRROR] Slightly adjust base pixel off-set for library consoles [MDB IGNORE] (#17540)
* Slightly adjust base pixel off-set for library consoles (#71303)

## About The Pull Request
Title.

## Why It's Good For The Game

![image](https://user-images.githubusercontent.com/70232195/202208894-95bcb3a9-9858-4f18-bca4-086054d1c925.png)
What it is currently vs

![image](https://user-images.githubusercontent.com/70232195/202208930-c34b985f-19b3-4875-a4bb-3e79439b2dfa.png)

7 works too but 8 is an even number and we love even.
The X off-set doesn't need to be set since the entire thing is weirdly
symmetrical with NuTables.

## Changelog

🆑 Jolly
qol: Library Consoles and Book Management Consoles should no longer have
their keyboards hanging over the edge of tables.
/🆑

* Slightly adjust base pixel off-set for library consoles

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
2022-11-17 17:22:32 -08:00
GoldenAlpharex
07df01d6b9 [MIRROR] Adds Sabrage [MDB IGNORE] (#17548)
Adds Sabrage (#70755)

This PR adds an interaction to champagne bottles that allows the user to
pull off the cork with an edged (for code purposes, sharp) item. The
sharper the item, the better your chance is to pull the stunt off.
Minimum force is 5, which lets you do it with a captain's pen, for
instance. It's slower than just removing the cork by hand, as to
simulate the player removing the foil before taking the swing. Heads of
staff get a +20% chance to succeed due to being officers in some
capacity. A skillchip that can be bought from the Library Play Room
vendor increases the chance by +35%. Failing the stunt will smash the
bottle in your hands, spilling the contents all over you. This will
produce a bottle with the neck broken off, instead of its bottom.

Pulling the stunt off provides a weak mood buff for the user, and a
weaker mood buff for any witnesses. However, if someone else pulls the
sabrage off after you, you will get your success buff removed. Think of
it like pulling any other stunt and challenging someone else to do it,
only for them to succeed as well. Makes you bitter, doesn't it? Failing
the stunt also produces a weak mood debuff to the user.

Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
2022-11-17 15:36:54 -08:00
Zonespace
f7c26bbf25 515 Compat (#17465)
* ONLY SKYRAT CHANGES

* ACTUALLY SKYRAT CHANGES

* yolo, revert later

* Update alternate_byond_versions.txt

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-15 06:59:06 +00:00
SkyratBot
9e9b09d90b [MIRROR] Chefs can now kiss food they make to make it with love. (And a lot of cooking refactoring) [MDB IGNORE] (#17334)
* Chefs can now kiss food they make to make it with love. (And a lot of cooking refactoring)

* update from master and fix conflicts

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-11-09 17:49:35 +00:00
SkyratBot
94dfc81975 [MIRROR] Fixes issues with printing posters from the library management computer [MDB IGNORE] (#17344)
* Fixes issues with printing posters from the library management computer (#70471)

## About The Pull Request
Posters are kind of insane and they require that the poster item have
either a poster_type defined in the type or that you pass the structure
version of the poster to /new() otherwise they don't work. The weird
thing is that the structure needs to be in the contents of the item too,
or it again won't work (it won't remove the poster from your hands when
placing it). I fixed it so all you need to do is pass the structure
version of the poster to /new() on the item and it will move the
structure to the contents of the item if needed. It's still a bit insane
but it's better than it was and it fixed the bug.

Also SSLibrary.printable_posters was grabbing the directional mapping
helper of the random poster and so when you printed it and placed it,
you'd get confusing results. I made a quick fix to stop that from
happening.

## Why It's Good For The Game

Bug fixes are generally good things.
Fixes #70382
Fixes #66504

## Changelog

🆑 VexingRaven
fix: Fixed posters printed from the library console staying in your hand
when you place them
fix: Fixed Random Official Poster printed from the library console
always placing the west-facing variant no matter where you place it
/🆑

* Fixes issues with printing posters from the library management computer

Co-authored-by: VexingRaven <msgerbs@users.noreply.github.com>
2022-11-04 13:14:35 -04:00