From bae42144e00c13b26d5ff34524e270c81a5b2298 Mon Sep 17 00:00:00 2001 From: Crystal Date: Wed, 26 Apr 2023 15:17:26 -0700 Subject: [PATCH 1/3] wip --- src/perks/exotic_armor.rs | 23 +++++++++- src/perks/exotic_perks.rs | 94 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 1 deletion(-) diff --git a/src/perks/exotic_armor.rs b/src/perks/exotic_armor.rs index 2f4a175..1d49613 100644 --- a/src/perks/exotic_armor.rs +++ b/src/perks/exotic_armor.rs @@ -13,7 +13,7 @@ use super::{ FlinchModifierResponse, HandlingModifierResponse, RangeModifierResponse, RefundResponse, ReloadModifierResponse, ReloadOverrideResponse, }, - ModifierResponseInput, Perks, + ModifierResponseInput, Perks, add_edr, }; pub fn exotic_armor() { @@ -427,6 +427,27 @@ pub fn exotic_armor() { ), ); + add_edr( + Perks::NecroticGrips, + Box::new( + |_input: ModifierResponseInput| -> ExtraDamageResponse { + let dmg = if _input.pvp { 5.0 } else {34.0 }; // pvp value uncertain, no scaling for the pve damage ( should increase by 7.7% per tick) + let delay = if _input.pvp { 0.7 } else { 0.5 }; + let total_ticks = if _input.pvp { 19 } else { 19 }; // value is unknown for pvp + ExtraDamageResponse { + additive_damage: dmg, + time_for_additive_damage: delay * total_ticks as f64, + increment_total_time: false, + times_to_hit: total_ticks, + hit_at_same_time: false, + is_dot: true, + weapon_scale: true, // this may be wrong, idk exactly what it does + crit_scale: false, + combatant_scale: false + } + }), + ); + add_sbr( Perks::BootsOfTheAssembler, Box::new( diff --git a/src/perks/exotic_perks.rs b/src/perks/exotic_perks.rs index 90b56fa..9e58a9d 100644 --- a/src/perks/exotic_perks.rs +++ b/src/perks/exotic_perks.rs @@ -873,4 +873,98 @@ pub fn exotic_perks() { } }), ); + + add_edr(Perks::MarkOfTheDevourer, Box::new(|_input| -> ExtraDamageResponse { // haven't added the thorn perk anywhere else, will need to do that probably + let dmg = if _input.pvp { 0.4 } else { 8.5 }; + let dmg_modifier = if _input.value > 0 && _input.pvp { 17.5 } else if _input.value > 0 { 2.0 } else { 1.0 }; + ExtraDamageResponse { + additive_damage: dmg * dmg_modifier, + time_for_additive_damage: (0.5 * 4) + 0.05, + increment_total_time: false, + times_to_hit: 4, + hit_at_same_time: false, + is_dot: true, + weapon_scale: true, + crit_scale: false, + combatant_scale: true + } + }), + ); + + add_edr(Perks::ToxicOverload, Box::new(|_input| -> ExtraDamageResponse { // haven't added the osteo perk anywhere else, will need to do that probably + let dmg = if _input.pvp { 5.0 } else {34.0 }; // pvp value uncertain, no scaling for the pve damage ( should increase by 7.7% per tick) + let delay = if _input.pvp { 0.7 } else { 0.5 }; + let total_ticks = if _input.pvp { 19 } else { 19 }; // value is unknown for pvp + ExtraDamageResponse { + additive_damage: dmg, + time_for_additive_damage: delay * total_ticks as f64, + increment_total_time: false, + times_to_hit: total_ticks, + hit_at_same_time: false, + is_dot: true, + weapon_scale: true, + crit_scale: false, + combatant_scale: true + } + }), + ); + + add_edr(Perks::PoisonArrows, Box::new(|_input| -> ExtraDamageResponse { // haven't added the lemon arc anywhere else, will need to do that probably + let dmg = if _input.pvp { 1.88 } else { 29.0 }; + ExtraDamageResponse { + additive_damage: dmg, + time_for_additive_damage: 0.5 * 6 as f64, + increment_total_time: false, + times_to_hit: 6, + hit_at_same_time: false, + is_dot: true, + weapon_scale: true, + crit_scale: false, + combatant_scale: true + } + }), + ); + + add_edr(Perks::PerfectFith, Box::new(|_input| -> ExtraDamageResponse { + let dmg = if _input.pvp { 78.0 } else { 101.0 }; + ExtraDamageResponse { + additive_damage: dmg, + time_for_additive_damage: 0.0, + increment_total_time: false, + times_to_hit: 1, + hit_at_same_time: true, + is_dot: false, + weapon_scale: true, + crit_scale: false, + combatant_scale: true + } + }), + ); + + // Outbreak, will do later because of all the nanite shenenigans + // 12 precision hits within 2.5 seconds = 2 - 4 nanites "Deterministic outcomes in Destiny? Impossible" - fps (I LOVE A RANDOM AMOUNT OF NANITES) + // precision kill = 9 nanites + // nanites increasing outbreak dmg and other nanite damage + // catalyst = +4 nanites on each nanite death, each deal 7 dmg. + // WHY SO COMPLICATED BUGNO PLS + + // add_edr(Perks::CorruptionSpreads, Box::new(|_input| -> ExtraDamageResponse { + // let dmg = if _input.pvp { 42 } else { 42 }; // pvp value unknown + // let nanites = if _input.value > 0 { } + // ExtraDamageResponse { + // additive_damage: dmg, + // time_for_additive_damage: 0.5 * 6 as f64, + // increment_total_time: false, + // times_to_hit: nanites, + // hit_at_same_time: false, + // is_dot: true, // is it though? idk + // weapon_scale: true, + // crit_scale: false, // can nanites crit with div? + // combatant_scale: true + // } + // }), + // ); + + + } From c809094d2615ee122f5dcec63e9f1c6cc7b252db Mon Sep 17 00:00:00 2001 From: Crystal Date: Wed, 26 Apr 2023 15:46:04 -0700 Subject: [PATCH 2/3] 'mogus --- src/perks/exotic_perks.rs | 2 +- src/perks/mod.rs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/perks/exotic_perks.rs b/src/perks/exotic_perks.rs index 9e58a9d..60377da 100644 --- a/src/perks/exotic_perks.rs +++ b/src/perks/exotic_perks.rs @@ -879,7 +879,7 @@ pub fn exotic_perks() { let dmg_modifier = if _input.value > 0 && _input.pvp { 17.5 } else if _input.value > 0 { 2.0 } else { 1.0 }; ExtraDamageResponse { additive_damage: dmg * dmg_modifier, - time_for_additive_damage: (0.5 * 4) + 0.05, + time_for_additive_damage: (0.5 * 4 as f64) + 0.05, increment_total_time: false, times_to_hit: 4, hit_at_same_time: false, diff --git a/src/perks/mod.rs b/src/perks/mod.rs index f679d1d..a750773 100644 --- a/src/perks/mod.rs +++ b/src/perks/mod.rs @@ -387,9 +387,12 @@ pub enum Perks { Roadborn = 3413860062, MarkovChain = 2814973067, MementoMori = 647617635, + MarkOfTheDevourer = 1863355414, + ToxicOverload = 4015745376, //energy exotic LagragianSight = 2881100038, + PoisonArrows = 2186532310, IgnitionTrigger = 961505134, GuidanceRing = 2226793914, FirstGlance = 3174300811, From 9313e6bce9be177a1efa8909b88b499344a405bf Mon Sep 17 00:00:00 2001 From: Crystal Date: Mon, 1 May 2023 12:58:24 -0700 Subject: [PATCH 3/3] added anarchy --- src/perks/exotic_perks.rs | 23 ++++++++++++++++++++--- src/perks/mod.rs | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/perks/exotic_perks.rs b/src/perks/exotic_perks.rs index 5645533..14d95ce 100644 --- a/src/perks/exotic_perks.rs +++ b/src/perks/exotic_perks.rs @@ -875,7 +875,7 @@ pub fn exotic_perks() { ); - add_edr(Perks::MarkOfTheDevourer, Box::new(|_input| -> ExtraDamageResponse { // haven't added the thorn perk anywhere else, will need to do that probably + add_edr(Perks::MarkOfTheDevourer, Box::new(|_input| -> ExtraDamageResponse { let dmg = if _input.pvp { 0.4 } else { 8.5 }; let dmg_modifier = if _input.value > 0 && _input.pvp { 17.5 } else if _input.value > 0 { 2.0 } else { 1.0 }; ExtraDamageResponse { @@ -892,7 +892,7 @@ pub fn exotic_perks() { }), ); - add_edr(Perks::ToxicOverload, Box::new(|_input| -> ExtraDamageResponse { // haven't added the osteo perk anywhere else, will need to do that probably + add_edr(Perks::ToxicOverload, Box::new(|_input| -> ExtraDamageResponse { let dmg = if _input.pvp { 5.0 } else {34.0 }; // pvp value uncertain, no scaling for the pve damage ( should increase by 7.7% per tick) let delay = if _input.pvp { 0.7 } else { 0.5 }; let total_ticks = if _input.pvp { 19 } else { 19 }; // value is unknown for pvp @@ -910,7 +910,7 @@ pub fn exotic_perks() { }), ); - add_edr(Perks::PoisonArrows, Box::new(|_input| -> ExtraDamageResponse { // haven't added the lemon arc anywhere else, will need to do that probably + add_edr(Perks::PoisonArrows, Box::new(|_input| -> ExtraDamageResponse { let dmg = if _input.pvp { 1.88 } else { 29.0 }; ExtraDamageResponse { additive_damage: dmg, @@ -1021,4 +1021,21 @@ pub fn exotic_perks() { }), ); + add_edr(Perks::ArcTraps, + Box::new(|_input: ModifierResponseInput| -> ExtraDamageResponse { + let dmg = if _input.pvp { 67.5 } else { 145.0 }; + let modifier = if _input.value > 0 { 2.0 } else { 1.0 }; + ExtraDamageResponse { + additive_damage: dmg * modifier, + time_for_additive_damage: 10.0, + increment_total_time: false, + times_to_hit: 20, + hit_at_same_time: false, + is_dot: true, + weapon_scale: true, + crit_scale: false, + combatant_scale: true, + } + })) + } diff --git a/src/perks/mod.rs b/src/perks/mod.rs index 1b663c7..50c340f 100644 --- a/src/perks/mod.rs +++ b/src/perks/mod.rs @@ -423,6 +423,7 @@ pub enum Perks { TargetAquired = 939227542, SleeperCatalyst = 2142466730, TractorCannon = 1210807262, + ArcTraps = 389268985, #[num_enum(default)] Ignore = 69420,