Merge branch 'master' into hooks-part4

This commit is contained in:
AffectedArc07
2019-05-07 21:22:59 +01:00
committed by GitHub
32 changed files with 142 additions and 90 deletions
+1 -1
View File
@@ -81,7 +81,7 @@
var/datum/chatOutput/chatOutput
// Donator stuff.
var/donator_level = DONATOR_LEVEL_NONE
var/donator_level = 0
// If set to true, this client can interact with atoms such as buttons and doors on top of regular machinery interaction
var/advanced_admin_interaction = FALSE
+12 -9
View File
@@ -328,8 +328,6 @@
GLOB.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)
@@ -343,12 +341,6 @@
spawn() // Goonchat does some non-instant checks in start()
chatOutput.start()
if(custom_event_msg && custom_event_msg != "")
to_chat(src, "<h1 class='alert'>Custom Event</h1>")
to_chat(src, "<h2 class='alert'>A custom event is taking place. OOC Info:</h2>")
to_chat(src, "<span class='alert'>[html_encode(custom_event_msg)]</span>")
to_chat(src, "<br>")
if( (world.address == address || !address) && !host )
host = key
world.update_status()
@@ -376,6 +368,7 @@
to_chat(src, message)
clientmessages.Remove(ckey)
donator_check()
send_resources()
@@ -400,6 +393,12 @@
screen += void
if(custom_event_msg && custom_event_msg != "")
to_chat(src, "<h1 class='alert'>Custom Event</h1>")
to_chat(src, "<h2 class='alert'>A custom event is taking place. OOC Info:</h2>")
to_chat(src, "<span class='alert'>[html_encode(custom_event_msg)]</span>")
to_chat(src, "<br>")
if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them.
to_chat(src, "<span class='warning'>Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you.</span>")
@@ -431,13 +430,17 @@
if(!dbcon.IsConnected())
return
if(check_rights(R_ADMIN, 0, mob)) // Yes, the mob is required, regardless of other examples in this file, it won't work otherwise
donator_level = DONATOR_LEVEL_MAX
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
donator_level = 0
return
donator_level = text2num(query_donor_select.item[2])
break
@@ -4,7 +4,6 @@ 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
@@ -34,8 +33,6 @@ 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]
@@ -57,7 +54,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
var/donator_tier = 0
/datum/gear/New()
..()
@@ -1,5 +1,5 @@
/datum/gear/donor
donor_only = TRUE
donator_tier = 2
sort_category = "Donor"
subtype_path = /datum/gear/donor
@@ -77,6 +77,26 @@
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
/datum/gear/donor/id_decal_silver
display_name = "Silver ID Decal"
path = /obj/item/id_decal/silver
donator_tier = 3
cost = 2
/datum/gear/donor/id_decal_prisoner
display_name = "Prisoner ID Decal"
path = /obj/item/id_decal/prisoner
donator_tier = 3
cost = 2
/datum/gear/donor/id_decal_emag
display_name = "Emag ID Decal"
path = /obj/item/id_decal/emag
donator_tier = 3
cost = 2
/datum/gear/donor/id_decal_gold
display_name = "Gold ID Decal"
path = /obj/item/id_decal/gold
donator_tier = 4
cost = 4
+10 -12
View File
@@ -211,7 +211,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
unlock_content = C.IsByondMember()
if(unlock_content)
max_save_slots = MAX_SAVE_SLOTS_MEMBER
if(C.donator_level >= DONATOR_LEVEL_ONE)
if(C.donator_level > 0)
max_gear_slots += 5
loaded_preferences_successfully = load_preferences(C) // Do not call this with no client/C, it generates a runtime / SQL error
@@ -448,7 +448,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
dat += " - <b>Color:</b> <a href='?_src_=prefs;preference=UIcolor'><b>[UI_style_color]</b></a> <span style='border: 1px solid #161616; background-color: [UI_style_color];'>&nbsp;&nbsp;&nbsp;</span><br>"
dat += " - <b>UI Style:</b> <a href='?_src_=prefs;preference=ui'><b>[UI_style]</b></a><br>"
dat += "<b>Deadchat Anonymity:</b> <a href='?_src_=prefs;preference=ghost_anonsay'><b>[ghost_anonsay ? "Anonymous" : "Not Anonymous"]</b></a><br>"
if(user.client.donator_level >= DONATOR_LEVEL_ONE)
if(user.client.donator_level > 0)
dat += "<b>Donator Publicity:</b> <a href='?_src_=prefs;preference=donor_public'><b>[(toggles & DONATOR_PUBLIC) ? "Public" : "Hidden"]</b></a><br>"
dat += "<b>Fancy NanoUI:</b> <a href='?_src_=prefs;preference=nanoui'>[(nanoui_fancy) ? "Yes" : "No"]</a><br>"
dat += "<b>FPS:</b> <a href='?_src_=prefs;preference=clientfps;task=input'>[clientfps]</a><br>"
@@ -508,10 +508,6 @@ 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
@@ -529,7 +525,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
for(var/gear_name in LC.gear)
var/datum/gear/G = LC.gear[gear_name]
var/ticked = (G.display_name in gear)
dat += "<tr style='vertical-align:top;'><td width=15%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='?_src_=prefs;preference=gear;toggle_gear=[G.display_name]'>[G.display_name]</a></td>"
if(G.donator_tier > user.client.donator_level)
dat += "<tr style='vertical-align:top;'><td width=15%><B>[G.display_name]</B></td>"
else
dat += "<tr style='vertical-align:top;'><td width=15%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='?_src_=prefs;preference=gear;toggle_gear=[G.display_name]'>[G.display_name]</a></td>"
dat += "<td width = 5% style='vertical-align:top'>[G.cost]</td><td>"
if(G.allowed_roles)
dat += "<font size=2>Restrictions: "
@@ -1147,10 +1146,9 @@ 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
if(TG.donator_tier && user.client.donator_level < TG.donator_tier)
to_chat(user, "<span class='warning'>That gear is only available at a higher donation tier than you are on.</span>")
return
var/total_cost = 0
var/list/type_blacklist = list()
for(var/gear_name in gear)
@@ -1944,7 +1942,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
toggles ^= MEMBER_PUBLIC
if("donor_public")
if(user.client.donator_level >= DONATOR_LEVEL_ONE)
if(user.client.donator_level > 0)
toggles ^= DONATOR_PUBLIC
if("gender")
@@ -30,6 +30,7 @@
msg += "<EM>[name]</EM>"
var/displayed_species = dna.species.name
var/examine_color = dna.species.flesh_color
for(var/obj/item/clothing/C in src) //Disguise checks
if(C == src.head || C == src.wear_suit || C == src.wear_mask || C == src.w_uniform || C == src.belt || C == src.back)
if(C.species_disguise)
@@ -37,11 +38,11 @@
if(skipjumpsuit && skipface || (NO_EXAMINE in dna.species.species_traits)) //either obscured or on the nospecies list
msg += "!\n" //omit the species when examining
else if(displayed_species == "Slime People") //snowflakey because Slime People are defined as a plural
msg += ", a slime person!\n"
msg += ", a<b><font color='[examine_color]'> slime person</font></b>!\n"
else if(displayed_species == "Unathi") //DAMN YOU, VOWELS
msg += ", a unathi!\n"
msg += ", a<b><font color='[examine_color]'> unathi</font></b>!\n"
else
msg += ", \a [lowertext(displayed_species)]!\n"
msg += ", a<b><font color='[examine_color]'> [lowertext(displayed_species)]</font></b>!\n"
//uniform
if(w_uniform && !skipjumpsuit && !(w_uniform.flags & ABSTRACT))
@@ -1331,11 +1331,13 @@
var/list/thing_to_check = list(slot_wear_mask, slot_head, slot_shoes, slot_gloves, slot_l_ear, slot_r_ear, slot_glasses, slot_l_hand, slot_r_hand)
var/list/kept_items[0]
var/list/item_flags[0]
for(var/thing in thing_to_check)
var/obj/item/I = get_item_by_slot(thing)
if(I)
kept_items[I] = thing
item_flags[I] = I.flags
I.flags = 0 // Temporary set the flags to 0
if(retain_damage)
//Create a list of body parts which are damaged by burn or brute and save them to apply after new organs are generated. First we just handle external organs.
@@ -1401,8 +1403,9 @@
else
dna.species.create_organs(src)
for(var/thing in kept_items)
for(var/obj/item/thing in kept_items)
equip_to_slot_if_possible(thing, kept_items[thing], redraw_mob = 0)
thing.flags = item_flags[thing] // Reset the flags to the origional ones
//Handle default hair/head accessories for created mobs.
var/obj/item/organ/external/head/H = get_organ("head")
@@ -80,7 +80,7 @@
var/dietflags = 0 // Make sure you set this, otherwise it won't be able to digest a lot of foods
var/blood_color = "#A10808" //Red.
var/flesh_color = "#FFC896" //Pink.
var/flesh_color = "#d1aa2e" //Gold.
var/single_gib_type = /obj/effect/decal/cleanable/blood/gibs
var/remains_type = /obj/effect/decal/remains/human //What sort of remains is left behind when the species dusts
var/base_color //Used when setting species.
@@ -27,6 +27,7 @@
dietflags = DIET_HERB
has_gender = FALSE
reagent_tag = PROCESS_ORG
flesh_color = "#a598ad"
blood_color = "#A200FF"
/datum/species/grey/handle_dna(mob/living/carbon/human/H, remove)
@@ -13,6 +13,7 @@
bodyflags = HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS
eyes = "kidan_eyes_s"
dietflags = DIET_HERB
flesh_color = "#ba7814"
blood_color = "#FB9800"
reagent_tag = PROCESS_ORG
//Default styles for created mobs.
@@ -41,6 +41,7 @@
)
speciesbox = /obj/item/storage/box/survival_plasmaman
flesh_color = "#8b3fba"
/datum/species/plasmaman/say_filter(mob/M, message, datum/language/speaking)
if(copytext(message, 1, 2) != "*")
@@ -32,6 +32,7 @@
dietflags = DIET_CARN
reagent_tag = PROCESS_ORG
flesh_color = "#5fe8b1"
blood_color = "#0064C8"
exotic_blood = "water"
blood_damage_type = TOX
@@ -31,7 +31,7 @@
taste_sensitivity = TASTE_SENSITIVITY_SHARP
reagent_tag = PROCESS_ORG
flesh_color = "#AFA59E"
flesh_color = "#b5a69b"
base_color = "#424242"
butt_sprite = "tajaran"