From 49f8093b5b0a7f1bd8cf5a03eec86d5877bdd878 Mon Sep 17 00:00:00 2001 From: QuoteFox <49098813+quotefox@users.noreply.github.com> Date: Thu, 2 Jul 2020 20:54:22 +0100 Subject: [PATCH] Reward for Patreons! Introduces alittle heart into chat, for the supporters! --- code/game/world.dm | 1 + code/modules/client/preferences.dm | 3 +++ code/modules/client/verbs/ooc.dm | 4 ++++ config/patreons.txt | 5 +++++ hyperstation/code/modules/patreon/patreon.dm | 15 +++++++++++++++ hyperstation/icons/chat/chat.dmi | Bin 0 -> 211 bytes hyperstation/icons/chat/reward.dmi | Bin 0 -> 316 bytes icons/obj/watercloset.dmi | Bin 15730 -> 15739 bytes tgstation.dme | 1 + 9 files changed, 29 insertions(+) create mode 100644 config/patreons.txt create mode 100644 hyperstation/code/modules/patreon/patreon.dm create mode 100644 hyperstation/icons/chat/chat.dmi create mode 100644 hyperstation/icons/chat/reward.dmi diff --git a/code/game/world.dm b/code/game/world.dm index 88166c4b..37c3fac2 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -33,6 +33,7 @@ GLOBAL_VAR(restart_counter) #endif load_admins() + load_patreons() LoadVerbs(/datum/verbs/menu) if(CONFIG_GET(flag/usewhitelist)) load_whitelist() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 78196e6a..c565c44e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -206,6 +206,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/current_tab = 0 var/unlock_content = 0 + var/vip = 0 var/list/ignoring = list() @@ -244,6 +245,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) unlock_content = C.IsByondMember() if(unlock_content) max_save_slots = 16 + if(clientckey in GLOB.patreons) + vip = 1 var/loaded_preferences_successfully = load_preferences() if(loaded_preferences_successfully) if(load_character()) diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 8a233025..c79eb418 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -56,9 +56,13 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") mob.log_talk(raw_msg, LOG_OOC, tag="(OOC)") var/keyname = key + if(prefs.unlock_content) if(prefs.toggles & MEMBER_PUBLIC) keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]" + + if(prefs.vip) //patreon supporter! + keyname = "[icon2html('hyperstation/icons/chat/reward.dmi', world, "vip")] [keyname]" //The linkify span classes and linkify=TRUE below make ooc text get clickable chat href links if you pass in something resembling a url for(var/client/C in GLOB.clients) if(C.prefs.chat_toggles & CHAT_OOC) diff --git a/config/patreons.txt b/config/patreons.txt new file mode 100644 index 00000000..b9b54a59 --- /dev/null +++ b/config/patreons.txt @@ -0,0 +1,5 @@ +//Patreon Supporters go here, and get a special little icon in OOC, Keep each name to one line + +User1 +User2 +User3 \ No newline at end of file diff --git a/hyperstation/code/modules/patreon/patreon.dm b/hyperstation/code/modules/patreon/patreon.dm new file mode 100644 index 00000000..932ccd73 --- /dev/null +++ b/hyperstation/code/modules/patreon/patreon.dm @@ -0,0 +1,15 @@ +#define PATREONFILE "[global.config.directory]/patreons.txt" + +GLOBAL_LIST_EMPTY(patreons) + +/proc/load_patreons() + GLOB.patreons = list() + for(var/line in world.file2list(PATREONFILE)) + if(!line) + continue + GLOB.patreons += ckey(line) + +/proc/check_patreons(var/ckey) + if(!GLOB.patreons) + return FALSE + . = (ckey in GLOB.patreons) diff --git a/hyperstation/icons/chat/chat.dmi b/hyperstation/icons/chat/chat.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1457f7f2116aaeba7e9c4ed3b385146db3bd188f GIT binary patch literal 211 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 literal 15730 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 IIkVvZ1NZ!VfB*mh diff --git a/tgstation.dme b/tgstation.dme index e80c01fc..0bcfa440 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2889,6 +2889,7 @@ #include "hyperstation\code\modules\antagonists\werewolf\werewolf.dm" #include "hyperstation\code\modules\clothing\head.dm" #include "hyperstation\code\modules\crafting\recipes.dm" +#include "hyperstation\code\modules\patreon\patreon.dm" #include "hyperstation\code\modules\resize\holder_micro.dm" #include "hyperstation\code\modules\resize\resizing.dm" #include "hyperstation\code\modules\resize\sizegun.dm"