Commit Graph

3467 Commits

Author SHA1 Message Date
Timberpoes
eff18729dc Fixes 2 issues with the unbanning panel and adds a reban button. (#62122)
* Rearrangeify

* Add unban button, fix input box shittery

* Better unban/reban button logic. Actually add the topic call.

* Improved logging message.

* Jordie review
2021-10-20 18:56:50 +11:00
Ryll Ryll
3ef17dd5ad Admins now get a little notice if they start responding to a ticket someone else is already responding to (#62025) 2021-10-18 16:40:01 -07:00
Seris02
694c2999b0 makes it so the sanitize_hexcolors' default is 6 characters rather than 3 and gets rid of color_legacy (#61980) 2021-10-15 11:48:55 -07:00
Mothblocks
3be6f04b5c Add missing SIGNAL_HANDLERs (#62115)
Add missing SIGNAL_HANDLERs
2021-10-15 07:01:02 +01:00
Ghilker
95c8e00af7 cleanup _HELPERS/_lists.dm and all the necessary files (#61827)
Bring _HELPERS/_lists.dm to latest standards by:
-Adding proper documentation and fixing existing one
-Giving vars proper names
-Procs now use snake case as per standard (many files that use those procs will be affected)
2021-10-12 14:48:51 +01:00
tralezab
3d5ee892fa toggle random events on/off no longer sends unspanned feedback to user (#61982)
The verb already messages admins and pressing the verb requires you to be an admin. to_chat entirely unneeded!
2021-10-10 08:26:44 +01:00
LemonInTheDark
e663308b0d Adds SHOULD_NOT_SLEEP to Destroy. Why didn't we do this before. (#61943) 2021-10-09 04:29:33 -07:00
Ghom
4d84a5b36e The monkey portrait decoration is now a set of random pictures that also act as persistent photo frames. Every station map gets one. (#61844)
spriteadd: Desouled the picture frame sprites.
2021-10-08 06:10:03 -04:00
Jordan Brown
765c7840e2 [s] Cleanup escalation unsafe procs (#61905)
Fixes admins spawning in atoms and datums without the DF_VAR_EDITED flag
2021-10-06 13:12:50 +01:00
Ryll Ryll
ee541f35df fixes multiple spaces breaking asay (#61939) 2021-10-05 22:39:08 -07:00
Ghilker
b95c0366a4 _HELPERS/unsorted.dm has been sorted (#61882)
bring code up to latest standards, move many procs to named files inside _HELPERS
no idea where to put some of these procs, help is appreciated
made more files to contain some unique code, deleted unsorted.dm, we can rest now
2021-10-05 20:22:57 +01:00
Mothblocks
5a60e6bc67 Removes a useless but very hilarious define and really I just want to show the rest of you that this used to be here (#61866)
Removes SDQL_qdel_datum and please just click files changed okay
2021-10-04 15:03:33 +01:00
Timberpoes
ce352fb46b Use ckeys instead of keys in key name helper proc and new_player login. (#61857) 2021-10-03 20:15:57 -07:00
Ghilker
682e7132b5 cleanup of _HELPERS/game.dm (#61859)
some more cleanup, game.dm this time
2021-10-03 16:51:52 -04:00
Mothblocks
f158357375 Add preference to disable deadmin preferences in CentCom (#61751) 2021-10-01 04:00:32 +03:00
Fikou
43a2b90b31 renames enable debug verbs to enable mapping verbs (#61725)
its such a stupid fucking name, the verbs are all mapping related, they are all in the mapping tab, nobody knows about them because its called debug verbs for some reason instead of mapping verbs
2021-09-28 19:56:17 +01:00
Mothblocks
a23b27534a Fixes check AI laws collapsing, making them unreadable (#61724)
Previously, this would be putting (x2) next to the first 3 laws, and it would look like the 2nd cyborg had no laws.
2021-09-28 16:00:01 +01:00
Ghom
3c5d6221d7 You can now use backslashes as an escape character for text modification. (#61621) 2021-09-27 17:08:03 -07:00
Fikou
74be6236d5 Secret Gateways: Config loaded Away Missions + Anti-observing Z level traits (#61719) 2021-09-27 17:04:27 -07:00
Ryll Ryll
cb65ddcff8 Adds pinging to asay (#61712)
I spend a lot of my time adminning the servers alt tabbed when not much is going on, tabbing back in every 5-10 minutes to see what's happening or when I hear a bwoink. Sometimes I miss out on other admins asking me questions or trying to get my attention, and I'll only realize way later when I'm scrolling back up through the chat logs, if at all.

This PR adds the ability to @ other admins in asay by their ckey, which underlines the pinged name, plays a bloop sound (the one when a vote starts) and flashes their window icon if they're not tabbed in.
2021-09-27 13:15:52 -04:00
John Willard
654aece196 Lets admins cancel out of sending an announcement (#61717) 2021-09-27 19:03:21 +02:00
Iamgoofball
6fe8e8d76c FAMILIES 4.0: "fuck it, MRP only this time" (#61123)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: MrMelbert <kmelbert4@gmail.com>
2021-09-27 01:04:41 -07:00
windarkata
2d01f4713e change job slot logging to use job_debug (#61688)
admin topics for updating available jobs weren't logged at all and that was kinda dumb
john willard logged the console to game which i disagree with so i want to move that also
2021-09-26 21:28:37 +01:00
Jordan Brown
ccb75a554f Changes a bunch of New()s to Initialize()s (#61626) 2021-09-26 00:15:49 -07:00
Mothblocks
dbe560f4d9 Change the word filter configuration to allow providing reasons, fix emotes not working in filters, and implement separate OOC/IC/PDA filters (#61606) 2021-09-25 21:13:43 -07:00
tralezab
1064b84a9a Fully Immersing someone now reminds them to roleplay correctly (#61657)
Please roleplay correctly!
2021-09-24 17:58:46 -04:00
tralezab
6c01cc2c01 every case of initialize that should have mapload, does (#61623)
## About The Pull Request

stop forgetting to include mapload, if you don't include it then every single subtype past it by default doesn't include it

for example, `obj/item` didn't include mapload so every single item by default didn't fill in mapload

![](https://media.discordapp.net/attachments/823293417186000909/875122648605147146/image0.gif)

## Regex used:

procs without args, not even regex

`/Initialize()`

procs with args
`\/Initialize\((?!mapload)((.)*\w)?`

cleanup of things i didn't want to mapload:
`\/datum\/(.)*\/Initialize\(mapload`
2021-09-24 17:56:50 -04:00
Watermelon914
44dc49b766 Proccall handler hotfix (#61642)
Fixes proccall handlers runtiming because GLOB.AdminProcCallHandler not being set
2021-09-23 18:56:12 -07:00
Timberpoes
16d541e975 [TM Candidate] Overhauls orbit and POI code to fix part of issue #61508 where players could observe /mob/living/new_player on the lobby. (#61509) 2021-09-22 15:54:15 -07:00
Mothblocks
e3c909cf6e Add admin panel for station traits (#61546)
Admins can now revert (most) station traits before a round starts, as well as setup the station traits that will run next round.

Previously, admins had no control over this system, making it sometimes painful for running planned events.

It is not feasible to update the station traits of the current round, considering some apply pre-roundstart, but it is doable to edit the station traits of the next round.
2021-09-22 22:23:04 +01:00
Watermelon914
9295f0d5bd [s] Fixed admins being able to bypass proccall protections via remote sdql and circuits. (#61482)
About The Pull Request

Admins can bypass IsAdminAdvancedProcCall checks by using these methods of proccall because proccall protection is kinda dumb. This has been tweaked so that there is proper proccall protection for these methods of proccall.
Code is hacky, but there's not much of a choice if we want procs to be properly protected from admin proccalls from any sort of remote source. If anyone has a better idea on how to implement this, feel free to hit me up.

We need a special global mob that handles proccalls from sources that may not have a usr/client to refer back to. IsAdminAdvancedProcCall() relies usr being defined, so if no usr is defined, then this will always return false. This has been adjusted so that proccalls without a usr/client to refer back to will instead set usr to this special mob, which will then let the IsAdminAdvancedProcCall() return true by comparing whether usr == this special global mob.
Why It's Good For The Game

Admins can no longer bypass IsAdminAdvancedProcCall checks.
Changelog

cl
admin: Admins are no longer able to bypass proccall protections using remote methods of proccalling.
/cl
2021-09-22 12:09:16 +12:00
Timberpoes
d14b6cc849 Radically improves explosion logging. (#61419)
Adds some extra vars and logic to explosion code to make powerful logging entries that should help admins narrow down when explosives get misused.

Records this new info in the feedback database and bumps the explosion version +1 as a result of this.
2021-09-18 18:13:16 +01:00
tralezab
b69d87a76e Sparring Sect! (#61316)
Adds the sparring god. Your deity wants you to go out and spar people for self improvement.

Sparring
You can create contracts from paper as the chaplain. The contracts come with a set of conditions for the battle.

You can set which weapons are allowed.

You can set what you earn from winning.

You can set where you fight.

BOTH participants in the sparring match must agree to the terms for the fight to begin. Changing the terms will remove any other signatures on the contract, requiring them to review and willingly sign again.

Setting the stakes to be holy will give you favor for winning the fight. You can only do this once per person, so you can't farm points. You can use points on declaring new areas as arenas, or if you save up enough, buff your heart to keep fighting in dangerous conditions.
2021-09-17 21:04:47 +01:00
Emmett Gaines
04dfcc6559 GAGS fix + debug improvements I needed to find it (#60819)
This fix was one hell of a debug journey. Icon.Insert() was the issue here but I'm not sure if it counts as byond bug in this particular case. When you insert a single frame icon, if an existing icon state of the same name exists normally it would be overridden. However different things happen if the icon that gets overridden has multiple frames. I'm not fully sure of the different behaviors but depending on what the icons consisted of you could get animated sprites where every frame was the same or appending frames to animated sprites in strange ways.

This has been fixed by making sure no Inserts are overriding existing icon states so that the strange behavior doesn't have to be dealt with.

The GAGS debug menu has been upgraded a bit on the way to fixing this bug. A toggle to automatically refresh icons when the dmi or json configuration are updated has been added and the step by step preview will only show steps now involved in the creation of the icon state you select.
2021-09-16 23:55:12 +01:00
Ghom
2f7404f8b1 Fixes Everyone Is A Traitor not affecting latejoins. (#61071)
I have made the admin sheanigean use a datum that registers the COMSIG_GLOB_CREWMEMBER_JOINED signal to give latejoins the traitor antag datum. I have also moved the global comsig at the end of AttemptLateSpawn(), which is necessary to stop latejoins who already rolled antag from getting the role and also make it work for non humans (though robots can't be latejoined as right now). For summon guns/magic, a ishuman check has been added, and the definition of the make_scottish() has been moved to living. This shouldn't affect how the other datums who use the same comsig work.
2021-09-15 13:32:26 +01:00
Mothblocks
5a4c87a9fc tgui Preferences Menu + total rewrite of the preferences backend (#61313)
About The Pull Request

Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.

Splits game preferences into its own window.

Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.

This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.

Fixes #60823
Fixes #28907
Fixes #44887
Fixes #59912
Fixes #58458
Fixes #59181
Major TODOs

Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc

    A lot of specialized testing so that people's real data don't get corrupted

Changelog

cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl
2021-09-15 10:11:11 +12:00
Fikou
1b5e20fe6c server restarting stuff uses alert instead of tgui alert (#61405)
if tgui is broken you should still be able to reboot world
2021-09-12 15:37:18 -04:00
Fikou
156b08bd22 adds infinity to vv classes (#61302)
adds infinity as a vv option
2021-09-11 07:02:49 +01:00
Fikou
ff48fac9f4 actually fixes the wrapping on ahelps (#61282) 2021-09-08 19:54:19 -07:00
tralezab
4d7f2952e4 [READY] Adds memory system, and engraving walls with chisels (#60302)
Co-authored-by: MonkeyThatCodes <monkey>
Co-authored-by: MonkeyThatCodes <MonkeyThatCodes@deez.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: AMonkeyThatCodes <20987591+AMonkeyThatCodes@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-09-08 15:03:07 -07:00
Fikou
324f54bb49 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
2021-09-07 18:40:35 +01:00
Y0SH1M4S73R
ff974b82d1 fixes sdql spell parsing (#61248) 2021-09-06 02:35:15 -07:00
Timberpoes
7df1931ab0 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
2021-09-05 11:23:09 -04:00
Fikou
995296c742 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
2021-09-05 11:06:05 -04:00
Watermelon914
bf9165878a 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.
2021-09-02 19:37:26 -04:00
Kyle Spier-Swenson
b0e57a8776 Fix adminban limit permission check (#61172)
this is likely what was intended
2021-09-02 19:27:00 -04:00
Mothblocks
e09dc8ba24 Reorder the POPUP button (#61174)
Hurts muscle memory in a way I didn't anticipate. New version puts it behind the REJT button.
2021-09-02 19:26:30 -04:00
LemonInTheDark
1f5e76a39f [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
2021-09-02 08:36:36 +01:00
Timberpoes
25de7ded2b 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.
2021-09-01 13:01:54 +01:00
Beatrice
4e491c902d 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>
2021-08-31 16:31:59 -07:00