Skip to content

Commit

Permalink
TG Merge 6 (#179)
Browse files Browse the repository at this point in the history
* Automatic changelog generation for PR #50530 [ci skip]

* Adds hub status to topic. (#50648)

self explanatory

* Fix MalfunctionModulePicker (#50665)

* Automatic changelog generation for PR #50665 [ci skip]

* RSF PR but again because github is **** (#50646)

* first step

* Thank you for all your work, time to go rest...

* Woop

* nightcode.mp4, docs to come

* docs

* There we go

* so uhhhh test your code kids

* Update code/game/objects/items/RSF.dm

Co-Authored-By: Rohesie <[email protected]>

* Update code/game/objects/items/RSF.dm

Co-Authored-By: Rohesie <[email protected]>

* handles some cleanup, makes the processing sane

* Changes changes changes!

* Makes a define, cleans up some dumb mistakes

Co-authored-by: Rohesie <[email protected]>

* Automatic changelog generation for PR #50646 [ci skip]

* Cats now pounce. (#50521)

* Automatic changelog generation for PR #50521 [ci skip]

* [READY] Meta Cargo Fixes Pt. 3 Flux Footloose (#50654)

* Meta Cargo Fixes Pt. 3 Flux Footloose

* Missed an APC, Floor Decals, and Door Access

* Fixing Merge Conflicts

Also removed double decals, tweaked tool storage, and removed an extra camera.

* Fix Conflicts 2

Crossin my fingers

* Fixes two decals

Should be all set now.

* Automatic changelog generation for PR #50654 [ci skip]

* Update DMAPI to 5.0.0 (#50611)

* tgui: RCD Access Control (#50600)

* First version

* Integrated electronics version

* Access Control naming

* Automatic changelog generation for PR #50600 [ci skip]

* Automatic changelog compile, [ci skip]

* Purge Medicine Buff (Multiver and Calomel no longer suck!) (#50583)

* multiver is good now

* Calomel is good too

* ok, multiver was a bit too good

* Ok maybe multiver was too good

* travis machine broke

* [READY] Runechat: 'Runescape-like' Chat Message Overlays (It's back!)  (#50608)

* first-version

* let's do those recommendations first

* color moment

* reorganization, prefs

* certified layer moment

* virtual speakers BEGONNE

* remove naughty bits, better sizing

* gimme the message mode

* rename that pesky pref and hide chat bubbles

* exponential decay moment

* async moment

* fixes

* fixes

* the players have decided they don't want to hear themselves on radio

* Fix bug with holograms incorrectly rendering messages

* rohesie's suggestion

* Color tweaks

* hallucinating now shows message properly

* pref moment

* updates

* rohesie's suggestions

* fix moment number 5

* less smelly more epic

* unfix the fixes and refix them

* a conscious change

* return of the prefs

* Automatic changelog generation for PR #50608 [ci skip]

* Penthrite rework: now it's actually usable![READY] (#50342)

* penthrite rework and ldx addition

* e

* Apply suggestions from code review

Co-Authored-By: trollbreeder <[email protected]>

* removes LDX , maybe in the future, not now

* you can od on penthrite and recipe is now changed

* ldx no longer exists v2

* mk2

* penthrite now requires salbu

* Apply suggestions from code review

Co-Authored-By: trollbreeder <[email protected]>

* e

* explanation

* penthrite requires wittel now

Co-authored-by: trollbreeder <[email protected]>

* Automatic changelog generation for PR #50342 [ci skip]

* Clowns now require their shoes to slip people while laying down (#50650)

* powerclown

* Fix

* To chat

* You displease me

* Great

* awsum

* Update code/datums/components/slippery.dm

Co-Authored-By: JJRcop <[email protected]>

Co-authored-by: JJRcop <[email protected]>

* Automatic changelog generation for PR #50650 [ci skip]

* Dextrous guardian HUD fix (#50626)

* Dexterious guardian fix

* No need to change the base type

* Automatic changelog generation for PR #50626 [ci skip]

* REOPEN (#50690)

* Automatic changelog generation for PR #50690 [ci skip]

* Fixes phobia issue, tweaks some phobia triggers (#50630)

Fixes phobia issue, tweaks some phobia triggers

* Automatic changelog generation for PR #50630 [ci skip]

* Automatic changelog compile [ci skip]

* Fixes the 50% time dilation on every server by removing demos, an admin only tool that is the laggiest thing on the planet for incredibly little gain. (#50658)

* Fixes the 50% time dilation on every server by removing demos, an admin only tool that is the laggiest thing on the planet for incredibly little gain.

* appeases the linter

* Automatic changelog generation for PR #50658 [ci skip]

* Automatic changelog compile, [ci skip]

* Make the electrolyzer not a wait game (#50598)

* Electrolyzer balances

* better sprites(thanks trollbreeder!)

* reduce h2 export cost a bit

* h2 canister sprite change

* Automatic changelog generation for PR #50598 [ci skip]

* adds curator bundle descriptions (#50644)

* Automatic changelog generation for PR #50644 [ci skip]

* Screw Box Part 2: Bad Wall-pipe Tendency (Take 2) (#50704)

* Automatic changelog generation for PR #50704 [ci skip]

* phobias use less regular expressions and don't instantiate them all the time (#50631)

* individual phobia types now use a single regex that is cached

* move suffix out of phobia class

* Automatic changelog generation for PR #50631 [ci skip]

* Fix lighting on CameraConsole and Spy Bug (#50669)

* Automatic changelog generation for PR #50669 [ci skip]

* Minor cleanup on plant analyzer modes and fixes plant instability loss (#50671)

* Several misc. botany fixes

* whoops, removes duplicates.

* Automatic changelog generation for PR #50671 [ci skip]

* uplink fix

* Automatic changelog generation for PR #50702 [ci skip]

* Automatic changelog compile [ci skip]

* Remove spawn in favour of timers (#50562)

* Remove spawn in favour of timers

* aaaaaa

* Qdels

Co-Authored-By: Rohesie <[email protected]>

Co-authored-by: Rohesie <[email protected]>

* toy toy toy (#50657)

shave a thou off the price


why not


update


hurng

* Automatic changelog generation for PR #50657 [ci skip]

* Adds a Syndicate version of the Cyborg Monitor program (#50691)

* Done and done

* drops a file

* re-add the file a little

* Automatic changelog generation for PR #50691 [ci skip]

* tgui: Better Canister (#50692)

* tgui: Better Canister

* Rebuild tgui

* Automatic changelog generation for PR #50692 [ci skip]

* fixes the islamic calendar and adds more prefixes (#50695)

About The Pull Request

it is no longer the start and end of Ramadan at the same time
Why It's Good For The Game

fixies
Changelog

cl
add: more islamic prefixes
fix: end of ramadan now follows the islamic calendar
/cl

* Automatic changelog generation for PR #50695 [ci skip]

* Automatic changelog compile [ci skip]

* Fixes right pew name (#50683)

About The Pull Request

Fixes the right wooden pew end name
Why It's Good For The Game

discrepancy detected
Changelog

cl
fix: right pews are no longer left pews.
/cl

* Automatic changelog generation for PR #50683 [ci skip]

* remove redundant drillhair definition & give unshaven mohawk hair unique type-path (#50688)

About The Pull Request

I think these are the last duplicated var definitions in the codebase. There's just a couple of changes:

    The unshaven mohawk now has unique type-path from the shaven mohawk. This means that the shaven mohawk can be selected in character setup.

    "Drill Hair" and its associated icon have been removed. It's very similar to the Drillruru hair style and hasn't been available for a long time due to the Drillruru style using the same type-path.

This PR should not affect saves as the save system relies on the hair-styles' names rather than their type-paths.
Why It's Good For The Game

Cleaner code & a new hair-style that was meant to be available anyway.
Changelog

cl
add: Shaved Mohawk hair-style is now available
imagedel: deleted redundant "Drill Hair" icon
code: deleted redundant "Drill Hair" hair-style
/cl

Fixes #50629

* Automatic changelog generation for PR #50688 [ci skip]

* Adds the Airlock Authentication Override Card (#50636)

About The Pull Request

Cryptographic sequencers can no longer open airlocks
The Airlock Authentication Override Card can open airlocks (3 charges, each charge refills over the course of a couple minutes)
Why It's Good For The Game

@optimumtact said it was good for the game
The data says the emag is the most bought traitor item. This is because the emag has too much bloat. To help mitigate this this we've taken away airlock hacking from the emag, however instead of removing the feature outright (as in #50632) we move the feature to a new item, for those who really still want to be able to hack doors
Changelog

cl MrDoomBringer with some code stolen from itseasytosee
add: added the Airlock Authentication Override Card. Use it to open airlocks!
add: added Syndicate Jaws of Life to the nuke op uplink. Use it in it's crowbar configuration to open as many doors as you'd like!
del: The cryptographic sequencer can no longer open airlocks :(
/cl

Closes #50632

* Automatic changelog generation for PR #50636 [ci skip]

* Department, warning, and general sign code fix. And brand new custom plaques! (#50550)

* Oh God I hope this works...

* It didn't work.

* Making things better.

* Making things even better.

* That made things worse.

* Sorting works! \o/

* Tidying some thing ups.

* Adding a custom plaque to the game.

* Some plaque tweaks.

* Makes plaques more durable than signs.

* Adds the stack crafting.

* Plaques take a little time to engrave, signs can't be changed instantly anymore.

* Comments, and renamed the global list to avoid confusion.

* Appends "sign" to every name, makes department signs not all caps, fixes some names and descriptions.

* Touching up plaque customization and display, removing one last all caps.

* Plaques can now be engraved in hand too.

* Newline.

* Update code/game/objects/structures/customplaque.dm

Co-Authored-By: Rohesie <[email protected]>

* Update code/game/objects/structures/customplaque.dm

Co-Authored-By: Rohesie <[email protected]>

* Mirroring some fixes from customplaque.dm

* A bunch of stuff.

* Unwrenched signs now lay horizontal.

* A lot more stuff, turned a negative variable into a positive.

* Fix chat inconsistency, remove deprecated and unused variable.

* Apparently buildable_sign is used elsewhere, whoops.

* Adding documentation to this, fixing a bool being 0 in another file.

* Don't know why this was here, sign dir is 100% irrelevant.

* Fixes some sound malarkey.

* Changes delays to be readable, removes unneeded return.

* Fixes these two early returns, it needed return TRUE at the end to work.

* Trying to fix a revert I messed up...

* Moving plaques to a directory, moving old sign plaque types into it. Map changes.

* Rename since I relocated this object entirely.

* Signs (and plaques) now properly place, and aren't visible through walls.

* Comment to help people in the future.

* Signs and plaques can be placed diagonally now.

* Removes duplicated code line.

* Blank signs now commonly spawn in maint, blank plaques uncommonly.

* Repairing signs & plaques with a welder is now good to go.

* Moves the GLOB, makes it start as an empty list.

* Update code/game/objects/structures/plaques/_plaques.dm

Co-Authored-By: Rohesie <[email protected]>

* Gets rid of some oldcode.

* Apply suggestions from code review

Co-Authored-By: tralezab <[email protected]>

* Simplifying dir switch to two if elses.

* Plaques take one sheet of gold to graft instead of five.

* Just making this wording in crafting a little clearer.

* They can be removed with wrenches, so I don't think this is proper.

* Makes variables descriptive.

* More descriptive variables, a little dmdoc, move things around to be next to like things.

* Remove a redundant definition.

* Apply suggestions from code review

Co-Authored-By: Rohesie <[email protected]>

* Fixes mapping path, rename sign_backing to just sign.

Co-authored-by: Rohesie <[email protected]>
Co-authored-by: tralezab <[email protected]>

* Automatic changelog generation for PR #50550 [ci skip]

* Nerfs the cybersun hardsuit and moves it out of the uplink (#50721)

* nerf

* nerf this

* description

* Automatic changelog generation for PR #50721 [ci skip]

* Fixes

* Automatic changelog compile [ci skip]

* TGUI updates

* Lizards say "ks" instead of "x" (#50698)

Added two more regex vars to lizard tongues.

* Automatic changelog generation for PR #50698 [ci skip]

* Automatic changelog compile, [ci skip]

* Removes krihelimeter from the README (#50738)

the project has been End of Lifed

* [READY] Basically, Instant Explosions 2: The Search For More Money: Eternal: A Tail Of Two Kitties: 33 1/3 (#50594)

About The Pull Request

Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though.

Explosions have been refactored to do the actual exploding in a subsystem.

Credit to goon.

Here's some videos!

Why It's Good For The Game
Basically instant max-caps now.
We can now give more of a tick over to the sending of map updates

Changelog

cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl

* Automatic changelog generation for PR #50594 [ci skip]

* change default pref for viewport fitting (#50749)

About The Pull Request

Changes the pref for fitting viewport to automatic. This not being the default has always confused me, and should resolve some teething issues widescreen is having.
Changelog

cl
tweak: Auto fit viewport is now the default, and everyone's setting for this has been reset to the default. If you don't know what this means, it's safe to ignore.
/cl

* Automatic changelog generation for PR #50749 [ci skip]

* Automatic changelog compile [ci skip]

* mechfab UI improvement

* Revert "Minor cleanup on plant analyzer modes and fixes plant instability loss (#50671)"

This reverts commit 0855144ef6033f2c5454476bd2fe688b5642bbfb.

* Revert "Turbotany version 1.2 (#50513)"

This reverts commit dc89ef0239830774bd3d9d7d6c8da2856da2b869.

* Revert "Introduces Gene Shears to Botany, and several other QOL tweaks. (#50387)"

This reverts commit 531760d19de8a0306f2f5b021a7b55231fca192a.

* Revert "A bold new era of hydroponics (Large department rework/update) (#50001)"

This reverts commit 14b7e63415e3a8c7180cdf5a40fee3b519c7e2b4.

* Revert "Make the electrolyzer not a wait game (#50598)"

This reverts commit 838b2b2ba7de60f2b90af71858f4e2f9e395736c.

* Merge remote-tracking branch 'tg/master' into tg-merge-6.1

# Conflicts:
#	README.md

* map export fixes

* removes lizard brain damage

* Revert "Bags of Holding: Rarity Edition (#50290)"

This reverts commit 09831566b27a293d4ae6f06e54d8a13e418689ba.

* Map fixes

* actual map fixes

* really final fixes

* Fixes to the fixes that fixed the fixes.

* WT550 resprite (#177)

Resprites the WT550 and it's magazine states

* gatewayfix2electronicboogaloo (#181)

* Allows pAIs to go through door hatches (#183)

* pAIs can now go under door hatches.

* Force checks

* actually loads the saved flavortexts (#184)

* A New Syndicate Special Bundle: The Made Man (#182)

* Reduced level of OH JEEZ OH MAN of the Tommygun, added the kit to the loot table. Pray for no AAAA level accidents.

* Removed spare un-needed equipment, changed weight to rare. At some point, need to generate random mob outfit , but what we have will do for now.

* I forgot the booze flask, im actually screaming. What kind of bootlegger wouldn't have a hipflask?

* Added a money briefcase, for totally above board actions, and legal sale of goods and services. (That we aren't listing on our tax returns.)

Co-authored-by: DR <[email protected]>

* Ports the Cat Surgeon turning people into cats from bee (#175)

* Adds a fate worse than death (#1447)

Conflicts:
	code/modules/mob/living/simple_animal/hostile/cat_butcher.dm
	code/modules/projectiles/projectile/bullets/dart_syringe.dm
	icons/mob/simple_human.dmi

* fixes filepath for the projectiles again

* cat surgeon healing buff (#1622)

* cat surgeon healing buff

* changes impatience

* Makes the description more accurate

* nukes the sweatsplash code because im too lazy to figure out how to make it work here

Co-authored-by: zeskorion <[email protected]>

* Revenant can READ! (#186)

* You're purple now. That's my special attack!

* changing css too

* Fixes alternate jumpsuit selection (#185)

* moves a few pubby library thingies around (#189)

* hjonmk (#190)

* Makes PR labeler less spammy(hopefully)

* Github actions changelog creation (Port from Beestation) (#191)

* thank you thank you thank you crossed

Co-authored-by: Crossedfall <[email protected]>

* obligatory second commit for second PR

Co-authored-by: Crossedfall <[email protected]>

* this is much messier than I thought it would be

ARGH I forgot to kill this off

Co-authored-by: Crossedfall <[email protected]>

* Automatic changelog generation for PR #191 [ci skip]

* Automatic changelog compile [ci skip]

* Changes changelog gen to bypass checks

Thank you Crossed, you're truly awesome for all the hell that I've given you and probably will ever give you. I'm serious, and I'm glad you're one of the people I can trust when I need to trust someone. This probably shouldn't go into a dumb webedit one line change in a commit on a small repo with no downstreams which will likely never be read by anyone but me, but it had to be written somewhere. Thank you Crossedfall, for more than what you do, but also for the fact you're a friend even while giving you hell.

* Nerfs nanite armor (#188)

Reduces all nanite armor values to 30

* Automatic changelog generation for PR #188 [ci skip]

* Update labeler.yml

* UNLIMITED POWER (#193)

* Automatic changelog generation for PR #193 [ci skip]

* Direct commits now pass the CL gen

* YOOOOOOOOOGGGGGGGG

* YOOOOOOOOOOOOOOOOOOOOOOOOOOG take two

* Edits some of the gun sprites. (#163)

They look better now.

Co-authored-by: Mark Suckerberg <[email protected]>

* Automatic changelog generation for PR #163 [ci skip]

* actually not horrible dirty titanium walls

* this is incredibly stupid

* Revert "Remove exploity way of using pumps and scrubbers (#50542)"

This reverts commit 3703d9d0396512c7901bfd856968254c94ff4f77.

* fixes radiation runtime, fuck

* ahelp relay update

* resetting the default, whoops

* fixes shuttles and shuttle chairs

* Revert "Tiered canister balance and QoL changes (#50565)"

This reverts commit 849ff095c8f17ac52963fbe504953a9d8ce01463.

* Revert "Tiered canisters (#50330)"

This reverts commit 44491962015a38c2b55daf8f432b85aec85cfad3.

* Fix ghosts alt/ctrl clicking atmos devices (#51148)

* Fix ghosts alt/ctrl clicking atmos devices

* fix logic issues (#1819)

* Revert "Fix ghosts alt/ctrl clicking atmos devices"

This reverts commit 0c73a3e98c438da9feddcc9cc008323ba178426e.

* Add logging to atmos control and alt clicks

* Call procs only if needed

Co-authored-by: Isaac <[email protected]>

* Rebuilds TGUI and fixes box

* fixes for the BS miner and cloning

Co-authored-by: Yodeler <[email protected]>

* explosion nerf (smug face here)

* Revert "Merge pull request #49563 from Fikou/clarke"

This reverts commit 9d4eb582ac3fb87b03ec5a349eacd7dc1cab8d3c.

Conflicts:
	code/game/mecha/working/clarke.dm
	icons/mecha/mech_construct.dmi
	icons/obj/toy.dmi

* Rebuilds TGUI

* Smart Asset Cache - no more resending assets on round restart. (#49982)

The asset cache will now store json on the player's computer with info on what browser assets they have, all non-active assets (anything but .js(m) and .htm(l)) are reused in further connections. Browser assets in byond persist for an individual dream seeker instance, and are destoryed when the window is closed (so this only helps reconnects and round restarts) The data is stored in the client's asset folder to ensure its current and retrieved using javascript and sent back to the server using ajax(XHR).

The md5 of the asset files are generated on the server and stored on the client. It is used to validate the asset hasn't changed from a code update, and is not re-checked client side.

To ensure this can't be used by a malicious byond server to override javascript assets before redirecting people to /tg/ (where the attacker's javascript would then be allowed to run verbs and spoof topics) we do not mark javascript as pre-loaded when loading the client's asset cache json file on connection.
Other Changes

    I moved some things around, the asset cache file was getting thicc:
        Put new asset cache datums into code/modules/asset_cache/asset_list_items.dm
        Find the asset cache datum abstract definitions inside code/modules/asset_cache/asset_list.dm
    I fixed a bug where blocking asset sends would not block later calls to send the same asset while the send was still underway - todo: have it bind to the first send rather then initating its own.
    The small file sent to the client to verify it got all pending asset sends will no longer use random names. This should keep the client's asset folder from exploding with hundreds of random htm files, much to the joy of oranges.
    Passively loading assets no longer batches.
    Unified the two procs.

* Asset cache updates. (#50759)

Asset cache now caches the asset's md5 This should solve the high cpu usage issues with it. line by line profile suggests that the next hotspot is the asset log.

Simplied asset cache code, moved verify functionality to a flush_assets proc that blocks until a client has all currently sending assets. (sidenote: there is an argument for moving most of asset_cache's global procs onto the client, get_asset_datum and register_asset are really the only valid global procs.)

Re-added batched passive sends since it does speed up how quickly the asset cache pre-caches to clients.

* Fix asset cache verification (#51202)

byond is injecting html to load js shims into json files returned by xhr. this will get fixed in a later byond release, but this disables the functionality for the asset cache skin control today

* Enable DMI preview in VScode (#51019)

Co-authored-by: ZeWaka <[email protected]>

* Feex belts (#51766)

* help me

* Revert "Feex belts (#51766)"

This reverts commit 9163ffe6ef62717e6d5618ae6e02033b53edaa89.

* fix probably idk probably not

* tgui: Find BYOND cache via Windows Registry (#50769)

* this fucking error will haunt me until this damn thing gets merged which may be never

* AAAAAAAAAAAAAAAAAAAAAAAAA

* more shuttle door fixes

* FCKING HELL

* Fixes orbit offsets and adds matrix vv preview. (#51198)

* Adds matrix vv preview and moves vv css into separate file.

* Fixes orbit offsets.

* restores runescape chat to only being off by default

* minor fixes

* more adjustments and tweaks

* whoopsfuck

* Papers Please! Now with Markup...again! (#51534)

* Initial update

* tgui ofcourse

* Small fixes

* More lint fix

* Updated to support signatures and adding to paper

* Sign and adding to paper work, need to tune it a bit though

* Ok, signatures and adding work, still working on stamps

* Stamps now, fix rotate and cleanup tommow

* Alrighty!  Lets try for some testing!

* Stupid travis

* annnd the bundle

* Minor fixes

* DONE.  Still have some code cleanup, but all the major features work now

* Requested changes cleaned up formating

* Dammmn you bundle!

* Fixed the preview issue

* Updated bundle

* Ok, some more fixes and clean up

* Ugh damn you tgui bundle

* Update tgui.bundle.js

* Paper fixes and updates (#51731)

* Updates to alot of paper.

More clean up and forms work well.  Preview bug fixed as well.

* Update tgui.bundle.js

* whoops, fuck

* also this fuck fuck fuck fuck

* Animate pointing (#51751)

* VROOOOM (#51546)

* Lets you tip over medbots (you monster) (#51409)

About The Pull Request

dreamseeker_2020-06-01_03-34-53.png

A while ago I read a book about people and robots and emotions, Alone Together by Sherry Turkle, and there's one passage that talks about people's reactions to robots simulating distress, specifically with how Furbies cry when you hold them upside down.

    A person is asked to invert three creatures: a Barbie doll, a Furby, and a biological gerbil. [Freedom] Baird's question is simple: "How long can you hold the object upside down before your emotions make you turn it back?"

    People are surprised by how upset they get in this theater of distress. And then they get upset that they are upset. They often try to reassure themselves, saying things like, “Chill, chill, it’s only a toy!” They are experiencing something new: you can feel bad about yourself for how you behave with a computer program. Adults come to the upside-down test knowing two things: the Furby is a machine and they are not torturers. By the end, with a whimpering Furby in tow, they are on new ethical terrain.

Ethics memes aside, the idea off people being caught off guard at their guilt for causing harm to inanimate objects is really funny to me, and feels extra relevant to SS13. Considering people already regularly get in fights and maim each other over harming station pets, I picture this being a great source of arguments and fights ICly over what torturing a cute lil' medbot says about you.

tl;dr this PR lets you tip over medbots which prevents them from moving or healing, and they'll slowly get more and more distressed and desperate asking for help from people around them. After a few minutes, if no one helps right them, they'll manage to right themselves up and snitch on whoever tipped them over to medical so the psychologist can keep an eye on them.

dreamseeker_2020-06-01_03-48-25.png
Why It's Good For The Game

Gives the psychologist more ammo to call people crazy, gives bored assistants another way to seek attention, provides source of minor IC conflict
Changelog

🆑 Ryll/Shaps
add: You can now tip over medbots!
/🆑

I'd like to get voicelines for these as well, but I wasn't sure of a good TTS generator, and also wanted to see if people think this is worth doing before devoting too much time to it.

* Finishes medbot tipping, adds voices (#51555)

About The Pull Request

#51409 wasn't actually finished as I was still waiting on making voice lines before testing it, I should have mentioned that a bit more clearly. Either way, this fixes medbot interaction menus, and adds voice lines to medbots for tipping, righting, and idle emagged quotes. It also actually immobilizes tipped medbots and prevents spamming/queueing up lots of flips and unflips.

Fixes #51548

Medbot voice reel
Why It's Good For The Game

Enhances medibot desperation, reduces spam abuse
Changelog

🆑 Ryll/Shaps
fix: Medbot interaction menus are fixed
fix: You can no longer queue multiple medbot flips at once
soundadd: Medbots now have lots more to say, especially if you knock them over!
/🆑

* Direction Control of Vents using the AirAlarm..again! (#51536)

* Ugh rebuild of the pull

* Updated tgui bundle and eslent junk

* Update tgui.bundle.js

* Update tgui.bundle.js

* Update tgui.bundle.js

* Update tgui.bundle.js

* Revert "Update tgui.bundle.js"

This reverts commit b16efa40e39a67daacbc794e47efc372a74bf076.

* Update tgui.bundle.js

* Fixes Get-Current-Logs (#51376)

* New tgui based orbit menu (#51585)

* New tgui based orbit menu

* Update tgui.bundle.js

* Safely check len if orbiters is null

* Add a search bar

* Rename Antagonists to Ghost-Visible Antagonists

Co-authored-by: Emmanuel S. <[email protected]>

* Move ghosts below alive

* Rebuild tgui.bundle

* Update as per stylemistake's feedback

* Cosmetic stuff

* Rebuild tgui

* Replace localeString with faster alternative

* Update tgui.bundle.js to latest upstream

* Hitting enter in the search bar will now snap you to orbit the most relevant result

Co-authored-by: Emmanuel S. <[email protected]>
Co-authored-by: Aleksej Komarov <[email protected]>

* Adds scroll bar to ghost Orbit menu (#51681)

* Add scroll bar to ghost orbit menu

* Rebuild TGUI

* tgui: Abductors (#51920)

* Gland Dispenser

* ProbingConsole and Abductor theme

* State tweaks, Abductor Console DM side, Abductor Uplink, Abductor orderable gear datum

* Line endings

* Finished UIs

* Adds two new modular apps: Lifeline for tracking suit sensors, and the Syndicate-only Fission360 for tracking nuke-related items (#51152)

About The Pull Request

    Adds two new modular computer programs. Both use the same underlying parts;
    -- Lifeline is an improved suit sensor tracker, showing where the target is on a grid if they're within 24 tiles. The scan button has a two-second delay (since the program has to check every humanoid in glob.human_list for trackability and we don't want that spammed). The app works pretty much how you would expect.
    -- Fission360 uses the same processes as above but for the nuke disk and all nukes in the area (self destruct, beer, syndicate). Available only via emagging a tablet for the moment.
    --
    Rudimentary multiZ support exists, in the form of replacing the crosshairs icon with an up or down arrow (once it's visible within the circle) to indicate if the target is above or below, if both the target and the computer are on a station Z level of some sort. Also, the grid lines are exactly two-tiles apart.

    Added support for programs to list special assets to load, so that we don't have to have every program loading all modular program assets. The radar apps use this to load the background grid and the too-far-away-to-display arrow.

Why It's Good For The Game

More modular apps are good. I'm hoping to see a syndicate-version of the modular tablet in the hands of nuke ops at some point, which is really where Fission360 will make sense. Otherwise, it's an extra tool for traitors with the nuke theft objective, I suppose.
Changelog

cl
add: Two new apps for modular computers are available: Lifeline for Medical, and Fission360 for anyone with access to the Syndicate repository. Lifeline is an improved suit sensors tracker, and Fission360 is the same but for nuclear-related things.
/cl

* tgui: Holopad (#51433)

* Initial commit

* First version

* Final version

* Status fix

* Finishing touches and review fixes

* Converts the Cargo Bounties UI to TGUI and adds a modular app for it. (#51509)

* How did this take me like 3 hours but the bounty UI took 4 weeks like fuck

* Uses style's suggestions for UI cleanup.

* Rebuild TGUI

* Squiggly Brackets No. 1

* Squiggly Brackets No. 2

* Rebuilds tgui also sorry style I got lazy

* Another tgui update

* GREP?

* Rebuilds tgui again

* Rebuild yet again

* How'd you like a nice tender lambchop?

* Take me HOOOOOOOME country ROOOOOADS

* Updates with Anturk's changes.

* Removes unnecessary flex element

Co-authored-by: Aleksej Komarov <[email protected]>

* whoops, fuck

* runtime fix(?)

* fucking hell

* Chemical press can now make patches and bottles (#51000)

* Pill press can now make patches

* Add bottles to Chem Press

* merge conflict resolution

* conk

* Revert "Adds the Airlock Authentication Override Card (#50636)"

This reverts commit 74d929132954c12f979bb39506bf124dd9690363.

* Merge pull request #51819 from WarlockD/paper_patch_examine

Paper examine fix

* Fixes examine_more runtime

* Paper icon fixes, adds support for objects to have custom fire overlays (#51862)

* Fixes papers constantly adding overlays when on fire

* things

* neediful

* better var name

* Standarizes how paper products are burned (#51863)

* Standarizes how paper products are burned

* built in handling.

* clumsiness bypass param

* cleanup unneeded param

* TGUI : Bluespace Locator edition (#52016)

* Initial commit

* Draft convert telebeacon code

* more ui_data code

* Woops

* Indent fix

* Prepare for compile, remove non-tgui code

* UNGA

* BluespaceLocator.js is born

* Initial TGUI UI commit.

* Spinning arrow, refactor code to components

* Tentative progress bar

* More UI tweaks

* More gui changes. Now display all beacons

* Tabify interface, overhaul looks, lint for the lint Gods

* Move logic from tgui to byond code

* Set default tab to implants.

* Rebuilt TGUI : Episode Three

* Rebuilt TGUI : Episode Four

Co-authored-by: Timberpoes <[email protected]>

* Converts the Cargo Bounties UI to TGUI and adds a modular app for it. (#51509)

* How did this take me like 3 hours but the bounty UI took 4 weeks like fuck

* Uses style's suggestions for UI cleanup.

* Rebuild TGUI

* Squiggly Brackets No. 1

* Squiggly Brackets No. 2

* Rebuilds tgui also sorry style I got lazy

* Another tgui update

* GREP?

* Rebuilds tgui again

* Rebuild yet again

* How'd you like a nice tender lambchop?

* Take me HOOOOOOOME country ROOOOOADS

* Updates with Anturk's changes.

* Removes unnecessary flex element

Co-authored-by: Aleksej Komarov <[email protected]>

* Identification Console PR (#51374)

About The Pull Request

It simply adds a new Modular Console Preset to the existing ones, fully outfitted to replace the current Identification Console in the Head of Personnel's Office and in the Bridge, and in most of the maps' Customs desks. Note that it doesn't replace them, it's just an asset right now so we can replace them with another PR, at the pace the map maintainers feel confident with. It has the ID Card Modification, Job Manager and Crew Manifest softwares on it by default, alongside the regular Chat Client.
The new Modular Console Preset can be found under /obj/machinery/modular_computer/console/preset/id, for all your map editing needs.
I'm planning to see if I can't make changes to the Departmental Consoles later on as well, so we basically can get rid of a console in every Head of Staff's office (except the HoP because there's only one), but that will require some additional coding to make it so it's not straight up some Identification Consoles that people with All-Access could use to print even more All-Access cards.
Why It's Good For The Game

I've basically just implemented something that I feel was meant to be implemented a while ago through the use of TGUI and Modular Computers, but never actually got done. The console doesn't have the glitches of the current Identification console, when you remove your ID after logging in and it just goes to a page saying that the address couldn't be found. The UI is much simpler, looks a lot better and is just overall an improvement.

Here's what the new UI looks like, for those of you that don't feel like checking out the PR in-game to know what it looks like:
image
image
Changelog

🆑
add: New Modular Console Preset added: /obj/machinery/modular_computer/console/preset/id
/🆑

* Refactors reagent exposure code (#51396)

* Refactors reagent exposure code

Removes istype clutter. Renames a few procs

* == TRUE

Adjusts COMPONENT_NO_EXPOSE_REAGENTS bitflag offset.

TODO: Remove comment

Co-authored-by: Rohesie <[email protected]>

* == TRUE

Adjusts COMONENT_NO_EXPOSE REAGENTS bitflag offset.

Removes comment

Co-authored-by: Rohesie <[email protected]>

* Fixes reagent exposure on transfer. (#51801)

* Fiiiiiix

Some cleaning, fixes a proc

* Density

Adds SpaceManiac's suggestion.

* Merge pull request #52097 from Timberpoes/tgui-orbit-feex

Fixes some Ghost Orbit menu issues

* Fixes being unable to orbit player entities from the Orbit menu (#52134)

* Fix incorrect keys.

* Rebuild tgui

* Converts the APC console from html to TGUI (#51973)

* Updates APC control panel to tgui

* Finishes things up, adds emag behavior fully

* Commented code bad

* Removes tooltips

* That shound  just be name

* Rebuild tgui

* removes header and adds a class

* Merge pull request #52077 from silicons/cameras

fixes cameras crashing the server

* fixes laserpointer runtime (#52074)

* Finally adds a quickdraw hotkey for the suit storage slot (#52040)

* lol

* Adds Cargo tablets to CT and QM backpacks on spawn

* Fixes buckled mobs sometimes z fighting with what they're buckled too

* Lets you unlock bots by altclicking them

* Merge pull request #52009 from ShizCalev/box-examine-text

Adds a bit of examine text to bots

* Fix pulling people through space breaking the chain (#51997)

Includes a unit test because TDD is good.
Why It's Good For The Game

It makes transport through space with friends much more annoying than it should be.
Changelog

cl
fix: Fixed a bug where when teleporting naturally (such as going through a z-level in space), if you were pulling someone that was then pulling another person, only you and the person you were pulling would make it through.
/cl

* MULEbot code cleanup & fixes (#51987)

cl ShizCalev
refactor: Optimized a good chunk of MULEbot code, fixing things such as it rebuilding it's overlays/icons 5 times every second while moving to a destination. Less free lag!
fix: Fixed MULEbots closing crates when the crate doesn't actually get loaded onto it.
fix: Fixed the maintenance hatch on MULEbots visually closing for a moment when emagged.
fix: Paranormal MULEbots will no longer briefly turn into a normal MULEbot when emagged.
fix: Fixed interface exploits involving paranormal MULEbots carrying ghosts.
fix: Fixed MULEbot blood tracks sometimes facing the wrong direction.
fix: Player controlled MULEbots will now leave bloody tracks if they've run over a mob.
fix: Fixed players riding MULEbots sometimes appearing underneath it instead of ontop of it.
fix: Fixed AI's making a chiming noise when they receive a remote notification from a MULEbot. Now only the AI will hear the notification's sound.
fix: Fixed MULEbots dropping mobs off at their current location instead of at their dropoff point.
fix: Fixed a minor runtime related to MULEbots dropping off deleted items/mobs.
fix: Fixed mobs having the wrong height offset when riding MULEbots.
fix: Fixed mobs sometimes ending up underneath MULEbots while riding them.
fix: Fixed mobs not falling off MULEbots when stunned / incapacitated.
fix: Fixed inducers not recharging MULEbots.
fix: Fixed MULEbots leaving bloody tracks in space.
fix: Fixed MULEbots leaving multiple blood tracks in the same spot if they failed to move.
fix: Fixed hacked MULEbots spamming messages about knocking down a mob when they didn't actually do it.
fix: Fixed MULEbot commands not resetting when they were turned off.
fix: Fixed MULEbots not turning off properly when their maintenance hatch is opened.
fix: Fixed MULEbots not turning off properly when they ran out of power while moving.
fix: Fixed MULEbots flashing their external warning lights while they're turned off when their avoidance wire is cut.
fix: Fixed mobs being able to walk right over MULEbots when they turn off.
fix: MULEbots will now try to put their powercell in your hands when you remove them with a crowbar.
fix: Fixed the interface for MULEbots briefly looking like you turned it on successfully even though it was out of power.
fix: MULEbots will now provide feedback if they fail to turn on due to their maintenance panel being open.
fix: MULEbots will no longer flash and beep when their wires are pulsed if they don't have power.
fix: MULEbots will now actually flash when their external warning lights are pulsed.
tweak: MULEbots will now flash when they beep / buzz.
add: Added a bit more examine text to MULEbots.
/cl

Fixes #42918
Fixes #46030
fixes #38594

* Accurate donut box sprites (#51971)

The sprite of the donut box will now be dependent on what donuts are inside and in what order.

Current donut boxes misinform hungry spacemen, and colorful donut boxes are cool.
Changelog

cl
imageadd: Donut boxes will now accurately show what donuts are inside.
/cl

* medbay personnel will (hopefully) no longer be shotgunned for attempting to feed you a vaccine (#51911)

* Merge pull request #51922 from Tlaltecuhtli/signaler-cobeyto

conveyor switches can now be actived with signalers

* Occupational Corruption Device (#51884)

About The Pull Request

Adds a new traitor item exclusive to Heads of Personnel and Quartermasters that triggers a bureaucratic error
Why It's Good For The Game

Adds a new method for traitors to cause indirect havoc to the station at large
Changelog

cl
add: Added a new traitor item for HoP and QM, the OCD
/cl

* Merge pull request #51886 from Fikou/patch-32

gives servicelathe some creative tools

* fixed issue with the destructive analyzer (#51869)

* fixed issue with the destructive analyzer

* changed how sheets are processed

* Merge pull request #51877 from Wayland-Smithy/master

Allow Revenants to read deadchat, and fix their Darkmode speech color

* Fixes bank cards not giving alerts if a mob is around that has them disabled (#51825)

* [Ready?] Mech vs Mech combat system! ... (For toy mechs.) (#51817)

* Mech battle system!!

* suicide_act

* sounds

* a few checks here and there + comments

* polish

* restores a deleted attack_hand

* cleans up some indents

* incapacitated people can't have epic fights

* CONTRIBUTING.md compliance that i missed

* fixes doc, suicide, adds a sleep proc for ease

* fixes a minor sin + makes it pretty

* moved file

* anime

* "balancing"

* the chamaleon stamp can now stamp cardboard into fake syndiboxes  (#51803)

* Moves some ID examine info to examine_more (#51741)

* gettin ID'd

* money too

* Merge pull request #51750 from ivanmixo/wallet_fix

Fixes the wallet alt-click so you can't take your ID out while unconscious or in soft crit

* Fixes multi-target to chat for mobs. (#51667)

* Merge pull request #51701 from SteelSlayer/intercom-refactor

Intercom refactor/code cleanup

* Makes rads glow, buffs rad goggles (#51879)

* Adds a healthy green glow to contaminated objects

* Improves rad goggles, increases the range, improves the brightness, and raises the text above the mob layer

* God damnnit jared

* filters are sane now

* lowers max alpha, and starting alpha

* Plant analyzer can scan the health of podmen. (#51705)

* Plant analyzer can scan the health of podmen.

* implements suggested changes

Co-authored-by: Rohesie <[email protected]>

* basic health analyzers can't analyze Podmen vitals anymore.

* Fixed some useless parenthesis

Co-authored-by: Rohesie <[email protected]>

* Changed a word.

Co-authored-by: Rohesie <[email protected]>

* Radiation update for Medical Kiosk (#51902)

* Inital pr

* Ooops

* Speeds up area power usage handling, and apc process(). Cleans up related code (#51002)

About The Pull Request

/area/proc/usage() attempts to give list-like access to a bunch of vars. Why not make it a list instead and avoid all the proc calls? Might be room for followup here, to do something to powered(), use_power() etc.

Some legacy machinery was ignoring the default machinery use_power pulling from the machine's power channel by default

Total power usage was unused, APCs ignored it in favor of calculating it themselves :)

I also renamed the defines because they were in the danger zone of being very common words.
Changelog

cl Naksu
code: optimized area power usage calculations.
/cl

* picture fixer (#51650)

* Merge pull request #51656 from ShizCalev/fixes-engineering-goggles-overlay-colors

fixes engineering goggles glasses overlay colors

* [s] fixes a href exploit on shuttle computer code

User can crash the admins chat, or send them evil memes.

Fixes #51654

* Fixes the nuke lagging the end of the round. (#51647)

* Merge pull request #51592 from deathride58/skidbgone

[s] Fixes a pair of DoS vectors.

* Client vars (#51325)

* Adds keybindings sanity. (#51627)

* Adds keybindings sanity.

* Whoops

* clears the key if it's unsed

* Fixes a few duplicate articles in examines (#51631)

* Fixes heavily fried foods naming issues

* a few more

* Reveal ghosts when the round ends (#51572)

* Reveal ghosts when the round ends

* Add feedback

Co-authored-by: MrDoomBringer <[email protected]>

* Alive players can now hear dead players when the round is over

Co-authored-by: MrDoomBringer <[email protected]>

* Chunky waddle (#51383)

* Better Player Ignore (#51353)

* Revamp the player ignore system

* Move a variable definition out of a loop

* Replace a |= with +=

* Improve some code

* Fix some code

Co-authored-by: Local <none>

* Supermatter variable documentation, cleanup, bugfixes. (#51345)

* Makes the supermatter file smaller.

AHAHAHAHHAHA YOU FOOL YOU HAVE FALLEN FOR MY TRAP CARD

* stable build maybe? sm cleanup begins

* The old ones knew

* lemme atomize actually

* I know how to spell ok? OK?

* braindamage

* That'll do it

* That do it?

* There we go

* Wow I should test things

* test?

* I hope that clears it

* Should fix the formatting trouble

* isolates the opening proc

* Lowercase and fixes messed up proccall

* Revert "Plant analyzer can scan the health of podmen. (#51705)"

This reverts commit b3ea9862e4f4fbea16691e91798b14bf34e0f1c7.

* Codename: Jeu Tarot- Tarot Cards, for games and divination, risen like a phoenix (#51318)

About The Pull Request

Re-PR of #51027 due to a git hiccup.
Adds tarot cards, for business and pleasure. The tarot deck consists of 78 cards, split into 56 Minor Arcana cards (each suit consists of 10 number cards, and 4 face cards) and 22 Major Arcana cards. The deck has new art:
minorarcana
majorarcana
Special thanks to Fikou for deciding which jobs should correspond to each of the Major Arcana.
Why It's Good For The Game

It's a fun distraction from the dull humdrum of station life, and opens up some good RP opportunities.
Changelog

cl Inept
add: The Nanotrasen Entertainment Division has released a new product: Tarot cards! They're available from the Fun vendor for all your divination needs.
/cl

* Datum based poll creation and vote handling update (#50843)

An almost complete rework of how creating polls, their data and voting on them is handled.

Instead of repeatedly querying for poll data, running polls are loaded at runtime into poll_question and poll_option datums that stores all the needed variables for both. This datum is then used for creating, editing and accessing poll data. The database is only contacted when saving changes or votes.

Creating polls and options is now done with a html window instead of a series of popups akin to how the banning panel works. The form data is parsed and error-checked before passing to be saved.
This is done in two stages, first time a poll's details are entered and it must be initialized (created as a datum) before options can be added and all of both are saved to the database. Instructions about how this work are shown on the poll creation window.

A new field for polls has been added, subtitles, which is text only shown when a poll is opened by a player instead of on the list of polls. Intended so the actual question text can be kept to only a name and important information about a poll goes in a subtitle.
All polls can now have revoting enabled on them.
Polls can have a starting datetime specified, this can be in the past but why would you do that?
Polls and options can be edited once created, excluding the type of a poll. Doing so will by default clear all existing poll votes. Votes can also be cleared by a button.

The handling of how votes are processed has been adapted for the datum system but is on the whole not functionally that different aside from poll validation not being roughly copypasted across each poll type's vote proc

All poll tables now have a deleted column for retaining 'deleted' data.
poll_question has also gained the columns created_datetime, subtitle, allow_revoting, their function explained above, and a change of idx_pquest_time_admin to idx_pquest_time_deleted_id.

A stored procedure set_poll_deleted has been added. This is called when setting a poll as deleted to avoid needing 4 separate queries from the server or one fairly long 4-way joined

Create Poll verb is renamed to Server Poll Management

* examine_more fix?

* :moyai:

* icon fixes (question mark)

* multiple runtime fixes

* fucking hell

Co-authored-by: tgstation-server <[email protected]>
Co-authored-by: Kyle Spier-Swenson <[email protected]>
Co-authored-by: Aleksej Komarov <[email protected]>
Co-authored-by: LemonInTheDark <[email protected]>
Co-authored-by: Rohesie <[email protected]>
Co-authored-by: uomo <[email protected]>
Co-authored-by: Cartographer-D <[email protected]>
Co-authored-by: Jordan Brown <[email protected]>
Co-authored-by: Arkatos1 <[email protected]>
Co-authored-by: MarioWizard119 <[email protected]>
Co-authored-by: Bobbahbrown <[email protected]>
Co-authored-by: EdgeLordExe <[email protected]>
Co-authored-by: trollbreeder <[email protected]>
Co-authored-by: itseasytosee <[email protected]>
Co-authored-by: JJRcop <[email protected]>
Co-authored-by: TheSilverNuke <[email protected]>
Co-authored-by: RaveRadbury <[email protected]>
Co-authored-by: Changelogs <[email protected]>
Co-authored-by: Iamgoofball <[email protected]>
Co-authored-by: Ghilker <[email protected]>
Co-authored-by: Mickyan <[email protected]>
Co-authored-by: Dangerous dingidy doo <[email protected]>
Co-authored-by: William Wallace <[email protected]>
Co-authored-by: ArcaneMusic <[email protected]>
Co-authored-by: actioninja <[email protected]>
Co-authored-by: spookydonut <[email protected]>
Co-authored-by: MrDoomBringer <[email protected]>
Co-authored-by: zxaber <[email protected]>
Co-authored-by: Couls <[email protected]>
Co-authored-by: Cenrus <[email protected]>
Co-authored-by: tralezab <[email protected]>
Co-authored-by: Qustinnus <[email protected]>
Co-authored-by: partyaddict <[email protected]>
Co-authored-by: 1glitchycent <[email protected]>
Co-authored-by: miniusAreas <[email protected]>
Co-authored-by: TheObserver-sys <[email protected]>
Co-authored-by: DR <[email protected]>
Co-authored-by: TheNeoGamer42 <[email protected]>
Co-authored-by: zeskorion <[email protected]>
Co-authored-by: Epsilos <[email protected]>
Co-authored-by: Crossedfall <[email protected]>
Co-authored-by: Superyodeler <[email protected]>
Co-authored-by: tetra zeta <[email protected]>
Co-authored-by: CRITAWAKETS <[email protected]>
Co-authored-by: Tetr4 <[email protected]>
Co-authored-by: Isaac <[email protected]>
Co-authored-by: Yodeler <[email protected]>
Co-authored-by: ZeWaka <[email protected]>
Co-authored-by: Timberpoes <[email protected]>
Co-authored-by: AnturK <[email protected]>
Co-authored-by: WarlockD <[email protected]>
Co-authored-by: Jared-Fogle <[email protected]>
Co-authored-by: Ryll Ryll <[email protected]>
Co-authored-by: Emmanuel S. <[email protected]>
Co-authored-by: antropod <[email protected]>
Co-authored-by: Shayne Fitzgerald <[email protected]>
Co-authored-by: ShizCalev <[email protected]>
Co-authored-by: ShizCalev <[email protected]>
Co-authored-by: KathyRyals <[email protected]>
Co-authored-by: GoldenAlpharex <[email protected]>
Co-authored-by: TemporalOroboros <[email protected]>
Co-authored-by: skoglol <[email protected]>
Co-authored-by: ATH1909 <[email protected]>
Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: TheVekter <[email protected]>
Co-authored-by: Orchian <[email protected]>
Co-authored-by: NightRed <[email protected]>
Co-authored-by: Tlaltecuhtli <[email protected]>
Co-authored-by: vuonojenmustaturska <[email protected]>
Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: nemvar <[email protected]>
Co-authored-by: PrimordialOoze <[email protected]>
Co-authored-by: EOBGames <[email protected]>
Co-authored-by: Jordie <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 1,379 changed files with 43,487 additions and 23,776 deletions.
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
# In the event that multiple org members are to be informed of changes
# to the same file or dir, add them to the end under Multiple Owners

# bobbahbrown
/code/datums/chatmessage.dm @bobbahbrown

# ChangelingRain

/code/__DEFINES/clockcult.dm @ChangelingRain
Expand Down
1 change: 1 addition & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,7 @@ Do not add any of the following in a Pull Request or risk getting the PR closed:
* National Socialist Party of Germany content, National Socialist Party of Germany related content, or National Socialist Party of Germany references
* Code where one line of code is split across mutiple lines (except for multiple, separate strings and comments; in those cases, existing longer lines must not be split up)
* Code adding, removing, or updating the availability of alien races/species/human mutants without prior approval. Pull requests attempting to add or remove features from said races/species/mutants require prior approval as well.
* Code which violates GitHub's [terms of service](https://github.com/site/terms).

Just because something isn't on this list doesn't mean that it's acceptable. Use common sense above all else.

Expand Down
34 changes: 34 additions & 0 deletions .github/POLICYCONFIG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Welcome to this short guide to the POLICY config mechanism.

You are probably reading this guide because you have been informed your antagonist or ghost role needs to support policy configuration.

## Requirements
It is a requirement of /tg/station development that all ghost roles, antags, minor antags and event mobs of any kind must support the policy system when implemented.

## What is policy configuration
Policy configuration is a json file that the administrators of a server can edit, which contains a dictionary of keywords -> string message.

The policy text for a specific keyword should be displayed when relevant and appropriate, to allow server administrators to define the broad strokes of policy for some feature or mob.

It is okay to provide a default text when the config is not set, but you are required to provide the config in all cases of a ghost role or an antagonist, or minor event.

If you're in doubt about needing to support policy config, I suggest doing it anyway. This should replace all flavour text, ghost spawn messages and so forth that the player (i.e client) sees upon entering the role, mob, or feature that is meant to dictate how they are permitted to be played as/with.

## What does this mean?

Concretely, it means you need to display to the client taking control of the mob or ghost role a string of text, pulled via keyword from the policy config system.

You can access the string of text through the `get_policy(keyword)` proc, this takes a single keyword argument, which should be a text string unique to your feature.

This will return a configured string of text, or blank/null if no policy string is set.

This is also accessible to the user if they use `/client/verb/policy()` which will display to them a list of all the policy texts for keywords applicable to the mob, you can add/modify the list of keywords by modifying the `get_policy_keywords()` proc of a mob type where that is relevant.

### Example
Here is a simple example taken from the slime pyroclastic event
```
var/policy = get_policy(ROLE_PYROCLASTIC_SLIME)
if (policy)
to_chat(S, policy)
```
It's recommended to use a define for your policy keyword to make it easily changeable by a developer
12 changes: 12 additions & 0 deletions .github/workflows/round_id_linker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: "Round ID Linker"
on:
issues:
types: [opened]

jobs:
link_rounds:
runs-on: ubuntu-latest
steps:
- uses: tgstation/round_linker@master
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
3 changes: 2 additions & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ jobs:
- uses: actions/stale@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being closed by a maintainer if it is not updated or reviews are not addressed. If your PR is closed as stale, feel free to open a new one after dealing with the issues. This may also be an indication that the maintainers do not have interest in this change, you can try to convince them otherwise, or persist in the doomed world you have created."
stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 7 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself"
days-before-stale: 7
days-before-close: 7
stale-pr-label: 'Stale'
exempt-pr-label: 'RED LABEL'
11 changes: 11 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
build:
stage: build
rules:
- if: $CI_MERGE_REQUEST_IID || $CI_COMMIT_REF_NAME == "master"
changes:
- tgui/**/*.js
- tgui/**/*.scss
when: always
image: node:lts
script:
- tgui/bin/tgui --ci
11 changes: 9 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
{
"eslint.workingDirectories": [
"./tgui"
]
"./tgui"
],

"workbench.editorAssociations": [
{
"filenamePattern": "*.dmi",
"viewType": "imagePreview.previewEditor"
}
]
}
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,12 @@ Web delivery of game resources makes it quicker for players to join and reduces

## CONTRIBUTING

[/tg/station HACKMD account](https://hackmd.io/@tgstation) - Design documentation here

[Documenting your code](.github/AUTODOC_GUIDE.md)

[Policy configuration system](.github/POLICYCONFIG.md)

## CODEBASE CREDITS

* /tg/, for the codebase
Expand All @@ -164,9 +168,6 @@ All code before [commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 a

See LICENSE and GPLv3.txt for more details.

tgui clientside is licensed as a subproject under the MIT license.
Font Awesome font files, used by tgui, are licensed under the SIL Open Font License v1.1
tgui assets are licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
The TGS3 API is licensed as a subproject under the MIT license.

See the footers of code/\_\_DEFINES/server\_tools.dm, code/modules/server\_tools/st\_commands.dm, and code/modules/server\_tools/st\_inteface.dm for the MIT license.
Expand Down
53 changes: 50 additions & 3 deletions SQL/database_changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,62 @@ In any query remember to add a prefix to the table names if you use one.

-----------------------------------------------------

Version 5.9 27 March 2020 by MarkSuckerberg
Version 5.9, 19 April 2020, by Jordie0608
Updates and improvements to poll handling.
Added the `deleted` column to tables 'poll_option', 'poll_textreply' and 'poll_vote' and the columns `created_datetime`, `subtitle`, `allow_revoting` and `deleted` to 'poll_question'.
Changes table 'poll_question' column `createdby_ckey` to be NOT NULL and index `idx_pquest_time_admin` to be `idx_pquest_time_deleted_id` and 'poll_textreply' column `adminrank` to have no default.
Added procedure `set_poll_deleted` that's called when deleting a poll to set deleted to true on each poll table where rows matching a poll_id argument.

ALTER TABLE `poll_option`
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `default_percentage_calc`;

ALTER TABLE `poll_question`
CHANGE COLUMN `createdby_ckey` `createdby_ckey` VARCHAR(32) NOT NULL AFTER `multiplechoiceoptions`,
ADD COLUMN `created_datetime` datetime NOT NULL AFTER `polltype`,
ADD COLUMN `subtitle` VARCHAR(255) NULL DEFAULT NULL AFTER `question`,
ADD COLUMN `allow_revoting` TINYINT(1) UNSIGNED NOT NULL AFTER `dontshow`,
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `allow_revoting`,
DROP INDEX `idx_pquest_time_admin`,
ADD INDEX `idx_pquest_time_deleted_id` (`starttime`, `endtime`, `deleted`, `id`);

ALTER TABLE `poll_textreply`
CHANGE COLUMN `adminrank` `adminrank` varchar(32) NOT NULL AFTER `replytext`,
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `adminrank`;

ALTER TABLE `poll_vote`
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `rating`;

DELIMITER $$
CREATE PROCEDURE `set_poll_deleted`(
IN `poll_id` INT
)
SQL SECURITY INVOKER
BEGIN
UPDATE `poll_question` SET deleted = 1 WHERE id = poll_id;
UPDATE `poll_option` SET deleted = 1 WHERE pollid = poll_id;
UPDATE `poll_vote` SET deleted = 1 WHERE pollid = poll_id;
UPDATE `poll_textreply` SET deleted = 1 WHERE pollid = poll_id;
END
$$
DELIMITER ;

-----------------------------------------------------

Version 5.8, 7 April 2020, by Jordie0608
Modified table `messages`, adding column `deleted_ckey` to record who deleted a message.

ALTER TABLE `messages` ADD COLUMN `deleted_ckey` VARCHAR(32) NULL DEFAULT NULL AFTER `deleted`;

-----------------------------------------------------

Version 5.72 27 March 2020 by MarkSuckerberg
Added Metacoin and Antag token support.

ALTER TABLE `player` ADD COLUMN (`antag_tokens` tinyint(4) unsigned DEFAULT '0', `metacoins` int(10) unsigned NOT NULL DEFAULT '0');

-----------------------------------------------------

Version 5.8 16 Febuary 2020 by MarkSuckerberg
Version 5.71 16 Febuary 2020 by MarkSuckerberg
Added Mentor table and Mentor Memo table from Oracle.

DROP TABLE IF EXISTS `mentor`;
Expand All @@ -37,7 +85,6 @@ CREATE TABLE `mentor_memo` (
PRIMARY KEY (`ckey`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


-----------------------------------------------------

Version 5.7, 10 January 2020 by Atlanta-Ned
Expand Down
49 changes: 34 additions & 15 deletions SQL/tgstation_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ CREATE TABLE `messages` (
`lasteditor` varchar(32) DEFAULT NULL,
`edits` text,
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
`deleted_ckey` VARCHAR(32) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_msg_ckey_time` (`targetckey`,`timestamp`, `deleted`),
KEY `idx_msg_type_ckeys_time` (`type`,`targetckey`,`adminckey`,`timestamp`, `deleted`),
Expand Down Expand Up @@ -347,6 +348,7 @@ CREATE TABLE `poll_option` (
`descmid` varchar(32) DEFAULT NULL,
`descmax` varchar(32) DEFAULT NULL,
`default_percentage_calc` tinyint(1) unsigned NOT NULL DEFAULT '1',
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_pop_pollid` (`pollid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Expand All @@ -362,17 +364,21 @@ DROP TABLE IF EXISTS `poll_question`;
CREATE TABLE `poll_question` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`polltype` enum('OPTION','TEXT','NUMVAL','MULTICHOICE','IRV') NOT NULL,
`created_datetime` datetime NOT NULL,
`starttime` datetime NOT NULL,
`endtime` datetime NOT NULL,
`question` varchar(255) NOT NULL,
`subtitle` varchar(255) DEFAULT NULL,
`adminonly` tinyint(1) unsigned NOT NULL,
`multiplechoiceoptions` int(2) DEFAULT NULL,
`createdby_ckey` varchar(32) DEFAULT NULL,
`createdby_ckey` varchar(32) NOT NULL,
`createdby_ip` int(10) unsigned NOT NULL,
`dontshow` tinyint(1) unsigned NOT NULL,
`allow_revoting` tinyint(1) unsigned NOT NULL,
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_pquest_question_time_ckey` (`question`,`starttime`,`endtime`,`createdby_ckey`,`createdby_ip`),
KEY `idx_pquest_time_admin` (`starttime`,`endtime`,`adminonly`),
KEY `idx_pquest_time_deleted_id` (`starttime`,`endtime`, `deleted`, `id`),
KEY `idx_pquest_id_time_type_admin` (`id`,`starttime`,`endtime`,`polltype`,`adminonly`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
Expand All @@ -391,7 +397,8 @@ CREATE TABLE `poll_textreply` (
`ckey` varchar(32) NOT NULL,
`ip` int(10) unsigned NOT NULL,
`replytext` varchar(2048) NOT NULL,
`adminrank` varchar(32) NOT NULL DEFAULT 'Player',
`adminrank` varchar(32) NOT NULL,
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_ptext_pollid_ckey` (`pollid`,`ckey`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Expand All @@ -413,6 +420,7 @@ CREATE TABLE `poll_vote` (
`ip` int(10) unsigned NOT NULL,
`adminrank` varchar(32) NOT NULL,
`rating` int(2) DEFAULT NULL,
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `idx_pvote_pollid_ckey` (`pollid`,`ckey`),
KEY `idx_pvote_optionid_ckey` (`optionid`,`ckey`)
Expand Down Expand Up @@ -456,18 +464,6 @@ CREATE TABLE `schema_revision` (
PRIMARY KEY (`major`, `minor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DELIMITER $$
CREATE TRIGGER `role_timeTlogupdate` AFTER UPDATE ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (NEW.CKEY, NEW.job, NEW.minutes-OLD.minutes);
END
$$
CREATE TRIGGER `role_timeTloginsert` AFTER INSERT ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (NEW.ckey, NEW.job, NEW.minutes);
END
$$
CREATE TRIGGER `role_timeTlogdelete` AFTER DELETE ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (OLD.ckey, OLD.job, 0-OLD.minutes);
END
$$
DELIMITER ;

--
-- Table structure for table `stickyban`
--
Expand Down Expand Up @@ -557,6 +553,29 @@ CREATE TABLE `ticket` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

DELIMITER $$
CREATE PROCEDURE `set_poll_deleted`(
IN `poll_id` INT
)
SQL SECURITY INVOKER
BEGIN
UPDATE `poll_question` SET deleted = 1 WHERE id = poll_id;
UPDATE `poll_option` SET deleted = 1 WHERE pollid = poll_id;
UPDATE `poll_vote` SET deleted = 1 WHERE pollid = poll_id;
UPDATE `poll_textreply` SET deleted = 1 WHERE pollid = poll_id;
END
$$
CREATE TRIGGER `role_timeTlogupdate` AFTER UPDATE ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (NEW.CKEY, NEW.job, NEW.minutes-OLD.minutes);
END
$$
CREATE TRIGGER `role_timeTloginsert` AFTER INSERT ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (NEW.ckey, NEW.job, NEW.minutes);
END
$$
CREATE TRIGGER `role_timeTlogdelete` AFTER DELETE ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (OLD.ckey, OLD.job, 0-OLD.minutes);
END
$$
DELIMITER ;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
Expand Down
Loading

0 comments on commit d2ea47f

Please sign in to comment.