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