* Changes Admin DSAY rank display to a tooltip (#67086)
changes the dsay rank to a tooltip
* Changes Admin DSAY rank display to a tooltip
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Refactors the forensics component into a datum
* Refactors the forensics component into a datum
* Refactors the forensics component into a datum
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Converts drunkness and dizziness to status effects. Refactors status effect examine text (and, subsequently, stabilized black extracts). (#66340)
* Refactors dizziness into a status effect
* Refactors the dizziness setter to use the new kind
* Drunkness.
- Should drunk continue to work off of a magic value or be swapped to duration? I've not yet decided: For understandability it's preferabale for "drunk" to use a timer (they are drunk for 3 more minutes), but both adding drunk and decreasing drunk currently use weird calculations which would be difficult to carry over.
- Ballmer is a liver trait
* Dizzy was a setter, not an adjuster
* Does all the drunk effects over
- refactors examine text fully
- refactors stabilized blacks because of this
* Removed
* repaths, fixes some issues
* Minor fixes
* Some erroneous changes
* Fixes some dizziness errors
* Consistency thing
* Warning
* Undoes this change, I dont like its implementation
* max_duration
* Max amount
* Should be a negative
* max duration
* drunk doesn't tick on death
* Rework dizziness strength
* Erroneous dizzy change
* Fixes return type
* this should do it?
* well, one more
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Refactors firestacks into status effects (#66573)
This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.
Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.
Also changed some related proc names to be snake_case like everything should be.
This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing
* Hud Image Culling By Z Level: Theft edition (#65189)
* makes hud images only apply by z level
* makes some of the atom_hud procs have better names
* fixes warning with the hud_user list and adds better documentation
* better docs for hud_images
* removes TODOs
* docs for hud_list
* adds support for linked z levels so mobs can see lower ones
* fixes merge conflict and shittily makes only shocked airlocks get added
* adds support for setting images in the hud as active and inactive
* gets rid of unatomic spatial grid change
* maybe i should actually try COMPILING my changes
* fixes merge skew and makes it compile again
* fixes huds refusing to remove from users who changed z level
* improves z level and registration logic
* fixes antag huds not appearing
* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me
* Ensures that hiding a basic appearance also hides the atom's active list too
* Fixes antag huds going poof
Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it
This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.
Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.
* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list
* fixes mistake with hud_users list being set non associatively (bad)
* as anything in bot path loops
* Fixes merge skew problems
* Makes bot paths non global
This way they can show themselves to only the bot that "owns" them, ya
feel me?
* Fixes huds not showing up sometimes, cleans up some code
Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:
call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen
*cries*
* Renames add_hud_to_atom to show_to
My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars
* remove_hud_from_mob -> hide_from
* Nitpicks a few comments
* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh
* Moves check down, improves stack trace a bit
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* small touch-up
* this should do it
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* [MDB IGNORE] You can have your cake and eat it too. Remake of #66406 (Splitting up areas.dmi + code related stuff) (#66726)
Areas.dmi right now houses all of our mapped turfs icons (which is roughly 400 icons). Not an issue, but it's incredibly large and clunky to navigate right now. This isn't an issue for the average coder and/or player code diving, but it is for mappers wanting to add new turfs. Currently, the file has some organization, but its still an overall mess. This PR aims to slice the behemoth with multiple .dmi files corresponding to specific areas.
I also plan to repath /area/* -> /area/station/* for station turf only. This is to clean it up, as most other turfs follow this format (that being /area/turf_zone/*).
I'm also writing an update paths file as I go along.
* fixbatch 1
* fug
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Improper forced qdel cleanup, some expanded del all verbs (#66595)
* Removes all supurfolus uses of QDEL_HINT_LETMELIVE
This define exists to allow abstract, sturucturally important things to
opt out of being qdeleted.
It does not exist to be a "Immune to everything" get out of jail free
card.
We have systems for this, and it's not appropriate here.
This change is inherently breaking, because things might be improperly
qdeling these things. Those issues will need to be resolved in future,
as they pop up
* Changes all needless uses of COMSIG_PARENT_PREQDELETED
It exists for things that want to block the qdel. If that's not you,
don't use it
* Adds force and hard del verbs, for chip and break glass cases
respectively
The harddel verb comes with two options before it's run, to let you
tailor it to your level of fucked
* Damn you nova
Adds proper parent returns instead of . = ..()
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Ensures immortality talismans cannot delete their human if something goes fuckey. Thanks ath/oro for pointing this out
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Improper forced qdel cleanup, some expanded del all verbs
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code (#65634)
About The Pull Request
Continuing on the work started in #65154 and 61712, this PR expands what asay linking can be used for and improves the code for it. You can now link tickets in asay by saying #[ticket ID] like #1. This shows the ticket's status and who filed the ahelp. Might remove the ticket filer if it's not really useful.
This also fixes an oversight of mine with datum linking, with how mobs and certain other datums (armor datums, landmarks) don't follow the memory address format for their tag values. Datum linking now uses a @ [tag] format, so you can link to a mob by saying @ mob_702 and such.
dreamseeker_2022-03-22_21-51-41.png
Why It's Good For The Game
More robust admin tools
Changelog
cl Ryll/Shaps
admin: You can now link tickets in asay with #[ticket ID], like #1 and #5.
admin: asay datum linking now functions by saying '@ [datum's tag value]`, whether it's a normal datum (@ 0x2001169) or a mob (@ mob_702) or whatever else.
Discord_2022-03-16_23-38-09.png
(old pic)
* Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Makes the beaker panel send assets to the user instead of null. (#65756)
* Fixes the beaker panel runtiming every time you open it.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: SkyratBot <skyratcommunity@gmail.com>
* Arconomy Adjacent Content: Newscaster Refactor Omega
* Fixed all of the issues that resulted from the repathing
* Fixed our modularized priority_announce.dm
* Deleted newscaster.dm because it was still there due to two comments that weren't overly important
* Fixed merge conflicts for delta
* Fixed a bunch of skyrat maps so they compile :)
* I forgor a few more maps
* Add newscaster_bounty for our newscaster sprite (#12344)
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
* Changes the default ghost lighting, makes it a preference (#65352)
* Changes the default ghost lighting, makes it a preference
I think the way ghost lighting looks right now is really crummy.
It's dark enough you can see where the shadows should be, but it's just
bright enough for everything to look like dog poo
A lot of what makes the game look nice is the depth of the lighting
and if we just hide that for observers we're shooting ourselves in the
foot.
I'm also making it a game preference, so if someone wants to have bad
opinions they can easily.
* Changes the default ghost lighting, makes it a preference
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds a colorblind accessability testing tool (#65217)
* Adds a colorblind accessability testing tool
I keep finding myself worrying about if things I create will be parsable
for colorblind people. So I've made a debug tool for approximating
different extreme forms of colorblindness.
It's very very much a hack. We can't do the proper correction required
to actually deal directly with long medium and short wavelengths of
light, so we need to rely on approximations. Part of that means say,
bright things being brighter then they ought to be. S not how people
actually experience things, but it's not something we can do anything
about in byond.
Anyway uh, it works by taking color matrixes, and using the plane master
grouping system floyd added to apply them to most all parts of the game
you would want to color correct.
There's some slight fragility here, but I couldn't think of a better way
of handling it.
We also need to deal with planes that have BLEND_MULTIPLY as their
blendmode, since that fucks up the filter. I've come up with a hack for
it, since I wanted to avoid breaking anything.
Oh and since I want it to apply to huds too I added plane masters to
represent them. I think that's about it.
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds a colorblind accessability testing tool
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds a seperate pick proc to work on lists (#65178)
Because of how arglist() works, _pick was only working on args matching
the format pick(1, 2 ,3)
Because this is logic that happens inside pick itself, and I can't
figure out the proper way to actually pass things in, I've created
_pick_list so admins have a sane way to pick from lists.
* Adds a seperate pick proc to work on lists
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes some code style issues for more free GBP (#65133)
* Fixes some code style issues for more free GBP
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* Changes what appears for urgent ahelps to supportmins. (#64748)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Changes what appears for urgent ahelps to supportmins.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fix: LogAhelp invalid integer - use ticket ID (#64875)
* Fix: LogAhelp invalid integer - use ticket ID
Co-authored-by: Aziz Chynaliev <azizonkg@gmail.com>
* Fire breath can be used without the ability to speak (+ code improvement) (#64796)
* fire breath can be done without the ability to speak + SPELL code improvement
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* OPFOR PART ONE
* 0
* E
* E
* 0
* E
* e
* Update opposing_force_datum.dm
* E
* E
* Admin stuffs
* Admin control GUI
* E
* Chat
* 0
* Update opposing_force_datum.dm
* System messages, better admin chat procs, UI fixes.
* Update _basemap.dm
* who thought holding a ref to the client was a good fucking idea?
* 0
* Update opposing_force_datum.dm
* Update modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm
* Equipment tab
* equipment part 2
* Tidy up, finishing up equipments panel, some font fixes
* clarity and continuity
* Update opposing_force_datum.dm
* more logic fixes
* Update opposing_force_datum.dm
* weeee
* Update opposing_force_datum.dm
* chat commands
* 0
* ee
* Update opposing_force_datum.dm
* Itemspawning
* Assassinate objectives only need one kill
* new commands
* Update opposing_force_datum.dm
* f
* weee roundend report
* E
* ew
* E
* E
* more fixes
* E
* E
* Update opposing_force_datum.dm
* Update opposing_force_datum.dm
* Fixes
* request opfor
* Update admin_procs.dm
* Update adminhelp.dm
* Update opposing_force_datum.dm
* fex
* admin info panel, approve checks, queue position checks
* panel improvements, better logging format
* Barboza equipment list Vol 1 (#10386)
* Update opposing_force_equipment.dm
* silly little changes to the silly little code
i doubt this will be seen by anyone teehee
* OpFor Prep Balance
Shotguns have been prepped into opfor catalog. Model 23-37 is now an 8 rounder pump action, M2 is untouched as a semi auto peacekeeper variation and SAS14 is semi auto as it was meant to be
* OpFor Prep Balance
Shotguns have been prepped into opfor catalog. Model 23-37 is now an 8 rounder pump action, M2 is untouched as a semi auto peacekeeper variation and SAS14 is semi auto as it was meant to be. 23-37 keeps its beanbag load while M2 comes with slugs as a proper combat shotgun
* Gear Pass 1
* Mag Variety for SAS14
Since its gonna be an opfor exclusive why not add some choices. Refilling its ammo is nigh impossible so here comes new mags!
* Gear Pass 2
yes I 'code' in github web
* Gear Pass 3
just martial arts and some stuff for today, tomorrow i add the discord suggestions
* opfor equipment up the ass
woo spider
* descs for everyone
* g357
* altyn
* Gear Pass 4
syndicakes and nri
* Item Variety Document for Opfor
* gunman loadout
* gunman update
* Gear Pass 5
gear harder
* Update opposing_force_equipment.dm
* big typo fuckup fix
* lcoat desc fix
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/opposing_force/code/opposing_force_equipment.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* DocNameChange
also no more shamwow
* Update opposing_force_equipment.dm
* Update modular_skyrat/modules/sec_haul/code/guns/guns.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update modular_skyrat/modules/sec_haul/code/guns/guns.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Update items.dm
* Update opposing_force_equipment.dm
* Update modular_skyrat/modules/opposing_force/code/items.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* More Categories and Expanded Title
Adds loadouts and explosives tab, increases title limit to 40 instead of 20 for objectives
* Apply suggestions from code review
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: dawsonkeyes <76002401+dawsonkeyes@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Automatic changelog generation for PR #10386 [ci skip]
* E
* Update opposing_force_equipment.dm
* E
* Update items.dm
* Vol2Remastered (#10413)
* Update modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Bye bye high-frequency sword
* Fixed the space cash too
* Review comments
* Update counter.dm
* general antagonist ban
* opfor ban
* Update opposing_force_subsystem.dm
Co-authored-by: ErdinyoBarboza <erdinyobarboza@gmail.com>
Co-authored-by: dawsonkeyes <76002401+dawsonkeyes@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Refactors dbcore and limits the maximum amount of concurrent async queries to a variable amount (#59676)
Refactors dbcore to work off a subsystem if executed async and limits the maximum amount of concurrent async queries to 25.
This has been tested locally on a mysql docker image and there were no crashes (as long as you didn't run it with debug extools) + data was getting recorded fine.
Why It's Good For The Game
May or may not resolve terry crashes, however, each query creates a new thread which takes up 2mb, preventing the game from using that 2mb. This can lead to ooms if they stack up, e.g. due to poor connectivity. This solves that issue.
maintainer note: this did not actually resolve the crashes, but has value anyway. Crashes were sidestepped fixed by finding out Large Address Awareness works
cl
refactor: Refactors dbcore.dm to possibly resolve the crashes that happen on Terry.
/cl
* Fixes an oversight in database code and cleans up telemetry (#64177)
As it is right now, we never actually clear the temporary list processing_queries
So if the subsystem is for some reason unable to complete a run, we will just whip right back around to it again
If it's been long enough, this could even cause horrific log spam. There was just now a manuel round with roughly 30k undeleted query errors. not good.
But what was actually not deleting you may ask?
Well
When you create a db request, a 5 minute timer starts. after those 5 minutes are up, the request is qdeleted by the db subsystem
This is to prevent the creation of unused requests, and to handle requests that are never cleaned up
Telemetry code was creating all of its db requests inside a for loop that could check tick, and then later
attempting to call them in series
Since requests by default sleep, this almost always lead to undeleted queries, which harddel'd given long enough periods
I've fixed this by moving the data gathering away from the query creation
Why is it good for the game
I was working on atmos code, happy, safe in my delusion, when suddenly I got a ping from tattle freaking out over 200 undeleted queries a second
This resolves that issue, so I can once again live in peace
Changelog
cl
admin: Telemetry code will spam you with undeleted query logs much less often now!
server: Improved how the db subsystem handles undeleted queries, should never have an incident like that again
/cl
* Fixes an error in telemetry queries (#64205)
* Hardsynced time_track.dm with upstream
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Misc admin tools improvements (#63665)
About The Pull Request
This PR makes a few small tweaks to admin tools that I think frequent users may appreciate.
Adds the "Find Updated Panel" button to the player panel, which bring up that ckey's newest PP if one exists. Useful for when the person you're inspecting has changed mobs so you don't have to search for their new mob to get their new panel.
Adds VV and TAG links to all the entries in the Get-Contents right click verb. This should make checking and editing someone's gear easier, since you don't have to VV the person -> their satchel -> their survival box -> their oxygen tank for example, you can just click the VV link for the tank directly.
Lets you ignore punctuation in the F6 player search menu. This was a request, so if you have a silicon named "H.E.R.A.", you can now pull it up by just searching "hera". Also ignores spaces, but I doubt that'll cause any issues.
* Misc admin tools improvements
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>