From ac075a56f07ffb7f1dad0437daa1348fd44f2a0d Mon Sep 17 00:00:00 2001 From: nemvar <47324920+nemvar@users.noreply.github.com> Date: Tue, 22 Oct 2019 13:20:53 +0200 Subject: [PATCH] Fixes various skill bugs. (#47279) * Having none skill whatsoever will now give you the worst possible skill modifier. Viewing your skills is now formatted correctly. Skill names are now capitalized. Looks slightly better. * fileendings * Needs to check for null this one. * Newline --- code/datums/mind.dm | 27 +++++++++++++-------------- code/datums/skills/_skill.dm | 2 +- code/datums/skills/mining.dm | 2 +- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index e7662a46ab0..a6eeca61e3e 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -148,8 +148,8 @@ known_skills[S] = SKILL_LEVEL_NOVICE if(0 to SKILL_EXP_NOVICE) known_skills[S] = SKILL_LEVEL_NONE - if(known_skills[S] == old_level) - return //same level + if(isnull(old_level) || known_skills[S] == old_level) + return //same level or we just started earning xp towards the first level. if(silent) return if(known_skills[S] >= old_level) @@ -160,27 +160,26 @@ ///Gets the skill's singleton and returns the result of its get_skill_speed_modifier /datum/mind/proc/get_skill_speed_modifier(skill) var/datum/skill/S = GetSkillRef(skill) - return S.get_skill_speed_modifier(known_skills[S]) + return S.get_skill_speed_modifier(known_skills[S] || SKILL_LEVEL_NONE) /datum/mind/proc/get_skill_level(skill) var/datum/skill/S = GetSkillRef(skill) - return known_skills[S] + return known_skills[S] || SKILL_LEVEL_NONE /datum/mind/proc/print_levels(user) - var/msg - var/list/shown_skills = list() for(var/i in known_skills) - if(known_skills[i]) + if(known_skills[i]) //Do we actually have a level in this? shown_skills += i - if(!shown_skills.len) - msg += "You don't seem to have any particularly outstanding skills." - to_chat(user, msg) - - msg += "*---------*\nYour skills\n" + if(!length(shown_skills)) + to_chat(user, "You don't seem to have any particularly outstanding skills.") + return + var/msg = "" + msg += "*---------*\nYour skills\n" for(var/i in shown_skills) - var/datum/skill/S - msg += "[i] - [SSskills.level_names[known_skills[S.name]]]" + var/datum/skill/S = i + msg += "[i] - [SSskills.level_names[known_skills[S.name]]]\n" + msg += "" to_chat(user, msg) diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index 35cfc15a412..a4387949fec 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -1,5 +1,5 @@ /datum/skill - var/name = "skill" + var/name = "Skill" var/desc = "the art of doing things" /datum/skill/proc/get_skill_speed_modifier(level) diff --git a/code/datums/skills/mining.dm b/code/datums/skills/mining.dm index 3846efa7f08..e2021d34d7a 100644 --- a/code/datums/skills/mining.dm +++ b/code/datums/skills/mining.dm @@ -1,5 +1,5 @@ /datum/skill/mining - name = "mining" + name = "Mining" desc = "A dwarf's biggest skill, after drinking." /datum/skill/mining/get_skill_speed_modifier(level)