Plasmamen won't interact with O2 if there is also Hypernoblium in the air and if already on fire, will get extinguished.
Adds Hypernoblium as a reagent when inhaled, having Hypernoblium in your system as a Plasmamen will also stop combustion.
New type of medical stack, obtainable from botany: the mourning poultice.
These poultices convert 10 brute and 10 burn into oxy per application, and can be used on corpses as well as the living.
It takes 20u bungotoxin, 20u aloe juice and 20u cellulose to create one stack.
I have split all the existing medical stacks into their own dmi, stacks_medical.dmi.
This pull request upgrades Yarn to version 2 (also known as Yarn Berry).
* Update build validator
* Provide inferno in the root level package
* Remove type module from package.json
* Powershell build script
This PR reworks the Hierophant Club into a utility item. Mining? Gone. Attacks? Gone.
In their place? 5-tile range point-and-click instant teleport similar to the ninja. Max charge is 1. Recharge time is 15 seconds.
With the removal of this bloat, the item is now small enough to fit in the average backpack.
The hiero club establishes itself as the entry-level megafauna drop from the entry-level megafauna.
Moves all opacity var manipulation to a proc which sends a signal.
light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
Some opacity-related sight procs optimized as a result of this.
Some variables moved to the object's definition.
A define or two added into the mix for clarity.
Some code cleaning, like turning booleans into their defines.
One file renamed for clarity.
Changelog
cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl
all living spawners in corpse.dm are now in ghost_role_spawners. I hate having to search two different files to HOPEFULLY find which ghost role I need to edit.
Added a disclaimer about giving guidance or at least stationstuck component to stuff so this doesn't happen again
Cleaned up stationstuck. Man, I know I made this, but damn I did kind of a shit job
If nukies have spawned, the war button exists and war has not been declared, the check antag panel now has a button to force war. This bypasses the crew and time limit. Made by admin request.
All flyperson organs have the same, generic name and description, and their icon is picked from a pool of gross, blackened organ sprites.
There's also a new organ they have that just does completely nothing. It is also disguised and looks the same as all the other organs.
* curse you, perry the emergency escape shuttle!
* Update code/modules/antagonists/cult/cult_items.dm
Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Rob Bailey <actioninja@gmail.com>
* Fixes holodeck making invisible tables.
* Removes comment.
* Remove extra space.
* Just gets rid of overlays from forbidden vars list.
* Small map fixes for the lounge sim.
This PR changes the message pipeline a little bit to support list-based messages, which can be annotated with custom data. Function signature of to_chat was slightly changed as well:
// Plain text message
to_chat(client,
type = MESSAGE_TYPE_INFO,
text = "foo")
// HTML message
to_chat(client,
type = MESSAGE_TYPE_INFO,
html = "<span class='notice'>foo</span>")
Old to_chat format is still supported, but handle_whitespace, trailing_newline and confidential flags have no effect. confidential flag could still be revived though, if there is enough merit in it, for example to filter out confidential messages when saving a chat log.
The reason for using /list and not /datum, is because lists are plain faster, and there are minimal data transformations - these lists are fed directly to json_encode and sent to tgchat.
Plain text messages do not need to be HTML-escaped, which makes them safer and more performant than HTML messages. Plain text messages can be made interactive (or formatted with CSS) by custom-handling them in javscript based on message type and annotations.
It would be impossible to annotate every single message in the game (at the moment of writing, there are 9447 to_chat calls in the code), but it could be done selectively, for only those messages that are hard to classify by span classes (and there are still A LOT of them).
Please annotate more messages. Thank you.
Fixes#52943Fixes#52908Fixes#52816
Changelog
cl
add: tgchat: Unread message count is now smarter and won't increase on other tabs if you have already read the same message in the active tab.
add: tgchat: Admin PMs are now properly annotated and can be filtered into separate tabs.
fix: tgchat: Fix: Highlighted message overlay no longer blocks clicks. Clicking a highlighted (F) link should work as it should.
fix: tgui: Fixed NTOS bluescreen due to calling .includes() on a stylesheet href which could be null on certain browsers.
code: tgchat: Chat schema bumped to version 5. All chat-related settings were reset to avoid breakage.
/cl
* Fixes Virology Civilain Bounties.
* Don't you hate when you're like 30 commits deep into another branch but there;s no quick alternative to get back onto your old branch because you've been debugging a single issue for the past 3 days and you WANT to work on something else but if you just commit what you got now it'll be a waste and you'll forget what and why you made those choices? Wow same, relatable
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
About The Pull Request
This PR removes the tesla and Mrs. Pacman from the game. The title is actually misleading, the TEG and singularity are still in the game but inaccessible and the singularity no longer has its generator.
Field generators and tesla coils have been kept because shocking your fellow man is the greatest sensation of power in the world.
The overcharging delamination for the supermatter has been replaced by the release of 2500 mols of tritium at 500,000 kelvin. An engineer who's really hateful of the station can use this for fusion, if they desire. Otherwise, its a tritium fire in engineering alongside the explosion. This will probably be changed in the future to be more potent since the explosion will pretty much just space all the tritium away.
Singularities no longer produce radiation. Now, keeping one is less about making power and more about making a statement, especially since you need to delaminate an SM shard for it.
Why It's Good For The Game
Having power optimized for one generator (SM+Turbine) will allow balancing to be feasible, also oranges wanted this. The other generators may later return but with tweaked values and different roles.
Changelog
🆑
del: Nanotrasen has removed their outdated teslas, singularities, TEGs and Mrs. Pacman generators from their servers and warehouse.
/🆑
Replaces goonchat with a tgui based chat panel
Fixes#52898Fixes#52663
It is as fast as goonchat was (if not faster in certain circumstances), and is very extensible. It has all the necessary code for sorting messages into categories, which means that one of the next features will be multiple tab support.
Additional features that you will get with tgchat right now:
Massively faster server-side performance compared to goonchat, especially if batching multiple messages to one client.
Message persistence across rounds and reconnects. (All messages are stored client-side in IndexedDB)
More robust scroll tracking. If you scroll up, it will not change the scroll position on new messages like goonchat did.
Multiple message combining. (Currently set to combine up to 5 messages over last 5 seconds).
If using the highlighting feature, it highlights the whole message as well as the matching word.
"Now playing" widget, with preview of the song title, a knob for adjusting the volume and a stop button.
Architecture is as following:
```
to_chat() -+
|
SSchat
(queue, batching)
|
window.send_message()
|
v
+-------------+
| tgui-panel |
|+-----------+|
|| tgchat ||
|+-----------+|
+-------------+
```
Subsystem is basically goonchat, but without all the garbage that slows the servers down (string concatenation, double urlencoding, sanitizing, etc). Now, instead of all that, it's being slowed down by json_encode in /datum/tgui_window/proc/send_message, which IMO is completely worth it, and allows sending various templates and widgets to tgchat.
/datum/tgui_window abstracts the whole window away from you, establishes a nice message-passing interface between DM and JS, with two message queues on each side, automatically loads js/css assets for you, basically does everything. You as a developer only have to worry about sending/receiving messages and write javascript.
tgui-panel is a slimmed down version of tgui, and functions as a container for various widgets, and tgchat is one of them. It of course can be expanded with more stuff.
It's also a separate entry point and a JS bundle, so it's not bloating the main tgui bundle, and is currently sitting at about 230kB.
Converts photocopier UI to TGUI.
Initially I tried to make it so you could select to make a color or greyscale copy of paper's but I couldn't really figure it out, so I decided to hide those two buttons if the inserted item isn't a photo.
Something not shown in the pictures below is that if you don't have a toner cartridge or the cartridge doesn't have enough charge, the "Copy" button is greyed out, likewise for the AI's print button.
cl
refactor: Photocopiers now use TGUI
tweak: You can insert any type of toner cartridge into photocopiers, and regardless of the currently inserted toner's charge level.
tweak: Toner cartridges can be ejected from photocopiers at any time
/cl
it checked for health - max health instead of max health - health, so it would never pass the > 0 check and even if that wasnt a thing it would just heal