From 4f1150681ddfbaf8366cd5985a9e7ded2936feae Mon Sep 17 00:00:00 2001 From: Harmon Brammer Date: Wed, 6 Sep 2023 17:04:21 -0400 Subject: [PATCH 1/5] chore: make PerkValueVariant use pascal case --- src/perks/perk_options_handler.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/perks/perk_options_handler.rs b/src/perks/perk_options_handler.rs index 3efb9c59..3c7b0013 100644 --- a/src/perks/perk_options_handler.rs +++ b/src/perks/perk_options_handler.rs @@ -5,15 +5,16 @@ use serde::Serialize; use super::{enhanced_check, Perk, Perks}; #[derive(Debug, Clone, Serialize)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] pub enum PerkValueVariant { - STATIC, - TOGGLE, - SLIDER, - OPTIONS, + Static, + Toggle, + Slider, + Options, } impl Default for PerkValueVariant { fn default() -> Self { - PerkValueVariant::STATIC + PerkValueVariant::Static } } @@ -29,28 +30,28 @@ impl PerkOptionData { PerkOptionData { stacks: (0, 0), options: vec![], - option_type: PerkValueVariant::STATIC, + option_type: PerkValueVariant::Static, } } pub fn toggle() -> PerkOptionData { PerkOptionData { stacks: (0, 1), options: vec![], - option_type: PerkValueVariant::TOGGLE, + option_type: PerkValueVariant::Toggle, } } pub fn stacking(_stacks: u32) -> PerkOptionData { PerkOptionData { stacks: (0, _stacks), options: vec![], - option_type: PerkValueVariant::SLIDER, + option_type: PerkValueVariant::Slider, } } pub fn stacking_min(_stacks: u32, _min_stacks: u32) -> PerkOptionData { PerkOptionData { stacks: (_min_stacks, _stacks), options: vec![], - option_type: PerkValueVariant::SLIDER, + option_type: PerkValueVariant::Slider, } } pub fn options(_options: Vec<&str>) -> PerkOptionData { @@ -61,7 +62,7 @@ impl PerkOptionData { PerkOptionData { stacks: (0, options.len() as u32 - 1), options, - option_type: PerkValueVariant::OPTIONS, + option_type: PerkValueVariant::Options, } } pub fn options_raw(_options: Vec<&str>) -> PerkOptionData { @@ -72,7 +73,7 @@ impl PerkOptionData { PerkOptionData { stacks: (0, options.len() as u32 - 1), options, - option_type: PerkValueVariant::OPTIONS, + option_type: PerkValueVariant::Options, } } } From 2eb3e03d66dfb939df6b4641cd058c2db6f59410 Mon Sep 17 00:00:00 2001 From: Harmon Brammer Date: Wed, 6 Sep 2023 17:08:57 -0400 Subject: [PATCH 2/5] feat: ActiveToggle and ActiveSlider options --- src/perks/perk_options_handler.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/perks/perk_options_handler.rs b/src/perks/perk_options_handler.rs index 3c7b0013..fc9760da 100644 --- a/src/perks/perk_options_handler.rs +++ b/src/perks/perk_options_handler.rs @@ -9,7 +9,9 @@ use super::{enhanced_check, Perk, Perks}; pub enum PerkValueVariant { Static, Toggle, + ActiveToggle, Slider, + ActiveSlider, Options, } impl Default for PerkValueVariant { @@ -40,6 +42,13 @@ impl PerkOptionData { option_type: PerkValueVariant::Toggle, } } + pub fn active_toggle() -> PerkOptionData { + PerkOptionData { + stacks: (0, 1), + options: vec![], + option_type: PerkValueVariant::ActiveToggle, + } + } pub fn stacking(_stacks: u32) -> PerkOptionData { PerkOptionData { stacks: (0, _stacks), @@ -47,6 +56,13 @@ impl PerkOptionData { option_type: PerkValueVariant::Slider, } } + pub fn active_stacking(_stacks: u32) -> PerkOptionData { + PerkOptionData { + stacks: (0, _stacks), + options: vec![], + option_type: PerkValueVariant::ActiveSlider, + } + } pub fn stacking_min(_stacks: u32, _min_stacks: u32) -> PerkOptionData { PerkOptionData { stacks: (_min_stacks, _stacks), @@ -54,6 +70,13 @@ impl PerkOptionData { option_type: PerkValueVariant::Slider, } } + pub fn active_stacking_min(_stacks: u32, _min_stacks: u32) -> PerkOptionData { + PerkOptionData { + stacks: (_min_stacks, _stacks), + options: vec![], + option_type: PerkValueVariant::ActiveSlider, + } + } pub fn options(_options: Vec<&str>) -> PerkOptionData { let mut options = vec!["None".to_string()]; for option in _options { From b5c81336f52ba3e66abec491f2a58cb60cc552de Mon Sep 17 00:00:00 2001 From: Harmon Brammer Date: Wed, 6 Sep 2023 17:17:06 -0400 Subject: [PATCH 3/5] chore: make elegible perks use new option type -cranial spike -enlightend action -precision instument --- src/perks/perk_options_handler.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/perks/perk_options_handler.rs b/src/perks/perk_options_handler.rs index fc9760da..7c6a5d50 100644 --- a/src/perks/perk_options_handler.rs +++ b/src/perks/perk_options_handler.rs @@ -311,14 +311,14 @@ fn hash_to_perk_option_data(_hash: u32) -> Option { Perks::UnsatedHunger => Some(PerkOptionData::toggle()), Perks::Discord => Some(PerkOptionData::toggle()), //season 22 | year 6 - Perks::PrecisionInstrument => Some(PerkOptionData::stacking(6)), + Perks::PrecisionInstrument => Some(PerkOptionData::active_stacking(6)), Perks::LooseChange => Some(PerkOptionData::toggle()), Perks::HighGround => Some(PerkOptionData::toggle()), Perks::HeadRush => Some(PerkOptionData::toggle()), - Perks::EnlightendAction => Some(PerkOptionData::stacking(5)), + Perks::EnlightendAction => Some(PerkOptionData::active_stacking(5)), //exotics - Perks::CranialSpike => Some(PerkOptionData::stacking(5)), + Perks::CranialSpike => Some(PerkOptionData::active_stacking(5)), Perks::DarkForgedTrigger => Some(PerkOptionData::options_raw(["Hip-Fire", "ADS"].to_vec())), Perks::AgersCall => Some(PerkOptionData::static_()), Perks::LagragianSight => Some(PerkOptionData::toggle()), From 5a2f845e42a1ca82451dcf4b7cf6a9c26deaeebc Mon Sep 17 00:00:00 2001 From: Harmon Brammer Date: Wed, 6 Sep 2023 17:19:37 -0400 Subject: [PATCH 4/5] feat: ActiveOptions --- src/perks/perk_options_handler.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/perks/perk_options_handler.rs b/src/perks/perk_options_handler.rs index 7c6a5d50..5fb18eb5 100644 --- a/src/perks/perk_options_handler.rs +++ b/src/perks/perk_options_handler.rs @@ -13,6 +13,7 @@ pub enum PerkValueVariant { Slider, ActiveSlider, Options, + ActiveOptions, } impl Default for PerkValueVariant { fn default() -> Self { @@ -88,6 +89,17 @@ impl PerkOptionData { option_type: PerkValueVariant::Options, } } + pub fn active_options(_options: Vec<&str>) -> PerkOptionData { + let mut options = vec!["None".to_string()]; + for option in _options { + options.push(option.to_string()); + } + PerkOptionData { + stacks: (0, options.len() as u32 - 1), + options, + option_type: PerkValueVariant::ActiveOptions, + } + } pub fn options_raw(_options: Vec<&str>) -> PerkOptionData { let mut options = vec![]; for option in _options { @@ -99,6 +111,17 @@ impl PerkOptionData { option_type: PerkValueVariant::Options, } } + pub fn active_options_raw(_options: Vec<&str>) -> PerkOptionData { + let mut options = vec![]; + for option in _options { + options.push(option.to_string()); + } + PerkOptionData { + stacks: (0, options.len() as u32 - 1), + options, + option_type: PerkValueVariant::ActiveOptions, + } + } } fn hash_to_perk_option_data(_hash: u32) -> Option { From 55ae1d03ef010ef47cb3ff908897e3b6f4130f60 Mon Sep 17 00:00:00 2001 From: Harmon Brammer Date: Wed, 6 Sep 2023 17:20:23 -0400 Subject: [PATCH 5/5] chore: make Dark Forged Trigger use ActiveOptions --- src/perks/perk_options_handler.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/perks/perk_options_handler.rs b/src/perks/perk_options_handler.rs index 5fb18eb5..4287b290 100644 --- a/src/perks/perk_options_handler.rs +++ b/src/perks/perk_options_handler.rs @@ -342,7 +342,9 @@ fn hash_to_perk_option_data(_hash: u32) -> Option { //exotics Perks::CranialSpike => Some(PerkOptionData::active_stacking(5)), - Perks::DarkForgedTrigger => Some(PerkOptionData::options_raw(["Hip-Fire", "ADS"].to_vec())), + Perks::DarkForgedTrigger => Some(PerkOptionData::active_options_raw( + ["Hip-Fire", "ADS"].to_vec(), + )), Perks::AgersCall => Some(PerkOptionData::static_()), Perks::LagragianSight => Some(PerkOptionData::toggle()), Perks::StringofCurses => Some(PerkOptionData::stacking(5)),