diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 5fa1c2e587a..f8f9609aced 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -27,6 +27,7 @@ #define DONATOR_PUBLIC 32768 #define CHAT_NO_TICKETLOGS 65536 #define UI_DARKMODE 131072 +#define DISABLE_KARMA 262144 #define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_LOOC|MEMBER_PUBLIC|DONATOR_PUBLIC) @@ -53,4 +54,4 @@ #define EXP_TYPE_SERVICE "Service" #define EXP_TYPE_WHITELIST "Whitelist" -#define EXP_DEPT_TYPE_LIST list(EXP_TYPE_SERVICE, EXP_TYPE_MEDICAL, EXP_TYPE_ENGINEERING, EXP_TYPE_SCIENCE, EXP_TYPE_SECURITY, EXP_TYPE_COMMAND, EXP_TYPE_SILICON, EXP_TYPE_SPECIAL) \ No newline at end of file +#define EXP_DEPT_TYPE_LIST list(EXP_TYPE_SERVICE, EXP_TYPE_MEDICAL, EXP_TYPE_ENGINEERING, EXP_TYPE_SCIENCE, EXP_TYPE_SECURITY, EXP_TYPE_COMMAND, EXP_TYPE_SILICON, EXP_TYPE_SPECIAL) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 99dfdee8dbf..dffa321da4b 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -379,7 +379,10 @@ if(establish_db_connection()) to_chat(src, "Changelog has changed since your last visit.") update_changelog_button() - + + if(prefs.toggles & DISABLE_KARMA) // activates if karma is disabled + if(establish_db_connection()) + to_chat(src,"You have disabled karma gains.") // reminds those who have it disabled if(!void) void = new() @@ -670,7 +673,7 @@ /client/proc/on_varedit() var_edited = TRUE - + ///////////////// // DARKMODE UI // ///////////////// @@ -707,7 +710,7 @@ /* Infowindow */ winset(src, "infowindow", "background-color=#272727;text-color=#FFFFFF") winset(src, "infowindow.info", "background-color=#272727;text-color=#FFFFFF;highlight-color=#009900;tab-text-color=#FFFFFF;tab-background-color=#272727") - // NOTIFY USER + // NOTIFY USER to_chat(src, "Darkmode Enabled") /client/proc/deactivate_darkmode() @@ -748,15 +751,15 @@ // Better changelog button handling /client/proc/update_changelog_button() if(establish_db_connection()) - if(prefs.lastchangelog != changelog_hash) + if(prefs.lastchangelog != changelog_hash) winset(src, "rpane.changelog", "background-color=#bb7700;text-color=#FFFFFF;font-style=bold") else - if(prefs.toggles & UI_DARKMODE) + if(prefs.toggles & UI_DARKMODE) winset(src, "rpane.changelog", "background-color=#40628a;text-color=#FFFFFF") else winset(src, "rpane.changelog", "background-color=none;text-color=#000000") else - if(prefs.toggles & UI_DARKMODE) + if(prefs.toggles & UI_DARKMODE) winset(src, "rpane.changelog", "background-color=#40628a;text-color=#FFFFFF") else winset(src, "rpane.changelog", "background-color=none;text-color=#000000") diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index 9a75c5a8bb9..6800a63f669 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -55,7 +55,7 @@ ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor)) UI_style = sanitize_inlist(UI_style, list("White", "Midnight"), initial(UI_style)) default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot)) - toggles = sanitize_integer(toggles, 0, 262143, initial(toggles)) + toggles = sanitize_integer(toggles, 0, 524287, initial(toggles)) sound = sanitize_integer(sound, 0, 65535, initial(sound)) UI_style_color = sanitize_hexcolor(UI_style_color, initial(UI_style_color)) UI_style_alpha = sanitize_integer(UI_style_alpha, 0, 255, initial(UI_style_alpha)) diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm index 7d3994681b9..307f018f73c 100644 --- a/code/modules/client/preference/preferences_toggles.dm +++ b/code/modules/client/preference/preferences_toggles.dm @@ -218,4 +218,16 @@ activate_darkmode() else deactivate_darkmode() - feedback_add_details("admin_verb","TDarkmode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file + feedback_add_details("admin_verb","TDarkmode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_karma() + set name = "Toggle Karma Gains" + set category = "Special Verbs" + set desc = "This button will allow you to stop other people giving you karma." + if (prefs.toggles & DISABLE_KARMA) + to_chat(usr, "You have disabled karma gains.") + else + to_chat(usr, "You have enabled karma gains.") + prefs.toggles ^= DISABLE_KARMA + prefs.save_preferences(src) + return diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index d148276d4d6..107ec3c4f3f 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -85,6 +85,9 @@ var/list/karma_spenders = list() log_game("Illegal karma spending attempt detected from [key] to [M.key]. Using the same IP!") to_chat(src, "You can't spend karma on someone connected from the same IP.") return FALSE + if(M.get_preference(DISABLE_KARMA)) + to_chat(src, "That player has turned off incoming karma.") + return FALSE return TRUE