Tweaked a hell of a lot of silicon code to make synthetics better.
Synths with scrambled codes that prevent them from being on robotics computers will now appear on Merc camera networks.
Both variants of the engineering borg can now deploy the malf borging machine.
Medical borgs no longer get polyacid sprays, instead getting Wulumunusha CMO Hyposprays, which cause muteness.
You must now be on help intent to use items like crowbars and screwdrivers on borgs. Otherwise you hit them with it.
Fixes lack of chat tags, and runtime on player panel preventing it from displaying stuff.
Don't really understand the problem with Cut() on the player panel data["players"], it should leave an empty list behind right..? Anyway. Let's see if this passes dreamchecker.
Species that are neuter (at least from the human/player characters' perspective) will now properly spawn as neuter, and be neuter in the character setup screen.
This affects (tagged) IPCs, Dionae, Vox & Vaurca.
Also fixes some gender related grammar stuff.
I think all the procs that randomise based on gender will just default to one or the other and shouldn't have noticeably weird results.
This also fixes the bug where Diona players would be 'he/she', but NPC diona would be 'it'.
The C++ UDP logging library has been swapped out with a rustg implementation. The rustg library uses non-blocking IO mode, and hopefully has less trouble than the C++ one. Though we'll have to see. It should error when the call is supposed to block.
The old library has been removed.
Adds a system for autobanning IPs which abuse the world/Topic API. The implementation is very analogous to fail2ban. All bans implemented are removed at round end, or at the start of the next round. This is to stop the windows firewall from getting clogged to hell. The system respects whitelisted IPs.
Ports (and adjusts) Baystation12/Baystation12#12521 et al. Essentially brings our visualnet code up to the standard of three years ago, rather than five.
Side effects of merging may include but are not limited to loss of AI vision, helmet camera failure, garbage collection implosion, infinite turf loops, and unintended layer shenanigans.
High-level changes:
Overall, visualnet/chunk procs have been renamed and refactored to be clear as to their function.
Fix some layering issues related to magic numbers, these have been set to constants.
Visualnets now track source movement rather than overriding individual mob/obj procs.
Adds obfuscation underlay to complicate memory fudging to remove camera static.
Cameras now only add themselves to the cameranet if they're on open (non-restricted) networks.
Helmet cameras now use cameras themselves rather than network defines.
Adds a sorted object list insertion helper.
The Camera MIU (presently unused) should now function properly.
Unused cultnet / cult mask deleted because refactoring that would likely kill the few brain cells I have left
Turns the z-level restriction procs into macros
Changes z-level restrictions to use the macros
Use contact_levels for announcements (instead of player_levels)
Restricts the teleporter to station_levels instead of player_levels
Restricts AI tracking to station_levels instead of player_levels
Mechs only get tracking beacons if they are on station_levels (instead of player_levels)
Construction Drones gib if they enter a station level
Mining Drones gib if they leave the station levels
Removes the mining equipment vendor from the scrapheap
Replaced all the snowflakey shuttle turfs with either /turf/simulated/wall/shuttle or /turf/simulated/floor/shuttle where I could, meaning shuttles are no longer indestructible but they can still take a lot of punishment.
Added a few unsimulated turf variants to use on the cc z-level rather than having to use their simulated counterparts.
Added smooth dark shuttle wall icons and a few more shuttle floor variants by AmoryBlaine.
Fixed the dark shuttle corner blocks from looking weird after transit.
A side effect of removing these shuttle turf types, conjure spells will now work inside of shuttles that used these removed turfs. Could perhaps be readded using areas if needed.
This is part 1 of the stuff from #5771 which will be split up and added in smaller batches beginning with adding the turf types with this pr.
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
How to build machine blueprints!
Use steel sheets like normal, then rotate the frame how you like it using the directional arrow. From here use a Multitool to finalize it and then wire it up like you would before.
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.
This PR is depending on #4868 for it's ui framework. This PR mostly makes new SSrecords subsystem responsible for storing records. This should replace old datacore.
Make new SSrecords.
Make things use SSrecords and whole code compile
Made VueUi button <vui-button> to push parameters as JSON, preserving client side data stricture.
Add new records console and admin record management.
I am mostly looking for feedback regarding SSrecords and it's data storage mechanism criticism (It's using lists for storage)
Xenomorphs are pretty much badly done and don't really fit at all. This pr fully removes the human type ones, alongside with the infection, eggs and facehuggers.
As title says this PR adds extra 6 logos to penwriting.
Added new paper logos for:
[logo_nt] - Regular NT logo
[logo_nt_small] - Small size NT logo
[log_zh] - Zeng-Hu, [logo_idris] - Idris
[logo_eridani] - Eridani
[logo_necro] - Necropolis
[logo_hp] - Hephaestus Industries.
[logo_be] - Beisel
Intent of this PR: make factions actually matter.
How we're going to do this:
Make factions limit job choices.
Make factions have alternative loadouts that override job uniforms
Make factions be visible in the employment records.
Revert existing faction loadout options or put them behind a preference, in favour of new shit.
Adds SSDocs, which manages randomly spawned documents.
These documents can be specified in a json file or in a database.
Adds /obj/random/document and adds /obj/random/document to the loot pool of /obj/random/loot.
Actually adding the notes to spawn is up to loredevs. If there are no notes to choose from, /obj/random/document will leave a blank sheet.
The notes can have HTML in them, meaning custom CSS and images. We're giving the loredevs a good bit of responsibility here.
Warning! Big Scary Change!
NTSL2+ is a re-work of NTSL.
The goals of this rework are to remove worries regarding server load, and make it impossible for a malicious program to crash the server.
The result is an asynchronous daemon based interpreted language, called NTSL2+.
The Daemon in question can be found Here
Features:
Programming Language worth considering a programming language
Limit-able execution - Unable to hold the server up
Runs on Modular Computers
Shitty in-game networking.
Players can finally write their own laptop programs I cannot stress that enough.
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.
SMES now show how much of input they receive
SMES and APC estimates how much time it will take to deplete it.
Runtime map now uses its SMES, and it is wired to TEG's
Added Stack and Queue data structures for use