diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 6b1d124dad..abc39110a3 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -227,7 +227,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"meat_type" = "Mammalian",
"body_model" = MALE,
"body_size" = RESIZE_DEFAULT_SIZE,
-"color_scheme" = OLD_CHARACTER_COLORING
+"color_scheme" = OLD_CHARACTER_COLORING,
+
+"neckfire" = FALSE,
+"neckfire_color" = "ffffff"
)
@@ -942,6 +945,16 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Belly Size:[features["belly_size"]]"
dat += "Belly Visibility:[features["belly_visibility"]]"
dat += ""
+ if(pref_species.id == SPECIES_DULLAHAN)
+ dat += APPEARANCE_CATEGORY_COLUMN
+
+ dat += "
Neckfire
"
+ dat += "[features["neckfire"] ? "Yes" : "No"]"
+ if(features["neckfire"])
+ dat += "Color:
"
+ dat += "#[features["neckfire_color"]]Change
"
+
+ dat += ""
dat += ""
dat += ""
@@ -2233,6 +2246,19 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("mismatched_markings")
show_mismatched_markings = !show_mismatched_markings
+ if("has_neckfire")
+ features["neckfire"] = !features["neckfire"]
+ if("has_neckfire_color")
+ var/new_neckfire_color = input(user, "Choose your fire's color:", "Character Preference", "#"+features["neckfire_color"]) as color|null
+ if(new_neckfire_color)
+ var/temp_hsv = RGBtoHSV(new_neckfire_color)
+ if(new_neckfire_color == "#000000")
+ features["neckfire_color"] = pref_species.default_color
+ else if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3])
+ features["neckfire_color"] = sanitize_hexcolor(new_neckfire_color, 6)
+ else
+ to_chat(user,"Invalid color. Your color is not bright enough.")
+
if("ipc_screen")
var/new_ipc_screen
new_ipc_screen = input(user, "Choose your character's screen:", "Character Preference") as null|anything in GLOB.ipc_screens_list
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 293d21e847..e1c2a7c99a 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -761,7 +761,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
"meat_type" = "Mammalian",
"body_model" = MALE,
"body_size" = RESIZE_DEFAULT_SIZE,
-"color_scheme" = OLD_CHARACTER_COLORING)
+"color_scheme" = OLD_CHARACTER_COLORING,
+
+"neckfire" = FALSE,
+"neckfire_color" = "ffffff"
+)
S.cd = "/"
@@ -968,6 +972,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//SPLURT edit
S["feature_naked_flavor_text"] >> features["naked_flavor_text"]
+ S["feature_neckfire"] >> features["neckfire"]
+ S["feature_neckfire_color"] >> features["neckfire_color"]
//end
// Barks
S["bark_id"] >> bark_id
@@ -1311,6 +1317,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_belly_size"], features["belly_size"])
WRITE_FILE(S["feature_belly_visibility"], features["belly_visibility"])
+ WRITE_FILE(S["feature_neckfire"], features["neckfire"])
+ WRITE_FILE(S["feature_neckfire_color"], features["neckfire_color"])
+
WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
WRITE_FILE(S["feature_color_scheme"], features["color_scheme"])