* Medical/Security records now use the max/min age.
* merge conflict
* Refactors crew records (#72725)
I have attempted or otherwise started this project at least 4 times. I
am sick of it being on my calendar. The code needs it. I need it.
- This makes crew records a proper datum rather than assigning
properties record.fields.
- General, medical, and security records are merged.
- Did some slight refactoring here and there for things that looked
obvious.
- Wanted states are now defined (and you can suspect someone through
sechud)
- pAI (unrelated but annoying) had some poorly named exported types that
i made more specific
- Job icons are moved back to the JS side (I wanted to get icons for
initial rank without passing trim)
<details>
<summary>previews</summary>
Editable fields & security console

Medical records

Look and feel of the more current version

</details>
TGUI'd some of the worst UIs in the game.
Creating new records is made much simpler.
Manifest_inject is made readable.
Probably bug fixes
🆑
refactor: Crew records have been refactored.
refactor: Medical records -> TGUI
refactor: Security records -> TGUI
refactor: Warrants console -> TGUI
qol: Players are now alerted when their fines are paid off.
qol: Cleaned up sec hud examination text.
qol: Adding and deleting crimes is easier.
qol: Writing crimes in the console sets players to arrest.
qol: You can now mark someone as a suspect through sec hud.
/🆑
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* I've got something that now actually works
Just got to incorporate the records into what players can actually see.
* Turns out that client has already been transferred after all
* Adds the past records in the TGUI records (they're kinda ugly but it works, so y'know)
* Whoops
* Hate you too sometimes Prettier
* Fixes ghost roles using LITERAL records, which caused problems
* Fixes the leaks caused by ghost roles not getting their name right because of the stupid freaking special() proc
* I hate list operations man they're so stupid
* Fixes the stars on the crew manifest!
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Optimizes changing z level as a ghost by something like 85% (#73005)
<!-- 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
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
Optimizes hud image addition/removal on z change
We were doing a lot of repeated work here, not to mention all the proc
calls.
So I pushed the "operate on loops" behavior into its own proc, so I
could ensure we only do some of this stuff once
This plus some removal of safeties saves 75% of the cost of z level
transitions as a ghost
Prevents double on_changed_z_level calls from ghosts and shuttles
Reacting to z changes used to be done off doMove or one of those
children, timber moved it to Moved, but did not remove the calls that
assumed things like abstract_move wouldn't trigger it
This means that moving up/down as a ghost was causing a double call of
the whole z move stack. Suprised this never broke anything tbh
Makes csv stat tracking actually encode numbers properly, cleans up an
indev comment from plane group code
## Why It's Good For The Game
Speed, and fixes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fix polls but in the good way not in the voter fraud way that comes later (#72749)
## About The Pull Request
Fixes a regression in tgui latejoin menu that broke polls.
🆑
fix: Polls are fixed
/🆑
* Fix polls but in the good way not in the voter fraud way that comes later
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* MiiyaBot's HairTweaks 2 (#72480)
## About The Pull Request
1. **Two** new hairstyles, fitting more punk/messy needs.
2. Changing the shading (and a pixel) on Jade
3. Renaming and fixing odd way it ended on the side view of "Marginally
shorter Yet Long Bedhead".
(From "Marginally Shorter Yet Long Bedhead" to "Shorter Bedhead")
4. Changing the name of "BedHead 4X", and slightly making it darker
around the face as it was a very weak contrast.
(From "BedHead 4X" to "BedHead 4x")
## Why It's Good For The Game
While Adding two more short hairstyles that are about being bold and
punk it gives a little more love to jade to be used with the other
hairs! While also fixing some small oddities from my last changes.
Like odd pixels and way it ends with Marginally shorter yet long
bedhead, and, Changing it's name to a more normal one as the last one
was a joke about the way I described it every time I said I wanted a
shorter version. and while I still like that joke.
I believe it would at least lightly annoy someone due to it being too
big and disturbing the alphabetical order that the list tries to follow.
Here's a example of it all in-game(with comparisons):

## Changelog
:cl:MiiyaBot
add: Two new hairstyles! ("All the Fuzz" & "Over Eye (Izutsumi)")
spellcheck: Renamed "Marginally shorter yet long bedhead" to "Shorter
Long Bedhead"
spellcheck: Renamed "BedHead 4X" to "Bedhead 4x"
fix: Slight changes to "Jade", "Shorter Bedhead", "Bedhead 4x"
/🆑
* MiiyaBot's HairTweaks 2
Co-authored-by: MiiyaBox <78070418+MiiyaBox@users.noreply.github.com>
Refactor /ui_state/new_player_state to what it's designed for (#71959)
`/datum/ui_state/new_player_state` now no longer lets users with R_ADMIN
permission see the UI. Changed `/datum/interview` to return always_state
when an admin watches an interview because it is important there.
`/datum/latejoin_menu` now uses new_player_state instead of its own
solution.
`/datum/ui_state/new_player_state` is designed to let lobby players
interact with the UI, so it does not make sense for it to make a weird
exception for admins too. My theory is that this was an oversight when
this was first implemented, since only `/datum/interview` used this
ui_state. It doesn't and it shouldn't be like this though. Code clarity.
No playerfacing changes.
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Quirks are passed an incoming client when applied, allowing quirks to read preferences in `add` and `add_unique`. Renders visual quirks on the preference menu dummy.
* fixes quirk order to match upstream
* Modular quirk updates
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Basic Mobs can run away (#71963)
## About The Pull Request
That's right I'm still atomising #71421, some day I might even post
something related to carp.
This PR adds various behaviours to basic mobs allowing them to run away,
in a couple of variations.
Mice will flee from anyone who doesn't share their factions, at all
times (so they will scatter from most humans, but not regal rats).
Rabbits and Sheep will flee from anyone who has attacked them.
Pigs will run away from people who have attacked them, but only if
they're below half health.
https://user-images.githubusercontent.com/7483112/207127135-d1737f91-d3f7-468a-ac60-7c7ae5d6623d.mp4
Mice are still plenty catchable because they don't run _very far_ (or
very fast) but I think the chase will be good enrichment.
To achieve this I had to change the signal COMSIG_CARBON_HEALTH_UPDATE
into COMSIG_LIVING_HEALTH_UPDATE but frankly the latter seems more
sensible anyway.
## Why It's Good For The Game
More behaviours to use later when designing mobs, gradually gives mobs
more things to do rather than just sort of moving aimlessly around the
area you left them in.
It'll give people hunting rats in maintenance some exercise.
## Changelog
🆑
add: Mice will now run away from you, you have to catch them if you want
to eat them. Use those traps!
add: Rabbits, Sheep, and Pigs likewise won't just sit there and let you
pulverise them if they can see an escape route.
/🆑
* Basic Mobs can run away
* Modular!
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Rescale SM health from 900 to 100, UI improvements, visual changes. (#72252)
Rescaling because i saw someone think that the number on the supermatter
UI are actually the percent damage over time, which is wrong.
Added delta symbol to damage and energy since they actually denote
change, not the actual value.
Chose the numbers that look good instead of doing a 1:1 rescale of the
old one (i.e. im dividing or multiplying things by 10 instead of 9). In
practice this means I'm lowering the damage cap but increasing damage
over the board for atmos (since it's mostly divisors). Lowered the
damage overall for external stuffs.
A bit of modification on the filter helpers to suit my needs. Added
documentation because I'm awesome.
* Rescale SM health from 900 to 100, UI improvements, visual changes.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* makes status tab use signals, thirds the delay between updates (#72002)
## About The Pull Request
status panel for carbons and humans instead of hardcoding stuff, uses
signals (borg material storage too)
removes combat mode indicator in status tab from xenomorphs which have a
button for it, but adds it to simplemobs, since they dont have a visual
indicator
adds status tab stuff to basic mobs, i think they were missing
everything by accident
offsets unique status tab stuff for all mobs by a single line
the delay between updates is a third of what it was before, mainly to
make shuttle timers more accurate (approved by kyler)
## Why It's Good For The Game
much cleaner code, makes future implementations easy
## Changelog
🆑
qol: you can see your combat mode status as a simple or basic mob, and
you can see your health as a basic mob
qol: status panel updates three times as fast
/🆑
* makes status tab use signals, thirds the delay between updates
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fixes a bug where latejoin menu would display incorrect number of open slots (#72263)
## About The Pull Request
Fixes number of open slots being less than intended by simply adding an
if statement that prevents negative numbers from being added to the
total.
## Why It's Good For The Game
The number of department slots open will be accurate and there won't be
any nonsense like a negative number of slots.
Fixes#72034
## Changelog
🆑
spellcheck: fixed a bug where latejoin menu would display incorrect
number of open slots
/🆑
* Fixes a bug where latejoin menu would display incorrect number of open slots
Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
* Changes our map_format to SIDE_MAP (#70162)
## About The Pull Request
This does nothing currently, but will allow me to test for layering
issues on LIVE, rather then in just wallening.
Oh also I'm packaging in a fix to one of my macros that I wrote wrong,
as a joke
[removes SEE_BLACKNESS usage, because we actually cannot use it
effectively](c9a19dd7cc)
[c9a19dd](c9a19dd7cc)
Sidemap removes the ability to control it on a plane, so it basically
just means there's an uncontrollable black slate even if you have other
toggles set.
This just like, removes that, since it's silly
[fixes weird layering on solars and ai portraits. Pixel y was casuing
things to render below who
shouldn't](3885b9d9ed)
[3885b9d](3885b9d9ed)
[Fixes flicker
issues](2defc0ad20)
[2defc0a](2defc0ad20)
Offsetting the vis_contents'd objects down physically, and then up
visually resolves the confliciting that was going on between the text
and its display.
This resolves the existing reported flickering issues
[fixes plated food not appearing in
world](28a34c64f8)
[28a34c6](28a34c64f8)
pixel_y'd vis_contents strikes again. It's a tad hacky but we'll just
use pixel_z for this
[Adds wall and upper wall plane
masters](89fe2b4eb4)
[89fe2b4](89fe2b4eb4)
We use these + the floor and space planes to build a mask of all the
visible turfs.
Then we take that, stick it in a plane master, and mask the emissive
plane with it.
This solves the lighting fulldark screen object getting cut by emissives
Shifts some planes around to match this new layering. Also ensures we
only shift fullscreen objects if they don't object to it.
[compresses plane master
controllers](bd64cc196a)
[bd64cc1](bd64cc196a)
we don't use them for much rn, but we might in future so I'm keeping it
as a convienince thing
🆑
refactor: The logic of how we well, render things has changed. Make an
issue report if anything looks funky, particularly layers. PLEASE USE
YOUR EYES
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Changes our map_format to SIDE_MAP
* Modular!
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* TGUI Latejoin Menu!
* [PR PR] Fixes up the TGUI Latejoin Menu! (#18044)
* Makes Angel, Dragon and Robotic wings available in the preferences menu again (#18013)
Makes Angel, Dragon and Robotic wings available in the prefs menu again
* Automatic changelog for PR #18013 [ci skip]
* [MIRROR] Petrified human statues now drop a (stone) brain on destruction [MDB IGNORE] (#18026)
* Petrified human statues now drop a (stone) brain on destruction (#71816)
## About The Pull Request
Destroying a petrified human statue will now drop their brain, albeit a
little more statue-like.

Changed from original PR after talking w/ Fikou about it
## Why It's Good For The Game
While the combo *does* step on the toes of Smite, the statue+rod combo
is capable of fully removing you from the round without a way back very
quickly. This keeps the strength of the combo while not making it
entirely impossible to get back into the round.
## Changelog
🆑
balance: Destroying a petrified human statue will now drop their brain.
/🆑
* Petrified human statues now drop a (stone) brain on destruction
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Automatic changelog for PR #18026 [ci skip]
* [MIRROR] Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. [MDB IGNORE] (#18019)
* Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. (#71674)
## About The Pull Request
- The chaplain choice beacon now uses a radial to select the armor set,
instead of a list, giving the user a preview of what each looks like.

- Lots of additional cleanup to choice beacon code in general. Less copy
pasted code.
- All beacons now speak from the beacon with their message, instead of
some going by "headset message". Soul removed
## Why It's Good For The Game
I always forgot when selecting my armor which looks like what, and
choosing an ugly one is a pain since you only get one choice. This
should help chaplains get the armor they actually want without needing
to check the wiki.
## Changelog
🆑 Melbert
qol: The chaplain's armament beacon now displays a radial instead of a
text list, showing previews of what all the armor sets look like
qol: (Almost) all choice beacons now use a pod to send their item,
instead of just magicking it under your feet
code: Cleaned up some choice beacon code.
/🆑
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup.
* update modular
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Automatic changelog for PR #18019 [ci skip]
* [MIRROR] Fixed an improper proc ref. [MDB IGNORE] (#18031)
Fixed an improper proc ref.
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Automatic changelog for PR #18031 [ci skip]
* Fiiix!
* Fuck
* [MIRROR] Windoors are vulnerable to a jaws of life [MDB IGNORE] (#18040)
* Windoors are vulnerable to a jaws of life (#71733)
## About The Pull Request
Windoors can be pried by a jaws of life now
## Why It's Good For The Game
Windoors are already immune to any kind of deconstruction outside of
bashing it, so making it immune to the jaws of life as well seems
excessive
## Changelog
🆑
balance: jaws of life can pry windoors
/🆑
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
* Windoors are vulnerable to a jaws of life
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
* Automatic changelog for PR #18040 [ci skip]
* Automatic changelog compile [ci skip]
* [fix] fixes det revolver icons (#18049)
* Delete guns.dmi
* Add files via upload
* Automatic changelog for PR #18049 [ci skip]
* [MIRROR] Fixes fake links in Adminwho that led to "no_feedback_link" [MDB IGNORE] (#18027)
* Fixes fake links in Adminwho that led to "no_feedback_link" (#71804)
## About The Pull Request
Basically, sometimes, very rarely, it was possible for this to happen,
when it shouldn't be happening. I was wondering for a little while what
it was about, and then I finally downloaded my chat logs for a round and
realized what was going on. It should no longer happen.
## Why It's Good For The Game
Clickable links that lead nowhere (and thus don't do anything) aren't
very good for the game.
## Changelog
🆑 GoldenAlpharex
fix: There shouldn't be clickable names in Adminwho that don't do
anything anymore.
/🆑
* Fixes fake links in Adminwho that led to "no_feedback_link"
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fix: Self-Actualization Device Doubling Damage (#18015)
* Change adjustOrganLoss/BruteLoss/FireLoss to set
* Reverts my naive soluton
* Automatic changelog for PR #18027 [ci skip]
* Automatic changelog for PR #18015 [ci skip]
* Fix TGUI latejoin menu not closing properly, properly this time
* Oh yea, flavourtext requirement exists. Not that we actually have it enabled upstream.
* Revert "Merge remote-tracking branch 'upstream/upstream-merge-71883' into fixlatejoinmenu"
This reverts commit 3279e73418f95637162a2923b0431e9e26b43403, reversing
changes made to d46aab7b421fee94d49b57e863bfd8e0917fc43f.
* Fucking stupid code merge shit
* Cool newline bro
* Dumb stupid commented code
* Also this
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com>
Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* fix
Co-authored-by: Rimi Nosha <riminosha@gmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com>
Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Saycode refactor, unit tests, and fixes
* parrot
* SR tweaks
* say tests from pstream/71873
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Fixes a bug where ghosts spawning on the lower z layer would be double offset (#71668)
## About The Pull Request
This code assumes they haven't been offset yet, and they very much have
due to an abstract_move in their pre ..() initialize. Let's just use
initial here it's a cold path so it's fineee
* Fixes a bug where ghosts spawning on the lower z layer would be double offset
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* OpenDream Cleanup Pass - Unused Vars (#71428)
## About The Pull Request
OpenDream (@ Altoids1 specifically) discovered that BYOND will not throw
an unused variable warning if its type doesn't exist. So this removes
those from TG.
Co-authored-by: ike709 <ike709@ github.com>
* OpenDream Cleanup Pass - Unused Vars
Co-authored-by: ike709 <ike709@users.noreply.github.com>
Co-authored-by: ike709 <ike709@ github.com>
* Adds extended tooltip information to observables in the orbit ui (#70547)
A continuation of #68389 which addresses an issue that still bothers me to this day:
The orbit menu displays a player's name as a combo of name id transform. It can get lengthy to a point where the names clip the entire screen (as buttons do not multiline).
This PR shortens excessively long player names on the orbit menu and adds a tooltip that will show extended info like full name, health and job titles.
Mostly drawn from concerns brought up in the original.
* Adds extended tooltip information to observables in the orbit ui
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Trans Thigh-high and Knee-highs (#70295)
This literally just adds the sprites and entries for transgender thigh-highs and knee-highs as clothing options for socks.
Why It's Good For The Game
Inclusivity, as we already have nonbinary and asexual-related clothing.
Changelog
cl
add: Transgender-themed thigh-highs and knee-highs to the clothing options for socks
/cl
* Trans Thigh-high and Knee-highs
Co-authored-by: sadkris <13920323+sadkris@users.noreply.github.com>
* Fix xeno hivemind talk causing hissing sound (#69844)
* Fix xeno hivemind talk causing hissing sound
* Fix dullahan speech arg
Add message_range and saymode to say arguments
Add new say args to other say procs
Add new say args to other say procs
* Revert "Fix dullahan speech arg"
This reverts commit abff2bec1a03c1270b2896faa547c465e046ad78.
* Fix speech_args to be list
* Refactor hulk speech signal handler
* Revert "Revert "Fix dullahan speech arg""
This reverts commit 58997930096ef6b7fa8a1c79395595e61db954c6.
* Change filterproof to be null like other say procs
* Remove unused COMSIG_MOB_SAY defines
* Readd defines for COMSIGH_MOB_SAY
* Fix xeno hivemind talk causing hissing sound
* Updates the arguments of the say and whisper procs for the borers
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Adds the Moffra wing pattern (and antennae) (#70064)
Adds the moffra wing pattern and antennae based off of mothra.
New choices to express yourself is always good and it seems like a fun reference.
cl
imageadd: Adds Moffra wing and antennae sprites
/cl
* Adds the Moffra wing pattern (and antennae)
Co-authored-by: Carmine <104859726+Bluedino1025@users.noreply.github.com>