Merge branch 'master' into protRig

This commit is contained in:
Kashargul
2024-11-27 23:58:52 +01:00
committed by GitHub
281 changed files with 3627 additions and 3318 deletions
@@ -360,18 +360,18 @@
/datum/gear/accessory/wristband_collection
display_name = "wristbands (selection)"
path = /obj/item/clothing/accessory/wristbandcollection
path = /obj/item/clothing/accessory/wristband/collection
/datum/gear/accessory/wristband_collection/New()
..()
var/list/wristband_lists = list(
"Green, Blue and Yellow" = /obj/item/clothing/accessory/wristbandcollection,
"Pink, Black and Red" = /obj/item/clothing/accessory/wristbandcollection/pink,
"Red and Orange" = /obj/item/clothing/accessory/wristbandcollection/les,
"White, Pink and Blue" = /obj/item/clothing/accessory/wristbandcollection/trans,
"Blue, Purple and Pink" = /obj/item/clothing/accessory/wristbandcollection/bi,
"Black, White and Grey" = /obj/item/clothing/accessory/wristbandcollection/ace,
"Spiked" = /obj/item/clothing/accessory/wristband_spiked
"Green, Blue and Yellow" = /obj/item/clothing/accessory/wristband/collection,
"Pink, Black and Red" = /obj/item/clothing/accessory/wristband/collection/pink,
"Red and Orange" = /obj/item/clothing/accessory/wristband/collection/les,
"White, Pink and Blue" = /obj/item/clothing/accessory/wristband/collection/trans,
"Blue, Purple and Pink" = /obj/item/clothing/accessory/wristband/collection/bi,
"Black, White and Grey" = /obj/item/clothing/accessory/wristband/collection/ace,
"Spiked" = /obj/item/clothing/accessory/wristband/spiked
)
gear_tweaks += new/datum/gear_tweak/path(wristband_lists)
@@ -271,7 +271,7 @@
// C CKEYS
/datum/gear/fluff/cappy_watch
path = /obj/item/clothing/accessory/watch
path = /obj/item/clothing/accessory/watch/custom
display_name = "Cappy's Pocket Watch"
ckeywhitelist = list("cappycat")
character_name = list("Cappy Fuzzlyfeathers")
@@ -528,7 +528,7 @@
character_name = list("Elizabeth Bayou")
/datum/gear/fluff/mercury_vopal_ring
path = /obj/item/clothing/gloves/ring/material/void_opal/fluff/mercury
path = /obj/item/clothing/accessory/ring/material/void_opal/fluff/mercury
display_name = "Mercury's Mate Ring"
ckeywhitelist = list("haloren")
character_name = list("Mercury")
@@ -694,6 +694,12 @@
ckeywhitelist = list("john.wayne9392")
character_name = list("Harmony Pretchl")
/datum/gear/fluff/vox_dylo_pills
path = /obj/item/storage/pill_bottle/dylovene
display_name = "Dylovene pill bottle"
ckeywhitelist = list("jparker890")
character_name = list("Krey-Timinine")
/datum/gear/fluff/koyo_box
path = /obj/item/storage/box/fluff/koyoakimomi
display_name = "Koyo's Box"
@@ -1239,6 +1245,13 @@
ckeywhitelist = list("satinisle")
character_name = list("Parriz Tavakdavi")
/datum/gear/fluff/dark_tarot
path = /obj/item/deck/dark_tarot
display_name = "dark rose tarot deck"
ckeywhitelist = list("satinisle")
character_name = list("Millie Orlen")
// T CKEYS
/datum/gear/fluff/ascian_medal
path = /obj/item/clothing/accessory/medal/silver/unity/tabiranth
@@ -56,7 +56,6 @@
toytype["Big Red Button"] = /obj/item/toy/redbutton
toytype["Garden gnome"] = /obj/item/toy/gnome
toytype["Toy AI"] = /obj/item/toy/AI
toytype["Hand buzzer"] = /obj/item/clothing/gloves/ring/buzzer/toy
toytype["Toy nuke"] = /obj/item/toy/nuke
toytype["Toy gibber"] = /obj/item/toy/minigibber
toytype["Toy xeno"] = /obj/item/toy/toy_xeno
@@ -58,7 +58,7 @@
/datum/gear/gloves/fingerless
display_name = "fingerless gloves"
description = "A pair of gloves that don't actually cover the fingers. Available in classic black or recolourable white."
description = "A pair of gloves that don't actually cover the fingers. Available in classic black or recolourable white, with or without cutouts."
path = /obj/item/clothing/gloves/fingerless
/datum/gear/gloves/fingerless/New()
@@ -66,7 +66,8 @@
var/list/selector_uniforms = list(
"black"=/obj/item/clothing/gloves/fingerless,
"black, alt" =/obj/item/clothing/gloves/fingerless/alt,
"recolourable white"=/obj/item/clothing/gloves/fingerless_recolourable
"recolourable white"=/obj/item/clothing/gloves/fingerless_recolourable,
"recolourable, alt"=/obj/item/clothing/gloves/fingerless_recolourable/alt
)
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms))
gear_tweaks += gear_tweak_free_color_choice
@@ -74,27 +75,27 @@
/datum/gear/gloves/ring
display_name = "ring selection"
description = "Choose from a number of rings."
path = /obj/item/clothing/gloves/ring
path = /obj/item/clothing/accessory/ring
cost = 1
/datum/gear/gloves/ring/New()
..()
var/ringtype = list()
ringtype["CTI ring"] = /obj/item/clothing/gloves/ring/cti
ringtype["Mariner University ring"] = /obj/item/clothing/gloves/ring/mariner
ringtype["engagement ring"] = /obj/item/clothing/gloves/ring/engagement
ringtype["signet ring"] = /obj/item/clothing/gloves/ring/seal/signet
ringtype["masonic ring"] = /obj/item/clothing/gloves/ring/seal/mason
ringtype["ring, glass"] = /obj/item/clothing/gloves/ring/material/glass
ringtype["ring, wood"] = /obj/item/clothing/gloves/ring/material/wood
ringtype["ring, plastic"] = /obj/item/clothing/gloves/ring/material/plastic
ringtype["ring, iron"] = /obj/item/clothing/gloves/ring/material/iron
ringtype["ring, bronze"] = /obj/item/clothing/gloves/ring/material/bronze
ringtype["ring, steel"] = /obj/item/clothing/gloves/ring/material/steel
ringtype["ring, copper"] = /obj/item/clothing/gloves/ring/material/copper
ringtype["ring, silver"] = /obj/item/clothing/gloves/ring/material/silver
ringtype["ring, gold"] = /obj/item/clothing/gloves/ring/material/gold
ringtype["ring, platinum"] = /obj/item/clothing/gloves/ring/material/platinum
ringtype["CTI ring"] = /obj/item/clothing/accessory/ring/cti
ringtype["Mariner University ring"] = /obj/item/clothing/accessory/ring/mariner
ringtype["engagement ring"] = /obj/item/clothing/accessory/ring/engagement
ringtype["signet ring"] = /obj/item/clothing/accessory/ring/seal/signet
ringtype["masonic ring"] = /obj/item/clothing/accessory/ring/seal/mason
ringtype["ring, glass"] = /obj/item/clothing/accessory/ring/material/glass
ringtype["ring, wood"] = /obj/item/clothing/accessory/ring/material/wood
ringtype["ring, plastic"] = /obj/item/clothing/accessory/ring/material/plastic
ringtype["ring, iron"] = /obj/item/clothing/accessory/ring/material/iron
ringtype["ring, bronze"] = /obj/item/clothing/accessory/ring/material/bronze
ringtype["ring, steel"] = /obj/item/clothing/accessory/ring/material/steel
ringtype["ring, copper"] = /obj/item/clothing/accessory/ring/material/copper
ringtype["ring, silver"] = /obj/item/clothing/accessory/ring/material/silver
ringtype["ring, gold"] = /obj/item/clothing/accessory/ring/material/gold
ringtype["ring, platinum"] = /obj/item/clothing/accessory/ring/material/platinum
gear_tweaks += new/datum/gear_tweak/path(ringtype)
@@ -105,14 +106,14 @@
/datum/gear/gloves/watch
display_name = "wristwatch selector"
description = "Pick from a range of wristwatches."
path = /obj/item/clothing/gloves/watch
path = /obj/item/clothing/accessory/watch
/datum/gear/gloves/watch/New()
..()
var/list/selector_watches = list(
"plain plastic"=/obj/item/clothing/gloves/watch,
"silver"=/obj/item/clothing/gloves/watch/silver,
"gold"=/obj/item/clothing/gloves/watch/gold,
"survival"=/obj/item/clothing/gloves/watch/survival
"plain plastic"=/obj/item/clothing/accessory/watch,
"silver"=/obj/item/clothing/accessory/watch/silver,
"gold"=/obj/item/clothing/accessory/watch/gold,
"survival"=/obj/item/clothing/accessory/watch/survival
)
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_watches))
@@ -1,10 +1,10 @@
/datum/gear/gloves/goldring
display_name = "wedding ring, gold"
path = /obj/item/clothing/gloves/ring/wedding
path = /obj/item/clothing/accessory/ring/wedding
/datum/gear/gloves/silverring
display_name = "wedding ring, silver"
path = /obj/item/clothing/gloves/ring/wedding/silver
path = /obj/item/clothing/accessory/ring/wedding/silver
/datum/gear/gloves/colored
display_name = "gloves, colorable"
@@ -7,11 +7,6 @@
sort_order = 1
category_item_type = /datum/category_item/player_setup_item/general
/datum/category_group/player_setup_category/skill_preferences
name = "Skills"
sort_order = 2
category_item_type = /datum/category_item/player_setup_item/skills
/datum/category_group/player_setup_category/occupation_preferences
name = "Occupation"
sort_order = 3
@@ -1,89 +0,0 @@
/datum/category_item/player_setup_item/skills
name = "Skills"
sort_order = 1
/datum/category_item/player_setup_item/skills/load_character(list/save_data)
pref.skills = check_list_copy(save_data["skills"])
pref.used_skillpoints = save_data["used_skillpoints"]
pref.skill_specialization = save_data["skill_specialization"]
/datum/category_item/player_setup_item/skills/save_character(list/save_data)
save_data["skills"] = check_list_copy(pref.skills)
save_data["used_skillpoints"] = pref.used_skillpoints
save_data["skill_specialization"] = pref.skill_specialization
/datum/category_item/player_setup_item/skills/sanitize_character()
if(SKILLS == null) setup_skills()
if(!pref.skills) pref.skills = list()
if(!pref.skills.len) pref.ZeroSkills()
if(pref.used_skillpoints < 0) pref.used_skillpoints = 0
// Moved from /datum/preferences/proc/copy_to()
/datum/category_item/player_setup_item/skills/copy_to_mob(var/mob/living/carbon/human/character)
character.skills = pref.skills
character.used_skillpoints = pref.used_skillpoints
/datum/category_item/player_setup_item/skills/content()
. = list()
. += span_bold("Select your Skills") + "<br>"
. += "Current skill level: <b>[pref.GetSkillClass(pref.used_skillpoints)]</b> ([pref.used_skillpoints])<br>"
. += "<a href='?src=\ref[src];preconfigured=1'>Use preconfigured skillset</a><br>"
. += "<table>"
for(var/V in SKILLS)
. += "<tr><th colspan = 5><b>[V]</b>"
. += "</th></tr>"
for(var/datum/skill/S in SKILLS[V])
var/level = pref.skills[S.ID]
. += "<tr style='text-align:left;'>"
. += "<th><a href='?src=\ref[src];skillinfo=\ref[S]'>[S.name]</a></th>"
. += skill_to_button(S, "Untrained", level, SKILL_NONE)
// secondary skills don't have an amateur level
if(S.secondary)
. += "<th></th>"
else
. += skill_to_button(S, "Amateur", level, SKILL_BASIC)
. += skill_to_button(S, "Trained", level, SKILL_ADEPT)
. += skill_to_button(S, "Professional", level, SKILL_EXPERT)
. += "</tr>"
. += "</table>"
. = jointext(.,null)
/datum/category_item/player_setup_item/proc/skill_to_button(var/skill, var/level_name, var/current_level, var/selection_level)
if(current_level == selection_level)
return "<th>" + span_linkOn("[level_name]") + "</th>"
return "<th><a href='?src=\ref[src];setskill=\ref[skill];newvalue=[selection_level]'>[level_name]</a></th>"
/datum/category_item/player_setup_item/skills/OnTopic(href, href_list, user)
if(href_list["skillinfo"])
var/datum/skill/S = locate(href_list["skillinfo"])
var/HTML = span_bold("[S.name]") + "<br>[S.desc]"
user << browse(HTML, "window=\ref[user]skillinfo")
return TOPIC_HANDLED
else if(href_list["setskill"])
var/datum/skill/S = locate(href_list["setskill"])
var/value = text2num(href_list["newvalue"])
pref.skills[S.ID] = value
pref.CalculateSkillPoints()
return TOPIC_REFRESH
else if(href_list["preconfigured"])
var/selected = tgui_input_list(user, "Select a skillset", "Skillset", SKILL_PRE)
if(!selected || !CanUseTopic(user)) return
pref.ZeroSkills(1)
for(var/V in SKILL_PRE[selected])
if(V == "field")
pref.skill_specialization = SKILL_PRE[selected]["field"]
continue
pref.skills[V] = SKILL_PRE[selected][V]
pref.CalculateSkillPoints()
return TOPIC_REFRESH
else if(href_list["setspecialization"])
pref.skill_specialization = href_list["setspecialization"]
pref.CalculateSkillPoints()
return TOPIC_REFRESH
return ..()
-56
View File
@@ -122,10 +122,6 @@ var/list/preferences_datums = list()
//Keeps track of preferrence for not getting any wanted jobs
var/alternate_option = 1
var/used_skillpoints = 0
var/skill_specialization = null
var/list/skills = list() // skills can range from 0 to 3
// maps each organ to either null(intact), "cyborg" or "amputated"
// will probably not be able to do this for head and torso ;)
var/list/organ_data = list()
@@ -233,58 +229,6 @@ var/list/preferences_datums = list()
value_cache = null
return ..()
/datum/preferences/proc/ZeroSkills(var/forced = 0)
for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V])
if(!skills.Find(S.ID) || forced)
skills[S.ID] = SKILL_NONE
/datum/preferences/proc/CalculateSkillPoints()
used_skillpoints = 0
for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V])
var/multiplier = 1
switch(skills[S.ID])
if(SKILL_NONE)
used_skillpoints += 0 * multiplier
if(SKILL_BASIC)
used_skillpoints += 1 * multiplier
if(SKILL_ADEPT)
// secondary skills cost less
if(S.secondary)
used_skillpoints += 1 * multiplier
else
used_skillpoints += 3 * multiplier
if(SKILL_EXPERT)
// secondary skills cost less
if(S.secondary)
used_skillpoints += 3 * multiplier
else
used_skillpoints += 6 * multiplier
/datum/preferences/proc/GetSkillClass(points)
return CalculateSkillClass(points, age)
/proc/CalculateSkillClass(points, age)
if(points <= 0) return "Unconfigured"
// skill classes describe how your character compares in total points
points -= min(round((age - 20) / 2.5), 4) // every 2.5 years after 20, one extra skillpoint
if(age > 30)
points -= round((age - 30) / 5) // every 5 years after 30, one extra skillpoint
switch(points)
if(-1000 to 3)
return "Terrifying"
if(4 to 6)
return "Below Average"
if(7 to 10)
return "Average"
if(11 to 14)
return "Above Average"
if(15 to 18)
return "Exceptional"
if(19 to 24)
return "Genius"
if(24 to 1000)
return "God"
/datum/preferences/proc/ShowChoices(mob/user)
if(!user || !user.client) return
+1 -1
View File
@@ -7,7 +7,7 @@
var/list/Lines = list()
if(holder)
if(check_rights(R_ADMIN|R_SERVER|R_MOD,FALSE,src))
for(var/client/C in GLOB.clients)
var/entry = "<tr><td>[C.key]"
if(C.holder && C.holder.fakekey)
-7
View File
@@ -3,9 +3,6 @@
set name = "OOC"
set category = "OOC.Chat"
if(say_disabled) //This is here to try to identify lag problems
to_chat(usr, span_warning("Speech is currently admin-disabled."))
return
if(!mob) return
if(IsGuestKey(key))
@@ -86,10 +83,6 @@
set desc = "Local OOC, seen only by those in view."
set category = "OOC.Chat"
if(say_disabled) //This is here to try to identify lag problems
to_chat(usr, span_danger("Speech is currently admin-disabled."))
return
if(!mob)
return