Skip to content

Commit cb1247f

Browse files
committed
opt: better Tighnari's tf
1 parent 3925864 commit cb1247f

File tree

3 files changed

+40
-27
lines changed

3 files changed

+40
-27
lines changed

mona_core/src/character/characters/dendro/tighnari.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ damage_enum!(
116116
Charged2
117117
Charged3
118118
Charged4
119+
ChargedC6
119120
Plunging1
120121
Plunging2
121122
Plunging3
@@ -128,7 +129,7 @@ impl TighnariDamageEnum {
128129
pub fn get_element(&self) -> Element {
129130
use TighnariDamageEnum::*;
130131
match *self {
131-
Charged2 | Charged3 | Charged4 | E1 | Q1 | Q2 => Element::Dendro,
132+
Charged2 | Charged3 | Charged4 | ChargedC6 | E1 | Q1 | Q2 => Element::Dendro,
132133
_ => Element::Physical
133134
}
134135
}
@@ -137,7 +138,7 @@ impl TighnariDamageEnum {
137138
use TighnariDamageEnum::*;
138139
match *self {
139140
Normal1 | Normal2 | Normal3 | Normal4 => SkillType::NormalAttack,
140-
Charged1 | Charged2 | Charged3 | Charged4 => SkillType::ChargedAttack,
141+
Charged1 | Charged2 | Charged3 | Charged4 | ChargedC6 => SkillType::ChargedAttack,
141142
E1 => SkillType::ElementalSkill,
142143
Plunging1 | Plunging2 | Plunging3 => SkillType::PlungingAttack,
143144
Q1 | Q2 => SkillType::ElementalBurst
@@ -191,6 +192,7 @@ impl CharacterTrait for Tighnari {
191192
CharacterSkillMapItem { index: TighnariDamageEnum::Charged2 as usize, text: locale!(zh_cn: "一段蓄力瞄准射击", en: "Level 1 Aimed Shot") },
192193
CharacterSkillMapItem { index: TighnariDamageEnum::Charged3 as usize, text: locale!(zh_cn: "花筥箭伤害", en: "Wreath Arrow DMG") },
193194
CharacterSkillMapItem { index: TighnariDamageEnum::Charged4 as usize, text: locale!(zh_cn: "藏蕴花矢伤害", en: "Clusterbloom Arrow DMG") },
195+
CharacterSkillMapItem { index: TighnariDamageEnum::ChargedC6 as usize, text: locale!(zh_cn: "六命藏蕴花矢伤害", en: "C6 Clusterbloom Arrow DMG") },
194196
CharacterSkillMapItem { index: TighnariDamageEnum::Plunging1 as usize, text: plunging_dmg!(1) },
195197
CharacterSkillMapItem { index: TighnariDamageEnum::Plunging2 as usize, text: plunging_dmg!(2) },
196198
CharacterSkillMapItem { index: TighnariDamageEnum::Plunging3 as usize, text: plunging_dmg!(3) },
@@ -238,6 +240,7 @@ impl CharacterTrait for Tighnari {
238240
Charged2 => TIGHNARI_SKILL.charged_dmg2[s1],
239241
Charged3 => TIGHNARI_SKILL.charged_dmg3[s1],
240242
Charged4 => TIGHNARI_SKILL.charged_dmg4[s1],
243+
ChargedC6 => 1.5,
241244
Plunging1 => TIGHNARI_SKILL.plunging_dmg1[s1],
242245
Plunging2 => TIGHNARI_SKILL.plunging_dmg2[s1],
243246
Plunging3 => TIGHNARI_SKILL.plunging_dmg3[s1],

mona_core/src/target_functions/target_function_config.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub enum TargetFunctionConfig {
5050
ZhongliDefault { recharge_demand: f64 },
5151
KujouSaraDamage { recharge_demand: f64 },
5252
KukiShinobuDefault { e_ratio: f64 },
53-
TighnariDefault { spread_rate: f64 },
53+
// TighnariDefault { spread_rate: f64 },
5454
CynoDefault { recharge_requirement: f64, combo: usize, until_expire: bool, aggravate_rate: f64, elecharged_rate: f64, overload_rate: f64, hyperbloom_rate: f64 },
5555
KeqingDefault { aggravate_rate: f64 },
5656
NilouDefault { e_ratio: f64, q_ratio: f64, bloom_ratio: f64, other_em: f64, other_bloom_ratio: f64 },

mona_core/src/target_functions/target_functions/dendro/tighnari_default.rs

+34-24
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ use crate::team::TeamQuantization;
1818
use crate::weapon::Weapon;
1919
use crate::weapon::weapon_common_data::WeaponCommonData;
2020

21-
pub struct TighnariDefaultTargetFunction {
22-
pub spread_rate: f64,
23-
}
21+
pub struct TighnariDefaultTargetFunction;
2422

2523
impl TargetFunction for TighnariDefaultTargetFunction {
2624
fn get_target_function_opt_config(&self) -> TargetFunctionOptConfig {
@@ -38,10 +36,22 @@ impl TargetFunction for TighnariDefaultTargetFunction {
3836
};
3937

4038
type S = <Tighnari as CharacterTrait>::DamageEnumType;
41-
let dmg_b = Tighnari::damage::<SimpleDamageBuilder>(&&context, S::Charged3, &CharacterSkillConfig::NoConfig, None);
39+
let dmg_c3 = Tighnari::damage::<SimpleDamageBuilder>(&&context, S::Charged3, &CharacterSkillConfig::NoConfig, None);
40+
let dmg_c4 = Tighnari::damage::<SimpleDamageBuilder>(&&context, S::Charged4, &CharacterSkillConfig::NoConfig, None);
41+
let dmg_cc6: f64 = if character.common_data.constellation == 6 { Tighnari::damage::<SimpleDamageBuilder>(&&context, S::ChargedC6, &CharacterSkillConfig::NoConfig, None).spread.unwrap().expectation} else { 0.0 };
42+
let dmg_q1 = Tighnari::damage::<SimpleDamageBuilder>(&&context, S::Q1, &CharacterSkillConfig::NoConfig, None);
43+
let dmg_q2 = Tighnari::damage::<SimpleDamageBuilder>(&&context, S::Q2, &CharacterSkillConfig::NoConfig, None);
44+
let dmg_e = Tighnari::damage::<SimpleDamageBuilder>(&&context, S::E1, &CharacterSkillConfig::NoConfig, None);
45+
46+
let dmg =
47+
dmg_c3.spread.unwrap().expectation +
48+
dmg_c4.spread.unwrap().expectation +
49+
dmg_c4.normal.expectation * 3.0 + dmg_cc6 +
50+
dmg_q1.spread.unwrap().expectation + dmg_q2.spread.unwrap().expectation +
51+
(dmg_q1.normal.expectation + dmg_q2.normal.expectation) * 5.0 +
52+
dmg_e.spread.unwrap().expectation;
4253

43-
let normal_rate = 1.0 - self.spread_rate;
44-
let dmg = dmg_b.normal.expectation * normal_rate + dmg_b.spread.unwrap().expectation * self.spread_rate;
54+
4555

4656
dmg
4757
}
@@ -56,31 +66,31 @@ impl TargetFunctionMetaTrait for TighnariDefaultTargetFunction {
5666
en: "Tighnari-Verdant Strider"
5767
),
5868
description: crate::common::i18n::locale!(
59-
zh_cn: "使得提纳里的重击伤害最大",
60-
en: "Maximize Tighnari Charged Attack"
69+
zh_cn: "最大化激化ezzzq一套的总伤害,如果非六命用猎人之径则把覆盖率调到0.8,六命猎人之径覆盖率调到0.7",
70+
en: "Maximize ecccq Combo DMG with Spread, when Hunter's Path is equiped, if you are C6, set coverage to 0.7, else set it to 0.8"
6171
),
6272
tags: "",
6373
four: TargetFunctionFor::SomeWho(CharacterName::Tighnari),
6474
image: TargetFunctionMetaImage::Avatar
6575
};
6676

67-
#[cfg(not(target_family = "wasm"))]
68-
const CONFIG: Option<&'static [ItemConfig]> = Some(&[
69-
ItemConfig {
70-
name: "spread_rate",
71-
title: locale!(
72-
zh_cn: "蔓激化比例",
73-
en: "Spread Ratio",
74-
),
75-
config: ItemConfigType::Float { min: 0.0, max: 1.0, default: 0.0 }
76-
}
77-
]);
77+
// #[cfg(not(target_family = "wasm"))]
78+
// const CONFIG: Option<&'static [ItemConfig]> = Some(&[
79+
// ItemConfig {
80+
// name: "spread_rate",
81+
// title: locale!(
82+
// zh_cn: "蔓激化比例",
83+
// en: "Spread Ratio",
84+
// ),
85+
// config: ItemConfigType::Float { min: 0.0, max: 1.0, default: 0.0 }
86+
// }
87+
// ]);
7888

7989
fn create(character: &CharacterCommonData, weapon: &WeaponCommonData, config: &TargetFunctionConfig) -> Box<dyn TargetFunction> {
80-
let spread_rate = match *config {
81-
TargetFunctionConfig::TighnariDefault { spread_rate } => spread_rate,
82-
_ => 0.0
83-
};
84-
Box::new(TighnariDefaultTargetFunction { spread_rate: spread_rate.clamp(0.0, 1.0) })
90+
// let spread_rate = match *config {
91+
// TargetFunctionConfig::TighnariDefault { spread_rate } => spread_rate,
92+
// _ => 0.0
93+
// };
94+
Box::new(TighnariDefaultTargetFunction)
8595
}
8696
}

0 commit comments

Comments
 (0)