* Nonfunctional greyscale code
* Functional greyscale sprites via filter
Probably going to set the icon instead later
* Switches to greyscale json config
* Adds the reference layer type and converts the other canister types
* Working previews
* Adds readme
* Fixes overlays and breaking
* Removes old canister sprites
* Removes an unused var
* Fixes tgui lints
* Removes a bunch of the old canister icon states
Yeah I need to fix relabeling as well
* Removes some debug sprites
* Sorts canister type list and breaks up base shader step
* Removes an unnecessary preview hack
* Makes prototype canister greyscale
* Properly sizes the ui
* Fills in the canister map sprite
* Adds some more warnings to layers
* Makes broken overlay more prominent
* Removes a preview var that isn't needed anymore
* Cleans up client ref in Destroy
* Cleans up the tgui window a bit
* Update GreyscaleModifyMenu.tsx
* Animates the canister falling over
* Removes a commented out line that's no longer needed
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
How these new pipes work.
-Smart pipes autoconnect to nearby smart pipes
-They are now color coded, so they only connect to the same colored pipe, the GREY pipe is the wildcard and can connect to every other color, so be aware of this
-ALL components spawned by the RPD can be colored (from pumps to connectors, from pipes to manifolds), if you leave them GREY they can connect to every other color. Color adapters can be colored, but they'll still connect two pipes with different colors. BUILDABLE machines are GREY (thermomachines, cryo, HFR) so be aware of this
-Trying to go across another smart pipe will now build a bridge pipe automatically already colored of the color you choose, so you don't have to place it yourself anymore (is still available in the RPD tho)
-ALL binary components, layer manifolds, color adapters and bridge pipe can be put ONTOP of a smart pipe, but not on another of these. Smart pipes can't be placed on top of these pipes, so you have to build them first.
-Lcrossings can't be made anymore (sorry y'all i tryed, if someone have a way of doing them ping me on discord)
-REMEMBER you still have 5 layers to go, these rules apply to the same layer pipes, so if you do a crossing on different layers you won't see a bridge pipe appear.
* Ref Tracking: Revengance
Fixes reference tracking ignoring self references due to a poorly thought out tick checking system.
Fixes reference tracking ignoring the contents of assoc lists
Makes the reference tracking printouts actually describe what list the ref is in, rather then just saying "list"
Adds REFERENCE_TRACKING_DEBUG, a define which toggles tracking info for the ref tracking procs, which allows for
oversight on how the proc is working
Allows for direct calls of qdel_and_find_ref_if_fail(), makes it use ref rather then REF(), fixing it breaking
for mobs. (Ditto for the qdel hint which does the same thing)
Moves REAGENTS_TESTING out of the reftracking define block
Makes unit tests define REFERENCE_TRACKING, REFERENCE_TRACKING_DEBUG, and FIND_REF_NO_CHECK_TICK
Adds a unit test that sanity checks the reference finder proc
I was dumb in #56345 and committed a suggestion from a maintainer without actually checking what it did, leading to the part where you select what outfit you want in your preferences to not actually let you select an outfit.
This also removes the can_be_admin_equipped var from outfit datums, apparently it was supposed to be used for outfits that were only supposed to be spawned in certain ways or some nonsense, but nothing actually used it so bye bye
Much easier to add to this panel, before with flexboxes it was nearly impossible but stacks are a lot more friendly.
Miscellaneous old garbage I caught:
For some reason, monkey and only monkey button sent a to_chat to the world of your sins. I cut that, that's unacceptable
I accidentally left out species change from my last pr, it's back in.
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm
We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.
There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.
Hi codeowners!
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Uses 514's map_cpu var when it's available
* Uses auxtools for the debugger, to supply cross verison compatibility
* Nukes extools reference tracking, reinstates the old ref tracking system
This PR adds station traits which are essentially small changes to a normal round that can be used to create small variations in how a round might play out, sometimes there might be only one, very simple trait, but you might have a round where they have a somewhat bigger impact, to make rounds feel slightly more different from each other.
The following traits have been added:
Positive:
Lucky winner - Free pizza and beer every 6-12 minutes
Galactic Grant - Larger starting funds for cargo
Premium internals boxes - emergency box has flare + radio as bonus
Bountiful bounties - Bounties pay 20% more
Strong supply lines - Imports 20% cheaper
Filled maint - More loot in maint
Fast shuttle - Cargo shuttle is faster
Free scarves - Free scarfs if a slot is free
Neutral:
Bananium shipment - Clown starts with 5 sheets of bananium (Neutral because this helps noone but the clown)
Unnatural atmosphere - Lava planet can get more restricted gasses
Unique AI - Random lawset at roundstart for AI
Ian adventure - Ian teleports to a random spot on the station
Glitched PDAs - PDA's have a different beep
Announcer intern - Changes the announcement messages to sound like they're from an intern at Centcom
Negative:
Carp infestation - Carp event is more common and can start earlier
Weak supply lines - Imports 20% more expensive
Blackout - Station lights are partially broken around the station
Empty maint - Less loot in maint
Overflow bureacracy mistake - Random overflow job (From a vetted list)
Late Arrivals - Everyone starts in arrivals
Random spawns - Random spawn location (by drop pod)
Slow shuttle - Cargo shuttle is slower
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
This PR repaths areas to follow a department - purpose - room formula (just department - room if purpose is unnecessary), reorganizes the area file to properly sort by department, removes some unused areas, and better utilizes child subtypes for areas. It fixes several problems with areas which were previously improperly subtyped causing problems like the lack of AI monitoring on vault areas and the inability to use the civilian door remote on most service areas.
Properly organizing our areas will make mistakes in adding areas or duplicates harder to do. By organizing each department in this way, it also provides better infrastructure for autoname devices and any future code that has to reference areas by department.
About The Pull Request
Dynamic 2021, among much other things, splits the threat level into two separate budgets, one for round start and one for midround/latejoin. You can read the design doc, plus methodology and charts here: https://hackmd.io/@tgstation/S1C4dYJkO.
To server owners: this is incompatible with current dynamic.json configurations. This is not just because some fields have different values now, but because the older values are not balanced towards this system.
Inidividual list of changes (as I remember them):
Threat level is now split into two separate budgets, one for round start and one for midround/latejoin.
In TESTING, you can now run dynamic simulations to see the roundstart picks.
antag_cap is now based on an equation rather than a fixed list of antags per indice--the old system is not scalable. You can now pass it either a number for a fixed constant, or a list with "denominator" and an optional "offset" to fit the equation ceil(x / denominator) + offset, with x being population.
Midround/latejoin timers are now vars on /datum/game_mode/dynamic itself, and thus can be configured by head admins per server.
Removes some older, as far as I can tell completely unused admin tools relating to dynamic.
autotraitor_cooldown is now properly respected from config, and is based on an exact time rather than on ticks (450 used to be 15 minutes, now it's just 15 MINUTES).
The rulesets dynamic chooses are now in a dynamic.json file in round logs. Relies on tgstation/tgstation13.org#64 to be public.
Adds more logging to the autotraitor ruleset for admins.
Midround/latejoin chance modifiers are now configurable.
Labelled "Do Not Merge", as the design doc outlines the specific playtesting schedule I would like to perform.
Note to self: Remove the custom MOTD before merge.
Why It's Good For The Game
(Copied from design doc)
Dynamic currently dumps as much threat as it can into round start threats. This means that rounds at ~50 threat can have an absurd amount of antagonists round start, while leaving very little threat for midround/latejoin antagonists. What inevitably happens is just one of those picked decides to murderbone, leading to the inevitable 20 minute shuttle call. Furthermore, once those antagonists are dead, Dynamic doesn’t have any threat left to spend on new antagonists that keep the round flowing, promoting the mentality of “antags dead, I’m bored, let’s leave”.
The proposed solution of Dynamic 2021 is to split threat level into two separate budgets, one for round start and one for midround/latejoin. This split, like threat level, will also be done on a lorentz curve–meaning that while most rounds will have them evenly split, there is still the possibility of chaotic high antagonist round start rounds, or the possibility of a midround onslaught.
This commit will add a slightly modified version of Pubbystation's
Monastery to the list of available emergency shuttles, becoming the
most expensive shuttle to buy at 250 times the crate price (Defaults
around 50,000cr)
This shuttle will cause significant damage and fully showcase the
absurdity of the Monastery's size by providing an up close and
personal, interactive comparison. PubbyStation's monastery will be
forever preserved.
Changes the references of borg module (type) to model, adds a file for robot declarations and one for model declarations. Basically trying to make the code layout a little more sane.
Initially changed them to 'configurations' but I prefer model; its meaning is closer to module than configuration and avoids confusion with actual config.
Adds a Yes/No/Cancel button to the AI transform proc that admins use on whether the new AI should be moved to the satellite or not.
Sometimes admins want to make an AI somewhere off-station for whatever reason. Also makes testing things with AIs less of a hassle.
I've condensed the logging into a single define, to allow ID card logging to be easily tweaked and to clean up some messy copy-pasted code.
There is no longer admin messaging for Head of Staff accesses, but it's all still logged as it was before.
There is a new option for the Investigate verb.
Which has the complete logging history for ID card changes that are currently tracked, all in one place.
Which admins can ALSO access from Get Current Logs and Get Server Logs for past rounds via id_card_changes.html
Currently, a victory for revoutionaries leads to the round abruptly ending on dynamic. This has been replaced by all revolutionaries being deconverted, and no new security or command positions being available.
Also attempts to unionize (pun intended) copy and paste code in the round start and late join revolutionary rulesets into being handled under the revolutionary team instead.
Ported over from https://gitlab.com/cmdevs/colonial-warfare/-/merge_requests/613 which provides an input box to select an option from a list.
Has a search bar to allow filtering for results and an onKeyDown event to replicate default behaviour from the default list input boxes that BYOND provides (where you are able to type the first letter of an element in the list and it'll jump to the first element that matches and then the next and so on)
Right now, it is only applied to the holopad and "Drop Bomb" verb for administrators.
Credits to bobbahbrown for the Loader element from AlertModal.js which allows for a timed input (was needed on the CM codebase for timed inputs) and for the majority of the DM code.
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* HARK! THERE ARE SOME MAIDENS THAT NEED SAVING!
* claymores, chairs
* mapmerge, price increase, no losing the flag, no teleporting in, other small stuff
* oldworld language, medieval mutation, reviews
* see desc for full changelog
huge improvements to how medieval speech feels, CTF now fully lit, json beautified, bugs squashed and more NOTELEPORT exploits also quashed. (I NEED TO UNDO THIS FOR ATOMIZATION)
* removes my fixes? also bugfixes and CTF separation
* dumb json mistake, starting work on reality simulators
* BOWS ARE BROOOOOOOOOOOOOOOOOKEN
* br
* getting closer to working
* well, mostly everything now.
* finally ready
* removes languages stuff as it is buggy and does not work, fixes more bugs, fixes more bugs, fixes more bugs
* conflict fix
* linting
* more lint
* bow buff, speech fix, TON of ctf fixes
* oh fuck year
* NO MORE INSTA DELETING CREW
* whoops
* review handled
* pooosh
* conflict fix
* Added playertime tracking to player notes
* Updated sql change log with revision
* Fixed typo in db_query
* And fixed another typo with query_get...
* Add recomended changes from Jordie0608
* Added missing DEFAULT NULL to sql
Co-authored-by: MissFox <github@aesir.org.uk>