Skip to content

Commit

Permalink
add vaporize to mualani default target function
Browse files Browse the repository at this point in the history
  • Loading branch information
zhykzhykzhyk authored Oct 16, 2024
1 parent 26950f5 commit 523d041
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
1 change: 1 addition & 0 deletions mona_core/src/target_functions/target_function_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,6 @@ pub enum TargetFunctionConfig {
DehyaDefault { melt_rate: f64, vaporize_rate: f64, e_count: usize },
MikaDefault { recharge_demand: f64, crit_demand: f64 },
WriothesleyDefault { punch_ratio: f64, melt_rate:f64 },
MualaniDefault { vaporize_rate: f64 },
NoConfig,
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,20 @@ use crate::team::TeamQuantization;
use crate::weapon::Weapon;
use crate::weapon::weapon_common_data::WeaponCommonData;

pub struct MualaniDefaultTargetFunction;
pub struct MualaniDefaultTargetFunction {
pub vaporize_rate: f64,
}

impl MualaniDefaultTargetFunction {
pub fn new(config: &TargetFunctionConfig) -> MualaniDefaultTargetFunction {
MualaniDefaultTargetFunction {
vaporize_rate: match *config {
TargetFunctionConfig::MualaniDefault { vaporize_rate } => vaporize_rate,
_ => 0.0
}
}
}
}

impl TargetFunction for MualaniDefaultTargetFunction {
fn get_target_function_opt_config(&self) -> TargetFunctionOptConfig {
Expand All @@ -44,7 +57,7 @@ impl TargetFunction for MualaniDefaultTargetFunction {
Mualani::damage::<SimpleDamageBuilder>(&context, S::A_Stack4, &CharacterSkillConfig::NoConfig, None)
};

dmg.normal.expectation
dmg.normal.expectation * (1.0 - self.vaporize_rate) + dmg.vaporize.unwrap().expectation * self.vaporize_rate
}
}

Expand All @@ -65,7 +78,19 @@ impl TargetFunctionMetaTrait for MualaniDefaultTargetFunction {
image: TargetFunctionMetaImage::Avatar,
};

#[cfg(not(target_family = "wasm"))]
const CONFIG: Option<&'static [ItemConfig]> = Some(&[
ItemConfig {
name: "vaporize_rate",
title: crate::common::i18n::locale!(
zh_cn: "蒸发占比",
en: "Vaporize Ratio",
),
config: ItemConfig::RATE01_TYPE
}
]);

fn create(character: &CharacterCommonData, weapon: &WeaponCommonData, config: &TargetFunctionConfig) -> Box<dyn TargetFunction> {
Box::new(MualaniDefaultTargetFunction)
Box::new(MualaniDefaultTargetFunction(config))
}
}

0 comments on commit 523d041

Please sign in to comment.