| "
if(jobban_isbanned(user, "appearance"))
@@ -864,72 +864,72 @@ GLOBAL_LIST_EMPTY(preferences_datums)
return job_engsec_low
return 0
-/datum/preferences/proc/SetTraits(mob/user)
- if(!SStraits)
- to_chat(user, "The trait subsystem is still initializing! Try again in a minute.")
+/datum/preferences/proc/SetQuirks(mob/user)
+ if(!SSquirks)
+ to_chat(user, "The quirk subsystem is still initializing! Try again in a minute.")
return
var/list/dat = list()
- if(!SStraits.traits.len)
- dat += "The trait subsystem hasn't finished initializing, please hold..."
+ if(!SSquirks.quirks.len)
+ dat += "The quirk subsystem hasn't finished initializing, please hold..."
dat += " " else - dat += " " - dat += " Left-click to add or remove traits. You need one negative trait for every positive trait. "
+ dat += "\ - Traits are applied at roundstart and cannot normally be removed. " + dat += " Left-click to add or remove quirks. You need negative quirks to have positive ones. "
dat += "\ + Quirks are applied at roundstart and cannot normally be removed. " - dat += " \ - Trait balance remaining: [GetTraitBalance()] " - for(var/V in SStraits.traits) - var/datum/trait/T = SStraits.traits[V] - var/trait_name = initial(T.name) - var/has_trait - var/trait_cost = initial(T.value) * -1 + dat += " \ + Quirk balance remaining: [GetQuirkBalance()] " + for(var/V in SSquirks.quirks) + var/datum/quirk/T = SSquirks.quirks[V] + var/quirk_name = initial(T.name) + var/has_quirk + var/quirk_cost = initial(T.value) * -1 var/lock_reason = "This trait is unavailable." - var/trait_conflict = FALSE - for(var/_V in all_traits) - if(_V == trait_name) - has_trait = TRUE - if(initial(T.mood_trait) && CONFIG_GET(flag/disable_human_mood)) + var/quirk_conflict = FALSE + for(var/_V in all_quirks) + if(_V == quirk_name) + has_quirk = TRUE + if(initial(T.mood_quirk) && CONFIG_GET(flag/disable_human_mood)) lock_reason = "Mood is disabled." - trait_conflict = TRUE - if(has_trait) - if(trait_conflict) - all_traits -= trait_name - has_trait = FALSE + quirk_conflict = TRUE + if(has_quirk) + if(quirk_conflict) + all_quirks -= quirk_name + has_quirk = FALSE else - trait_cost *= -1 //invert it back, since we'd be regaining this amount - if(trait_cost > 0) - trait_cost = "+[trait_cost]" + quirk_cost *= -1 //invert it back, since we'd be regaining this amount + if(quirk_cost > 0) + quirk_cost = "+[quirk_cost]" var/font_color = "#AAAAFF" if(initial(T.value) != 0) font_color = initial(T.value) > 0 ? "#AAFFAA" : "#FFAAAA" - if(trait_conflict) - dat += "[trait_name] - [initial(T.desc)] \ + if(quirk_conflict) + dat += "[quirk_name] - [initial(T.desc)] \ LOCKED: [lock_reason] " else - if(has_trait) - dat += "[trait_name] - [initial(T.desc)] \ - [has_trait ? "Lose" : "Take"] ([trait_cost] pts.) " + if(has_quirk) + dat += "[quirk_name] - [initial(T.desc)] \ + [has_quirk ? "Lose" : "Take"] ([quirk_cost] pts.) " else - dat += "[trait_name] - [initial(T.desc)] \ - [has_trait ? "Lose" : "Take"] ([trait_cost] pts.) " + dat += "[quirk_name] - [initial(T.desc)] \ + [has_quirk ? "Lose" : "Take"] ([quirk_cost] pts.) " dat += " Trait Preferences ", 900, 600) //no reason not to reuse the occupation window, as it's cleaner that way
+ var/datum/browser/popup = new(user, "mob_occupation", "Quirk Preferences ", 900, 600) //no reason not to reuse the occupation window, as it's cleaner that way
popup.set_window_options("can_close=0")
popup.set_content(dat.Join())
popup.open(0)
return
-/datum/preferences/proc/GetTraitBalance()
+/datum/preferences/proc/GetQuirkBalance()
var/bal = 0
- for(var/V in all_traits)
- var/datum/trait/T = SStraits.traits[V]
+ for(var/V in all_quirks)
+ var/datum/quirk/T = SSquirks.quirks[V]
bal -= initial(T.value)
return bal
@@ -986,55 +986,55 @@ GLOBAL_LIST_EMPTY(preferences_datums)
user << browse(null, "window=mob_occupation")
ShowChoices(user)
if("update")
- var/trait = href_list["trait"]
- if(!SStraits.traits[trait])
+ var/quirk = href_list["trait"]
+ if(!SSquirks.quirks[quirk])
return
- var/value = SStraits.trait_points[trait]
+ var/value = SSquirks.quirk_points[quirk]
if(value == 0)
- if(trait in neutral_traits)
- neutral_traits -= trait
- all_traits -= trait
+ if(quirk in neutral_quirks)
+ neutral_quirks -= quirk
+ all_quirks -= quirk
else
- if(all_traits.len >= MAX_TRAITS)
- to_chat(user, "You can't have more than [MAX_TRAITS] traits!")
+ if(all_quirks.len >= MAX_TRAITS)
+ to_chat(user, "You can't have more than [MAX_TRAITS] quirks!")
return
- neutral_traits += trait
- all_traits += trait
+ neutral_quirks += quirk
+ all_quirks += quirk
else
- var/balance = GetTraitBalance()
- if(trait in positive_traits)
- positive_traits -= trait
- all_traits -= trait
- else if(trait in negative_traits)
+ var/balance = GetQuirkBalance()
+ if(quirk in positive_quirks)
+ positive_quirks -= quirk
+ all_quirks -= quirk
+ else if(quirk in negative_quirks)
if(balance + value < 0)
to_chat(user, "Refunding this would cause you to go below your balance!")
return
- negative_traits -= trait
- all_traits -= trait
+ negative_quirks -= quirk
+ all_quirks -= quirk
else if(value > 0)
- if(all_traits.len >= MAX_TRAITS)
- to_chat(user, "You can't have more than [MAX_TRAITS] traits!")
+ if(all_quirks.len >= MAX_TRAITS)
+ to_chat(user, "You can't have more than [MAX_TRAITS] quirks!")
return
if(balance - value < 0)
- to_chat(user, "You don't have enough balance to gain this trait!")
+ to_chat(user, "You don't have enough balance to gain this quirk!")
return
- positive_traits += trait
- all_traits += trait
+ positive_quirks += quirk
+ all_quirks += quirk
else
- if(all_traits.len >= MAX_TRAITS)
- to_chat(user, "You can't have more than [MAX_TRAITS] traits!")
+ if(all_quirks.len >= MAX_TRAITS)
+ to_chat(user, "You can't have more than [MAX_TRAITS] quirks!")
return
- negative_traits += trait
- all_traits += trait
- SetTraits(user)
+ negative_quirks += quirk
+ all_quirks += quirk
+ SetQuirks(user)
if("reset")
- all_traits = list()
- positive_traits = list()
- negative_traits = list()
- neutral_traits = list()
- SetTraits(user)
+ all_quirks = list()
+ positive_quirks = list()
+ negative_quirks = list()
+ neutral_quirks = list()
+ SetQuirks(user)
else
- SetTraits(user)
+ SetQuirks(user)
return TRUE
switch(href_list["task"])
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index ed9c0bad421..10aeef49cc8 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -3,7 +3,7 @@
//This is the current version, anything below this will attempt to update (if it's not obsolete)
// You do not need to raise this if you are adding new values that have sane defaults.
-// Only raise this value when changing the meaning/format/name/layout of an existing value
+// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
#define SAVEFILE_VERSION_MAX 20
@@ -34,7 +34,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
return savefile_version
return -1
-//should these procs get fairly long
+//should these procs get fairly long
//just increase SAVEFILE_VERSION_MIN so it's not as far behind
//SAVEFILE_VERSION_MAX and then delete any obsolete if clauses
//from these procs.
@@ -258,11 +258,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["job_engsec_med"] >> job_engsec_med
S["job_engsec_low"] >> job_engsec_low
- //Traits
- S["all_traits"] >> all_traits
- S["positive_traits"] >> positive_traits
- S["negative_traits"] >> negative_traits
- S["neutral_traits"] >> neutral_traits
+ //Quirks
+ S["all_quirks"] >> all_quirks
+ S["positive_quirks"] >> positive_quirks
+ S["negative_quirks"] >> negative_quirks
+ S["neutral_quirks"] >> neutral_quirks
//try to fix any outdated data if necessary
if(needs_update >= 0)
@@ -319,10 +319,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med))
job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low))
- all_traits = SANITIZE_LIST(all_traits)
- positive_traits = SANITIZE_LIST(positive_traits)
- negative_traits = SANITIZE_LIST(negative_traits)
- neutral_traits = SANITIZE_LIST(neutral_traits)
+ all_quirks = SANITIZE_LIST(all_quirks)
+ positive_quirks = SANITIZE_LIST(positive_quirks)
+ negative_quirks = SANITIZE_LIST(negative_quirks)
+ neutral_quirks = SANITIZE_LIST(neutral_quirks)
return 1
@@ -387,11 +387,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["job_engsec_med"] , job_engsec_med)
WRITE_FILE(S["job_engsec_low"] , job_engsec_low)
- //Traits
- WRITE_FILE(S["all_traits"] , all_traits)
- WRITE_FILE(S["positive_traits"] , positive_traits)
- WRITE_FILE(S["negative_traits"] , negative_traits)
- WRITE_FILE(S["neutral_traits"] , neutral_traits)
+ //Quirks
+ WRITE_FILE(S["all_quirks"] , all_quirks)
+ WRITE_FILE(S["positive_quirks"] , positive_quirks)
+ WRITE_FILE(S["negative_quirks"] , negative_quirks)
+ WRITE_FILE(S["neutral_quirks"] , neutral_quirks)
return 1
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 3ecf70e19ba..14d183441fe 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -394,7 +394,7 @@
SSticker.mode.make_antag_chance(humanc)
if(humanc && CONFIG_GET(flag/roundstart_traits))
- SStraits.AssignTraits(humanc, humanc.client, TRUE)
+ SSquirks.AssignQuirks(humanc, humanc.client, TRUE)
log_manifest(character.mind.key,character.mind,character,latejoin = TRUE)
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index 68c6ed5c838..05a14ef3b13 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -193,10 +193,10 @@
blood_data["real_name"] = real_name
blood_data["features"] = dna.features
blood_data["factions"] = faction
- blood_data["traits"] = list()
- for(var/V in roundstart_traits)
- var/datum/trait/T = V
- blood_data["traits"] += T.type
+ blood_data["quirks"] = list()
+ for(var/V in roundstart_quirks)
+ var/datum/quirk/T = V
+ blood_data["quirks"] += T.type
return blood_data
//get the id of the substance this mob use as blood.
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 2e254e03790..b1cd6bc943e 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -733,8 +733,8 @@
if(0 to NUTRITION_LEVEL_STARVING)
to_chat(src, "You're starving!")
- if(roundstart_traits.len)
- to_chat(src, "You have these traits: [get_trait_string()].")
+ if(roundstart_quirks.len)
+ to_chat(src, "You have these quirks: [get_trait_string()].")
else
if(wear_suit)
wear_suit.add_fingerprint(M)
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 6dfaa565fad..94b1e64f393 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -34,7 +34,7 @@
var/list/status_traits = list()
- var/list/roundstart_traits = list()
+ var/list/roundstart_quirks = list()
var/list/surgeries = list() //a list of surgery datums. generally empty, they're added when the player wants them.
diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm
index 106381bade2..0a0f27f123d 100644
--- a/code/modules/mob/living/status_procs.dm
+++ b/code/modules/mob/living/status_procs.dm
@@ -146,12 +146,12 @@
else
status_traits[trait] |= list(source)
-/mob/living/proc/add_trait_datum(trait, spawn_effects) //separate proc due to the way these ones are handled
- if(has_trait(trait))
+/mob/living/proc/add_quirk(quirk, spawn_effects) //separate proc due to the way these ones are handled
+ if(has_trait(quirk))
return
- if(!SStraits || !SStraits.traits[trait])
+ if(!SSquirks || !SSquirks.quirks[quirk])
return
- var/datum/trait/T = SStraits.traits[trait]
+ var/datum/quirk/T = SSquirks.quirks[quirk]
new T (src, spawn_effects)
return TRUE
@@ -180,8 +180,8 @@
if(!LAZYLEN(status_traits[trait]))
status_traits -= trait
-/mob/living/proc/remove_trait_datum(trait)
- var/datum/trait/T = roundstart_traits[trait]
+/mob/living/proc/remove_quirk(quirk)
+ var/datum/quirk/T = roundstart_quirks[quirk]
if(T)
qdel(T)
return TRUE
@@ -201,8 +201,8 @@
else if(LAZYLEN(status_traits[trait]))
return TRUE
-/mob/living/proc/has_trait_datum(trait)
- return roundstart_traits[trait]
+/mob/living/proc/has_quirk(quirk)
+ return roundstart_quirks[quirk]
/mob/living/proc/remove_all_traits()
status_traits = list()
diff --git a/config/game_options.txt b/config/game_options.txt
index b5df60fdd6f..62b2b67fa81 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -512,7 +512,8 @@ MICE_ROUNDSTART 10
## Determines if players are allowed to print integrated circuits, uncomment to allow.
#IC_PRINTING
-## Uncomment to allow roundstart trait selection in the character setup menu.
+## Uncomment to allow roundstart quirk selection in the character setup menu.
+## This used to be named traits, hence the config name, but it handles quirks, not the other kind of trait!
ROUNDSTART_TRAITS
## Uncomment to disable human moods.
diff --git a/tgstation.dme b/tgstation.dme
index 5105debbda1..eaef3041796 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -252,7 +252,7 @@
#include "code\controllers\subsystem\processing\obj.dm"
#include "code\controllers\subsystem\processing\processing.dm"
#include "code\controllers\subsystem\processing\projectiles.dm"
-#include "code\controllers\subsystem\processing\traits.dm"
+#include "code\controllers\subsystem\processing\quirks.dm"
#include "code\controllers\subsystem\processing\wet_floors.dm"
#include "code\datums\action.dm"
#include "code\datums\ai_laws.dm"
@@ -438,7 +438,7 @@
#include "code\datums\status_effects\gas.dm"
#include "code\datums\status_effects\neutral.dm"
#include "code\datums\status_effects\status_effect.dm"
-#include "code\datums\traits\_trait.dm"
+#include "code\datums\traits\_quirk.dm"
#include "code\datums\traits\good.dm"
#include "code\datums\traits\negative.dm"
#include "code\datums\traits\neutral.dm"
|