/datum/category_item/player_setup_item/skills name = "Skills" sort_order = 1 /datum/category_item/player_setup_item/skills/load_character(var/savefile/S) S["skills"] >> pref.skills S["used_skillpoints"] >> pref.used_skillpoints S["skill_specialization"] >> pref.skill_specialization /datum/category_item/player_setup_item/skills/save_character(var/savefile/S) S["skills"] << pref.skills S["used_skillpoints"] << pref.used_skillpoints S["skill_specialization"] << pref.skill_specialization /datum/category_item/player_setup_item/skills/gather_load_query() return list("ss13_characters" = list("vars" = list("skills", "skill_specialization"), "args" = list("id"))) /datum/category_item/player_setup_item/skills/gather_load_parameters() return list(":id" = pref.current_character) /datum/category_item/player_setup_item/skills/gather_save_query() return list("ss13_characters" = list("skills", "skill_specialization", "id" = 1, "ckey" = 1)) /datum/category_item/player_setup_item/skills/gather_save_parameters() return list(":skills" = list2params(pref.skills), ":skill_specialization" = pref.skill_specialization, ":id" = pref.current_character, ":ckey" = pref.client.ckey) /datum/category_item/player_setup_item/skills/sanitize_character(var/sql_load = 0) if (SKILLS == null) setup_skills() if (!pref.skills) pref.skills = list() if (sql_load) pref.skills = params2list(pref.skills) if (!pref.skills || !islist(pref.skills) || !pref.skills.len) pref.ZeroSkills() else for (var/skill in pref.skills) pref.skills[skill] = text2num(pref.skills[skill]) pref.CalculateSkillPoints() if (!pref.skills.len) pref.ZeroSkills() if (pref.used_skillpoints < 0) pref.used_skillpoints = 0 /datum/category_item/player_setup_item/skills/content() . += "Select your Skills
" . += "Current skill level: [pref.GetSkillClass(pref.used_skillpoints)] ([pref.used_skillpoints])
" . += "Use preconfigured skillset
" . += "" for(var/V in SKILLS) . += "" for(var/datum/skill/S in SKILLS[V]) var/level = pref.skills[S.ID] . += "" . += "" . += "" // secondary skills don't have an amateur level if(S.secondary) . += "" else . += "" . += "" . += "" . += "" . += "
[V]" . += "
[S.name]\[Untrained\]\[Amateur\]\[Trained\]\[Professional\]
" /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 = "[S.name]
[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 = input(user, "Select a skillset", "Skillset") as null|anything in 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 ..()