mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 11:36:24 +01:00
privacy-policy-sql
102 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9175f53a2e |
Adds "Department Budget" access that lets you place orders with the shopping app, gives it to warden and cargo techs (#94288)
## About The Pull Request The "NT Shopping Network" app now checks for if you have "Department Budget" access instead of command access for letting you place orders and not requests. All heads, cargo techs and the warden have it shift start but it can be given to anyone (same as EVA access) and heads of staff can add or remove it at their access consoles. Also makes warden start with the app to hint that they have access to the budget. ## Why It's Good For The Game The access itself is good because letting heads choose who has access to the department budget is obviously good. Cargo techs get it cuz they already have access to it by having access to the request consoles in cargo. Warden gets it by default because HOS is usually busy killing/arresting/patrolling while warden is the one actually managing brig and the armory. If HOS really hates that warden has access to the budget they can just remove it on their console. |
||
|
|
4a6daa0785 |
New CENT_OFFICER access and mapping helpers (#94019)
## About The Pull Request Have you ever wondered, why CentCom officers' IDs have the same access as those of ERT commanders? Tired of ERT members trying on stylish officer's apparel? Well, it's time to change that. This PR adds centcom officer's access (cent_officer), as well as mapping helpers for cent_officer and cent_specops access. Death Commando officers and ERT Commanders don't have this access. It also changes access of administrative office doors to cent_officer. <details> <summary>screenshots</summary> <img width="630" height="838" alt="PR - Admiral" src="https://github.com/user-attachments/assets/a7dd48fc-4fb5-4a98-878b-a28abfadfb24" /> <img width="628" height="838" alt="PR - CentCom Commander" src="https://github.com/user-attachments/assets/6ef9dd9f-49e1-409c-8d90-75201aa21ebd" /> <img width="627" height="835" alt="PR - Special Ops officer" src="https://github.com/user-attachments/assets/055fcdb5-4f6a-4c51-b52a-7848666c7c59" /> <img width="626" height="841" alt="PR - Death Commando" src="https://github.com/user-attachments/assets/9786331f-b3c4-4c0f-bed2-831eada3a05c" /> <img width="627" height="847" alt="PR- ERT Commander" src="https://github.com/user-attachments/assets/92ff59f4-a1ea-4b43-8749-1a4bd3ac6c46" /> <img width="430" height="445" alt="PR - Mapping helpers" src="https://github.com/user-attachments/assets/ead91df7-a872-4ecc-9088-58c0a719deed" /> </details> ## Why It's Good For The Game ERT commanders will have a hard time getting CentCom apparel from the vending machine in the office. It could also be useful for custom maps and shuttles (or even new CentCom map). ## Changelog 🆑 add: Added centcom officer's access (cent_officer) add: Added mapping helpers for cent_officer and cent_specops access map: Changed access on the administrative office doors (cent_officer) /🆑 --------- Co-authored-by: AlexTheEng1neer <128976622+AlexTheEng1neer@users.noreply.github.com> |
||
|
|
8fc2743581 |
Gives Clown Ops a Unique SecHud Icon (#93783)
## About The Pull Request <img width="97" height="84" alt="image" src="https://github.com/user-attachments/assets/7df15cb4-336e-43a3-8991-25053a9fc8a8" /> ## Why It's Good For The Game Clowns are a proud people. They should be seen as clowns. ## Changelog 🆑 add: Clown Ops now have a unique SecHud icon. /🆑 |
||
|
|
ee388c204f |
More love to paramedic: revamping/adding paramedic offices, new access and more! (#93457)
## About The Pull Request most of info in changelog, here i'll pin some screenshots. (also didnt touch catwalk on purpose since its medbay in process of rework) <details><summary>Screenshots</summary> ### Example of paramedic dispatch area, before it was used only on 2 maps: <img width="479" height="490" alt="image" src="https://github.com/user-attachments/assets/ca6f0ba6-93ed-4386-a94d-63b90985ef27" /> ### Example of how I changed pallete to match paramedic outfit: dark color mixed with blue <img width="479" height="490" alt="image" src="https://github.com/user-attachments/assets/e7acef94-2fd3-4fb4-9abf-5b83fd5cd738" /> ### Icebox <img width="463" height="320" alt="image" src="https://github.com/user-attachments/assets/3e12aa10-caac-4b6e-89e8-81690d979150" /> (moved chem storage south) <img width="534" height="476" alt="image" src="https://github.com/user-attachments/assets/863a0644-520b-40a7-9deb-f1174b252757" /> ### Tramstation <img width="518" height="504" alt="image" src="https://github.com/user-attachments/assets/f410f6c8-e2ee-423e-838c-03643ea1499f" /> (removed elevator and replaced with some public atmos equipment) <img width="353" height="727" alt="image" src="https://github.com/user-attachments/assets/df635bb5-5692-4367-b2b6-7c8df3c6c9a4" /> (theres new hall to replace the elevator path) <img width="857" height="725" alt="image" src="https://github.com/user-attachments/assets/15d12685-c9a0-44b5-a916-41766b12677c" /> ### New locker that has all kind of stuff for emergencies! <img width="186" height="155" alt="image" src="https://github.com/user-attachments/assets/c1e40fd6-44f7-48e0-a5e4-ecb9fc562627" /> </details> ## Why It's Good For The Game Since paramedic got more attention now, I feel it would be wise to separate paramedic content (jaws and medical suit) from general medbay and doctors. <img width="382" height="135" alt="image" src="https://github.com/user-attachments/assets/750e0d4c-7011-41e5-8ec4-d5f05f6c3515" /> For locker part: I think paramedic should have own locker with all kind of emergency items/drip items instead of bloating items on the tables. ## Changelog 🆑 add: Added new medical access for paramedics. map: Added paramedic dispatch on: TramStation and IceBox, removed elevator from Tram and moved chemstorage on IceBox. map: Paramedic dispatch area is used on every paramedic office now. map: Medical MODsuit and Jaws of Recovery moved to paramedic office. map: Redesigned northern medbay on MetaStation. sprite: Paramedic locker was added. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
01e07daec0 |
Fixes the clown/mime honorifics (#93354)
## About The Pull Request Fixes the clown/mime honorifics ## Why It's Good For The Game bugfix ## Changelog 🆑 fix: Fixes the clown/mime honorifics /🆑 |
||
|
|
7b8e7cd1d9 |
Adds Honorific support for Clowns and Mimes (#93151)
## About The Pull Request Adds Honorific support for Clowns and Mimes ## Why It's Good For The Game You can name yourself "Blorbo" and become "Blorbo the Clown" like Dropsy the Clown ## Changelog 🆑 spellcheck: Adds Honorific support for Clowns and Mimes /🆑 |
||
|
|
a1fdc715df |
Request Emergency Temporary Access - RETA (#92753)
<img width="819" height="348" alt="image" src="https://github.com/user-attachments/assets/0424ec76-2648-43d3-8e94-d44558b44bcf" /> ## About The Pull Request Follow up from #92751 - Not to conflict with it but as an idea on how to change it for the long run. Paramedics currently start with broad department access. This proposal replaces that by granting temporary department access only when an emergency is called. When a player presses "Call X" on a Requests Console, responders called receive temporary access to the common work areas of that department.  > [Security] The Automated Announcement System coldly states, "SECURITY EMERGENCY in Research Lab! (Called by Sloan Keppel, Scientist) RETA door access granted to responders." > [Science] The Automated Announcement System coldly states, "RETA activated (Called by Sloan Keppel, Scientist). Security personnel now have temporary access to your areas." They do not receive access to sub rooms or high risk areas. - Access lasts 5 minutes (configurable) - Access is removed when the timer expires or the emergency is resolved - No mapping changes are required (uses existing request consoles) - Removes Paramedics round start access but gives them external access to rescue bodies in space by default - Flashing blue lights on doors affected by temporary access <img width="897" height="837" alt="image" src="https://github.com/user-attachments/assets/97980cb4-3481-44b6-9f96-fc241ca16f57" /> **The full document is here: https://hackmd.io/@NM8HxpG_Toahg5pimrpsKw/Hk0tKq3Yxe** **Wiki documentation for players and admins: https://wiki.tgstation13.org/Guide_To_RETA** ## Why It's Good For The Game - Removes paramedics’ broad “Doctor+” access. - Keeps them effective as emergency responders. - Responders must be called in OR access upgraded. - Keeps sensitive areas secure. - Prevents spam or stacking through cooldown. - Scales across all maps without mapper work. - Gives admins a new tool for temp department wide access - Dedicated logging file and unit tests - Very performant, only affects living players with connected mind - Gives Request Consoles more use as an alarm button and further utility - Imagine later on "Request Janitor" which sorts access and tells Janitor where needed ## Changelog 🆑 add: RETA System - Request Consoles give temporary access to responders when used for some areas. Paramedics lose broad access but get external space access. qol: Request consoles now show name and job role on call message & Cooldown on spamming calls + sound prompt qol: Medibot access no longer based on Paramedic trim ID - Still has original access image: Added "lights_reta" for temporary door access when in effect admin: Gives admins "RETA door access" verb for giving department wide area access on maps. config: New config settings for RETA /🆑 |
||
|
|
04e07752b6 |
Removes paramedic's extra access that isn't medical related or maintenance (#92751)
What it says on the tin. Paramedics still retain their expanded access on lowpop. I gave myself a task and I guess I'm doing it. I even made it six months in case I changed my mind, and in that time, I actually was more and more convinced it was the right course of action. [I've attempted at least one moderate approach to resolving this problem and it ended up going nowhere.](https://github.com/tgstation/tgstation/pull/84422) Metek attempted a few times and nothing happened. I've already iterated a lot of the gameplay issues in my first PR. I won't repeat them, just expand my frustrations since then. I went from annoyance to pure resentment of the role existing during that time as I've had to deal with more and more paramedic tiders with time. Paramedics actively fuck with mapping in a way that maps were not designed to accommodate, nor should they be in the first place. It is pretty reasonable to expect that the only people who should have access to a department are those who are from that department, have expanded access from being a head of staff, or got access from the HOP. Paramedics come pre-packaged with this expanded access as a non-head, so they just are out the gate more versatile than the vast majority of other roles while also having an entire department onto themselves (short of pharmacy access on all but skeleton crew). Trying to accommodate paramedics likely will start to have negative quality of life impacts on other roles just to contain a role that probably shouldn't be entitled to this kind of access in the first place. [Even in the original PR that introduced paramedics](https://github.com/tgstation/tgstation/pull/48236), Denton acknowledged the potential problem of paramedics becoming Doctor+, but failed to followup on auditing what they actually could access. So the end result is more or less what he didn't want to have happen. Paramedics are better than most roles in general. not just doctors. Paramedics have almost as much access as most heads of staff. And maps rarely have consistently planned spaces for what constitutes a 'lobby'. Often times there can even be an open floor plan that paramedics can waltz right into and do what they like in. Because, as I said, mappers create maps with the expectation that the people who can access those areas probably are in that department or are a head of staff with broad access. I'm not interested in waiting for overengineered solutions. We bite the bullet and tell paramedics to cope, because they're getting snowflaked to be able to go where they please for reasons that don't seem to be the primary concern of the people who are abusing the levity provided to this role. It's just too much of a low hanging fruit for abuse. # I already asked maptainers long ago about this and they said "No" to making map changes to contain paramedics. Don't bother bringing it up. |
||
|
|
d1b8145ad2 |
Icebox ruin: RoroCo glove factory (#92473)
## About The Pull Request Adds a new surface ruin to icebox, the RoroCo factory. Contains a couple of puzzles, and a small amount of loot in the form of ~~3 total pairs of insulated gloves~~ a pair of insulated gloves, two adorable roros and a cool unique labcoat. Just don't ask where the gloves come from... Puzzles can of course be avoided/brute-forced by breaking down the walls but that's for chumps. <img width="1152" height="1024" alt="Space Station 13 2025-08-06 221903" src="https://github.com/user-attachments/assets/21050aa6-9b27-494d-a949-7496aeda18cf" /> ## Why It's Good For The Game The upcoming 1x3 icebox surface calls for more ruin content to help fill that space. ## Changelog 🆑 add: A new insulated glove factory has popped up on the ice moon. add: Freezer floor tiles now come in the full range of shapes. /🆑 |
||
|
|
b4160da968 |
Gives paramedic ID extra access to pharmacy on lowpop (#92490)
## About The Pull Request title ## Why It's Good For The Game i feel like paramedic really should have pharmacy access on lowpop to cook chems, because unlikely you will have other chemists/doctors, plus thats just a trend that on lowpop your job usually has more access to do more job on understaffed station (like robo gets xenobio, coroner mentioned pharmacy and etc) ## Changelog 🆑 balance: Paramedic now has extra access to pharmacy on skeleton crew station. /🆑 |
||
|
|
14a1b5e1e8 |
Adds Film Studio space ruin (+ Actor/Director Space roles) (#89419)
## About The Pull Request Adds a space ruin revolving around a studio where ghost roles can provide entertainment to the station, the studio has a bunch of construction stuff and costume vendors to create any set and portray any character you'd want. Features 3 stages and a radio station (neutral aligned syndie comms agent?) there's a total of 4 ghost roles, 3 actors. 1 director.  Studio also has a sizable living quarters and a mini-medbay for basic provisions. a couple of paper fluff texts are strewn about on the noticeboards The cast:  In terms of things that can be balance-breaking, I can only name the gas masks and agent ID actors/directors spawns in. But I think its a necessary sacrifice for them to play "characters" ## Why It's Good For The Game I think too many of the ghost roles have too little interactions with the main station, this is for good reasons obviously, balance and metagrudges and all that. But, say. what if we can have a ghost role that interacts and give something to the station besides being their own little isolated game? it can't be anything material of course. so what if we have the ghost role centered around giving entertainment? which is how this PR came to be ## Changelog 🆑 add: After some light bit of restructuring, the local TV station, serving SPACE SECTOR 13 has opened up again! /🆑 |
||
|
|
2e7be24aad |
Honor-riffic: Adds toggleable honorific titles to certain job ID trims (#88309)
## About The Pull Request This implements a new, minor, but flavorful system to IDs -- Honorifics. Does going by your full name not suit you? Do you demand respect for the position on Space Station 13 that you've earned and want to be addressed by your title? Do you take yourself WAY too seriously? This is for you. Toggled by ctrl-clicking your ID, honorifics append a title to your name depending on your position. Certain titles (Captain, Officer, Doctor, etc.) will only append to the start (replacing or including the first/last name), while others (PhD., Esq.) can only be appended at the end.  Each job TRIM has a set honorific and positions it can be assigned to. A doctor can be "Doctor Peterson" or "Doctor Peterson Bungle" or "Doctor Bungle". A Lawyer can only choose to be "Peterson Bungle, Esq.". This will only occur when the speaker's voice is the same identity as the one written on the ID's registered name. This should not interfere with Unknown voice obfuscation, stolen ID shenanigans, or anything gameplay-oriented. Hopefully. This feature is also mononym friendly!  This also makes `first_name()` and `last_name()` global procs, and adds one to check if a passed string has spaces/dashes/whitespace/whatever. All of this is compatible with ID name changes, but the voice name must align with the card name to display the honorific. If you are "Peter Stinkypants" with your honorific set to display "Doctor Stinkypants", and your ID's registered name is changed to "Peter Stinker", you show up as "Peter Stinkypants (as Peter Stinker)" with no honorific provided. If you become "Peter Stinker" and have a "Peter Stinker" ID, you will show up as "Doctor Stinker" once again. That all make sense? Great. <details> <summary>So about the ID name stuff...</summary> <br> So, when you activate an honorific on your ID, it DOES change the actual object's name. Not the registered name, but the ID's name will go from "Peter Dawson's ID card" to "Captain Dawson's ID card" when an honorific is applied. This, as far as I've tested, does not mess with anything important, but I can totally see it doing so in a way that makes ctrl-Fing through logs harder than it needs to be. This could probably be changed without too much effort so if the issue does arise I can fix it. If not I am totally fine with reverting this PR until I can make it work (if I can at all). <br> Admittedly this doesn't have much testing with holopads/radios, but I'm confident the message composure is handled well enough to only display the right names under the right circumstances. If this fucks up logging or naming in any way tell me ASAP because I have a sinking feeling it will in a way more catastrophic than I could ever predict. This PR has been tested thoroughly but I have my limits. </details> |
||
|
|
0ef5c3d049 |
Persistent Map Vote Tallies (#86788)
## About The Pull Request Changes map votes to be based on a persistent tally count. Tallies for maps are cached between rounds and are added to by map votes. When a map is chosen, and it wasn't the only valid one, the tallies for said chosen map will be reset. Refactors map vote handling and moves it from SSmapping to SSmap_vote. Rock the Vote has been removed as a result of this refactor. ## Why It's Good For The Game Makes it more likely that all maps will be played over the course of a server instead of always being truly random. Removes some clutter off of SSmapping. 🆑 refactor: Map Votes are now carried over between rounds. When a map vote is actually a contest, the winning map will have its votes reset. /🆑 |
||
|
|
9743493039 |
Fixes trims without a job whose title matches its assignment, but with an associated job, assigning null account jobs (#86894)
## About The Pull Request Previously our code for getting the job associated with a trim involved checking the assignment against every possible job's title: https://github.com/tgstation/tgstation/blob/8c3c9a6ea29bf32385c148c5294e3f6a18f57bf3/code/datums/id_trim/_id_trim.dm#L32-L36 This, however, didn't work with departmental security officers, as their job title doesn't match the trim assignment: https://github.com/tgstation/tgstation/blob/8c3c9a6ea29bf32385c148c5294e3f6a18f57bf3/code/modules/jobs/job_types/security_officer.dm#L1-L2 https://github.com/tgstation/tgstation/blob/8c3c9a6ea29bf32385c148c5294e3f6a18f57bf3/code/datums/id_trim/jobs.dm#L1103-L1104 Instead, we remove this code and replace it with a `/datum/id_trim/job` subtype proc that just returns the `job` variable, which this subtype has. This fixes our problem. We leave the parent `find_job()` proc just returning null, as to avoid needing an `istype(...)` check where we call it, and as `/datum/id_trim/job` is associated with _station_ jobs while there may be cases where we want a non-station id trim to be able to return an associated job. ## Why It's Good For The Game Fixes #86887. ## Changelog 🆑 fix: Fixed trims which did have an associated job but whose assignment didn't match a job title causing null jobs to be assigned to accounts. This fixes departmental security officers not being able to purchase things from the security vendors. /🆑 |
||
|
|
c375b8f346 |
Changing ID card's trim now properly adjusts linked bank account's job (#86711)
## About The Pull Request Closes #61216 Closes #57516 Arcane gave greenlight on this PR as its unlikely that this'll be cheesed or affect balance in any way, and in worst case scenario mass account changes will just summon space IRS on the offending HoP ## Changelog 🆑 fix: Changing ID card's trim now properly adjusts linked bank account's job, allowing you to receive bounties for your new job /🆑 |
||
|
|
8f6e134e4c |
Big B (#86684)
## About The Pull Request makes "busser" id trim "Busser" ## Why It's Good For The Game other job's the first letter is capital ## Changelog 🆑 spellcheck: busser is now Busser (with big B) /🆑 |
||
|
|
6808a082eb |
Assorted changes to job assignment code and logging. Runtime free, guaranteed or your money back. Price: $£0. (#85947)
## About The Previous Pull Request #85308 reverted by #85929  ~~Causes the round to not start when a player isn't eligible for any jobs at a specific priority level due to runtimes trying to `pick()` from an empty list aborting the entire job assignment stack.~~ (Fixed???? by https://github.com/tgstation/tgstation/pull/85947/commits/e0e9f2f430079d4ab7097abe12e75f934131a638) Maybe we should test merge this for a mo just to make sure no more cheeky runtimes pop up before merging. ## About The Pull Request This PR does a couple of minor things: Makes the job debug logging a bit easier to follow. Minorly brings some SSjob code up to code standards, converting proc names to snake_case and doing some otherm is cleanup. Refactored some stuff into different procs, updated some comments. And some major things: Changes the job assignment logic. Old behaviour > Assign dynamic priority roles > Force one Head of Staff (if possible) > Assign all AIs > Assign overflow roles (bugged in 2 ways) > Shuffle the available jobs list once, at the start of the random job assignment loop > Pick and assign random jobs for random players from High prefs down, with a priority on Head of Staff roles > Handle everyone that couldn't be assigned a random job New behaviour > Assign dynamic priority roles > Assign all Head of Staff roles to players with High prefs > If no Head of Staff was made in the above way, force one Head of Staff (if possible) > Assign all AIs > Assign overflow roles (fixed) > Prioritise and fill unfilled head roles at each job priority pref level, from High prefs down. > Build a list of all jobs that each unassigned player could be eligible for at the above pref level. > Pick a job from that list at random and assign it to the player. > Handle everyone that couldn't be assigned a random job. In reality there should be little impact on overall job assignment, the code changes read more as semantics. For example, the priority check for filling Head slots will have the same candidate pool in both old and new versions, but in the new version we're more clearly saying that Heads are important and we want to prioritise filling them for the sake of round progression even though the outcome in new and old is the same. A key change will lead to an increase in assistants - Overflow fixes. Currently the code block to do early assignments to the Overflow role doesn't work - or works but not as you'd expect. The idea was is that because enabling the Overflow role in the prefs menu is an On/Off toggle that sets the job to High priority when enabled and prevents any other High priority pref, players that have the Overflow role enabled will **always** get it. It's their highest priority job with infinite slots. So we do a pass right at the start to give everyone with the Overflow role enabled that role and save us wasting time later on in random job code giving them that same role but with more work. The problem is the code for this only assigns the Overflow role to people with it set to Low priority in their prefs, resulting in log readouts like: ``` [2024-07-27 09:49:43.469] DEBUG-JOB: DO, Running Overflow Check 1 [2024-07-27 09:49:43.469] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority [2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Radioprague, TheirLevel: Medium Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caluan, TheirLevel: High Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caractaser, TheirLevel: High Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Apsua, TheirLevel: High Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority [2024-07-27 09:49:43.475] DEBUG-JOB: AC1, Candidates: 0 ``` Where nobody gets pre-assigned the overflow role because their prefs are all set to the High priority from being toggled... Except wait a second, some people have it at Medium priority when it should just be a No Role/High Priority Role toggle? And herein we meet a problem. My hypothesis is that traits and stuff that change the overflow have allowed players to set the "ordinary" overflow role of Assistant to Medium and/or Low priority. This still shows as enabled in the prefs menu, but leads to an outcome where a player with assistant enabled is assigned Cook instead. ``` [2024-07-27 09:49:47.775] DEBUG-JOB: DO, Running Overflow Check 1 [2024-07-27 09:49:47.775] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority ... [2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority ... [2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0 ``` So players with the Overflow job pref set to Low (an unexpected state, should be disabled or High) would be guaranteed to get that role if none of the higher priority Head of Staff/AI/Dynamic roles took over via the bugged "force overflow for people with the pref enabled" proc. Players with the Overflow job pref set to High would be guaranteed to get that role if none of the higher priority Head of Staff/AI/Dynamic roles took over via the random job assignment code giving them their Highest priority role thanks to the infinite job slots of the Overflow. And players with the Overflow job pref set to Medium (an unexpected state, should be disabled or High) would get Assistant if the shuffle step of the available jobs list put Assisstant before any of the other jobs they had prefs enabled for at Medium that weren't already filled, otherwise they'd get another random job. This code is now changed to ignore the priority the player has set when looking for people to fill the overflow role. As long as it **is** enabled, the player will get it unless they're forced into a dynamic ruleset role (AI when malf rolls) or a Head of Staff role due to their other prefs (they have RD set to med or low, and no other player has a Head of Staff at high so they get randomly picked and miss the overflow role). This will increase the number of assistants in shifts where their pref state has Assisstant in the bugged Medium priority, but doesn't change it for bugged Low and not-bugged High/On priority. On the other side of the coin, we have how the random jobs are picked. They're kinda not random, and I noticed this reading the logs then reading the code. The list of available jobs to pick from is randomly shuffled - but only **once**. All players pull from a list of jobs in the same order. So you end up with a log block like this: ``` [2024-07-27 09:49:47.985] DEBUG-JOB: DO pass, Player: Pierow, Level:3, Job:Botanist [2024-07-27 09:49:47.985] DEBUG-JOB: Running AR, Player: Pierow, Job: /datum/job/botanist, LateJoin: 0 [2024-07-27 09:49:47.985] DEBUG-JOB: Player: Pierow is now Rank: Botanist, JCP:0, JPL:2 [2024-07-27 09:49:47.986] DEBUG-JOB: DO pass, Player: Daddos, Level:3, Job:Botanist [2024-07-27 09:49:47.986] DEBUG-JOB: Running AR, Player: Daddos, Job: /datum/job/botanist, LateJoin: 0 [2024-07-27 09:49:47.986] DEBUG-JOB: Player: Daddos is now Rank: Botanist, JCP:1, JPL:2 [2024-07-27 09:49:47.986] DEBUG-JOB: FOC job filled and not overflow, Player: Bebrus2, Job: /datum/job/botanist, Current: 2, Limit: 2 [2024-07-27 09:49:47.987] DEBUG-JOB: FOC player job not enabled, Player: Bebrus2 [2024-07-27 09:49:47.987] DEBUG-JOB: DO pass, Player: Bebrus2, Level:3, Job:Cook [2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0 [2024-07-27 09:49:47.988] DEBUG-JOB: Player: Bebrus2 is now Rank: Cook, JCP:0, JPL:1 [2024-07-27 09:49:47.988] DEBUG-JOB: FOC player job not enabled, Player: Redwizz [2024-07-27 09:49:47.988] DEBUG-JOB: FOC job filled and not overflow, Player: Redwizz, Job: /datum/job/cook, Current: 1, Limit: 1 ``` The list is shuffled into an order of something like `list("Scientist", "Botanist", "Cook", "Sec Officer", ...)` then iterated over for each player. So every random job selection goes: > "Does Player1 have Scientist enabled and at the right priority? No? Okay, Botanist? Yes? You get botanist." > "Does Player2 have Scientist enabled and at the right priority? No? Okay, Botanist? Yes? You get botanist." > "Does Player3 have Scientist enabled and at the right priority? No? Okay, Botanist has no slots left so we'll remove it from the list. Okay, Cook? Yes? You get cook." > "Does Player4 have Scientist enabled and at the right priority? No? Okay, Cook has no slots left so we'll remove it from the list. Okay, Sec Officer? ..." This can lead to stacked individual departments if it gets randomly rolled to the start of the list in the shuffle, and completely empty departments if they end up at the end. On high pop shifts this is probably less of an issue. Player prefs add noise to this and as departments at the front fill up, those at the back pick up some of the lower pref players. But have you ever had a shift where there's just like... No fucking sec even though there's tons of players? The logging (before I made changes in this PR) was a bit ass, but my hypothesis there is that sec officer was shuffled right at the end of the random job list, so every other department was filled up before sec officers were picked. To mitigate this, I made the list shuffle every single time the game picks a random available job for the player. This should lead to a more balanced selection of available jobs by avoiding situations where the code is biased towards packing some departments by accident. ## Why It's Good For The Game Overflow fixes mean people who go to their prefs and see the Overflow Role is On will all have the same experience - They will be the Overflow role. More random random job selection should prevent individual departments having a jobs be stacked when it would have otherwise been possible for a more balanced selection but the code unintentially biased random departments to be overstaffed and understaffed each shift. ## Changelog 🆑 fix: Having the Overflow Role set to On will properly ensure you get that role at a High priority as intended by the game code. fix: Job selection is now a little bit more random. Fixes an unintentional bias in random job assignment that could lead to feast-or-famine for roles where everyone is assigned one job and nobody is assigned another job. /🆑 |
||
|
|
06ba9d93eb |
Pun Pun Station Trait, But it's only active on Monkey Day (14 December, every round) (#86091)
## About The Pull Request This is a remake of https://github.com/tgstation/tgstation/pull/84501 with a few small changes to avoid mapping issues. This time it's restricted to a once-in-a-year event, mainly because neither Jacq and Lemon were ok with the possibility of Pun Pun being posibly playable all year, however Jacq said he's fine with it being available on the holiday, while Lemon isn't around on Discord atm so I don't know what he's to say. The trait makes pun pun playable and gives them the job of being a busser (waiter) in the cafeteria. They're clever and can use tools most other monkeys can't, but cannot be humanized, while also being unable to speak Galactic Common. Should they roll traitor, they'll be able to buy syndicate monkey reinforcements and equipment, which it can also use, being a monkey itself. ## Why It's Good For The Game This is a fairly unique job, like the Cargo Gorilla, due to the fact it's not a conventional humanoid crew member nor the AI or a cyborg. I thought this was a fun idea, though I met some obstacles and the original PR was DNM'ed and then closed. However, the trait perfectly fits the theme of the holiday, making a good compromise since Pun Pun will stay AI-controlled the rest of the year, as Jacquarel and Lemon want it to be. It can also be added by an admin through VV, whether they're planning some shenanigean or just want to add something more to the round. ## Changelog 🆑 add: Pun Pun is a playable crewmember during Monkey Day (14 December). /🆑 |
||
|
|
d2ab513332 |
Reintroducing my PRs that were lost in the wallening revert. (#86439)
## About The Pull Request This PR reintroduces #85759, #85892 and #85894. #85892 has post-wallening arrows, but it isn't a big deal because they fit the top-down or 3/4 style we've for a lot of things. ## Why It's Good For The Game Reintroducing lost features and improvements. Remember to remove the 'Lost in the wallening revert' label from those PRs when this is merged. ## Changelog N/A |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
ce0a9c932e | Shrunk arrow from pointing at things. Command roles unaffected thanks to id trims (also new skillchip). (#85892) | ||
|
|
4d1639b04c |
Revert "Assorted changes to job assignment code and logging." (#85929)
Reverts tgstation/tgstation#85308  |
||
|
|
1eef540054 |
Assorted changes to job assignment code and logging. (#85308)
## About The Pull Request
This PR does a couple of minor things:
Makes the job debug logging a bit easier to follow.
Minorly brings some SSjob code up to code standards, converting proc
names to snake_case and doing some otherm is cleanup.
Refactored some stuff into different procs, updated some comments.
And some major things:
Changes the job assignment logic.
Old behaviour
> Assign dynamic priority roles
> Force one Head of Staff (if possible)
> Assign all AIs
> Assign overflow roles (bugged in 2 ways)
> Shuffle the available jobs list once, at the start of the random job
assignment loop
> Pick and assign random jobs for random players from High prefs down,
with a priority on Head of Staff roles
> Handle everyone that couldn't be assigned a random job
New behaviour
> Assign dynamic priority roles
> Assign all Head of Staff roles to players with High prefs
> If no Head of Staff was made in the above way, force one Head of Staff
(if possible)
> Assign all AIs
> Assign overflow roles (fixed)
> Prioritise and fill unfilled head roles at each job priority pref
level, from High prefs down.
> Build a list of all jobs that each unassigned player could be eligible
for at the above pref level.
> Pick a job from that list at random and assign it to the player.
> Handle everyone that couldn't be assigned a random job.
In reality there should be little impact on overall job assignment, the
code changes read more as semantics. For example, the priority check for
filling Head slots will have the same candidate pool in both old and new
versions, but in the new version we're more clearly saying that Heads
are important and we want to prioritise filling them for the sake of
round progression even though the outcome in new and old is the same.
A key change will lead to an increase in assistants - Overflow fixes.
Currently the code block to do early assignments to the Overflow role
doesn't work - or works but not as you'd expect. The idea was is that
because enabling the Overflow role in the prefs menu is an On/Off toggle
that sets the job to High priority when enabled and prevents any other
High priority pref, players that have the Overflow role enabled will
**always** get it. It's their highest priority job with infinite slots.
So we do a pass right at the start to give everyone with the Overflow
role enabled that role and save us wasting time later on in random job
code giving them that same role but with more work.
The problem is the code for this only assigns the Overflow role to
people with it set to Low priority in their prefs, resulting in log
readouts like:
```
[2024-07-27 09:49:43.469] DEBUG-JOB: DO, Running Overflow Check 1
[2024-07-27 09:49:43.469] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority
[2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Radioprague, TheirLevel: Medium Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caluan, TheirLevel: High Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caractaser, TheirLevel: High Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Apsua, TheirLevel: High Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.475] DEBUG-JOB: AC1, Candidates: 0
```
Where nobody gets pre-assigned the overflow role because their prefs are
all set to the High priority from being toggled... Except wait a second,
some people have it at Medium priority when it should just be a No
Role/High Priority Role toggle?
And herein we meet a problem. My hypothesis is that traits and stuff
that change the overflow have allowed players to set the "ordinary"
overflow role of Assistant to Medium and/or Low priority.
This still shows as enabled in the prefs menu, but leads to an outcome
where a player with assistant enabled is assigned Cook instead.
```
[2024-07-27 09:49:47.775] DEBUG-JOB: DO, Running Overflow Check 1
[2024-07-27 09:49:47.775] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority
...
[2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority
...
[2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0
```
So players with the Overflow job pref set to Low (an unexpected state,
should be disabled or High) would be guaranteed to get that role if none
of the higher priority Head of Staff/AI/Dynamic roles took over via the
bugged "force overflow for people with the pref enabled" proc.
Players with the Overflow job pref set to High would be guaranteed to
get that role if none of the higher priority Head of Staff/AI/Dynamic
roles took over via the random job assignment code giving them their
Highest priority role thanks to the infinite job slots of the Overflow.
And players with the Overflow job pref set to Medium (an unexpected
state, should be disabled or High) would get Assistant if the shuffle
step of the available jobs list put Assisstant before any of the other
jobs they had prefs enabled for at Medium that weren't already filled,
otherwise they'd get another random job.
This code is now changed to ignore the priority the player has set when
looking for people to fill the overflow role. As long as it **is**
enabled, the player will get it unless they're forced into a dynamic
ruleset role (AI when malf rolls) or a Head of Staff role due to their
other prefs (they have RD set to med or low, and no other player has a
Head of Staff at high so they get randomly picked and miss the overflow
role).
This will increase the number of assistants in shifts where their pref
state has Assisstant in the bugged Medium priority, but doesn't change
it for bugged Low and not-bugged High/On priority.
On the other side of the coin, we have how the random jobs are picked.
They're kinda not random, and I noticed this reading the logs then
reading the code.
The list of available jobs to pick from is randomly shuffled - but only
**once**. All players pull from a list of jobs in the same order. So you
end up with a log block like this:
```
[2024-07-27 09:49:47.985] DEBUG-JOB: DO pass, Player: Pierow, Level:3, Job:Botanist
[2024-07-27 09:49:47.985] DEBUG-JOB: Running AR, Player: Pierow, Job: /datum/job/botanist, LateJoin: 0
[2024-07-27 09:49:47.985] DEBUG-JOB: Player: Pierow is now Rank: Botanist, JCP:0, JPL:2
[2024-07-27 09:49:47.986] DEBUG-JOB: DO pass, Player: Daddos, Level:3, Job:Botanist
[2024-07-27 09:49:47.986] DEBUG-JOB: Running AR, Player: Daddos, Job: /datum/job/botanist, LateJoin: 0
[2024-07-27 09:49:47.986] DEBUG-JOB: Player: Daddos is now Rank: Botanist, JCP:1, JPL:2
[2024-07-27 09:49:47.986] DEBUG-JOB: FOC job filled and not overflow, Player: Bebrus2, Job: /datum/job/botanist, Current: 2, Limit: 2
[2024-07-27 09:49:47.987] DEBUG-JOB: FOC player job not enabled, Player: Bebrus2
[2024-07-27 09:49:47.987] DEBUG-JOB: DO pass, Player: Bebrus2, Level:3, Job:Cook
[2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0
[2024-07-27 09:49:47.988] DEBUG-JOB: Player: Bebrus2 is now Rank: Cook, JCP:0, JPL:1
[2024-07-27 09:49:47.988] DEBUG-JOB: FOC player job not enabled, Player: Redwizz
[2024-07-27 09:49:47.988] DEBUG-JOB: FOC job filled and not overflow, Player: Redwizz, Job: /datum/job/cook, Current: 1, Limit: 1
```
The list is shuffled into an order of something like `list("Scientist",
"Botanist", "Cook", "Sec Officer", ...)` then iterated over for each
player. So every random job selection goes:
> "Does Player1 have Scientist enabled and at the right priority? No?
Okay, Botanist? Yes? You get botanist."
> "Does Player2 have Scientist enabled and at the right priority? No?
Okay, Botanist? Yes? You get botanist."
> "Does Player3 have Scientist enabled and at the right priority? No?
Okay, Botanist has no slots left so we'll remove it from the list. Okay,
Cook? Yes? You get cook."
> "Does Player4 have Scientist enabled and at the right priority? No?
Okay, Cook has no slots left so we'll remove it from the list. Okay, Sec
Officer? ..."
This can lead to stacked individual departments if it gets randomly
rolled to the start of the list in the shuffle, and completely empty
departments if they end up at the end.
On high pop shifts this is probably less of an issue. Player prefs add
noise to this and as departments at the front fill up, those at the back
pick up some of the lower pref players.
But have you ever had a shift where there's just like... No fucking sec
even though there's tons of players? The logging (before I made changes
in this PR) was a bit ass, but my hypothesis there is that sec officer
was shuffled right at the end of the random job list, so every other
department was filled up before sec officers were picked.
To mitigate this, I made the list shuffle every single time the game
picks a random available job for the player. This should lead to a more
balanced selection of available jobs by avoiding situations where the
code is biased towards packing some departments by accident.
## Why It's Good For The Game
Overflow fixes mean people who go to their prefs and see the Overflow
Role is On will all have the same experience - They will be the Overflow
role.
More random random job selection should prevent individual departments
having a jobs be stacked when it would have otherwise been possible for
a more balanced selection but the code unintentially biased random
departments to be overstaffed and understaffed each shift.
## Changelog
🆑
fix: Having the Overflow Role set to On will properly ensure you get
that role at a High priority as intended by the game code.
fix: Job selection is now a little bit more random. Fixes an
unintentional bias in random job assignment that could lead to
feast-or-famine for roles where everyone is assigned one job and nobody
is assigned another job.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
|
||
|
|
a24c890037 |
Ordnance experiments tweaks [NO GBP] (#85680)
## About The Pull Request More techweb feedback processing. 1. NT frontier app is much more useful and the partners give discounts for big nodes. Now you can accelerate the research a lot if you focus on NT frontier. Find [green text in the tree](https://www.figma.com/board/IhOqYfG5XFBxcgaRSprWzK/Tech-New?node-id=0-1&t=uDMlvA6QcXgz6umU-1) to see which nodes can have full discounts. 2. Roboticists now have access to ordnance to be able to work on gas shells for faster mech weapon unlocks 3. BZ shell was rarely performed on LRP servers due to people not knowing that you can easily make BZ in a portable pump, so it is no longer a required experiment on the path to experimental tools and a discount experiment for exp tools instead 4. Cytology experiment is a discount one to ease the path to Genetics node 5. Cryostasis prerequisite got removed by accident in one of the techweb tweaks 6. Atmos techs can download NT frontier and build compressor board in engi imprinter ## Why It's Good For The Game Balancing the tree out according to the player's behaviour. ## Changelog 🆑 balance: TechWeb: NT Frontier partners now give full discounts for many high tier nodes, corresponding to the partner theme, instead of partial discounts for random nodes qol: Atmos techs can download NT frontier and build compressor board in engi imprinter balance: Roboticists now always have ordnance access for the discount experiments they need balance: TechWeb: BZ shell is now a discount experiment for experimental tools instead of required exp for fusion balance: TechWeb: Noblium shell is a discount experiment for RCD upgrades instead of exp tools discount balance: TechWeb: Vat-grown slime scan is a discount experiment instead of required one fix: TechWeb: Cryostasis node properly requires advanced medbay equipment as it should /🆑 |
||
|
|
b748c455df |
Donk Co Interstellar Trading Post 6016 (#83075)
## About The Pull Request Adds a new space ruin to the pool. It's the haunted trading post. It is a whiteship dock with a large (safe) common area. The back rooms contain loot and danger. Here are a few 'teaser' images. https://i.imgur.com/M1te9Ha.png https://i.imgur.com/SF3bJ62.png https://i.imgur.com/i9xeUFP.png https://i.imgur.com/UBwpJAM.png Notable treasures: Cash, Donk Co merch, Donk Co guns, Donk Co Donk Pockets, Donk Co vendors, Donk Co ID Cards, and the Donk Co Secret Recipe. Oh yeah the secret documents teach you how to make three prototype variants of Donk Pockets. There is no limit to the amount of times it can be read, so if you want to corner the market remember to lock up the documents. Or you can share them with your friends. **Now COMPLETE!**  ## Why It's Good For The Game This ruin is a multi-room dungeon with multiple solutions to each room. It has plenty of action from mobs, traps and hazards. Each room has some form of treasure or unique item in it. There's a boss at the end with great rewards for fighting it, including a cool gun (slightly worse variant of laser carbine). This ruin is also a whiteship dock and space base. The public area is entirely safe: stick to the well lit sector and don't trespass in the employees only areas and you won't be harmed. There is a variety of vendors to resupply at (including a brand new Donk Co snack vendor) but unlike most other space ruins you do have to pay. A whiteship can dock at this ruin if you have one, so you can bring groups of people to party or attack the dungeon together. ## Changelog 🆑 add: Adds the Haunted Trading Post space ruin. add: Adds 10+ unique items for the Haunted Trading Post add: Adds 5 dangerous mobs for the Haunted Trading Post add: Adds 4 new types of hazardous traps for the Haunted Trading Post. /🆑 --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
dc8923ca16 |
Converts id trim assignment value from strings to defines (#84848)
## About The Pull Request A small refactor to rule them all. Converted strings to defines, need it to stay in sync with job titles. ## Why It's Good For The Game Less space for typos, defines good. |
||
|
|
d1f3fc3fdf |
Oldstation (Charlie) experiments tweaks [NO GBP] (#84379)
## About The Pull Request There was a feedback that the new techweb made it harder to do science on ghost roles, namely Charlie station crew. This PR makes a few tweaks to oldstation to lower the bar on the experiments: - Added a pure N2O tank for easier BZ creation - Added one diamond to the ai sat to create artificial BS crystal - Added research console to ai sat with frontier app pre-installed - Added a gas compressor to Beta station atmos area Also moved the NTNet relay back to tcomms node as it requires tcomms parts. And moved chem pack/blood pack from tier 1 to tier 0 per players` request. Also fixed the dissection experiments giving the old amount of bonus points, before the recent point denomination. Made a few other minor changes to the map. ## Why It's Good For The Game Charlie is supposed to be friendly for the beginner players, yet the new experiments are hard to do with the limited resources on Charlie. ## Changelog 🆑 qol: It is easier to do some required techweb experiments on Charlie station now fix: Fixed experimental dissection surgeries giving too many points balance: Techweb: Moved NTNet relay back to tcomms node balance: Techweb: Moved blood pack and chem pack to the starting node /🆑 |
||
|
|
9ab7d8f2e8 |
Bitrunning: Avatars get silly hacker names (#84279)
## About The Pull Request Bit avatars now get corny names while spawning in to the virtual domain. You can change your alias in prefs or have it randomized for s0meth1ng 1337. Added sechud icons (and thereby orbit ui icons) for bit avatars since "Cyb3rHaxx0r" might be confusing to find in the living players section. ## Why It's Good For The Game This was done as a request and after discussion in the code channel. A little bit of character persistence across simulations. ## Changelog 🆑 add: Bitrunning: You can now choose your hacker alias in prefs. add: Bit avatars get orbit icons. /🆑 |
||
|
|
881dd195f1 |
Techweb tweaks [NO GBP] (#84086)
## About The Pull Request PR for collecting techweb feedback post merge and address valid issues of #84024. People seem to dislike the abundance of new experiments in the middle of the tree, so reducing some requirements for those for now. Also updated NT frontier app a bit, as people are confused with the shell experiments.  ## Why It's Good For The Game Balancing out the new tree. ## Changelog 🆑 balance: Added ordnance to extra access of geneticists and roboticists balance: Reduced parts scanning tests' machine count to 4 from 8 balance: Reduced augmented organs scanning tests mob count to 1 from 2 balance: Reduced equipped mech scanning test count to 1 from 2 balance: Added polycrystal option to bluespace crystal scan test fix: Allowed NTNet relay in away circuit imprinter for NT Frontier app qol: NT Frontier app installed on RD and Scientists` PDAs by default qol: Updated NT Frontier app to be more user-friendly /🆑 --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
3842e16a8b |
Removes virologist job (#82723)
## About The Pull Request As the title says. Removes the job. Whole wing of medical is still there.  (MSO)  ## Why It's Good For The Game It's boring. It's so boring that when it decides to become unboring it just attempts to ruin the fun for everyone else ## Changelog 🆑 del: Due to a need for company restructuring, virologists have been laid off by CentCom and doctors can optionally take their place. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
466b3df048 |
Refactor removing unused defines. (#82115)
## About The Pull Request Refactors a lot of the unused defines. ## Why It's Good For The Game Refactors a lot of the unused defines. ## Changelog Nothing player facing --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
9ac81e1a64 |
New station trait job: Human AI (#81681)
## About The Pull Request This PR does many things, I'll try to explain the basic/background stuff to the main thing first: 1. Adds a new remote that allows a human to function like an AI. It controls a fly that will fly around the station slowly, and when it reaches a machine then the person can interact with it as if they were an AI. This required changing a lot of silicon/AI checks with one that also checks for this remote, and some messing with shared ui state. 2. Moves req_access from the obj and bot to ``/atom/movable`` which lets it be shared between the two, no more copy-paste and one side lacking features/checks/signals the other has. 3. Adds a check for AI config for AI-related station traits, which was lacking prior Now for the good part... Adds a new station trait that replaces the AI with a Human. This person is equipped with an AI headset (including Binary), an advanced camera console, an omni door wand, the machine controller, and their laws. They are immune to the SAT's turrets (even if set to target borgs) and are slow outside of the SAT, mimicing the actions of the AI. They interact with the world through their advanced camera console, which allows them to do most AI stuff needed, and the holopad they can connect to without having to ring first (like Command can). They are given a paper with the laws they must follow, but since they are human they are able to bend it. Cyborgs that run the default lawset are "slaved" to them via an unremovable law 0, so the Human AI can bend the laws if they really need to (for their own survival n such), and make the cyborgs obey their commands above laws, but in general this shouldn't be a frequent occurrence. This does take into account the unique AI trait, so it's not guaranteed Asimov. When this station trait rolls, all Intellicards, AI uploads, and AI core boards are destroyed and are unresearchable. They can be spawned by admins in-game if necessary. Maybe in the future we can also exclude Oldstation from this but I haven't really decided. Extra perks: Human AI spawns with a Robotic voicebox (unless they are a body purist) and teleport blocking implant, so they can't use teleporters to bypass their on-station slowdown. They also have an infinite laser pointer that can be used to blind through their camera console. This is unfortunately nerfed from the recent borg balance PR that removed its stun. This was meant to be the alternative to no longer being able to permanently lock borgs down like AIs can (or more than one, for that matter). They aren't affected by Roburgers, Acid, and Fuel's toxicity. Bots salute them like they do Beepsky (which is now a trait) They spawn with SyndEye to replace the AI's tracking ability They do not have a bank account ### The machine remote The machine remote has a little fly in it that flies to the machines it is pointed to, working as the arms and legs of the Human AI. It scans the machine and punches in the action the AI does, and is how the AI accesses basically anything. This fly slowly moves from one machine to the next, and can be recalled with Alt Click. It works on machines and bots. ### Video (Low quality to fit Github) https://github.com/tgstation/tgstation/assets/53777086/e16509f8-8bed-42b5-9fbf-7e37165a11e8 ## Why It's Good For The Game I've seen a funny screenshot one day of a person replacing the AI by using a bunch of door remotes, camera console, crew monitoring console, and a few other things. I've been thinking about that for a few years and really wanted to make it official if not easier to make possible, because it is an incredibly funny interaction. This makes it a reality, and while they aren't as powerful as regular AIs, I think it makes for better and funnier in-game moments. With the same weight as Cargorilla (1), I hope this wouldn't be rolling too often and ruin rounds, but instead show off the different capabilities that Humans and AIs can do, to do the job of an AI. You win some you lose some. ## Changelog 🆑 JohnFulpWillard, Tattax add: Adds a new station trait job: The Human AI. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
35242b4985 |
NEW TRAIT ROLE: Veteran Advisor (#81667)
## About The Pull Request Adds a new Trait Job (jobs which only appear when the station gets a trait for it) - Veteran Advisor. The weight of the trait is 2 which makes it very rare. Veteran Security Advisor is a role designated as a (duh) Advisor for the HoS and Captain, as well as a mentor for all of the Officers. This is because it has an experience requirement of **100 SECURITY HOURS**, so no green Veterans. Veteran Security Advisors are paraplegic (bonded to a wheelchair) and with PTSD which freezes their mood and sometimes causes hallucinations. They get an M1911 pistol in a holster because that's badass. <details> <summary>THE IMAGES</summary> ADVISOR  THINGS HE SPAWNS WITH  HIS UNIQUE MOODLET  SIGNUP BUTTON  </details> ## Why It's Good For The Game More funny Trait Jobs to the game! There is a certain lack of those, there is only Cargorilla and Bridge Assistant. This job has big opportunities. Advisors can behave themselves like drill sergeants, or wise old mentors. Because they are kinda, as people only with 100 Security hours (yes those masochists exist) could play it when it appears. This will also open opportunities for retired Sec mains to tutor new generations without being directly involved in all of the stress. I mostly took a look at the Goonstation "Nanotrasen Security Consultant" and Baystation "Senior Enlisted Advisor" as inspiration. I tried to cut down any chances of this role being abused by power gamers for its M1911 pistol and Bridge access, due to this they are paraplegic so power gamers get disgusted, and if someone does somehow win Antagonists while in a wheelchair - props to them, pure skill. **REMEMBER THAT THIS IS A TRAIT JOB!** This means they won't appear every round, but rather rarely! So they fit in as an occasional extra fun for the round. ## Changelog 🆑 add: NEW TRAIT JOB: Veteran Security Advisor! Advise HoS and Captain on Security matters, mentor Security Officers. Note that they are paraplegic and fully emotional desensitized due to their past experience. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
0771217988 |
Intern assistants are Interns (#80413)
Revive of #78498 This is what I tried to explain in the PR, it was trying to add code that already existed @optimumtact ## Why it's good for the game It's just flavor, it changes the "Intern Assistant" to "Intern" on the job ID for SOUL. 🆑 qol: Assistants with <10h of playtime are now "Interns" /🆑 |
||
|
|
4f476b2674 |
qm uses cargo tech icons (#80411)
## About The Pull Request qm now has the "x-in-training" intern title instead of "intern quartermaster", similar to the other heads of staff qm's hud and id card icons are now the cargo tech's icon (but blue), following the other heads of staff which have blue versions of their dept (blue wrench, blue cross, blue... sec badge?? blue exclamation) ## Why It's Good For The Game makes the qm more visually consistent with the other heads, makes it clearer that the qm is the head of the cargo department the current icon is kinda hard to decipher too? you can tell the cargo tech's is a crate, but the qm's is just like a weird head dude (which the hop already has, making those ids hard to distinguish since theyre both blue)? or a stamp? ## Changelog 🆑 fix: qm's intern id is now "quartermaster-in-training" image: qm's id and hud icons now use the cargo tech icons (but blue) to be consistent with the other heads of staff /🆑 |
||
|
|
a3fa541e2e |
Bridge Assistant Station Trait (#80279)
## About The Pull Request adds a station trait which adds a new role, the bridge assistant he is designed to help commandeer the bridge and help out other heads when needed. he is armed with the mini energy gun (the one heads used to have on kilostation), a flash, a toolbelt (with an inducer), some cool shades and a swanky scarf. as he is a nerd he is weak and unable to twohand weapons, preventing him from wielding the fire axe. currently he does not have a mindshield but he cannot roll antag he currently has access to the bridge, announcement console, eva, teleporter, gateway, maint, and a weapon permit (somewhat (not really other than for nerds) interestingly this is the first job that isnt assistant that doesnt have access to any lathes, so he doesnt have orm access unlike all the other jobs (except assistant)) the trait also makes a coffee machine spawn on the bridge here is some useful art of your role  and ingame screenshots    ## Why It's Good For The Game Adds upon the station trait job system with a straight forward role that IS just a human (unlike the cargorilla), and is pretty basic with no custom assets or whatever other than hud icons Having the bridge assistant in some rounds seems like a neat way to protect it since it gets fucked up in like half the time, while also not having enough mechanical depth or gameplay as to warrant it as a permanent role ## Changelog 🆑 add: Bridge Assistant job accessible from a station trait. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
e9f12be172 |
Changes Virology Rather Than Killing It (#79854)
## About The Pull Request God, alright, here we go. See HackMD here: https://hackmd.io/@Higgin/HJljdBuNp Alternative proposal to #79849 addressing the big problems with virology. ~~If you need a HackMD for it, I'll put one together, but I made a comment on that PR and can make it pretty simple here.~~ its done 1. Makes viruses eventually self-cure as long as you're alive. If you can keep somebody from dying, they can develop immunity. 2. Makes it so you can sleep comfortably and be well-fed to slow and even potentially defeat viruses without a cure. 3. Makes it so more dangerous viruses can start self-curing faster. This means Space Ebola is going to burn itself out quicker if a person stays alive from the other effects. 4. Makes spaceacillin helpful in naturally curing viruses, period, but with declining effectiveness over 100 cycles. 5. Makes it so curing a virus naturally without being well-fed or having rode it out from the peak may allow you to be reinfected/not have natural immunity. 6. Makes it so being well-fed is a much stronger protection against random virus spread. 7. Makes it so bypasses_immunity stuff like fungal TB and heart failure isn't subject to any of this. 8. Makes it so using ~~antibiotics~~ spaceacillin jesus christ or being malnourished can make you lose your healing viruses too. Pay attention to what you put in your body. 9. ** Makes it so blood can ~~transmit resistances again, not just vaccines. It's been a hot minute, but it used to work like this.~~ blood now can cure a virus if the donor has a resistance, but it doesn't confer lasting immunity. You need to overcome the virus yourself, carry a constant supply of pure blood, or get a vaccine to get a lasting fix. 10. ** makes severity a function of disease stats and all active symptoms - not just the highest severity of the active symptoms. 11. ** makes it so you can nosell symptoms firing with spaceacillin or resting down to a minimum chance of cure_chance to avoid symptoms each cycle, declining over time, over 100 cycles for a given disease. 12. ** makes it so wearing protective equipment prevents you from spreading respiratory-spread diseases normally - not just on the cough/sneezing symptoms. 13. ** gives MDs virology access standard, paramedics and coroners virology access on skeleton crew. virologists also get pharmacy access. 14. ** makes bypasses_immunity advanced diseases always override non-bypasses_immunity advanced diseases and resist being overridden by other advanced diseases. Sentient Disease now has bypasses_immunity. Sentient Disease fans rejoice! 15. ** also gives SD a buffer of extra stealth points so it has a bit longer to build up instead of almost uniformly getting spotted and dying early. 16. ** viruses now scale their severity as a function of their max symptoms. There's a lot more room to get viruses of varying duration and severity by adding fewer symptoms now - so creating a tradeoff between stats (and good thresholds) and the duration of your virus. 17. ** a whole bunch of defines to control all of this stuff - most recently added a multiplier for symptom appearance frequency. MAJOR UPDATES: REBALANCING TOWARDS 50% LETHALITY https://docs.google.com/spreadsheets/d/e/2PACX-1vQ8rqMYFsR1mYj_FGzVjTfcnAF7un-VofOByPxcCCQr6lOOF5fhUgZga0oA4Q5-7K4hr7fCV0jFdmd9/pubhtml# [Viro Rework Rebalance Tests.pdf](https://github.com/tgstation/tgstation/files/13447208/Viro.Rework.Rebalance.Tests.pdf) After a shitload of testing, makes some of the most reliable, transmissible killers into less-reliable threats. See the above graphs and pictures for demonstrations of exactly how this was tested and done. ## Why It's Good For The Game It sucks to be hard-stuck to needing chemistry and medical to deal with viruses that somebody can randomly blast out without a care in the world, then be left to sit around waiting to die or otherwise be unable to do anything as the max-level symptoms fire off on repeat. This should put curing and surviving viruses much more back in the hands of normal crew without always ending up at the chemistry front window, although that is still the fastest and most reliable way to get better. This also nerfs healing viruses a bit, or makes them a bit less fire-and-forget if you fail to attend to your body. There's more I'd like to do in the future and potentially some of the other classic viruses that could use bypasses_immunity added, values tweaked, but for now - this seems like the best way to preserve virology as a level of depth and complexity in the game in a way that rewards people doing intuitive things to counterplay it when used harmfully. This also puts more of the mid-range bad symptoms into a better place balance-wise because the worst ones pretty much only fire at max stages. With the way this works out, you bounce back and forth between the max stage and lower stages before, over time, trending towards a cure. Symptoms that provide more significant effects at lower stages now have a place that isn't totally overshadowed by the killdeath stage 5 ARDS + junk symptoms virus Dr. Ambatu Popov shat out in five minutes (as long as you survive the initial run-in with it.) ## Changelog 🆑 balance: most diseases can now be slowed, mitigated, and eventually cured through being well-fed, resting, and using spaceacillin. Curing diseases through this way will give you immunity if you experience them at their peak/maximum and aren't starving/malnourished when they cure. balance: disease symptoms can be forestalled for up to 100 cycles with a declining chance of avoiding them over time using rest or spaceacillin. balance: This does not apply to things like fungal TB; it does apply to healing viruses if you don't take care of yourself by staying fed and avoiding spaceacillin. balance: disease can be cured through direct injection or ingestion of cured blood. However, curing disease in this way does not provide lasting immunity. You need to naturally beat the virus or get a vaccine for that. balance: Wearing internals or using protective equipment while infected can limit the spread of respiratory illnesses from yourself to others. Contact transmission is still possible however. balance: Medical Doctors now have roundstart virology access. Paramedics and coroners now get virology access on skeleton shift access. Virologists now have roundstart pharmacy access. balance: Sentient Diseases now resist being overridden by other advanced diseases and can always override other advanced diseases; they also have an extra bonus on their stealth stat to help make up for early outing without a bit more testing. balance: biohazard lockers now also contain a syringe of spaceacillin (in line with the orderable kit from cargo.) balance: Virus severity is now also a function of the number of symptoms out of max your virus has. Experiment with different combinations using less than six symptoms to make viruses that are deceptively less-obvious and less quick to self-cure at the tradeoff of stats. /🆑 |
||
|
|
6baa43748d |
Certain ID trims affect secbot response (#79980)
## About The Pull Request A prior refactor of how ID cards worked removed (without commentary?) the long-previously-existing behaviour that Agent IDs cause a subtraction from the level of suspicion that security bots see from you. I have not only restored this behaviour, but applied it to a handful of other ID cards (based on trim). When Beepsky looks at you he will make an assessment based on various factors controlled by his bot settings: - If Beepsky is set to check ID and your identity is concealed (you appear as "Unknown") add 4 points. - If Beepsky is set to check Weapons and you are holding a restricted weapon without a permit, add 4 points. - If Beepsky is set to check Weapons and you are wearing a restricted weapon on your belt or back without a permit, add 2 points. - If Beepsky is set to check records and you are set to Arrest, add 5 points. - If Beepsky is set to check records and you have some other non-innocent status, add 2 points. - If you are wearing a wizard's hat, add 2 points. - If you are not human, add 1 point (police are racist). - If you are loyalty implanted, subtract 1 point. Factors added or restored in this PR based on your ID now are: - If you are wearing an Agent ID, subtract 5 points. - If you are wearing a Cybercop ID, subtract 1 point. - If you are wearing a Centcomm ID, subtract 10 points. - If you are wearing an Admin ID, subtract infinite points. - If you are wearing a prisoner ID, add 1 point. - If you are wearing a Syndicate or Battlecruiser ID, add 5 or 10 points. If Beepsky is _emagged_ then he will view all targets as having 10 threat, regardless of their ID card. If you complete this process with >4 points he will attempt to arrest you. The upshot of my changes are: Wearing an Agent ID card will cause Beepsky to overlook the fact that you are carrying a gun in your hands without a permit, unless you are also set to arrest. Wearing an Agent ID card will cause Beepsky to overlook the fact that you are set to arrest, unless you are carrying a gun in your hands. Wearing a prisoner ID while not human will cause Beepsky to try and arrest you if you have a weapon on your belt or back (if he is set to care about weapons permits or unless you have one). Wearing a centcomm ID card will cause Beepsky to treat you as above the law in basically all circumstances, up to and including when you try and beat him to death. He will simply sit there and take it. In addition to this, this information forwarded to AI is now also available to player secbots upon examine. Players can't become secbots very easily because you can't upload PAIs into them or enable their sentience in the panel, but it sometimes happens via random event or admin intervention. ## Why It's Good For The Game I think this was removed by mistake? It wasn't included in the changelog and everyone I talked to thought it was still true. It's a fun feature which makes agent IDs marginally more useful. I think Beepsky and pals judging you based on your job makes sense, even if it is mostly applied to fluff roles. ## Changelog 🆑 add: Agent IDs once more trick Beepsky into treating you more leniently. add: Prisoner IDs make Beepsky treat you somewhat more suspiciously, as do Syndicate IDs. Wearing a Centcomm ID means that Beepsky is aware that you are above the law. add: Player-controlled security bots can view someone's assessed threat level by examining them. /🆑 |
||
|
|
ba5ae73dac |
Adds more bitrunning antagonists + fixes (READY) (#79522)
## About The Pull Request Reopened #78997 Larger patch for bitrunning that addresses a few issues. - Two new antagonists: cyber tac and netguardian - Quantum server emag opportunity - Modular mob packs: Like random spawners, but for groups - Antag spawning fixed: vdom antags now have up to a 10% chance to spawn based on domains loaded - Virtual domains are no longer all fullbright by default, only the outdoorsy ones - Actually deletes legion map file, since it was removed in #79424 <details> <summary>images</summary> The netguardian prime   The glitch effect - this mob is being mutated  Cyber tac (t2 antagonist)  </details> ## Why It's Good For The Game - Bitrunning antagonists are so incredibly rare that it's underwhelming to play as one for the solid second they offer if you even get the role - Bitrunners had basically no traitor route to follow, they became assistants with black outfits Fixes #79465 <details> <summary>More info</summary> Bitrunners don't have any type of traitor options. If they're made into traitors, there's nothing bitrunner related they can do, and their access is particularly bad so it's like they're a worse assistant. I've coupled this with the bitrunning antagonist system, which is now fixed.\. Bitrunners can now attempt to coax these entities to come onto the station, however they are not given any form of allegiance for doing so (and are quite counterable). Previously, vdom antagonists relied on so many factors to spawn that it basically wouldn't happen. Now, it runs on the server each time there is a map loaded, with increasing probability as the round progresses. This builds up the list of spawnable antagonists, of which two are new, including an entirely new giant mech megafauna. This is the first "megafauna-esque" basic mob in the game. Its AI is bad, it's really only meant to be player controlled, but this does mean an admin can spawn them. Being mech, they are very counterable with ion rifles and the like. Several refactors, rewrites, and overall bug fixes are included in this PR. Lastly, I added a framework for making bitrunner maps more random, the modular mob spawning system, which works in conjunction with random crate locations. </details> ## Changelog jlsnow301, infraredbaron 🆑 add: Bitrunning Patch 1 features a host of changes! add: Added randomized mobs to virtual domains, which will be indicated with a unique icon. add: New emag interaction with the quantum server. Antags will spawn more frequently, and they can hack themselves onto the station. You have been warned. add: Both living and dead players can now see which mob is going to spawn an antagonist in the vdom. add: Two new vdom antagonists: Cyber Tac and the NetGuardian. These unlock at specific thresholds. balance: You can no longer stack copies of the same ability with bitrunning disks. balance: Some of the disk items have been replaced with stronger versions. fix: You can no longer spy on crew using the advanced camera console on syndicate assault. fix: Fixed the spawning mechanism of virtual domain antagonists. You should now have a chance of playing as one. This chance increases as more domains are completed. fix: Vdom antagonists shouldn't spawn at the end of the run any longer. fix: The preference for vdom antagonists has been changed to factor in the new types. Check your preferences! fix: The quantum server will now show its balloon alerts to all observers. fix: Random domains should be fully random again. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
bd56c3723e |
Resprites IDs, Random Sprites in the Cards DMI, and Fixes Prisoner Coloring (#78761)
## About The Pull Request These sprites have been adapted from a person who wished to remain anonymous with their blessing for tg Take the old IDs and make them look a little more fancy and sci-fi, I think they look really nice! This makes the job marker into a cute little screen too, but this is totally optional, if maintainers want the animation gone It wont take long at all. Also resprites a few random other items in the cards.dmi, such as emags, doorjacks, hack-o-lanturn, budget cards, and one touch up on the red team ID for laser tag for consistency. Also prisoner IDs had black symbols and black department but orange trim on an orange card, so it was just a huge mess.  ## Why It's Good For The Game I'm gonna be real IDs are kinda crusty, and its something EVERYONE has to look at at least once a shift. Poor HOPs may even look at two. God forbid three. Now they will look pretty neat. As for the other changes, the hack-o-lantern looks like it was made in 2001 its OLD. I don't even know if we use it, but now its updated. The red laser tag team got a nerf so now all team letters are white, instead of red being orange for no reason. ## Changelog 🆑 image: We have received a new shipment of IDs, as the old ones were found out to be haunted. image: Laser tag red team ID has received a massive nerf image: Station budget cards have gotten a facelift image: Emags and Doorjacks fix: Numbered prisoner IDs will now be legible /🆑 |
||
|
|
a3849062b8 |
Feature: bitrunner, a new supply role (READY) (#77259)
## About The Pull Request [Design doc](https://hackmd.io/@shadowh4nd/r1P7atPjn) Adds a new supply role centered on short dungeon-esque runs with a focus on unifying the job with the fun part. Some virtual domains are combat related, some are silly, some focus on "objectives". Avatar health is linked to your physical presence and retries are limited. <details> <summary>Photos, WIP</summary> Net pod stasis  Server loaded  Server cooldown  the quantum console UI  Cyber police antag page  A safehouse  Domain info page, every domain gets this (and sometimes help text)  Me getting steamrolled in one of the missions  Ghost roles getting notified that server is kicking them out  Players enjoying the new combat missions  Players exploring some of the virtual maps  (Not part of the PR, but)  New bitrunner vendor  </details> ## Why It's Good For The Game Content, firstly, and moreso being supply department content. The framework that this implements is a great (preauthorized) replacement for two systems which are collecting dust: BEPIS and the gateway. They integrate into this system and it's a direct upgrade. This adds a way for the players on station to generate materials (if that remains). The nice part about it is that I can throw balance and believability to the wind, as unlike its unrelated predecessor VR or away missions, bitrunning entirely washes its hands of the map and mobs each reboot. It offers a very expandable map framework to add content and it's all fairly well documented. I'd like to add a feature that represents the idea that jobs don't have to be mundane and "external" jobs can stay tied to the main gameplay loop. ## Changelog jlsnow301, kinneb, mmmiracles, ical92, spockye 🆑 add: Adds Bitrunning to supply department- a semi-offstation role that rewards teamwork. add: Adds new machines to complement the job- net pod, quantum server, quantum consoles, and the nexacache vendor. add: Adds several new maps which can be loaded and unloaded at will. add: Some flair for the new bitrunning vendor. add: Adds a new antagonist for the virtual domain only. Short lived ghost role that fights bitrunners. del: Removes the BEPIS machine, moves its tech into the Bitrunning vendor. /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> --------- Co-authored-by: MMMiracles <lolaccount1@hotmail.com> Co-authored-by: Ical <wolfsgamingtips@gmail.com> Co-authored-by: spockye <79304582+spockye@users.noreply.github.com> Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> |
||
|
|
865cd178bc |
Adds a new heavy weight space pirate variant: The space IRS! (#76115)
It seems the station has attracted the attention of a local polity! They have sent a friendly reminder to pay their taxes, should the station respond not in time or refuse to pay their taxes the polity will send a heavily armed vessel to ensure they would pay their taxes. peacefully or otherwise. Gameplay aims: A different playstyle of pirates. most pirates (with the exception of the greytide) have the same gameplay loop of raiding vulnerable spots within the station and scurrying away and waiting out their cooldown in the relative safety of their ship with turrets and space to hamper the crew's attack my intention of this pirate variation is to force them to actively fight the crew by making their armor non-space worthy instead of hiding behind the wall of space breaching shells for the space IRS to use and recode ammo box code to be less snowflakey. Also my English isn't the very best and I wrote most of it at 1AM. please point out any messages that feel strange or out of place. Notable Equipment list: Combat: 1. 2 WT-550's with 6 normal mags + 6 AP 2. M911 with 2 mags 3. 2 combat knifes and a telebaton 4. breaching shotgun with breaching shells 5. Grenade launcher with 6 smoke shells and flashbangs Armor: 2 Highly armoured sets of tactical vests and helmets and 3 EVA suits for emergency Engineering: 1. Sandbags 2. Jaws of Life 3. Syndicate toolbox Medical: 1. Surgery tools and disk 2. Variety of medkits 3. Blood packs |
||
|
|
b9fa1bc8f4 |
The Laser Musket (2023) (Settlement Helper Edition) (#76231)
## About The Pull Request This adds a craftable laser musket to the game. It's slow and unwieldy, but consistent! I'd be happy to tweak the numbers if it's too good/bad. This PR also adds an independent militia ERT, who travels the spinward sector to help defend stations! TO DO LIST: - [x] Finish worn sprites - [x] Add a crafting recipe on par with the pipegun - [x] Add bayonets - [x] Separate charging into two stages and REDO THE AUDIO AAAA - [x] Clean up code (Needs review, totally) Scrapped: - Possibly add overcharge mechanic (This is just beyond my skill level for now) - Find a unique sound for the weapon firing (We have a unique projectile, and I can't a sound that fits more than the laser gun one)      Inhands by RedSentry27 Suit sprite by Kinnebian Prime Laser Musket sprites by RedSentry27 Balance Considerations (ew): 25 damage (30 on prime) Normal wound 40 Stamina damage (45 on prime) Weak to armour (prime not weak to armor) 2 second charge time, needs to be charged twice No overcharge Requires two hands to hold (like a chainsaw) Crafting Recipe: One rifle stock Fifteen Cable Coils Four Iron Rods One micro laser One capacitor One pair of prescription glasses One drinking glass Craft for 10 seconds with a wirecutter and screwdriver Prime crafting recipe: (REQUIRES READING MAINTENANCE LOOT: "journal of a space ranger") One laser musket Fifteen cable coils Five silver One water recycler Fifteen units of nuka cola Craft for 30 seconds with a screwdriver while wearing cowboy boots and a cowboy hat ## Why It's Good For The Game The idea of assistants and revs forming firing lines in the halls to shoot eachother sounds hilarious. Besides, we need a parallel to the pipegun, and this is the funniest way to do so. ## Changelog 🆑 Cheshify, Kinnebian, and RedSentry27 add: Maintenance engineers have sent out blueprints across the sector for a new laser musket. admin: A new energy-gun toting ERT is available to send to the crew. --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> |
||
|
|
2600f23ebb |
Coroner Update: Pickle-Eating Morbid Weirdo Obsessed with Death and Perfectionism (#76318)
This PR introduces a whole bunch of Coroner and Morbid related content. Firstly, Morbid is now a mind trait, and specifically, coroners start with it. Coroners also have a liver trait that allows them to heal toxins (very slowly) from eating pickles and drinking pickle juice. They also can...drink formaldehyde. I guess. Dissections is thirsty work. Coroners gain a whole set of special tools specifically for use in any surgeries marked as interests of the Morbid. This is determined by the ``surgery_flag`` called ``SURGERY_MORBID_CURIOSITY``. Currently, these surgeries are included; dissections, autospies, revival surgery, plastic surgery, organ/feature manipulations, amputations To fit the theme, TRAIT_MORBID also applies the reduction to eye snatchers. While using their special tools, and the surgery is a morbid curiosity, the coroner/anyone who is morbid gains a 30% speed boost! This stacks with the dissection speed boost. Otherwise, the tools are just regular tools with a special name (though the scalpel is better at killing undead, because, you know, you're watching over the dead). The coroner's special medkit, which is the only one you can get in a round, can fit their autopsy scanners and tools. Anything that comes standard with their kit can go back into it. Anyone who is morbid can safely retrieve the secrets of the elephant graveyard. The serrated shovel, notably, is a much better tool and notably better at killing organics, but not inorganics (like the dead). (Gives roboticists secure morgue access during skeleton crew pop totals) |
||
|
|
abc0820466 |
Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements (#75913)
## About The Pull Request This standardizes fugitive hunter IDs, making all hunter packs use the same subtype and giving them to hunters who would spawn with no ID at all. The badass flaming ID color that the OG Bounty Hunter team got are now the standard for fugitive hunter IDs. Additionally, these IDs now come with a radical skull trim. (Spacepol Officers don't get the badass flaming skull ID, and instead get a more modest Police Officer ID). **These IDs come with access, too. Airlocks, bolt buttons, shuttle controls, and shutters on all of the hunter shuttles now require a hunter's ID to operate.** While I was in the area doing mapping stuff to get the accesses in place, I made a few other very minor changes to the shuttles. These include: - The Bounty Hunter shuttle now has an oxygen dispenser. Two walls have been moved to make space. - The Russian Hunter shuttle now gets enough oxygen tanks to share with everyone. - The Psyker Hunter spawners now have proper spawner menu text. This was due to duplicate-but-not-really subtypes existing, and me mistakenly putting the wrong ones there in a previous PR. - The cut ai wire helpers from the Russian/Psyker shuttles have been extended to the Bounty/Spacepol shuttles. - Every hunter shuttle now has a shuttle pinpointer on it somewhere, and is no longer exclusive to a single Bounty Hunter's loadout. ## Why It's Good For The Game Some of the hunter IDs would spawn without trims or coloration, and some hunters wouldn't spawn with IDs at all. Now, everyone gets a credible, cool-looking ID that lets everyone know what you're here to do at a glance. One of these is a crazed larper with an unregistered firearm, the other is a certified bounty hunter. As for the hunter access, it's pretty nonsensical that anyone can just walk into the hunter ship and set up shop. At least the pirates get turrets! Not to mention, it's hard to balance or give hunters new equipment in good conscience when their entire domain is public-access and anything they can't carry is considered forfeit to the crew. Now it can be used as a base of operations, storage area, etc. more securely. Locking down the shuttle with accesses isn't going to stop a determined gamer with a toolset, but it'll at least make it more interesting and an actual risk. If the fugitives want to try and loot/hijack the shuttle, it will require the effort of taking down one of their hunters first. While hunters stand out for the differences/imbalances between each group, I don't see the shuttle pinpointer as something that contributes positively to the OG bounty hunter's uniqueness. There's no reason why the other hunters shouldn't also be able to track their ship. |
||
|
|
299fa32f05 | Piracy Inc. Space Extension Interdyne and Ghetto Edition: Adds two new pirate gangs Ex-interdyne Pharmacists and The Grey Tide (#75802) | ||
|
|
4318f9401b | Oldstation QoL tweaks and minor fixes (#75259) | ||
|
|
1c51a32629 |
Gives psychologists morgue access on lowpop (#75321)
## About The Pull Request i gave Psychologists access to the Coroner's office on lowpop so the Psych and Coroner can replace eachother when the other is missing, however I forgot to give Morgue access to the Psychologist so they can do this. ## Why It's Good For The Game Fixes my own oversight. ## Changelog 🆑 fix: Psychologists have Morgue access on lowpop, on top of their existing Coroner office access. /🆑 |
||
|
|
9ae4e16175 |
adds orm access to service jobs missing it (#75225)
## About The Pull Request adds orm access to the chaplain, curator, clown, mime, lawyer, and psychologist ## Why It's Good For The Game most of them didnt have it because they were part of the civilian department which didnt have a lathe. they were moved to service a few years back but we forgot to give them the access someone just forgot about it when making psychologist lol ## Changelog 🆑 fix: adds orm access to the chaplain, curator, clown, mime, lawyer, and psychologist /🆑 |
||
|
|
1674f25725 |
New Medical job: The Coroner (#75065)
## About The Pull Request HackMD: https://hackmd.io/RE9uRwSYSjCch17-OQ4pjQ?view Feedback link: https://tgstation13.org/phpBB/viewtopic.php?f=10&t=33972 Adds a Coroner job to the game, they work in the Medical department and have their office in the Morgue. I was inspired to make this after I had played my first round on Paradise and messed around in there. The analyzer is copied from there (https://github.com/ParadiseSS13/Paradise/pull/20957), and their jumpsuit is also mostly stolen from it (i just copied the color scheme onto our own suits). Coroners can perform autopsies on people to see their stats, like this  They have access to Medbay, and on lowpop will get Pharmacy (to make their own formaldehyde). They also have their own Secure Morgue access for their office (doubles as a surgery room because they are edgelords or whatever) and the secure morgue trays. Secure Morgue trays spawn with their beepers off and is only accessible by them, the CMO, and HoS. It's used to morgue Antagonists. Security's own morgue trays have been removed. The job in action https://cdn.discordapp.com/attachments/950489581151735849/1102297675669442570/2023-04-30_14-16-06.mp4 ### Surgery changes Autopsies are a Surgery, and I tried to intertwine this with the Dissection surgery. Dissections and Autopsies both require the Autopsy scanner to perform them, however you can only perform one on any given body. Dissections are for experiments, Autopsies is for the paper of information. Dissected bodies now also give a ~20% surgery speed boost, this was added at the request of Fikou as a way to encourage Doctors to let the Coroner do their job before reviving a body. I also remember the Medical skill, which allowed Doctors to do surgery faster on people, and I hope that this can do something like that WITHOUT adding the potential for exploiting, which led to the skill's downfall. ### Morgue Improvements Morgue trays are no longer named with pens, they instead will steal the name of the last bodybag to be put in them. Morgue trays are also removed from Brig Medical areas and Robotics, now they have to bring their corpses to the Morgue where the Coroner can keep track and ensure records are properly updated. ### Sprite credits I can't fit it all in the Changelog, so this is who made what McRamon - Autopsy scanner Tattax - Table clock sprites and in-hands CoiledLamb - Coroner jumpsuits & labcoats (inhand, on sprite, and their respective alternatives) - Coroner gloves - CoronerDrobe (the vending machine) ## Why It's Good For The Game This is mostly explained in the hackmd, but the goal of this is: 1. Increase the use of the Medical Records console. 2. Add a new and interesting way for Detectives to uncover mysteries. 3. Add a more RP-flavored role in Medical that still has mechanics tied behind it. ## Changelog 🆑 JohnFulpWillard, sprites by McRamon, tattax, and Lamb add: The Coroner, a new Medical role revolving around dead corpses and autopsies. add: The Coroner's Autopsy Scanner, used for discovering the cause for someone's death, listing their wounds, the causes of them, their reagents, and diseases (including stealth ones!) qol: Morgue Trays are now named after the bodybags inside of them. balance: The morgue now has 'Secure' morgue trays which by default don't beep. balance: Security Medical area and Robotics no longer have their own morgue trays. balance: Dissected bodies now have faster surgery speed. Autopsies also count as dissections, however they're mutually exclusive. /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |