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)