mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 02:21:44 +00:00
a999e8df87574c5fdc2b0850d9cd6dc1004f0934
927 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7c78418b8a |
[MIRROR] Updates to orbit ui [READY] (#27742)
* Updates to orbit ui [READY] (#83186) ## About The Pull Request Pretty big orbit ui refactor. Check changelog for full list of features. <details> <summary>screenshots</summary> In game  Sort by department  Did you know ninjas had a hud icon that hasn't worked for four years?  Criticals  Orbit blade https://github.com/tgstation/tgstation/assets/42397676/99681548-bfb3-4895-9c95-3b650df71107 </details> ## Why It's Good For The Game Some QoL for the orbit menu, giving more info on where action is and isn't. Removes more of the uselocalstate hook which is deprecated anyways ## Changelog 🆑 fix: Fixed an issue preventing space ninjas from having a hud icon add: ORBIT UI CHANGES: add: AFK players are greyed out. add: Living NPCs now display health. add: Icons displayed are now based on hud icons, which includes icons for player-visible antagonists add: You can now sort by job department (click health icon) add: Round ending "critical" items will be listed at the top. add: Click the settings button to expand for more info add: Your current orbit target is highlighted. /🆑 * Updates to orbit ui [READY] --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
7aa6664021 |
Mirror (#27453)
* Fix Conflicts
* Change COGBAR_ANIMATION_TIME to seconds and not deciseconds (#82530)
Most people should not be using this define
* New Battle Arcade (#81810)
Remakes Battle Arcade from just about the ground up, with exceptions
taken for emagged stuff since I didn't really want to touch its
behavior.
The Battle Arcade now has stages that players can go through, unlocking
a stage by beating 2 enemies and the boss of the previous one, but this
must all be done in a row. You can choose to take a break between each
battle and there's a good chance you'll sleep just fine but there's also
a chance it can go wrong either through an ambush or robbery.
The Inn lets you restore everything for 15 gold and you can buy a sword
and armor, each level you unlock is a new sword and armor pair you can
buy that's better than the last, it's 30 gold each but scales up as you
progress through levels. They are really worth getting so it's best to
try to not lose your money early in.
The battle system is nearly the same as how it was before but I removed
the poor combo system that plagued the old arcade as one big knowledge
lock, now it's more just turn based. The game is built on permadeath so
dying means you restart from the beginning, but if you are going to lose
you can try to escape instead which costs you half of your gold.
Getting to higher levels increases the difficulty of enemies but also
increases the gaming exp rewards which could make this a better way to
get exp if you can get good at it.
Gaming EXP is used to increase chances of counterattacking but doesn't
give any extra health to the player.
I also removed the exploit of being able to screwdriver arcade cabinets
because people would do that if they thought they were on the verge of
losing to bypass the effects of loss. I instead replaced it with a new
interaction that the Curator's display case key can be used to reset
arcade cabinets (there's several keys on the chain so it made sense to
me), which I added solely because I thought Curators would be the type
of person to have run an actual arcade.
This is some gameplay
https://github.com/tgstation/tgstation/assets/53777086/499083f5-75cc-43b5-b457-017a012beede
As a misc sidenote, I also split up the arcade file just like how Orion
Trail was before, just for neat code organization.
The Inn keeper is straight up just a photo of my localhost dude, he's
not a player reference or anything it's not my actual character.
I also have no idea how well balanced this is cause I suck at it lol.
Battle Arcade is one of 3 last machines in my hackmd here to turn into
TGUI https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view
I've always thought the current version of battle arcade is quite lame
and lacks any progression, like Orion Trail I thought that since I was
moving this to TGUI, it would also be a perfect opportunity to revamp it
and try to improve on where it failed before, especially since the
alternative (NTOS Arcade) is also lame as hell and is even lamer than
HTML battle arcade (spam mana, then spam health, then just spam attack,
rinse and repeat).
This will hopefully be more entertaining and give players sense that
they are getting through a series of tasks rather than doing one same
one again and again.
🆑 JohnFulpWillard, Zeek the Rat
add: Battle Arcade has been completely overhauled in a new progression
system, this time using TGUI.
add: The Curator's keys can now reset arcade cabinets.
balance: You now need to be literate to play arcade games, except for
Mediborg's Amputation Adventure.
fix: You can no longer screwdriver emagged arcade consoles. Accept your
fate.
fix: Silicons can no longer play Mediborg's Amputation Adventure.
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Change setting item weight class to a setter to patch some weight class related shenanigans (#82494)
## About The Pull Request
Fixes #81052
Fixes #58008
Setting weight class of items is now done via `update_weight_class`.
I updated as many occurrences of manually setting `w_class` as I could
find but I may have missed some. Let me know if you know of any I
missed.
This is done to allow datums to react to an item having its weight class
changed.
Humans and atom storage are two such datums which now react to having an
item in its contents change weight class, to allow it to expel items
that grow to a weight class beyond what is normally allowed.
## Changelog
🆑 Melbert
fix: You can't fit items which are normally too large for a storage by
fitting it in the storage when it is small, then growing it to a larger
size.
/🆑
* Material datum color update, plus touching up some material items (knight armor, tiles) (#82500)
## About The Pull Request
Tries to bring the material datum colors in closer approximation to the
stacks they're attached too. I literally used the colors on the stacks.
some might need to be lighter or darker, but for the most part they'll
look...closer to their actual material hues.

I've also tweaked the sprites of both the tile object and the actual
material tile turf to give it the right shading.

In addition to the tiles, I've also updated the knight armor and helmet
to look closer to the much higher quality plate armor already in the
game.
## Why It's Good For The Game
It bothered me that the material datum coloring was inconsistent with
the actual colors used for the material stacks. When they were updated,
and even before they were updated, material datum stuff just never
looked _right_. I wanted to change that so that it looks just right.
I did not like the old material knight armor whatsoever. It was a
dithered mess, and seemed to already use parts of the standard plate
armor but with all the actual shading removed or replaced with the wrong
colors. This fixes that so that the armor is actually readable for what
it is.
## Changelog
🆑
image: Updates the colors of various material datum to bring them closer
in-line with their actual material stacks
image: Improves the sprites for the material knight armor and helmet.
/🆑
* LateInitialize is not allowed to call parent anymore (#82540)
## About The Pull Request
I've seen a few cases in the past where LateInitialize is done cause of
the init return value being set to do so for no real reason, I thought I
should try to avoid that by ensuring LateInitialize isn't ever called
without overriding.
This fixes a ton of machine's LateInitialize not calling parent
(mechpad, door buttons, message monitor, a lot of tram machines,
abductor console, holodeck computer & disposal bin), avoiding having to
set itself up to be connected to power. If they were intended to not
connect to power, they should be using ``NO_POWER_USE`` instead.
Also removes a ton of returns to LateInit when it's already getting it
from parent regardless (many cases of that in machine code).
## Why It's Good For The Game
I think this is better for coding standard reasons as well as just
making sure we're not calling this proc on things that does absolutely
nothing with them. A machine not using power can be seen evidently not
using power with ``NO_POWER_USE``, not so much if it's LateInitialize
not calling parent.
## Changelog
🆑
fix: Mech pads, door buttons, message monitors, tram machines, abductor
consoles & holodeck computers now use power.
/🆑
* Fix table top deconstruction (#82508)
## About The Pull Request
Edited: updated changelog, read comments for changes in implementation
details
So previously, tables would let you use a wrench to fully deconstruct
them, or a screwdriver to take off only their top.
This, however, broke in two different ways in #82280, when their
deconstruction logic got changed.
First off, deconstructed tables would only drop the materials for their
top and not their frame.
For this, the primary culprit seems to be on line 307:
|
||
|
|
a9ff046352 |
Administrator Cherrypick (#27405)
* Admin Verb Datums MkIII | Now with functional command bar (#82511) * Modular stuffs * Put some admin jump verbs back into the context menu | sorts area jump list again (#82647) ## About The Pull Request See title. ## Why It's Good For The Game Some admins wanted all the jump verbs back, aswell as making them not AGhost you. Also make the Jump To Area verb use a sorted list again * Hey what if admins were allowed to use the player panel (#82682) Re-adds the player panel verb to the verb panel. * Controller Overview UI (#82739) * Fixes a minor spelling mistake on the admin panel/verb list (#82747) ## About The Pull Request Corrects `inisimin` to `invisimin`. This addresses #82728, but only fixes one of the two issues mentioned ## Why It's Good For The Game -1 spelling mistake ## Changelog 🆑 spellcheck: 'inisimin' verb corrected to 'invisimin' /🆑 * Player Panel-age (#82757) * Admin Forced Mob Rename and Preference Update (#82715) --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: chel <64568243+iliyaxox@users.noreply.github.com> |
||
|
|
20c0599ce6 |
Some more mirrors again (#27366)
* Ports additional Felinid ears from Orbstation (#82066) Adds 5 new ear options from Orbstation, originally PRed in lizardqueenlexi/orbstation#360. Sprites by @Or-Fi-S. Big:  Coeurl (FFXIV Miqo'te style):  Fold:  Lynx:  Round:  Also makes it so the code guarantees that custom ears on a felinid actually count as felinid ears and not human ones, as the code wasn't checking properly when preferences were applied. There's probably a cleaner, more permanent way to do this and a refactor is needed somewhere down the line (man that sprite accessories file is getting long huh) but I'll leave that to a more competent coder. More customization options are good also Cobby said I could  🆑 add: Added 5 new Felinid ear options, ported from Orbstation! (Sprites by Or-Fi-S) /🆑 --------- Co-authored-by: _0Steven <jaydondegenerschool@gmail.com> * Standardizes object deconstruction throughout the codebase. (#82280) When it comes to deconstructing an object we have `proc/deconstruct()` & `NO_DECONSTRUCT` Lets talk about the flag first. **Problems with `NO_DECONSTRUCTION`** I know what the comment says on what it should do |
||
|
|
42f6f57dc0 |
[MIRROR] Replaces even more deciseconds with SECONDS (#27205)
Replaces even more deciseconds with SECONDS Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> |
||
|
|
3f547aad56 |
[MIRROR] Removes redundant update_parallax_contents calls (#27323)
* Removes redundant update_parallax_contents calls (#82644) ## About The Pull Request Off shuttle move doesn't need to happen because shuttles use abstract move which calls it anyway Similar story for the ghost stuff, this was actually causing pretty common double calls so we may actually get somethin out of this Oh and something in air which is past me knifing me in the back * Removes redundant update_parallax_contents calls --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
37bc259bb0 |
[MIRROR] Refactor removing unused defines. (#26998)
* Refactor removing unused defines. (#82115) Refactors a lot of the unused defines. Refactors a lot of the unused defines. Nothing player facing --------- Co-authored-by: san7890 <the@san7890.com> * Oh well. I hope this works fine. --------- Co-authored-by: Bilbo367 <163439532+Bilbo367@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
031e483e4d |
[MIRROR] New station trait job: Human AI (#26823)
* New station trait job: Human AI (#81681) 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 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. https://github.com/tgstation/tgstation/assets/53777086/e16509f8-8bed-42b5-9fbf-7e37165a11e8 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. 🆑 JohnFulpWillard, Tattax add: Adds a new station trait job: The Human AI. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Oh right * so this works * whoooops --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> |
||
|
|
b1df8c9cc2 |
[MIRROR] Let's you talk through action figures, plushies, and toy mechs with .l and .r. Also a big clean up of say because its support for non-mobs was lackluster. (#26790)
* Let's you talk through action figures, plushies, and toy mechs with `.l` and `.r`. Also a big clean up of `say` because its support for non-mobs was lackluster. * Update code/game/objects/items/plushes.dm * a --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> |
||
|
|
f8b87b994b |
[MIRROR] Overlay Lighting Color/Intensity Pass (#26825)
Overlay Lighting Color/Intensity Pass Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
2b09625df0 |
[MIRROR] Fixes jank with moving down Zs as a ghost (#26760)
* Fixes jank with moving down Zs as a ghost (#81837) ## About The Pull Request Caused by goof's PR. Because for some reason observers overridde `up` to skip checks but not `down`. ## Changelog 🆑 Melbert fix: Moving "down" as an observer is no longer janky. /🆑 * Fixes jank with moving down Zs as a ghost --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
b6f7adb565 |
[MIRROR] Fix dead mobs changing their mob tag causing obsever weakrefs to not function (#26592)
* Fix dead mobs changing their mob `tag` causing obsever weakrefs to not function (#81585) ## About The Pull Request Fixes #81578 Fixes #81559 Fixes #81308 In #69634 mob tag generation was moved to `/mob/New` But dead mobs also do this in initialize  So dead mobs skipped over a tag This is whatever, until it's not: If something makes a weakref of an observer in `/observer/Initialize` before its parent call, which shuffles the mob tag around, uh oh now our weakref points to a non-existent ref! So what's making the weakref? No clue but apparently chasms ## Changelog 🆑 Melbert fix: Chasms no longer break your verbs /🆑 * Fix dead mobs changing their mob `tag` causing obsever weakrefs to not function --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
4f53ec2660 |
[MIRROR] Fixes complex lights not handling moving well, renames lighting defines (#26484)
* Fixes complex lights not handling moving well, renames lighting defines (#81423) ## About The Pull Request [Fixes static lights not moving]( |
||
|
|
fcd14ad164 |
[MIRROR] Better Ghost Hair (#26372)
* Better Ghost Hair * fixes --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: jjpark-kb <mccorvey.norman@gmail.com> |
||
|
|
dbd51275f2 |
[MIRROR] Moves Hardcore Random logging from Admin.log to Game.log (#26236)
* Moves Hardcore Random logging from Admin.log to Game.log (#81066) <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request I moved the bit that says: ADMIN: guy started hardcore random with cancer, for a score of 2 into game.log <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game I don't see why this wound up in Admin.log. Doesn't contain any admin info, relate to actions done by admins, etc. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> <!-- 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. --> * Moves Hardcore Random logging from Admin.log to Game.log --------- Co-authored-by: Pink <sightld2@gmail.com> |
||
|
|
305ac2c2c2 |
[MIRROR] Ghosts can see info about Wanted Status and Sec Records [MDB IGNORE] (#26003)
* Ghosts can see info about Wanted Status and Sec Records (#80692) Ghosts can examine people to see Wanted Status and view their Sec Records which show crimes More fun observer experience. You can already see the "W" hud, so more info is nice  🆑 qol: Ghosts can now view Wanted Status and Sec Records by examining people /🆑 * I don't know if it works, but it compiles. --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
ef67ae30cf |
[MIRROR] Fixes some observer hard dels [MDB IGNORE] (#25989)
* Fixes some observer hard dels (#80757) ## About The Pull Request Tin. This was another /image hard del that I came across within a given round. AFAIK this was occurring because `updateallghostimages()` removes refs of these images from GLOB.ghost_images_default and GLOB.ghost_images_simple, and this proc was being called after `QDEL_NULL()`. So they were still in the lists at the time of the qdeletion. We don't need to be qdeleting them at all though so let's just set them to null.  ## Why It's Good For The Game Reduces the lag. ## Changelog 🆑 fix: fixed an /image hard del in ghost code /🆑 * Fixes some observer hard dels --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
30208d384e |
Adds a config entry for bypassing the veteran locks on jobs and quirks (#25895)
Adds a config value for bypassing the veteran system for jobs and quirks. |
||
|
|
858391a061 |
[MIRROR] Revert "Fixes observers spamming admin logs when observing themselves" [MDB IGNORE] (#25810)
* Revert "Fixes observers spamming admin logs when observing themselves" (#80470) Reverts tgstation/tgstation#80407 Fixes #80460 Fixes #80485 I don't think this was a good fix, we should be preventing people from observing themselves outright. Not "they can observe themselves but skip the actual observe-part of observing". Also it breaks observing. * Revert "Fixes observers spamming admin logs when observing themselves" --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
d21f0a63f5 |
[MIRROR] Remove /datum/game_mode, we SSdynamic now [again] [MDB IGNORE] (#25371)
* Remove /datum/game_mode, we SSdynamic now [again] * Modular * OLD CODE + repath --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
d718af9913 |
[MIRROR] Bridge Assistant Station Trait [MDB IGNORE] (#25667)
* Bridge Assistant Station Trait * Diffs * fixes * Update job_traits.dm --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
55482d6880 |
[MIRROR] Sign up for Cargorilla from the lobby [MDB IGNORE] (#25572)
* Sign up for Cargorilla from the lobby * Modular * Update jobs.dm * our title screen compat --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
720cf262c1 |
[MIRROR] Fixes observers spamming admin logs when observing themselves [MDB IGNORE] (#25714)
* Fixes observers spamming admin logs when observing themselves (#80407) ## About The Pull Request Fixes #77034 by adding in a check to do_observe to prevent observers from observing themselves. It does prevent them from observing their own bodies and seeing their hud and entire inventory as a ghost, but that's not a major problem because they probably either remember what they had if it's so important to constantly see what's on their mob or it doesn't matter. Additionally they can just use re-enter corpse so whatever. ## Why It's Good For The Game Observers can no longer intentionally or even completely accidentally flood admin logs from their observetarget not resetting due to them observing themselves. ## Changelog 🆑 fix: Observers observing themselves no longer floods admins' logs. /🆑 * Fixes observers spamming admin logs when observing themselves --------- Co-authored-by: Diamond_ <novadiamonddigger@gmail.com> |
||
|
|
8df7202455 |
[MIRROR] Rename notify_ghost_cloning to notify_revival [MDB IGNORE] (#25442)
* Rename notify_ghost_cloning to notify_revival (#80096) <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request Renames - `/mob/proc/notify_ghost_cloning` to `/mob/proc/notify_revival` - `/mob/dead/observer/proc/notify_cloning` to `/mob/dead/observer/proc/send_revival_notification` - `/atom/movable/screen/alert/notify_cloning` to `/atom/movable/screen/alert/revival`. I could have found a way to merge both procs together but default parameters keep me up at night. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Conciseness, code that is named after a removed feature is silly. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> nothing playerfacing <!-- 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. --> * Rename notify_ghost_cloning to notify_revival * Missed wow * Modular --------- Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com> |
||
|
|
71beaa5e21 |
[MIRROR] Fixes Ghostize Runtime [MDB IGNORE] (#25264)
* Fixes Ghostize Runtime (#79927) ## About The Pull Request  I had this runtime sitting around for who-knows-how-long so I decided I would just fix it today. `ghostize()` is expected to work on all subtypes of `/mob` so it's a bad idea to access a variable that only exists on `/mob/living` (and there is no real point to move `timeofdeath` up a level imo, we already have too much clutter there and `/mob/camera/imaginary_friend` would _never_ need it). ## Why It's Good For The Game We should only access variables like these when when they exist. ## Changelog No shot a player would ever notice this * Fixes Ghostize Runtime --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
b557e89855 |
[MIRROR] More standardization for ghost notifications (READY) [MDB IGNORE] (#25104)
* More standardization for ghost notifications (READY) (#79596) ## About The Pull Request I'm still not satisfied with how ghost notifications work. This gives every notification with a source (99% of all notifications, in other words) a link to jump/orbit. Currently, notifications with "play" interactions would only get the interact link, so jumping to the source was pretty annoying. It removes posting the entire message in the alert tooltip, as some got pretty lengthy and it didn't seem to fit. To replace this, they will always use headers After:    NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference seems to be whether it's a turf. The result shaves off some redundant lines of code, since most-every usage of notify_ghosts uses NOTIFY_ORBIT. ## Why It's Good For The Game More standardization for the ghost notification system. Adds a few alert headers that never had them. All in all, makes it easier for creators to throw alerts at ghosts ## Changelog 🆑 qol: Nearly every ghost alert should now feature a "VIEW" button, even those with click interaction. del: Ghost alerts no longer show the entire message in the tooltip, instead have been replaced with titles. /🆑 * More standardization for ghost notifications (READY) * Modular * Update outpost_of_cogs.dm --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
8de0791b0a |
[MIRROR] Hardcore random will not assign incompatible quirks. [MDB IGNORE] (#25111)
* Hardcore random will not assign incompatible quirks. (#79825) ## About The Pull Request Fixes #78114. Fixes #78505. Grumble grumble, code rot. #77727 inadvertently broke hardcore random quirk selection, making it not actually check the compatibility of quirks before adding them. This means that quirks that were never meant to go together could be randomly assigned, which broke all kinds of things. I've simply made it properly check for the typepath rather than checking typepaths against names, making it actually function as intended. ## Why It's Good For The Game Certain quirks are incompatible for a reason. Prevents unintended combos that break in unexpected ways. ## Changelog 🆑 fix: Hardcore Random will no longer assign incompatible quirks. /🆑 * Hardcore random will not assign incompatible quirks. --------- Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> |
||
|
|
a32c7ed2da |
[MIRROR] Partially reverts ghost announcements [MDB IGNORE] (#24564)
* Partially reverts ghost announcements (#79221) ## About The Pull Request #79139 turned out to be quite annoying, it wasn't taken into account that these alerts can stack (ie: spiders). Of course, I poked around the code and found some inconsistencies in the process. For instance, there were usages of Topic for custom action behavior which could've been consolidated. There were other instances where jump (the default action) doesn't give a link at all, which I think it should anyway, since the screen toast gives you this. I've standardized it more, meaning you can use "NOTIFY_PLAY" without writing a custom link and topic handler (for instance, MMIs) ## Why It's Good For The Game Fixes #79198 Fixes #79195 ## Changelog 🆑 fix: Ghost alerts have been tuned down a bit. /🆑 * Partially reverts ghost announcements * Update cortical_borer_egg.dm * Update cortical_borer_egg.dm --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
6e677a2bbd |
[MIRROR] Invisibility refactor [MDB IGNORE] (#24405)
* Invisibility refactor (#78908) This adds a tracker for sources of invisibility and a priority system. I needed this for another thing so I'm doing this first since it touches a lot of code. As for the bugs fixed in the changelog, it's only what I noticed while going through everything and there's likely a few more things fixed with this. This should be testmerged for a while, I'll bring this out of draft when it feels safe. 🆑 admin: Invisimin can now be used on mobs that are already invisible, whether through temporary or permanent effects. fix: Monkeyize/Humanize mob transformations no longer permanently reveal invisible mobs if they had effects making them invisible otherwise. fix: Objects with the undertile element that have been made invisible through other means are no longer revealed by being uncovered. /🆑 * Invisibility refactor --------- Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> |
||
|
|
10fb927883 |
[MIRROR] Added a larger afro hairstyle [MDB IGNORE] (#24344)
* Added a larger afro hairstyle * Update head_hair_and_lips.dm --------- Co-authored-by: Cruix <ianjturk@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
c5c79aa929 |
[MIRROR] Adds respawn config option forcing respawn as another character slot [MDB IGNORE] (#23943)
* Adds respawn config option forcing respawn as another character slot (#78459) ## About The Pull Request Adds an option to the respawn config which forces you to pick another character (slot) before you respawn. ## Why It's Good For The Game Just an idea i'm throwing out there, not necessarily pushing for it to be enabled on any servers. Respawning as an alternative character can be a good way to make people less frustrated at dying, particularly if paired with the cooldown config that already exists: "Oh shucks, I died and got my head cut off and got absorbed and got spaced by some changeling. I won't be able to finish my project or whatever. At least in 15 minutes I may be able to join as my botanist character to try something else rather than having to wait an hour and a half for the round to tick over." Also nice for downstream support. (Obviously you can just, *ban* people who respawn as the same character, use an honor system, but codifying it seems better than not.) ## Changelog 🆑 Melbert config: Adds a config option for player respawning that enables respawns, but forces you pick a new character. config: "NORESPAWN" has been replaced with "ALLOW_RESPAWN 0". Unlimited respawns is "ALLOW_RESPAWN 1" and character limited respawns is "ALLOW_RESPAWN 2". /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> * Adds respawn config option forcing respawn as another character slot --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> |
||
|
|
696a8ab1fa |
[MIRROR] Only double HCR for impressive greentexts [MDB IGNORE] (#23778)
* Only double HCR for impressive greentexts (#78383) There were a few exploits with free antags that would double your score. This happened to me once by accident, but anyone could essentially guarantee a point doubling. I've changed the whole thing to only work for: - Traitor - Changeling - Heretic - Blood brother - Headrev - Wizard (you could get this with die of fate) - Obsessed - Magic and gun survivalists - Holding the greentext book (because a cripple fighting for their life for the greentext just seems funny and is rare enough) Notably, revolutionairies, cult converts and brainwashed now no longer pay out. Cult is pointless since you can't greentext without gibbing (trust me I tried) and revolutionairy takes no effort other than having strong teammates and doing nothing. There are a lot of other antags this excludes, but those are mostly midrounds and non-humans (which are by default excluded) 🆑 balance: Only traitor, changeling, heretic, blood brother, headrev, wizard, obsessed, magic/gun survivalists and greentext book holders can now double their hardcore random score qol: Redtexting as antag with hardcore random score will pay you default points, instead of none (normal survival rules) fix: End report screen will properly report hardcore random survival in case of station destruction /🆑 * Only double HCR for impressive greentexts --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
11b681dc61 |
[MODULAR] Adds the option for missing a limb to the prosthetics menu (#22097)
* augment * Update tgstation.dme * sec restriction * Update _job.dm * revert * Update _job.dm * Update modular_skyrat/modules/customization/modules/surgery/bodyparts/parts.dm Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * Update _job.dm * Update limbs.dm * add early return, no icon to set * Update new_player.dm * restrict sec from augment * Update modular_skyrat/modules/customization/modules/jobs/_job.dm Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * command restriction --------- Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: Bloop <vinylspiders@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
71da4ca73f |
[MIRROR] Refactors the notransform variable into a trait. [MDB IGNORE] (#23566)
* Refactors the `notransform` variable into a trait. * Update robot_upgrades.dm * modular --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
e3f8dd884e |
[MIRROR] Better alert/announcment sounds and Status displays [MDB IGNORE] (#23481)
* Better alert/announcment sounds and Status displays * skyrat edits * Update status_display.dmi * Update flavor_misc.dm * Update communications.dm * skyrat edits * Update status_display.dmi * Update _sm_delam.dm * typo * Update status_display.dmi * Update status_display.dmi --------- Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
1b17b304f2 |
SQL-Based Player Ranks and Player Ranks Subsystem (#23099)
* Initial draft, most of the stuff is implemented, not really tested or cleaned up yet * Refactors the handling into a datum-based approach, for more abstraction * Added migration, properly hooked up the verb to the new system * Removed some more dead code * Fixes some missing stuff from the .dme because VSC is stupid sometimes with merge conflicts * Fixes the schema * Wow I was really getting tired huh * A fool, I say, a fool! * I hate lists of lists I hate lists of lists I hate lists of lists * I somehow missed this one twice. TWICE! * This won't actually work if it's defaulting to true, lmao * Makes it not log stuff if the adding or removing of players is unsuccessful * Adds a way to update all of the unlock_contents for preferences datums once the donator list is initialized * Runs update_prefs_unlock_content on mob Login() (hopefully this helps) * Fixes the bajillion of runtimes caused by my dumb ass trying to make some client calls on ckeys * Man I was really tired that day * I had this ready for three hours and forgot to push it |
||
|
|
91837e26b4 |
[MIRROR] Progress bars & cleaning particles will centre on the tile occupied by large icon objects [MDB IGNORE] (#23394)
* Progress bars & cleaning particles will centre on the tile occupied by large icon objects (#77940) ## About The Pull Request Do_after bars always draw based on the top-left corner of the targetted atom, for atoms with sprites that are larger than 32x32 this gives them a weird offset instead of being centred, which bugs me. I have tried my best to figure out a way to reverse this which does not interfere with atoms which use pixel_x/pixel_y to visually appear to be on a different tile. ## Why It's Good For The Game Before:  he hates how you missed him completely 😦 After:  now you're cleaning his feet 🙂 ## Changelog 🆑 image: progress bars and cleaning particles are now centered on the tile occupied by the target, if it is a big sprite /🆑 * Progress bars & cleaning particles will centre on the tile occupied by large icon objects --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
bcd09e2be4 |
[MIRROR] Fix a compiler mis-optimization in create_character [MDB IGNORE] (#23265)
* Fix a compiler mis-optimization in create_character (#77801) `mind.transfer_to` sets mind to null. `mind.set_original_character` thus, should not work, but happens to because BYOND incorrectly caches this. This is causing problems with OpenDream because they do not have this same bug. * Fix a compiler mis-optimization in create_character --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
1aec547be9 |
[MIRROR] Use typepaths for the quirk blacklist [MDB IGNORE] (#23208)
* Use typepaths for the quirk blacklist * Update quirks.dm * Update quirks.dm whoops --------- Co-authored-by: spookydonut <github@spooksoftware.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
a0a9a43562 |
[MIRROR] Refactors Regal Rats into Basic Mobs (more titles edition) [MDB IGNORE] (#23188)
* Refactors Regal Rats into Basic Mobs (more titles edition) (#77681) ## About The Pull Request I literally can't focus on anything nowadays, so I just did this to break a never-ending chain of distress. Anyways, regal rats! These fellas are mostly player controlled, but did have _some_ AI capabilities (mainly tied to their actions), so that was incorporated too. Everything should work as-expected (as well as look a shitload cleaner). Instead of doing weird and awful conditional signals being sent out, I made the `COMSIG_REGAL_RAT_INTERACT` (not the actual name) have a return value so we can always rely on that working whenever we have that signal registered on something we attack. I also cleaned up pretty much every proc related to regal rats, gave them AIs to reflect their kingly nature (and action capabilities (as well as move the action to `mob_cooldown`)). Since I thought they needed it, Regal Rats now get a special moniker! This is stuff like "the Big Cheese" and what-not, like actual regents in history. That's nice. ## Why It's Good For The Game Two more off the list. Much better code to read. Way smarter rats with spawning their army as part of a retaliatory assault (war). More sovl with better regal rat names. The list goes on. ## Changelog 🆑 refactor: Regal Rats have been refactored into basic mobs. They should be a bit smarter and retain their docility (until attacked, in which case you should prepare to get rekt by summoned rats), and properly flee when they can instead of just sit there as you beat them to death. The framework for them interacting with stuff (i.e. opening doors while slobbering on food) is a bit more unified too, now. They also have cooler names too! /🆑 FYI: Beyond a few code touchups, I haven't touched the actions at all. I do not believe myself to be enthusiastic about fixing anything involving the actions code as of this moment so that this PR is more overbloated unless it's unbelievably stupid or easy to fix. * Refactors Regal Rats into Basic Mobs (more titles edition) --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
2ac66a8a4a |
[MIRROR] Adds sanity checking to prefs checks, fixing a bug that can cause emotes to stop displaying intermittently [MDB IGNORE] (#23081)
* Adds sanity checking to prefs checks, fixing a bug that can cause emotes to stop displaying intermittently * Update vox_procs.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
092dd8f5e5 |
[MIRROR] Fix double send of COMSIG_GLOB_CREWMEMBER_JOINED for latejoins [MDB IGNORE] (#22981)
* Fix double send of `COMSIG_GLOB_CREWMEMBER_JOINED` for latejoins * Update new_player.dm --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
8d1a72db7f |
[MIRROR] [NO GBP] Removes new player's status tab readiness; replaces it with a blip on Collapse Button [MDB IGNORE] (#22873)
* [NO GBP] Removes new player's status tab readiness; replaces it with a blip on Collapse Button (#77209) ## About The Pull Request On the tin. Ready blip will update with the new player's ready state, and upon game start(or when a player joins an in-progress round) the blip is disabled. <details><summary>Blip showcase (GACHI BGM WARNING)</summary> https://github.com/tgstation/tgstation/assets/75863639/c3168e5d-f4de-4bec-bcea-bbdd150879aa </details> ## Why It's Good For The Game   ## Changelog 🆑 del: removed new player status tab Readiness Status add: added a Ready Status Blip on the Collapse Menu button /🆑 * [NO GBP] Removes new player's status tab readiness; replaces it with a blip on Collapse Button --------- Co-authored-by: Sealed101 <cool.bullseye@yandex.ru> |
||
|
|
daba1d93ae |
[MIRROR] Hud screens now set hud owner in Initialize. [MDB IGNORE] (#22501)
* Hud screens now set hud owner in Initialize. * Merge conflicts * modular adjustments * Missed one * Make this easier to spot --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
9e1d33a309 |
[MANUAL MIRROR] SPECIES NUKING 2023: Head flags 3 & Knuckles: Fixes some growing pains with head flags [MDB IGNORE] (#22516)
* SPECIES NUKING 2023: Head flags 3 & Knuckles: Fixes some growing pains with head flags (#76440) Fixes https://github.com/tgstation/tgstation/issues/76422 This was caused by me somehow not using the wrapper there and not noticing it Also fixes hair gradients and facial hair gradients. I am pretty sure they were uhh, being hidden behind the actual hair/facial hair. Oops. Also also fixes spawning yourself as a human as admin and getting random hair colors. That was just a failure to update the icon after updating everything, I think? Additionally, to totally babyproof all of this, ensures that head_flags involved stuff gets applied AFTER species by creating a new preference priority, and uses two separate wrappers to apply gradient style and color. Here's this absolute hellspawn to prove that everything works.     Sorry for being so damn good at breaking this codebase. Bugs are bad they make you mad 🆑 fix: Hair and facial hair gradients work again now fix: Facial hair colors apply properly again fix: Admin spawned characters will get hair color preferences applied properly /🆑 * Fixed a compile error (whoops) * Whoops fixed that wrong * Okay now I compiled and made sure it was fixed for real, I swear! --------- Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> |
||
|
|
db83be17da |
[MANUAL MIRROR] SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298) [MDB IGNORE] (#22506)
SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298) Continues the work I started on https://github.com/tgstation/tgstation/pull/76074 Fixes https://github.com/tgstation/tgstation/issues/73782 Implements a bunch of wrapper procs for hair style, facial hair style, etc etc the whole nine yards. Fixes many issues, especially with gradients because I did sloppy tired code that didn't work there. Makes head/get_limb_icon() not a disgusting mess (well, at least makes it less of a disgusting mess). Actually makes hair and lips depend entirely on the bodypart. 🆑 refactor: Head rendering code has been updated significantly... Again. Please report any issues with hair, facial hair, lipstick and such. /🆑 Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> |
||
|
|
60b95b0b95 |
[MISSED MIRROR] Fixes some observer shenanigans (#76603) (#22441)
Fixes some observer shenanigans (#76603) ## About The Pull Request Fixes #76553 Sleeping inputs my beloved Observetarget was overridden and thus we couldn't remove the original target, so got to keep their stuff rather than removing it ## Why It's Good For The Game Exploity ## Changelog 🆑 Melbert fix: Fixed an exploit involving observers /🆑 Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
2f2afc8847 |
[MIRROR] Collapsible lobby buttons [MDB IGNORE] (#22414)
* Collapsible lobby buttons * Update new_player.dm --------- Co-authored-by: Sealed101 <cool.bullseye@yandex.ru> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> |
||
|
|
f10836e7e4 |
[MIRROR] Job age restriction reason [MDB IGNORE] (#22263)
* Job age restriction reason (#76540) Just adds a reason to know why are you cant join on this job. * Job age restriction reason --------- Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
7a504490f0 |
[MIRROR] SPECIES NUKING 2023: Refactors a bunch of species traits into flags for the head bodypart [MDB IGNORE] (#21991)
* SPECIES NUKING 2023: Refactors a bunch of species traits into flags for the head bodypart * Makes it all compile, for now * Fixes eye emissives not working right. * Fixes the plasmaman head (oof conflicts) * Fixes the screenshot tests --------- Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |