* server restarting stuff uses alert instead of tgui alert (#61405)
if tgui is broken you should still be able to reboot world
* server restarting stuff uses alert instead of tgui alert
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* individual logging is now visible even with client logged out (#61269)
individual logging now relies on the global list of player details, instead of checking that client's player details which doesnt work if client is logged off
* individual logging is now visible even with client logged out
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Reimagines the imaginary friend as a fancy new smite. (#61218)
Fixed imaginary friends being unable to turn by movement or holding down ctrl. I assume this was broken when abstract_move was implemented.
Makes some tweaks to the Imaginary Friend mob. It no longer cares about any brain traumas and can exist standalone.
Added the ability to take a set of datum prefs as an argument. It will attempt to create an imaginary friend as per those datum prefs.
This imaginary friend can be a cyborg or an AI core.
Takes this improved behaviour and packages it into a brand new smite that allows admins to inflict anyone with a permanent imaginary friend. This is not tied to a brain trauma. You can probably give imaginary friends imaginary friends. You can probably give the AI eye an imaginary friend. I have not tested this. It is probably a bad idea.
You can give simplemobs imaginary friends. Basic mobs. Silicons.
You choose whether the imaginary friend takes on the preferences of the person you choose to be the imaginary friend or is random
* Reimagines the imaginary friend as a fancy new smite.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* makes rslve button in admin help panel not wrap around (#61239)
makes admin help panel wider so rslve doesnt wrap around to the bottom line
* makes rslve button in admin help panel not wrap around
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Added permission verification to the change_admin_rank proc. (#61137)
Checks if usr has R_PERMISSION before going any further in the change_admin_rank proc.
* Added permission verification to the change_admin_rank proc
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Reorder the POPUP button (#61174)
Hurts muscle memory in a way I didn't anticipate. New version puts it behind the REJT button.
* Reorder the POPUP button to be behind closure links
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* [s] Audits object say() uses to make handling text more safe (#61147)
Made all say()s deal with encoding, audited all uses of say() to prevent double encoding or like, manually inserting span().
I left some stuff without sanitize that only draws from the code, since it's hell to clean up otherwise. That
and I let admins do whatever the fuck they want
* [s] Audits object say() uses to make handling text more safe
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes being able to spam ghost role notifications. (#61085)
There are methods that let players spam the everloving shit out of ghosts with BONG BONG BONG BONG BONG BONG BONG etc. through being able to constantly poll ghosts for roles with no restriction or cooldown.
Examples are laughter and slaughter demon antag_spawners.
It makes no sense to be able to concurrently poll for the same mob. As a result, I've now added a guard against this. The proc has been given a static list of mobs it's polling for ghost roles for. If it's already polling for ghost roles for a given mob, then it just early returns with an empty list, otherwise it adds the mob to the static list when the poll starts and removes it when the poll ends.
I've also done a little cleanup in var names and the proc name, with a find-and-replace done. There weren't many things calling it and none used named keywords in the args so should be fine.
There is also poll_candidates_for_mobs (also included in my cleanup) - This proc is basically only called by admins via sentience balloons and they have their own guards against spamming (the balloon pops and thus can only be used once)
Also fixes an issue in /mob/living/silicon/robot/proc/replace_banned_cyborg() where incorrect args were used in the proc call to poll for candidates.
* Fixes being able to spam ghost role notifications.
* a
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Give admins the ability to put a popup notice for players in tickets (#61010)
Admins can now give players a popup if they are not responding to tickets.
Popup is cleared when player replies or ticket is resolved/closed.
As more and more of the chat screen is made irrelevant, new players read it less and less.
This means that a lot of new players are ignoring ahelps, which is something I've encountered myself.
* Give admins the ability to put a popup notice for players in tickets
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Admins Can Once Again Click Ban Panel Categories to Toggle Their Checkboxes (#60904)
* Re-Adds Header Checkboxes
- Ban Panel categories can now be clicked to click all the checkboxes in their category
- Adds a new js method called header_click_all_checkboxes whichs clicks all the checkboxes whose class is the hidden checkbox's name
Re-introduces a function that was lost with #60578 (6c4134d1ea) , closes#60903 (Admins being unable to click on the ban category and check all subcheckboxes). The method was largely copied, but was changed to comply with the toggle_other_checkboxes() method introduced with the aforementioned PR by replacing a .checked assignment with a .click() call to ensure that duplicate entries are properly marked
Admins can now click categories to more easily ban people from all entries in that category. Demonstrated below to show that checkboxes are being toggled correctly in all relevant categories
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Admins Can Once Again Click Ban Panel Categories to Toggle Their Checkboxes
Co-authored-by: Beatrice <83368538+SpaceDragon00@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Refactors and improves SDQL spells (#60972)
SDQL spells have been improved in several ways:
- The behavior of executing SDQL spell queries using datums has been migrated to a component
- Projectile SDQL spells can now fire any subtype of /obj/projectile
- Touch SDQL spells can use any subtype of /obj/item/melee/touch_attack
- More robust parse error detection
- Parse errors while loading a file from json are displayed in a modal window, with the option to load whatever parts of the spell were correctly parsed (be forewarned, scrollable sections are scuffed, and the ones that appear in the parse error modal can only be scrolled through by drag-selecting the text within them)
- Fixes a bug with the names of variables within lists
- Compartmentalizes SDQL spell code into several .dm files.
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* Refactors and improves SDQL spells
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* Adds Manage Player Ranks verb
It works for Donators, Mentors and Veterans so far, and it shouldn't be too hard to add some more.
* Adds a temporary Cancel button while waiting for /tg/ to add optional X button to tgui_alert
* Funny copy-paste moment
* Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* AAAAAAAAAAA
* pollution scrubbbies
* fires cause smoke, right? Also NSS journey has scrubbies
* washing things removes the smell!
* what the fuck were you doing last night
* Update temporary_pollution_emission_component.dm
* space turfs shouldn't have pollution
* Fix air now fixes smoke
* Update pollution.dm
* Update pollution.dm
* Update bonfire.dm
* Adds new config flag to mirror logging of suspicious failed logins to its own file.
* Update IsBanned.dm
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fixes an unclear invisimin toggle message for when it would be redundant (#60794)
Adds a check for observers to invisimin verb code.
Less admins thinking it's broken when it just tells them they are disabling it over and over as an observer.
* Fixes an unclear invisimin toggle message for when it would be redundant
Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
* Revert "[MIRROR] Refactors dbcore and limits the maximum amount of concurrent async queries to a variable amount (#6436)"
This reverts commit e2519525f9.
* Update time_track.dm
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fix polymorph behavior for pAIs and mimics (#60502)
This fixes#58258. Basically anytime a pAI holoform gets shot with a staff of changing or polymorph item it would change their mob type. This allowed ghost roles infinite respawns since the pAI card is not destroyed when it gets polymorphed. An unlimited army can be created with no downsides since you can keep bringing people back to life with the pAI requests.
I also went and fixed another strange behavior with polymorph, where if you used a staff of animate on an object, you could turn around and then polymorph the object into a mob. The animate magic is supposed to wear off the object after a certain while so I made the mimic immune to polymorph effects.
* Fix polymorph behavior for pAIs and mimics
Co-authored-by: Tim <timothymtorres@gmail.com>
* Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. (#60222)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round.
* a
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>