diff --git a/code/__DEFINES/pred.dm b/code/__DEFINES/pred.dm
index 5826a2ca56f6..a8bc1007d51e 100644
--- a/code/__DEFINES/pred.dm
+++ b/code/__DEFINES/pred.dm
@@ -1,5 +1,6 @@
#define PRED_MATERIALS list("ebony", "silver", "bronze", "crimson", "bone")
#define PRED_TRANSLATORS list("Modern", "Retro", "Combo")
+#define PRED_LEGACIES list("None", "Dragon", "Swamp", "Enforcer", "Collector")
#define PRED_SKIN_COLOR list("tan", "green", "purple", "blue", "red", "black")
#define PRED_YAUTJA_CAPE "yautja cape"
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 3e2c1445f8e5..83976e6a9077 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -145,7 +145,7 @@ FORENSIC SCANNER
/obj/item/device/healthanalyzer/alien
name = "\improper YMX scanner"
icon = 'icons/obj/items/hunter/pred_gear.dmi'
- icon_state = "Tracker"
+ icon_state = "scanner"
item_state = "analyzer"
desc = "An alien design hand-held body scanner able to distinguish vital signs of the subject. The front panel is able to provide the basic readout of the subject's status."
alien = TRUE
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 4f1161709657..79c73577b22e 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -87,6 +87,7 @@ var/const/MAX_SAVE_SLOTS = 10
var/predator_age = 100
var/predator_h_style = "Standard"
var/predator_skin_color = "tan"
+ var/predator_use_legacy = "None"
var/predator_translator_type = "Modern"
var/predator_mask_type = 1
var/predator_armor_type = 1
@@ -508,6 +509,8 @@ var/const/MAX_SAVE_SLOTS = 10
dat += "
"
dat += "
Equipment Setup:
"
+ if(RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_YAUTJA_LEGACY)
+ dat += "
Legacy Gear: [predator_use_legacy]"
dat += "
Translator Type: [predator_translator_type]"
dat += "
Mask Style: ([predator_mask_type])"
dat += "
Armor Style: ([predator_armor_type])"
@@ -1233,6 +1236,11 @@ var/const/MAX_SAVE_SLOTS = 10
var/new_predator_age = tgui_input_number(user, "Choose your Predator's age(175 to 3000):", "Character Preference", 1234, 3000, 175)
if(new_predator_age)
predator_age = max(min( round(text2num(new_predator_age)), 3000),175)
+ if("pred_use_legacy")
+ var/legacy_choice = tgui_input_list(user, "What legacy set do you wish to use?", "Legacy Set", PRED_LEGACIES)
+ if(!legacy_choice)
+ return
+ predator_use_legacy = legacy_choice
if("pred_trans_type")
var/new_translator_type = tgui_input_list(user, "Choose your translator type.", "Translator Type", PRED_TRANSLATORS)
if(!new_translator_type)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 0f482fa7f894..2693a60dad3c 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -157,6 +157,7 @@
S["pred_name"] >> predator_name
S["pred_gender"] >> predator_gender
S["pred_age"] >> predator_age
+ S["pred_use_legacy"] >> predator_use_legacy
S["pred_trans_type"] >> predator_translator_type
S["pred_mask_type"] >> predator_mask_type
S["pred_armor_type"] >> predator_armor_type
@@ -231,6 +232,7 @@
predator_name = predator_name ? sanitize_text(predator_name, initial(predator_name)) : initial(predator_name)
predator_gender = sanitize_text(predator_gender, initial(predator_gender))
predator_age = sanitize_integer(predator_age, 100, 10000, initial(predator_age))
+ predator_use_legacy = sanitize_inlist(predator_use_legacy, PRED_LEGACIES, initial(predator_use_legacy))
predator_translator_type = sanitize_inlist(predator_translator_type, PRED_TRANSLATORS, initial(predator_translator_type))
predator_mask_type = sanitize_integer(predator_mask_type,1,1000000,initial(predator_mask_type))
predator_armor_type = sanitize_integer(predator_armor_type,1,1000000,initial(predator_armor_type))
@@ -337,6 +339,7 @@
S["pred_name"] << predator_name
S["pred_gender"] << predator_gender
S["pred_age"] << predator_age
+ S["pred_use_legacy"] << predator_use_legacy
S["pred_trans_type"] << predator_translator_type
S["pred_mask_type"] << predator_mask_type
S["pred_armor_type"] << predator_armor_type
diff --git a/code/modules/cm_preds/yaut_items.dm b/code/modules/cm_preds/yaut_items.dm
index 31526ae908f3..9e56d0da7098 100644
--- a/code/modules/cm_preds/yaut_items.dm
+++ b/code/modules/cm_preds/yaut_items.dm
@@ -61,41 +61,39 @@
fire_intensity_resistance = 10
black_market_value = 100
-/obj/item/clothing/suit/armor/yautja/Initialize(mapload, armor_number = rand(1,7), armor_material = "ebony", elder_restricted = 0)
+/obj/item/clothing/suit/armor/yautja/Initialize(mapload, armor_number = rand(1,7), armor_material = "ebony", legacy = "None")
. = ..()
if(thrall)
return
- if(elder_restricted)
- switch(armor_number)
- if(1341)
- name = "\improper 'Armor of the Dragon'"
+ flags_cold_protection = flags_armor_protection
+ flags_heat_protection = flags_armor_protection
+
+ if(legacy != "None")
+ switch(legacy)
+ if("dragon")
icon_state = "halfarmor_elder_tr"
LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor_elder_tr")
- if(7128)
- name = "\improper 'Armor of the Swamp Horror'"
+ return
+ if("swamp")
icon_state = "halfarmor_elder_joshuu"
LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor_elder_joshuu")
- if(9867)
- name = "\improper 'Armor of the Enforcer'"
+ return
+ if("enforcer")
icon_state = "halfarmor_elder_feweh"
LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor_elder_feweh")
- if(4879)
- name = "\improper 'Armor of the Ambivalent Collector'"
+ return
+ if("collector")
icon_state = "halfarmor_elder_n"
LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor_elder_n")
- else
- name = "clan elder's armor"
- icon_state = "halfarmor_elder"
- LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor_elder")
- else
- if(armor_number > 7)
- armor_number = 1
- if(armor_number) //Don't change full armor number
- icon_state = "halfarmor[armor_number]_[armor_material]"
- LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor[armor_number]_[armor_material]")
+ return
+
+ if(armor_number > 7)
+ armor_number = 1
+ if(armor_number) //Don't change full armor number
+ icon_state = "halfarmor[armor_number]_[armor_material]"
+ LAZYSET(item_state_slots, WEAR_JACKET, "halfarmor[armor_number]_[armor_material]")
+
- flags_cold_protection = flags_armor_protection
- flags_heat_protection = flags_armor_protection
/obj/item/clothing/suit/armor/yautja/hunter
name = "clan armor"
diff --git a/code/modules/cm_preds/yaut_mask.dm b/code/modules/cm_preds/yaut_mask.dm
index be0aa8ed761a..5fd260bba0a0 100644
--- a/code/modules/cm_preds/yaut_mask.dm
+++ b/code/modules/cm_preds/yaut_mask.dm
@@ -44,16 +44,34 @@
var/thrall = FALSE //Used to affect icon generation.
-/obj/item/clothing/mask/gas/yautja/New(location, mask_number = rand(1,12), armor_material = "ebony", elder_restricted = 0)
+/obj/item/clothing/mask/gas/yautja/New(location, mask_number = rand(1,12), armor_material = "ebony", legacy = "None")
..()
forceMove(location)
if(thrall)
return
+ if(legacy != "None")
+ switch(legacy)
+ if("Dragon")
+ icon_state = "pred_mask_elder_tr"
+ LAZYSET(item_state_slots, WEAR_FACE, "pred_mask_elder_tr")
+ return
+ if("Swamp")
+ icon_state = "pred_mask_elder_joshuu"
+ LAZYSET(item_state_slots, WEAR_FACE, "pred_mask_elder_joshuu")
+ return
+ if("Enforcer")
+ icon_state = "pred_mask_elder_feweh"
+ LAZYSET(item_state_slots, WEAR_FACE, "pred_mask_elder_feweh")
+ return
+ if("Collector")
+ icon_state = "pred_mask_elder_n"
+ LAZYSET(item_state_slots, WEAR_FACE, "pred_mask_elder_n")
+ return
+
if(mask_number > 12)
mask_number = 1
icon_state = "pred_mask[mask_number]_[armor_material]"
-
LAZYSET(item_state_slots, WEAR_FACE, "pred_mask[mask_number]_[armor_material]")
/obj/item/clothing/mask/gas/yautja/pickup(mob/living/user)
diff --git a/code/modules/gear_presets/yautja.dm b/code/modules/gear_presets/yautja.dm
index 21656e62eb7c..27eac7215ff3 100644
--- a/code/modules/gear_presets/yautja.dm
+++ b/code/modules/gear_presets/yautja.dm
@@ -28,6 +28,7 @@
return //No vanity items for Yautja!
/datum/equipment_preset/yautja/load_gear(mob/living/carbon/human/new_human, client/mob_client)
+ var/using_legacy = "None"
var/armor_number = 1
var/boot_number = 1
var/mask_number = 1
@@ -42,6 +43,7 @@
if(!mob_client)
mob_client = new_human.client
if(mob_client?.prefs)
+ using_legacy = mob_client.prefs.predator_use_legacy
armor_number = mob_client.prefs.predator_armor_type
boot_number = mob_client.prefs.predator_boot_type
mask_number = mob_client.prefs.predator_mask_type
@@ -62,8 +64,8 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/medicomp/full(new_human), WEAR_IN_BELT)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/yautja/hunter/knife(new_human, boot_number, greave_material), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/yautja/hunter(new_human, armor_number, armor_material), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/yautja/hunter(new_human, mask_number, mask_material), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/yautja/hunter(new_human, armor_number, armor_material, using_legacy), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/yautja/hunter(new_human, mask_number, mask_material, using_legacy), WEAR_FACE)
var/cape_path = GLOB.all_yautja_capes[cape_type]
if(ispath(cape_path))
diff --git a/icons/obj/items/hunter/pred_gear.dmi b/icons/obj/items/hunter/pred_gear.dmi
index d647b32b96fd..4501e75a06b3 100644
Binary files a/icons/obj/items/hunter/pred_gear.dmi and b/icons/obj/items/hunter/pred_gear.dmi differ