changes:
rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
rscadd: "You can change icon style to any font on your system."
tweak: "The game window has been altered a bit to adjust for this."
rscdel: "Removed skin style prefs as they are no longer used."
Converts reagents to use typepaths instead of IDs.
Centralises reagent spawning in a lot of places to use reagents_to_add instead of a variety of custom methods or initialise overrides.
First, cycle speed of all NTSL2+ programs has been increased by a factor of, on average 10. Cycles are much faster than I gave them credit for in my original pull.
Secondly, a bug in which programs could bug out and appear on multiple computers should have been squashed.
Thirdly and most importantly, NTSL2+ can now talk to Integrated Electronics via the Subspace Transmitter Part.
when net.subscribe("channel"){print(message)} and net.message("channel", "contents") can be used for this.
You can now put flags on windows without bashing them.
Compartmental circuit kits no longer display pickup error messages when you put it back in the big box.
Fixes#8185
Also light ICs no longer produce UV for Dionas to bask in
Light ICs now project a cone like flashlights rather than an omnidirectional light
Fixes the integrated circuits list item editing. Before, half the functions were broken (not allowing in-place modifications of any kind), the other half unused. This PR fixes in-place editing and adds buttons for selecting items to edit.
Part 1 in the "why my impact wrench no wrench bolt" saga
tl;dr for end users: combitools / impact wrenches now work on everything their non-powered versions do (except mechs and RIGs, tune in next time on dragon ball Z for that)
essentially all this PR does is murder every istype() check possible that could use a helper function instead, most notably many pen checks with ispen(). it also repaths combitools and powerdrills to /obj/item/weapon so they aren't instantly taken out of contention by half of the known attackby() prompts
I already squashed a couple runtimes here and there from the pen changes and it's possible I missed another because pencode is another scourge upon our lives
Shocker circuits had a complexity of 10, zero power draw per use, and general crap that allowed you to stack 9 of them inside a single device. Did they need a straight deleted from the code? Nah. They need some adjustment and I'll figure out how to do that.
They should be at least somewhat better then a stun baton, but they'll be a pain in the ass to keep charged if you're using them. Perhaps I'll figure out how to limit it by only allowing a single of these circuits into a device.
Fixes a myriad of issues with circuits:
Fixes scanners not working with circuit clothing.
Fixes buttons etc. not working with circuit clothing.
Fixes circuit sensors not working, period.
Fixes my accidental deletion of the temperature sensor aspect of the reagent sensor circuit. :'(
Fixes circuit gloves and glasses not triggering properly.
Makes it so that anchored items cannot be picked up. (Risky? Maybe!)
Ports a buuuuunch of circuits from Polaris.
Allows metabolic siphons and internal energy siphons to consume power to feed their host.
Ports /tg/ circuits too while I'm at it.
Increases base size and complexity for circuits. You're all adults. Hopefully. Don't abuse it.
Ports the integrated circuit detailer.
Issue:
A previous exploit by me was haphazardly implemented. I had assumed that the IE printer could only print items of the two types. Turns out, not the case. Result: printer can't print half the shit is should.
Solution:
Implement proper sanitazation. I found out that all printable items are in the SSelectronics list. So I implemented /obj/item/device/integrated_circuit_printer/proc/can_print(build_type) to check if the build_type is represented in the list of items of the current category.
This PR will lead us towards the Promised Day, for in its wake there shall be much celebration and ecstasy as this world becomes a world suitable for developer hegemony. The first strike is thusly;
All << is converted into to_chat().
* Base work for the unathi robot subspecies.
* Adds metabolism species, kidney vars, and the robot unathi organs.
* Moves some action buttons to organs, pretty much a bay port right now. Todo: the unathi and alien stuff should also go here.
* First autakh implant power.
* Fixes the organs action button this time.
* Finishes more implants, and interactions with flashs and vaurca.
* Prepare for great changes.
* Drops the real bomb, boss.
* He who fights with monsters.
* Far more work into augments and limb removing powers.
* Limb verbs should be good now.
* A LOT of work into the assited organ, allowing it to bleed and etc, as well adding a new chem that will stop bleeding in their case.
* Probably the last work on implants.
* Some extra touches.
* Some tweaks to the species.
* More fixes and adds kyre's sprites.
* More runtime fixes.
* Fixes the species name too.
* Fixes travis.
* Updates this file too to work with the new tools procs.
* Adds changelog
* Fixed changelog.
* Unathi hair and lore description.
* Some tweaks to this too.
* Locks away them for now, they will be released after we got all the events and etc done.
* Changes this chemical.
* Fixes an airlock runtime.
* Adds the non scan flag to the autakh, mostly due to some bizzare interactions with changelings and cloning.
* Organs removal changes; can't take out the organ if it is too damage.
* Restricts them back again.
* Robotic organs now have the proper icons and names.
* Adds sprites for their organs and some extra tweaks.
* Fixes this missing icon.
* emp should also now hurt assited organs.
* Tweaks more organ related things.
* Fixes the head not being properly set as well.
* Fixes their flags.
* fixes the flag for real this time.
* Poze's review.
* Changes the au'takh organ buttons to don't be animated.
* Helps with adminbus or something.
* Fowl's requested changes.
* Fixes a typo.
* Robotic limb's brute and burn mods are now controlled by the limb model.
* Fowl's changes once more.
* Stops some spam.
* More grammar.
* No eal.
* Skull's review.
Overview
Adds thirst mechanics. Thirst mechanics work exactly like hunger mechanics where if you don't drink enough liquid, you become thirsty and move slower. Several other mechanics involving drinks were also changed.
For organic races, you gain hydration by consuming beverages and water. Water is the most effective way of hydrating yourself. IPCs are not affected by hydration and do not have to worry about it. If you overeat or overdrink, your nutrition decreases faster until you are of normal hunger and thirst levels.
Penalties for not eating or drinking are now more severe. If you refuse to drink or eat all shift, you will be up to 33% slower and take twice as much pain damage. The amount scales based on your hunger or thirst levels. If you are considered hungry or thirsty, it starts scaling until you're starving or seriously dehydrated. If you overeat and overdrink as well, you get a ~5% reduced movement and pain tolerance with each mechanic.
The icons for hunger have been updated to be more specific, and they match the new thirst indicators as well. https://i.imgur.com/QQbWxYI.png
You can now also inject beverages into your blood for x4 effectiveness. Before, IV dripping yourself with vodka did nothing but give you a small amount of toxins, but now it should be a hell of a party.
Dionaea can now be affected by beverages with respect to nutrition gains and temperature changes. Dionaea cannot be affected by some effects, such as stuttering and intoxication, still.
Healing effects for certain beverages (tea, milk) were removed. This a HRP server, milk shouldn't heal you.
This UI is going to be more integrated with BYOND host objects. It's update principal is very different from nanoui's. It is based around state that is being synchronized with server and client (browser). Such synchronization has it's problems, like it can't handle rapid changes, what could cause client and server to become out of sync and client state to be discard.
added paper_tray insert_slot
added beaker_holder insert_slot
added printer output component
changed reagent_pump to be able to pump from beakers in the beaker_holder
changed some string sanitize calls to not strip spaces
I added the insertion slot class because I think they are important for further expansion. The two components which use them are merely there as examples. They can be used in game but are not especially powerful and will probably not get anyone excited.
Added a set of atmospheric analysis sensors to the integrated electronics module
Consists of 7 new input parts. Pressure, temperature, o2 n2 co2 and phoron levels. The last part is a general atmospheric analyser which has all 6 of those functions in one unit. The multi-purpose part uses triple the complexity and power so it is only worthwhile if you need more than 2 of the output pins.
Please note: There are no changes to the icons, all parts use an existing icon - the one from the advanced medical sensor. I did not feel that this was important to change but someone will probably want to at some point.