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/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm
index 0496530be861..460f43c3f234 100644
--- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm
+++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm
@@ -303,7 +303,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list(
/obj/structure/machinery/cm_vending/own_points/experimental_tools/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/coin/marine/synth))
if(user.drop_inv_item_to_loc(W, src))
- available_points = 45
+ available_points = 30
available_points_to_display = available_points
to_chat(user, SPAN_NOTICE("You insert \the [W] into \the [src]."))
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index cf1678aaeeff..80254be4a6d9 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -247,12 +247,6 @@ cases. Override_icon_state should be a list.*/
if("classic")
icon_state = new_icon_state ? new_icon_state : "c_" + icon_state
item_state = new_item_state ? new_item_state : "c_" + item_state
- if("jungle")
- icon_state = new_icon_state ? new_icon_state : "j_" + icon_state
- item_state = new_item_state ? new_item_state : "j_" + item_state
- if("urban")
- icon_state = new_icon_state ? new_icon_state : "u_" + icon_state
- item_state = new_item_state ? new_item_state : "u_" + item_state
if(new_protection)
min_cold_protection_temperature = new_protection
else return
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 76323a19ac8c..d9eb01511344 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -42,7 +42,7 @@ var/const/MAX_SAVE_SLOTS = 10
var/warns = 0
var/muted = 0
var/last_ip
- var/fps = 20
+ var/fps = 60
var/last_id
var/save_cooldown = 0 //5s cooldown between saving slots
var/reload_cooldown = 0 //5s cooldown between loading slots
@@ -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
@@ -511,6 +512,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])"
@@ -1237,6 +1240,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 7d9a67c455a9..0e01fc75c013 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
@@ -233,6 +234,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))
@@ -339,6 +341,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 94b244b09f14..ae27809a3ec7 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/code/modules/mob/living/carbon/human/species/synthetic.dm b/code/modules/mob/living/carbon/human/species/synthetic.dm
index bfd3c74eb57b..38b7e935268d 100644
--- a/code/modules/mob/living/carbon/human/species/synthetic.dm
+++ b/code/modules/mob/living/carbon/human/species/synthetic.dm
@@ -44,6 +44,7 @@
inherent_verbs = list(
/mob/living/carbon/human/synthetic/proc/toggle_HUD,
+ /mob/living/carbon/human/proc/toggle_inherent_nightvison,
)
/datum/species/synthetic/handle_post_spawn(mob/living/carbon/human/H)
@@ -88,9 +89,6 @@
knock_down_reduction = 3.5
stun_reduction = 3.5
- inherent_verbs = list(
- /mob/living/carbon/human/proc/toggle_inherent_nightvison,
- )
/datum/species/synthetic/colonial/colonial_gen_two
name = SYNTH_COLONY_GEN_TWO
diff --git a/code/modules/mob/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/new_player/sprite_accessories/undershirt.dm
index 6f35cef2b645..39f0e3ddd173 100644
--- a/code/modules/mob/new_player/sprite_accessories/undershirt.dm
+++ b/code/modules/mob/new_player/sprite_accessories/undershirt.dm
@@ -41,8 +41,6 @@ GLOBAL_LIST_INIT_TYPED(undershirt_f, /datum/sprite_accessory/undershirt, setup_u
selected_icon_state = "d_" + selected_icon_state
if("snow")
selected_icon_state = "s_" + selected_icon_state
- if("urban")
- selected_icon_state = "u_" + selected_icon_state
if(gender == PLURAL)
selected_icon_state += mob_gender == MALE ? "_m" : "_f"
diff --git a/code/modules/mob/new_player/sprite_accessories/underwear.dm b/code/modules/mob/new_player/sprite_accessories/underwear.dm
index 27916a2ff201..200f3f2f67f7 100644
--- a/code/modules/mob/new_player/sprite_accessories/underwear.dm
+++ b/code/modules/mob/new_player/sprite_accessories/underwear.dm
@@ -41,8 +41,6 @@ GLOBAL_LIST_INIT_TYPED(underwear_f, /datum/sprite_accessory/underwear, setup_und
selected_icon_state = "d_" + selected_icon_state
if("snow")
selected_icon_state = "s_" + selected_icon_state
- if("urban")
- selected_icon_state = "u_" + selected_icon_state
if(gender == PLURAL)
selected_icon_state += mob_gender == MALE ? "_m" : "_f"
return image(icon, selected_icon_state)
diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm
index a33ed1136854..cae47bc9d336 100644
--- a/code/modules/projectiles/gun_attachables.dm
+++ b/code/modules/projectiles/gun_attachables.dm
@@ -881,10 +881,6 @@ Defined in conflicts.dm of the #defines folder.
attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon
if("classic")
attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon
- if("jungle")
- attach_icon = new_attach_icon ? new_attach_icon : "j_" + attach_icon
- if("urban")
- attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon
/obj/item/attachable/scope
name = "S8 4x telescopic scope"
@@ -1721,10 +1717,6 @@ Defined in conflicts.dm of the #defines folder.
attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon
if("classic")
attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon
- if("jungle")
- attach_icon = new_attach_icon ? new_attach_icon : "j_" + attach_icon
- if("urban")
- attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon
/obj/item/attachable/m4ra_barrel_custom
name = "custom M4RA barrel"
@@ -1751,10 +1743,6 @@ Defined in conflicts.dm of the #defines folder.
attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon
if("classic")
attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon
- if("jungle")
- attach_icon = new_attach_icon ? new_attach_icon : "j_" + attach_icon
- if("urban")
- attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon
/obj/item/attachable/upp_rpg_breech
name = "HJRA-12 Breech"
diff --git a/html/changelogs/AutoChangeLog-pr-4160.yml b/html/changelogs/AutoChangeLog-pr-4160.yml
deleted file mode 100644
index bc5176646489..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4160.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "realforest2001"
-delete-after: True
-changes:
- - rscadd: "Added a Provost radio & channel."
- - qol: "Changed High Command radio to have most channels off by default."
- - rscdel: "Removed ignore_z from High Command radios."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4295.yml b/html/changelogs/AutoChangeLog-pr-4295.yml
deleted file mode 100644
index e6a889311df2..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4295.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "BeagleGaming1"
-delete-after: True
-changes:
- - code_imp: "changed camouflage from map definitions to JSON"
\ No newline at end of file
diff --git a/html/changelogs/archive/2023-09.yml b/html/changelogs/archive/2023-09.yml
index a31aa9380aae..f69a9a6dbc4c 100644
--- a/html/changelogs/archive/2023-09.yml
+++ b/html/changelogs/archive/2023-09.yml
@@ -19,3 +19,26 @@
- maptweak: Hidden floor safe in LV-624 is now positioned correctly.
harryob:
- rscdel: removed the hallucinating ghost notification
+2023-09-02:
+ BeagleGaming1:
+ - code_imp: changed camouflage from map definitions to JSON
+ realforest2001:
+ - rscadd: Added a Provost radio & channel.
+ - qol: Changed High Command radio to have most channels off by default.
+ - rscdel: Removed ignore_z from High Command radios.
+2023-09-03:
+ Katskan:
+ - balance: Merged vision toggle options between ship and colony synthetic types.
+ - balance: Removed 15 points from WY experimental tool vendor coin redemption
+ Morrow:
+ - bugfix: Fixed most of the camo items being clown gear
+ realforest2001:
+ - rscadd: Added a preference for using the old legacy yautja armor, only accessible
+ to the people who had the special gear.
+ - bugfix: Fixed the old Yautja Legacy armor selection code. Removed the unique titles
+ from the legacy gear however.
+ - imageadd: Changed the Yautja relay beacon sprite to a newer unused sprite. Changed
+ iconstate name of health scanner for preds from tracker to scanner.
+ - imageadd: Moved some of the used sprites out of the unused category in pred_gear.dmi.
+ - imagedel: Deleted old relay beacon sprite, deleted duplicate plasma pistol and
+ thwei sprites.
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
diff --git a/interface/interface.dm b/interface/interface.dm
index 70b95a23b632..b309e852b468 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -76,7 +76,7 @@
set name = "Set FPS"
set desc = "Set client FPS. 20 is the default"
set category = "Preferences"
- var/fps = tgui_input_number(usr,"New FPS Value. 0 is server-sync. Higher values cause more desync. Values over 30 not recommended.","Set FPS", 0, MAX_FPS, MIN_FPS)
+ var/fps = tgui_input_number(usr,"New FPS Value. 0 is server-sync. Higher values cause more desync.","Set FPS", 0, MAX_FPS, MIN_FPS)
if(world.byond_version >= 511 && byond_version >= 511 && fps >= MIN_FPS && fps <= MAX_FPS)
vars["fps"] = fps
prefs.fps = fps