mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Fixes new merge conflict from patreon PR
This commit is contained in:
@@ -89,4 +89,7 @@
|
||||
|
||||
// Their chat window, sort of important.
|
||||
// See /goon/code/datums/browserOutput.dm
|
||||
var/datum/chatOutput/chatOutput
|
||||
var/datum/chatOutput/chatOutput
|
||||
|
||||
// Donator stuff.
|
||||
var/donator_level = DONATOR_LEVEL_NONE
|
||||
@@ -305,6 +305,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)
|
||||
@@ -378,10 +380,27 @@
|
||||
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())
|
||||
if(!text2num(query_donor_select.item[3]))
|
||||
// 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()
|
||||
|
||||
@@ -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
|
||||
return item
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
/datum/gear/donor
|
||||
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
|
||||
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"
|
||||
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
|
||||
@@ -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
|
||||
@@ -213,11 +213,17 @@ 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
|
||||
|
||||
var/loaded_preferences_successfully = load_preferences(C)
|
||||
if(loaded_preferences_successfully)
|
||||
if(load_character(C))
|
||||
@@ -250,7 +256,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
|
||||
switch(current_tab)
|
||||
if(TAB_CHAR) // Character Settings
|
||||
dat += "<div class='statusDisplay' style='max-width: 128px; position: absolute; left: 150px; top: 150px'><img src=previewicon.png height=64 width=64><img src=previewicon2.png height=64 width=64></div>"
|
||||
dat += "<div class='statusDisplay' style='max-width: 128px; position: absolute; left: 150px; top: 150px'><img src=previewicon.png class='charPreview'><img src=previewicon2.png class='charPreview'></div>"
|
||||
dat += "<table width='100%'><tr><td width='405px' height='25px' valign='top'>"
|
||||
dat += "<b>Name: </b>"
|
||||
dat += "<a href='?_src_=prefs;preference=name;task=input'><b>[real_name]</b></a>"
|
||||
@@ -429,6 +435,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
dat += "<b>OOC notes:</b> <a href='?_src_=prefs;preference=metadata;task=input'><b>Edit</b></a><br>"
|
||||
if(unlock_content)
|
||||
dat += "<b>BYOND Membership Publicity:</b> <a href='?_src_=prefs;preference=publicity'><b>[(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]</b></a><br>"
|
||||
if(user.client.donator_level >= DONATOR_LEVEL_ONE)
|
||||
dat += "<b>Donator Publicity:</b> <a href='?_src_=prefs;preference=donor_public'><b>[(toggles & DONATOR_PUBLIC) ? "Public" : "Hidden"]</b></a><br>"
|
||||
|
||||
dat += "<b>Randomized character slot:</b> <a href='?_src_=prefs;preference=randomslot'><b>[randomslot ? "Yes" : "No"]</b></a><br>"
|
||||
dat += "<b>Ghost ears:</b> <a href='?_src_=prefs;preference=ghost_ears'><b>[(toggles & CHAT_GHOSTEARS) ? "Nearest Creatures" : "All Speech"]</b></a><br>"
|
||||
@@ -465,14 +473,18 @@ 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 += "<table align='center' width='100%'>"
|
||||
dat += "<tr><td colspan=4><center><b><font color='[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='?_src_=prefs;preference=gear;clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
|
||||
dat += "<tr><td colspan=4><center><b><font color='[fcolor]'>[total_cost]/[max_gear_slots]</font> loadout points spent.</b> \[<a href='?_src_=prefs;preference=gear;clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
|
||||
dat += "<tr><td colspan=4><center><b>"
|
||||
|
||||
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
|
||||
@@ -1102,6 +1114,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)
|
||||
@@ -1113,7 +1129,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"])
|
||||
@@ -1880,6 +1896,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
|
||||
|
||||
Reference in New Issue
Block a user