From e997207d1f5e95b8141c3343965c383e2ff7c61a Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 11 Nov 2016 08:29:15 -0800 Subject: [PATCH 1/5] Patreon Modifications - Adds a `donators` table for our patreon supporters. - Intended to be half-automated, half-manual, in order to correlate patreon accounts to ckeys. Uses the `active` field so that supporters don't have to have their ckey associated every time they stop and restart their donations. - Current actions: - Donators at tier 1 or greater get a palm tree next to their name in OOC (toggleable) - Donators at tier 1 or greater get +5 loadout points. - Known issue: Loadout points will not update if the table is modified during a round where the user has already logged in, due to preference datum caching. There's not really any good way to fix this, unfortunately. --- SQL/paradise_schema.sql | 19 +++++++++++++ SQL/paradise_schema_prefixed.sql | 18 +++++++++++++ code/__DEFINES/misc.dm | 6 +++++ code/__DEFINES/preferences.dm | 3 ++- code/game/verbs/ooc.dm | 8 ++++++ code/modules/client/client defines.dm | 5 +++- code/modules/client/client procs.dm | 25 ++++++++++++++++-- code/modules/client/preference/preferences.dm | 21 ++++++++++++--- icons/ooc_tag_16x.dmi | Bin 0 -> 838 bytes 9 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 icons/ooc_tag_16x.dmi diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index 1069dd6b2d6..9bfc6fa90b0 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -140,6 +140,25 @@ CREATE TABLE `death` ( ) ENGINE=MyISAM AUTO_INCREMENT=166546 DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `donators` +-- + +DROP TABLE IF EXISTS `donators`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `donators` ( + `patreon_name` varchar(32) NOT NULL, + `tier` int(2), + `ckey` varchar(32) COMMENT 'Manual Field', + `start_date` datetime, + `end_date` datetime, + `active` boolean, + PRIMARY KEY (`patreon_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + + -- -- Table structure for table `admin` -- diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql index 55e71aa2aab..c0cc8c86d6b 100644 --- a/SQL/paradise_schema_prefixed.sql +++ b/SQL/paradise_schema_prefixed.sql @@ -140,6 +140,24 @@ CREATE TABLE `SS13_death` ( ) ENGINE=MyISAM AUTO_INCREMENT=166546 DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `donators` +-- + +DROP TABLE IF EXISTS `SS13_donators`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `donators` ( + `patreon_name` varchar(32) NOT NULL, + `tier` int(2), + `ckey` varchar(32) COMMENT 'Manual Field', + `start_date` datetime, + `end_date` datetime, + `active` boolean, + PRIMARY KEY (`patreon_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `SS13_admin` -- diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index dad6165400f..738549e8b1b 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -287,3 +287,9 @@ #define SHELTER_DEPLOY_BAD_TURFS "bad turfs" #define SHELTER_DEPLOY_BAD_AREA "bad area" #define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects" + + +// Client donator levels +#define DONATOR_LEVEL_NONE 0 +#define DONATOR_LEVEL_ONE 1 +#define DONATOR_LEVEL_TWO 2 \ No newline at end of file diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 703b3e6b205..d39cc600221 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -24,5 +24,6 @@ #define DISABLE_KARMA_REMINDER 4096 #define MEMBER_PUBLIC 8192 #define CHAT_NO_ADMINLOGS 16384 +#define DONATOR_PUBLIC 32768 -#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC|MEMBER_PUBLIC) +#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS|CHAT_LOOC|MEMBER_PUBLIC|DONATOR_PUBLIC) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 2c896f3dbdf..ff517be2c1d 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -61,16 +61,24 @@ var/global/admin_ooc_colour = "#b82e00" for(var/client/C in clients) if(C.prefs.toggles & CHAT_OOC) var/display_name = src.key + if(prefs.unlock_content) if(prefs.toggles & MEMBER_PUBLIC) var/icon/byond = icon('icons/member_content.dmi', "blag") display_name = "[bicon(byond)][display_name]" + + if(donator_level >= DONATOR_LEVEL_ONE) + if((prefs.toggles & DONATOR_PUBLIC)) + var/icon/donator = icon('icons/ooc_tag_16x.dmi', "donator") + display_name = "[bicon(donator)][display_name]" + if(holder) if(holder.fakekey) if(C.holder) display_name = "[holder.fakekey]/([src.key])" else display_name = holder.fakekey + to_chat(C, "OOC: [display_name]: [msg]") /proc/toggle_ooc() diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index c1cbd07daee..d29197f3a1e 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -88,4 +88,7 @@ // Their chat window, sort of important. // See /goon/code/datums/browserOutput.dm - var/datum/chatOutput/chatOutput \ No newline at end of file + var/datum/chatOutput/chatOutput + + // Donator stuff. + var/donator_level = DONATOR_LEVEL_NONE \ No newline at end of file diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 7a668e375fc..aeec5f74bf7 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -299,6 +299,8 @@ admins += src holder.owner = src + donator_check() + //preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum) prefs = preferences_datums[ckey] if(!prefs) @@ -372,10 +374,29 @@ return ..() +/client/proc/donator_check() + if(IsGuestKey(key)) + return + + establish_db_connection() + if(!dbcon.IsConnected()) + return + + //Donator stuff. + var/DBQuery/query_donor_select = dbcon.NewQuery("SELECT ckey, tier, active FROM `[format_table_name("donators")]` WHERE ckey = '[ckey]'") + query_donor_select.Execute() + while(query_donor_select.NextRow()) + log_to_dd("Donor Query Result: [json_encode(query_donor_select.item)]") + if(!text2num(query_donor_select.item[3])) + log_to_dd("Donor inactive, removing benefits.") + // Inactive donator. + donator_level = DONATOR_LEVEL_NONE + return + donator_level = text2num(query_donor_select.item[2]) + break /client/proc/log_client_to_db() - - if( IsGuestKey(src.key) ) + if(IsGuestKey(key)) return establish_db_connection() diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 72ec8f101d2..62b02b51b34 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -61,7 +61,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts #define MAX_SAVE_SLOTS 20 // Save slots for regular players #define MAX_SAVE_SLOTS_MEMBER 20 // Save slots for BYOND members -#define MAX_GEAR_COST config.max_loadout_points #define TAB_CHAR 0 #define TAB_GAME 1 @@ -73,6 +72,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used // var/savefile_version = 0 var/max_save_slots = MAX_SAVE_SLOTS + var/max_gear_slots = 0 //non-preference stuff var/warns = 0 @@ -212,11 +212,18 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts /datum/preferences/New(client/C) b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") + if(istype(C)) if(!IsGuestKey(C.key)) unlock_content = C.IsByondMember() if(unlock_content) max_save_slots = MAX_SAVE_SLOTS_MEMBER + + max_gear_slots = config.max_loadout_points + if(C.donator_level >= DONATOR_LEVEL_ONE) + max_gear_slots += 5 + log_to_dd("Added 5 gear slots to [C.ckey], now [max_gear_slots]") + var/loaded_preferences_successfully = load_preferences(C) if(loaded_preferences_successfully) if(load_character(C)) @@ -428,6 +435,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "OOC notes: Edit
" if(unlock_content) dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
" + if(user.client.donator_level >= DONATOR_LEVEL_ONE) + dat += "Donator Publicity: [(toggles & DONATOR_PUBLIC) ? "Public" : "Hidden"]
" dat += "Randomized character slot: [randomslot ? "Yes" : "No"]
" dat += "Ghost ears: [(toggles & CHAT_GHOSTEARS) ? "Nearest Creatures" : "All Speech"]
" @@ -464,10 +473,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts total_cost += G.cost var/fcolor = "#3366CC" - if(total_cost < MAX_GEAR_COST) + if(total_cost < max_gear_slots) fcolor = "#E67300" dat += "" - dat += "" + dat += "" dat += "
[total_cost]/[MAX_GEAR_COST] loadout points spent. \[Clear Loadout\]
[total_cost]/[max_gear_slots] loadout points spent. \[Clear Loadout\]
" var/firstcat = 1 @@ -1108,7 +1117,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts type_blacklist += G.subtype_path total_cost += G.cost - if((total_cost + TG.cost) <= MAX_GEAR_COST) + if((total_cost + TG.cost) <= max_gear_slots) gear += TG.display_name else if(href_list["gear"] && href_list["tweak"]) @@ -1875,6 +1884,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(unlock_content) toggles ^= MEMBER_PUBLIC + if("donor_public") + if(user.client.donator_level >= DONATOR_LEVEL_ONE) + toggles ^= DONATOR_PUBLIC + if("gender") if(gender == MALE) gender = FEMALE diff --git a/icons/ooc_tag_16x.dmi b/icons/ooc_tag_16x.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e8aa0ed66e6795e3b4b98842707289eaeed695b8 GIT binary patch literal 838 zcmWlXYiv^m9L4{=ZEqjz`$4;PEtGX@yQb^<$cW!csvMckB({>oNwO3z z`Gukg`_Z-nftIrthmkLgh*h&%-)dG{*%KtyISRZ+4Rs`~B{90)NO~5+UbTQfpws=+ z6ufTrig~=TDvO;+QaD+>FtsC|Z%P z-&C*M>Chq5gm^Q;zE{nrqTT>^I}YkFX~3=;?5xF@C2SIZk}#p)j$Rj{K7;~zEQsb- zoK#>+jkmPeug7lVGcL(=LWivtvJC?c^th0&kiD1@<9#Vk$#G1HL)z(evSy=T;YAa+ zSunB;n{CL|qu+t2UAV&Fk^tved?3MT`NA=|P0w%v5neXo`DNHz2d)9LJj@Y3=iy^M zF0j{Mm&io4Co91LJtmi6M=jpeVRtnSYj8mKQ$x#fA|53>JJuKv=QwWD#sa%M?kI4B z`P|T5?)EK?<;U4<)3cThij@=weShJFV79dX>kt1pzP|kFA`_jSedo5O^xgUU`{ohz?Qz=;M~ubM=uU?<5%}phxIoS+^>zKS=(j3JbmX><&Tt%Wjkjg+^+usx%EQ9 literal 0 HcmV?d00001 From 122178591a45e62b71f39b901ed463ec498f628b Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 11 Nov 2016 08:43:26 -0800 Subject: [PATCH 2/5] OOPS FORGOT THE DEBUG MESSAGES WEW --- code/modules/client/client procs.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index aeec5f74bf7..cb482546355 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -386,9 +386,7 @@ var/DBQuery/query_donor_select = dbcon.NewQuery("SELECT ckey, tier, active FROM `[format_table_name("donators")]` WHERE ckey = '[ckey]'") query_donor_select.Execute() while(query_donor_select.NextRow()) - log_to_dd("Donor Query Result: [json_encode(query_donor_select.item)]") if(!text2num(query_donor_select.item[3])) - log_to_dd("Donor inactive, removing benefits.") // Inactive donator. donator_level = DONATOR_LEVEL_NONE return From 198bbbffa25ee47afe6cc467ab95ed37e9204422 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Mon, 21 Nov 2016 13:52:12 -0800 Subject: [PATCH 3/5] Add donator loadout category and item defines --- code/modules/client/preference/loadout/loadout.dm | 6 +++++- code/modules/client/preference/loadout/loadout_donor.dm | 4 ++++ code/modules/client/preference/preferences.dm | 9 ++++++++- paradise.dme | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 code/modules/client/preference/loadout/loadout_donor.dm diff --git a/code/modules/client/preference/loadout/loadout.dm b/code/modules/client/preference/loadout/loadout.dm index 010fc54564c..b42c5d5abf1 100644 --- a/code/modules/client/preference/loadout/loadout.dm +++ b/code/modules/client/preference/loadout/loadout.dm @@ -4,6 +4,7 @@ var/list/gear_datums = list() /datum/loadout_category var/category = "" var/list/gear = list() + var/donor_only = FALSE /datum/loadout_category/New(cat) category = cat @@ -33,6 +34,8 @@ var/list/gear_datums = list() if(!loadout_categories[use_category]) loadout_categories[use_category] = new /datum/loadout_category(use_category) var/datum/loadout_category/LC = loadout_categories[use_category] + if(initial(G.donor_only)) + LC.donor_only = TRUE gear_datums[use_name] = new geartype LC.gear[use_name] = gear_datums[use_name] @@ -54,6 +57,7 @@ var/list/gear_datums = list() var/list/gear_tweaks = list() //List of datums which will alter the item after it has been spawned. var/subtype_path = /datum/gear //for skipping organizational subtypes (optional) var/subtype_cost_overlap = TRUE //if subtypes can take points at the same time + var/donor_only = FALSE // if it's only available to donors /datum/gear/New() ..() @@ -76,4 +80,4 @@ var/list/gear_datums = list() var/item = new gd.path(gd.location) for(var/datum/gear_tweak/gt in gear_tweaks) gt.tweak_item(item, metadata["[gt]"]) - return item \ No newline at end of file + return item diff --git a/code/modules/client/preference/loadout/loadout_donor.dm b/code/modules/client/preference/loadout/loadout_donor.dm new file mode 100644 index 00000000000..acfe24b2c56 --- /dev/null +++ b/code/modules/client/preference/loadout/loadout_donor.dm @@ -0,0 +1,4 @@ +/datum/gear/donor + donor_only = TRUE + sort_category = "Donor" + subtype_path = /datum/gear/donor diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 62b02b51b34..415a6f05d3f 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -222,7 +222,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts max_gear_slots = config.max_loadout_points if(C.donator_level >= DONATOR_LEVEL_ONE) max_gear_slots += 5 - log_to_dd("Added 5 gear slots to [C.ckey], now [max_gear_slots]") var/loaded_preferences_successfully = load_preferences(C) if(loaded_preferences_successfully) @@ -481,6 +480,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/firstcat = 1 for(var/category in loadout_categories) + var/datum/loadout_category/LC = loadout_categories[category] + if(LC.donor_only) + if(user.client.donator_level < DONATOR_LEVEL_TWO) // level two donators get the donator loadout, so don't show it to anyone with less than that + continue if(firstcat) firstcat = 0 else @@ -1106,6 +1109,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(TG.display_name in gear) gear -= TG.display_name else + if(TG.donor_only) + if(user.client.donator_level < DONATOR_LEVEL_TWO) // donator items are locked to > tier 2 + //they normally can't even get this far- but just in case of href exploits, we check them here + return var/total_cost = 0 var/list/type_blacklist = list() for(var/gear_name in gear) diff --git a/paradise.dme b/paradise.dme index ad5db876321..194e853807b 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1117,6 +1117,7 @@ #include "code\modules\client\preference\loadout\loadout.dm" #include "code\modules\client\preference\loadout\loadout_accessories.dm" #include "code\modules\client\preference\loadout\loadout_cosmetics.dm" +#include "code\modules\client\preference\loadout\loadout_donor.dm" #include "code\modules\client\preference\loadout\loadout_general.dm" #include "code\modules\client\preference\loadout\loadout_hat.dm" #include "code\modules\client\preference\loadout\loadout_shoes.dm" From 711f7c93aaee2b03df724f5ef136d321a21711a0 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Sat, 26 Nov 2016 17:48:48 -0800 Subject: [PATCH 4/5] Added FreeStylaLTs items, OOC tag rounding Added FreeStylaLT's donor items, changed OOC tag to make it more round, fixed FreeStylaLT's donor items by adding them to paradise.dme --- .../preference/loadout/loadout_donor.dm | 84 ++++++++++++++++++ icons/ooc_tag_16x.dmi | Bin 838 -> 983 bytes paradise.dme | 2 + 3 files changed, 86 insertions(+) diff --git a/code/modules/client/preference/loadout/loadout_donor.dm b/code/modules/client/preference/loadout/loadout_donor.dm index acfe24b2c56..d8af8972d7e 100644 --- a/code/modules/client/preference/loadout/loadout_donor.dm +++ b/code/modules/client/preference/loadout/loadout_donor.dm @@ -2,3 +2,87 @@ donor_only = TRUE sort_category = "Donor" subtype_path = /datum/gear/donor + +/datum/gear/donor/furgloves + display_name = "Fur Gloves" + path = /obj/item/clothing/gloves/furgloves + +/datum/gear/donor/furboots + display_name = "Fur Boots" + path = /obj/item/clothing/shoes/furboots + +/datum/gear/donor/noble_boot + display_name = "Noble Boots" + path = /obj/item/clothing/shoes/fluff/noble_boot + +/datum/gear/donor/furcape + display_name = "Fur Cape" + path = /obj/item/clothing/suit/furcape + +/datum/gear/donor/furcoat + display_name = "Fur Coat" + path = /obj/item/clothing/suit/furcoat + +/datum/gear/donor/lord_admiral + display_name = "Lord Admiral Coat" + path = /obj/item/clothing/suit/lordadmiral + +/datum/gear/donor/lord_admiral_hat + display_name = "Lord Admiral Hat" + path = /obj/item/clothing/head/lordadmiralhat + +/datum/gear/donor/kamina + display_name = "Spiky Orange-tinted Shades" + path = /obj/item/clothing/glasses/fluff/kamina + +/datum/gear/donor/green + display_name = "Spiky Green-tinted Shades" + path = /obj/item/clothing/glasses/fluff/kamina/green + +/datum/gear/donor/hipster + display_name = "Hipster Glasses" + path = /obj/item/clothing/glasses/regular/hipster + +/datum/gear/donor/threedglasses + display_name = "Threed Glasses" + path = /obj/item/clothing/glasses/threedglasses + +/datum/gear/donor/blacksombrero + display_name = "Black Sombrero" + path = /obj/item/clothing/head/fluff/blacksombrero + +/datum/gear/donor/guardhelm + display_name = "Plastic Guard helm" + path = /obj/item/clothing/head/fluff/guardhelm + +/datum/gear/donor/goldtophat + display_name = "Gold-trimmed Top Hat" + path = /obj/item/clothing/head/fluff/goldtophat + +/datum/gear/donor/goldtophat/red + display_name = "Red Gold-trimmed Top Hat" + path = /obj/item/clothing/head/fluff/goldtophat/red + +/datum/gear/donor/goldtophat/blue + display_name = "Blue Gold-trimmed Top Hat" + path = /obj/item/clothing/head/fluff/goldtophat/blue + +/datum/gear/donor/mushhat + display_name = "Mushroom Hat" + path = /obj/item/clothing/head/fluff/mushhat + +/datum/gear/donor/furcap + display_name = "Fur Cap" + path = /obj/item/clothing/head/furcap + +/datum/gear/donor/mouse + display_name = "Mouse Headband" + path = /obj/item/clothing/head/kitty/mouse + +/datum/gear/donor/fawkes + display_name = "Guy Fawkes mask" + path = /obj/item/clothing/mask/fawkes + +/datum/gear/donor/noble_clothes + display_name = "Noble Clothes" + path = /obj/item/clothing/under/noble_clothes diff --git a/icons/ooc_tag_16x.dmi b/icons/ooc_tag_16x.dmi index e8aa0ed66e6795e3b4b98842707289eaeed695b8..2165a593220ba95486df99e3d4a753f56cc75aa9 100644 GIT binary patch delta 709 zcmV;$0y_Q12G<9WB!6>IOjJd{z`*~y&i{6v|5}UxVvzr1k^gFz|8t!Gf2IG8um7vV z|Es|NMtT1mUjGD6{{c(?0Zjh|PX7r~{}5OI6IuTpU;ip-|7Mf_kfi?_N&gN;{|HFQ z06VGxGyecg>i|Z|06fqDJ@NoZ{{v6|lCuA4b^jzj{~bZU5s`Bs2#>G-&C35nK9QIu z1&Xczv7wQ_C^BS{|EY@qSt+$T9w`h5_CqiKKr>7c4`>n?|0g}D6)6+~1*#1#{|-n0 z2TA{BlK-f9lMn$Y1!IQ)u5gn*0VOhRf&aQ~|A`m>f*SvP9RGD5KpP0VNE`oMC;wL~ z|4=ReLo)w8H2*d?|9F1?$8`Uh6O)bsA_$6t|I&B=tP_*90VN2Ne*fTx|GW~D-vJzd zX)6Dtg8%Qn|H&Tz!2$oe1OK!J|E>triwO(|0EbQq|Bn^_i5CBR9RGVJ|Fenz-+KSW z3jdK5|BV>`lQn>VfFBbyffX00DGTPE!Ct=GbNc z009z7L_t&-m1AIFU|?ioW?^Mx=iuajVgLbd9$r3v0e(RtVG&U=aiD;Nq?9zjjI5lT zyn>>VvI+x(s+zinrk1vjuAaVup^-6ziK&^ng{76Xjg76Hy@R6@gR_gPo4bdnmyNfN zub+QFAVW}aNN8AigiT~rbWChqd;&vaQgTXanoW8}W>$7iZeBh^L19sGNvTbLS$Rce zRdr2NEkj*>Lt|63O-pNAyGuuBS2sgXZ(sj}i8hlaPnjA#ZTgIv46|m>nLBU3&4PuC z7B5-4Z21a?m8({-S-Wn%&4vjZ3pZ`vvXx=m_8mKS?cTH3X5an;4F?Y$W?(pS)CLBQ r9X|o`?#WZ9LA*0(&z--(zyJUgq0?OZ-nj4g00000NkvXXu0mjfW~4{G delta 535 zcmV+y0_gqM2gU}FBu4>IOjJex0!#k@P5%K*{{T$?5=H+CNdE;&{{Tz>0ZacOKmQs+ z{}e?34o3e7NXY;@ssJ{S2uSLPcLr{1|MHP|A0X4px}_uu<(e;D2C{m*tqxv?Zl+yl+?6zH%^9( z%&hF3Tln002ovPDHLkV1n+I+=2iA diff --git a/paradise.dme b/paradise.dme index 9400c0afb39..b66cc8dd006 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1142,6 +1142,8 @@ #include "code\modules\clothing\masks\gasmask.dm" #include "code\modules\clothing\masks\miscellaneous.dm" #include "code\modules\clothing\masks\voice.dm" +#include "code\modules\clothing\patreon\glasses.dm" +#include "code\modules\clothing\patreon\hats.dm" #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\magboots.dm" #include "code\modules\clothing\shoes\miscellaneous.dm" From a6b04622af9b948c998f135b78e08a23571a3137 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Sun, 27 Nov 2016 13:54:53 -0800 Subject: [PATCH 5/5] Add cost = 2 to fur cape and fur coat --- code/modules/client/preference/loadout/loadout_donor.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preference/loadout/loadout_donor.dm b/code/modules/client/preference/loadout/loadout_donor.dm index d8af8972d7e..edf7e173730 100644 --- a/code/modules/client/preference/loadout/loadout_donor.dm +++ b/code/modules/client/preference/loadout/loadout_donor.dm @@ -1,7 +1,7 @@ /datum/gear/donor - donor_only = TRUE - sort_category = "Donor" - subtype_path = /datum/gear/donor + donor_only = TRUE + sort_category = "Donor" + subtype_path = /datum/gear/donor /datum/gear/donor/furgloves display_name = "Fur Gloves" @@ -18,10 +18,12 @@ /datum/gear/donor/furcape display_name = "Fur Cape" path = /obj/item/clothing/suit/furcape + cost = 2 /datum/gear/donor/furcoat display_name = "Fur Coat" path = /obj/item/clothing/suit/furcoat + cost = 2 /datum/gear/donor/lord_admiral display_name = "Lord Admiral Coat"