diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm
index f3c1755db16..7ba2728e5c4 100644
--- a/code/modules/mob/new_player/preferences.dm
+++ b/code/modules/mob/new_player/preferences.dm
@@ -133,39 +133,48 @@ datum/preferences
proc/CalculateSkillPoints()
used_skillpoints = 0
for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V])
- var/multiplier = 2
- if(skill_specialization == S.field || S.field == "Misc")
- multiplier = 1
+ var/multiplier = 1
switch(skills[S.ID])
if(SKILL_NONE)
used_skillpoints += 0 * multiplier
if(SKILL_BASIC)
used_skillpoints += 1 * multiplier
if(SKILL_ADEPT)
- used_skillpoints += 3 * multiplier
+ // secondary skills cost less
+ if(S.secondary)
+ used_skillpoints += 1 * multiplier
+ else
+ used_skillpoints += 3 * multiplier
if(SKILL_EXPERT)
- used_skillpoints += 8 * multiplier
+ // secondary skills cost less
+ if(S.secondary)
+ used_skillpoints += 3 * multiplier
+ else
+ used_skillpoints += 6 * multiplier
proc/GetSkillClass(points)
// skill classes describe how your character compares in total points
+ var/original_points = 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
+ if(original_points > 0 && points <= 0) points = 1
switch(points)
if(0)
return "Unconfigured"
- if(1 to 3)
- return "Talentless"
- if(3 to 6)
+ if(1 to 2)
+ return "Terrifying"
+ if(4 to 6)
return "Below Average"
if(7 to 10)
return "Average"
- if(11 to 12)
- return "Talented"
- if(13 to 15)
- return "Extremely Talented"
- if(16 to 18)
+ if(11 to 14)
+ return "Above Average"
+ if(15 to 18)
+ return "Exceptional"
+ if(19 to 24)
return "Genius"
- if(19 to 20)
- return "True Genius"
- if(21 to 1000)
+ if(24 to 1000)
return "God"
proc/SetSkills(mob/user)
@@ -182,16 +191,20 @@ datum/preferences
HTML += "Use preconfigured skillset
"
HTML += "
| [V]" + HTML += " | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| [V]" HTML += " | |||||||||
| [S.name] | " - HTML += "\[Layman\] | " - HTML += "\[Basic\] | " - HTML += "\[Adept\] | " - HTML += "\[Expert\] | " + HTML += "\[Untrained\] | " + // secondary skills don't have an amateur level + if(S.secondary) + HTML += "" + else + HTML += " | \[Amateur\] | " + HTML += "\[Trained\] | " + HTML += "\[Professional\] | " HTML += "