Commit Graph

64 Commits

Author SHA1 Message Date
Anthony "Shifty Rail
189f77cbb7 Refactors player preferences for modularity + SQLite Unit Test (#37615)
* Pref code refactor

* Empty database reference

* Unit testing SQLite

* Everything else

* Disable unit testing.

* Equivalent

* more robust unit tests
2025-06-07 09:54:09 -04:00
Kurfursten
f14f30b2d0 Direct Sound (#33595) 2022-10-30 12:00:55 -05:00
kane-f
a47c176cef Removes unnecessary admin PM link from admin relay chat broadcasts of centcomm/syndicate/etc sendings (#31631)
* Removes unnecessary admin PM link from admin chat sendings

* Here too

Co-authored-by: kanef <kanef9x@protonmail.com>
2021-12-13 17:48:23 -06:00
DeityLink
a7ddac5c97 [Cult 4] "NAR-SIE'S HOLIDAYS" , aka "The End of Cult 3.0" (#30672)
* day 1

* day 1.1

* day 2

* day 3

* day 4

* day 5

* day 5.1

* day 6

* day 6.1

* day 7

* day 7.1

* day 8

* day 9

* day 10

* day 11

* day 11.1

* 11.1.1

* day 12

* and on the 13th day, he looked upon his work, and was pleased with what he saw

* 13.1

* day 14

* day 15

* day 16

* day 16.1

* fixing conflicts after rebasing post-Europa removal

* day 17

* day 17.1

* day 18

* day 18.1

* day 19

* day 19.1

* day 20

* day 20.1

* day 21

* day 21.1
2021-10-08 20:32:34 -03:00
kane-f
6aab46d21a Logs and sends prayers/centcomm/syndicate/fax messages to admin channels (#29971)
* Logs and sends prayers/centcomm/syndicate/etc messages to admin channels

* Actually uses vars

* C, not X

* Faxes too

* Fixes

* Oh woops

Co-authored-by: kanef <kanef9x@protonmail.com>
2021-07-11 15:23:10 -05:00
Exxion
ef495c554a Update code/modules/admin/verbs/pray.dm
Co-authored-by: DamianX <DamianX@users.noreply.github.com>
2020-07-13 13:51:00 -04:00
Exxion
a1a1abad15 Fixes extra html_encode() in pray and rambler vows 2020-07-13 08:48:31 -04:00
DamianX
562d146b15 Added option to show messages in both special tab and chat (#23512) 2019-07-14 18:32:18 -03:00
I-VAPE-VOX-CLOACA-EVERY-DAY-OF-MY-LIFE
41c504f950 This is so asinine, these keys used to belong to the 'retarded' religion. 2019-04-28 23:34:08 -03:00
I-VAPE-VOX-CLOACA-EVERY-DAY-OF-MY-LIFE
5c4f0190b9 Buttbot prayers 2019-04-28 22:50:00 -03:00
Kurfursten
db6eeaf184 Refactors Religion Choice (#21865)
* Refactors Religion Choice

* Now Predicts Deity Name

* Change order
2019-03-22 16:51:07 -03:00
ShiftyRail
b04102238b Fixes (CA) href ; add a role panel shortcut (#20276)
* Fixes (CA) href ; add a role panel shortcut

* The dangers of copypaste
2018-10-18 17:43:33 +02:00
MadmanMartian
1138d9e6da adds a brain damage button to prayer and player panel (#17047) 2018-01-12 02:20:09 +01:00
Probe1
d634423b73 Cardboard box migration (#13332)
* Migrates cardboard box derivatives to a new DMI and creates a folder icon/obj/storage to store it.

* Migrates cardboard box derivatives to a new DMI and creates a folder icon/obj/storage to store it.

Adds storage.dmi to icons/objs/storage folder

* derp

* Apparently replace all didn't replace all.  VERY STRANGE.
2017-01-10 19:55:33 +01:00
Skullyton
eea0279bfe Adds ass removal button (#13207)
* Ass blast U S A

* logging

* How embarrasing
2017-01-01 14:27:00 -05:00
sood
aabf4e5874 Special tab QOL for admins (#12432)
* Add QoL messages to admins when replying to prayers/faxes/etc

* fix runtime

* sends the replies to msay too

* Prayer response also goes to msay window

* reply faxes are now href links

* oops return

* Return paper after sending fax for reference in Topic() for msay, also fix Inti's forgotten second arg removal

* sanity

because to assume intelligence from everyone who'll ever code is to make an ass of u and me

* Whoops

* formatting and shit

* forgot about edge cases where there's multiple faxes in one department

* removed the <b> I added
2016-11-03 18:22:55 -07:00
Intigracy
4b4b7cd69a logs the unlogged (#12292)
* logs the unlogged

* [formatJumpTo(get_turf(usr))]
2016-10-24 05:11:26 -05:00
Kammerjunk
f99648ec46 Giving easier admin punishment (#12237)
* In which I get back at IAAs for faxing their butts

Drop-Bomb a SHIT but this is better

* PP menu works but is lacking content

I guess SOMEONE will make that eventually maybe who knows
2016-10-17 03:16:25 -05:00
dylanstrategie
8d967c2505 Remove Cancer HREFs aka (CANCER) in prayers (#9302) 2016-04-09 02:30:42 -05:00
dylanstrategie
bfd48c1a99 Adds admin-only "Inflict Cancer" button
* Get cancer and die

* Give Cancer added to VV

* Change process method again

* Restore that line

* When are we going to fix .gitignore ?
2016-04-02 13:39:28 -05:00
clusterfack
0cef1eb885 Fix some shit
Fixes some autismal shit with syndicate/centcomm private messages
Makes them use the same method as pray so the msay window works properly
Fixes that issue probe made about centcomm replying
2016-03-28 01:27:10 -05:00
PJB3005
8eb24bfec0 PANIC 2016-03-27 23:49:26 +02:00
PJB3005
f46f02dc9e Goon-style chat.
Credits to goon for most of the work.
2016-03-27 17:23:07 +02:00
PJB3005
1a2f9ab059 All the EOLs are now LF.
Fuck you too 0D :^)
2016-01-16 23:28:07 +01:00
sonime
2780723118 Rehauls the faxing code, adds a new admin verb Send-Fax which is like replying but without replying, and makes faxes and prayers show up in Special if admins have it enabled. 2015-12-31 03:22:17 -08:00
PJB3005
99bf59d80e Adds a to_chat() proc, to pave the way to a non shit chat. 2015-11-25 15:55:15 +01:00
PJB3005
3cca5692af Removes the panic writer messages. 2015-11-20 03:17:06 +01:00
dylanstrategie
dac2e27ad6 Bring back Chaplain tweaks 2015-08-04 23:20:49 +02:00
D3athrow
d59f6a07b0 comment out panicwriter and saytesting 2015-07-20 16:04:48 -05:00
D3athrow
41d7df01fd just fuck my shit up 2015-07-18 02:30:51 -05:00
DeityLink
b7db010e5c comms 2015-05-16 04:45:09 +02:00
D3athrow
01d2471fc9 Merge branch 'color_replace_2_electric_boogaloo' into Bleeding-Edge
Conflicts:
	code/ATMOSPHERICS/pipe/pipe_dispenser.dm
	code/game/machinery/computer/HolodeckControl.dm
	code/game/machinery/embedded_controller/embedded_controller_base.dm
	code/modules/mining/money_bag.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/silicon/mommi/mommi.dm
	code/modules/mob/living/simple_animal/friendly/farm_animals.dm
	code/modules/research/destructive_analyzer.dm
	code/modules/research/rdconsole.dm
	code/modules/research/xenoarchaeology/machinery/analysis_base.dm
	code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm
	code/modules/research/xenoarchaeology/tools/ano_device_battery.dm
2015-04-12 16:40:59 -05:00
Kurfursten
31ec1256cb This adds sounds to faxes to CentComm and Prayer. Different sounds. Also
it halves the fax time, because 3 minutes is just too long.
2015-04-08 12:49:36 -05:00
ririchiyo
8af7bd1bb7 bandaid fix to fix runtime. 2015-01-17 19:37:02 -05:00
Rob Nelson
01f9f689bb Fix whispering? 2014-08-18 11:09:29 -07:00
Rob Nelson
8209c9bc23 Prayer is now icky. New gender macros and shit, too. 2014-08-14 23:12:56 -07:00
baloh.matevz@gmail.com
3d0d03a74f - Added killswitches to say, whisper, me, ooc, adminhelp and pray to try to determine if communication verbs are the cause of the constant lag we're getting. Toggle the killswitch with the 'disable communication verbs' verb, available in debug verbs.
- Added killswitches to all Enter() and Entered() procs to try to determine if movement is the source of all the constant lag we're having. Toggle the killswitch with the 'disable all movement' verb, available in debug verbs.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5571 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-18 03:04:46 +00:00
elly1989@rocketmail.com
2e68af07c1 Merged listen_ooc, seeprayers, STFU_ghosts, STFU_radio, deadchat, sound_adminhelp, ghostears, ghostsight, canplaysound, midis, no_ambi and lobby_music into client.prefs.toggles as bitflags.
Toggling these preferences in-game will update your savefile. Meaning that your preferences will persist between rounds.

Added some savefile_version updating stuff. It's pretty crude. If you're changing any of the savefile stuff just ask and I can change it/help.

Removed some unused client vars

Ghosts no longer hear ambience. Simplified ambience code.

Simplified lobby music code. It will no longer cause a massive queue of events (which would eventually balloon in memory use)

Moved ooccolor and sound_adminhelp back to prefs. It's easier and allowed me to remove the setupclient() stuff completely.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5143 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-21 05:58:04 +00:00
elly1989@rocketmail.com
14ed3f155b Mutes are now in datum/preferences. That means they are persistent! You can't avoid them by logging out you naughty little spammers.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5124 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 17:09:05 +00:00
elly1989@rocketmail.com
30357d18ce SANITY: Created a series of generalised sanity procs. They can be found in code/__HELPERS/sanitize_values.dm
They include such procs as sanitize_integer(num, min, max, default) which will check num is a number, round num to make it an integer, then check if it is between min and max (inclusive). If it fails the bound-checks it will return default. There are others, have a look.

PERSISTENT PREFERENCES: Every ckey which connects to the game gets its own persistent /datum/preferences datum.
It is archived in var/list/preferences_datums = list("ckey" = datum)
At connect it is automatically associated with the client defines.dm (or a new one is created if it can't find an archived prefs datum). This means clients will ALWAYS have a var/datum/preferences/prefs which references this datum. So you can use it without checking if(client.prefs)
This has simplified only a few bits of code. It will however, allow us to make preferences like see_deadchat ghost_ears etc, persistent. So they will not reset when you DC.

SAVEFILES: Changed the player savefile code a lot. Hopefully I've not fucked it up too much. Every single variable loaded from saves is now sanity checked using the new sanity procs. This should help prevent savefiles becomming obsolete by sanitizing input to meet current requirements, without deleting all the ok variables and making you start from scratch >_> NOTE: I still need to sort out the savefile version stuff. I'll probably figure it out before the server updates anyway. It sees to be fine without it.

You can no longer choose your blood type. It is randomised (with each bloodtype having a realistic probability of occuring). This is to make blood analysis (detective/medical) less pointless. It is chosen as soon as you connect. It remains persistent throughout each round so you won't be able to change it by logging in/out over and over.

Replaces some copypasta code with is_afk() (still a fair bit to do)

There are new hyperlink shortcut things. _src_=vars will direct your hyperlink to viewvars. _src_=prefs to your preferences datum. (These are the only way to access those bits of code via links). This means that the overall amount of operations in almost every Topic has pretty much halved and is much prettier.

Replaced and removed adminplayervars from datum/admins/Topic. It was superfluous. They now all point directly to the viewvars code using _src_=vars

Removed the changelog popup at round start. Instead a button on your game-window will glow white if there are new updates. To peruse at your convenience. This will speed up connect times.

Removed the AFK_THRESHOLD define. It is integrated into is_afk() now.

TODO: remove the prefs stuff from mobs and clients and update code to use client.prefs to access that info.



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5121 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 15:13:57 +00:00
elly1989@rocketmail.com
a10f6e0ec2 Added a switch inside client/Topic which can direct the topic call to a few frequently used destinations.
Before, when making a link to an admin tool, you done this:
<a href='?src=\ref[C.holder];parameter=1;>link</a>

Now, we do not need to use a reference to direct it to places like usr or usr.client.holder (or client, but you never needed src for that anyway)
usr: <a href='?_src_=usr;parameter=1;>link</a>
holder: <a href='?_src_=holder;parameter=1;>link</a>

This basically allows us to move a LOT of code outside of loops as we no longer have to create a \ref for every recipient of the message. They can all be sent identical links. A simple example of this would be in pray.dm Although it's most noticeable in the adminhelp code which is vastly simplified.

Adminhelp name spotting code thingy...whatever... looks for ckey matches first, then surnames, then forenames. This is to stop it possibly weirding out if there is a station full of "Ed"s of "Sarah"s

Prayer code no longer loads a new icon into memory every time a prayer is sent. Use image() not icon()!

key_name() no longer needs a reference for it's admin_link argument.

message_admin() pretty much doesn't need those extra arguments for finding and replacing %holder_ref%. I've got to go through all the code to check before I remove it though.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5105 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-18 08:27:11 +00:00
elly1989@rocketmail.com
8e52e8cbdf Game Panel is now available to all admins regardless of rights (spawning from that panel requires +SPAWN, and changing game mode requires +ADMIN)
Player panel (for an individual mob) is available to all admins regardless of rights (like above, each link on the page has its own rights requirements)
Essentially, with no rights you can see these panels, but you cannot use most of the tools they link to. Additional rights increase your access to corresponding tools.

Removed some duplicate code in /datum/admins/Topic for subtle messages, traitor panel and a few others. There's a lot more to do in this regard but it can wait for now.

We're near the end of the disruption now. I sort of have a clear idea what I'm meant to be doing so work will speed up. Full documentation describing exactly what can and can't be done with each flag will be available soon.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5035 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-11 06:40:00 +00:00
elly1989@rocketmail.com
b1fdee2e32 Changed some global_list stuff:
>tried to make the comments less confusing.
>Removed the procs for rebuilding the lists (they weren't meant to be used and half were broken anyway).
>added a directory. It maps ckey to client like so directory[ckey] = client. It could be used for PMs, banning, and various other admin tools rather than using \ref[]
>var/list/admins is now a list of clients whom are admins.
>var/list/admin_datums is what var/list/admins used to be. A map from ckey -> admin datum
Most of this is so I can add modular admin ranks in a non-horrendous way and fix some existing issues.
>var/list/client_list is now var/list/clients (laziness sorry)
>removed some needless loops and stuff.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4951 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-24 20:11:39 +00:00
elly1989@rocketmail.com
cc2c4de49b Merged var/muted_ic; var/muted_ooc; var/muted_deadchat; var/muted_pray; var/muted_adminhelp into var/muted as bitflags
Added a config option config.automute_on It toggles automuting.
Admins cannot be muted.
Made the proc/cmd_admin_mute code shorter.
Automuting defaults to off

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4758 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-25 21:23:02 +00:00
sieve32@gmail.com
8658a64dc3 -Redid admin_list to be based off clients rather than mobs (Why I did it with mobs first, I'll never know). This fixes AdminWho and Asay and such not working pre-game.
-Added in the proper list stuff for changeling stasis
-Added a verb to the debug list (Game Admin+) to check the mob lists instead of requiring the item (Works the same way)
Fixes Issue 708


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4240 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-31 02:02:30 +00:00
sieve32@gmail.com
7bf6788082 -OPTIMIZATION TIME
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...

Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)

These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.

Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.

If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.

Mob related in worlds before this commit: 1262
After: 4
I'm helping


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 03:04:05 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.

r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds

[VGTG]

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-23 00:48:51 +00:00
baloh.matevz@gmail.com
9a94312431 - Added spam-prevention code. If someone sends the same message 5 times in a row, they will get the message "You are nearing the spam filter limit for identical messages." If they continue to send the same message (if they send it 10 times in total) they will get an auto-mute for the channel they are sending it through. The number of identical messages which triggers a warning and automute can be configured in setup.dm
- Added channel-specific admin muting. Admins can now mute someone from IC (say, me and whisper), OOC, PRAY, ADMINHELP (adminhelp, admin pm and asay) and DEADCHAT (say while dead and dsay)
- Added a (?) to adminhelps and prayers which displays the same quick overview that all the other (?)-s show, but for the person adminhelping or praying.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3888 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-22 05:54:43 +00:00
baloh.matevz
8400d7f9a2 - Added a cookie food type, which cannot be made ingame
- slightly altered the pray format to include a (SC) link, which stands for 'spawn cookie'. This attempts to spawn a cookie in the hands of the person who prayed. It's intent is to be a consolation prize when the prayer cannot be answered, due to it ruining the round. Only humans will get a cookie.

Screenshot:
http://www.kamletos.si/cookie%20spawner.PNG

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3766 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-08 16:06:20 +00:00
baloh.matevz@gmail.com
d1d0fd5e4f - hand tools now fit on your belt slot
- added feedback logging for newscasters
- added feedback logging for admin verbs
- added shuttle timers to escape pods
- added feedback logging to chemical reactions
- clipboard can now fit on your belt

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3465 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-16 04:00:36 +00:00