- 圣遗物自动搭配
- 队伍圣遗物自动搭配
- 响应式伤害计算器
- 圣遗物潜力
- 圣遗物养成推荐
- more...
该项目依赖Rust
- 安装Rust工具链,详见官网
- 安装Rust Webassembly工具链(wasm-pack)
- 安装node依赖
npm install
- 编译Rust依赖
cd mona
cargo run --bin gen_meta
wasm-pack build
- 本地运行
npm run serve
docker build -t mona .
docker run -dp 8080:80 mona
目标函数在mona/src/target_functions/target_functions
- 在上述文件夹的对应位置建立新目标函数文件
- 在
target_functions/target_function_name.rs
新建目标函数名 - 创建一个struct,必须以
TargetFunction
结尾
pub struct NewTargetFunction {
...
}
- 如果该函数有设置,在
target_functions/target_function_config.rs
新建同名enum - 为
NewTargetFunction
实现两个trait,TargetFunctionMetaTrait
和TargetFunction
impl TargetFunctionMetaTrait for NewTargetFunction {
// 该目标函数的元数据
#[cfg(not(target_family = "wasm"))]
const META_DATA: TargetFunctionMeta = TargetFunctionMeta {
name: TargetFunctionName::GanyuDefault,
chs: "chs",
description: "description",
tags: "tag1,tag2",
four: TargetFunctionFor::SomeWho(CharacterName::Ganyu),
image: TargetFunctionMetaImage::Avatar
};
// 目标函数的设置,没有设置可以省略
#[cfg(not(target_family = "wasm"))]
const CONFIG: Option<&'static [ItemConfig]> = Some(&[
ItemConfig {
name: "melt_rate",
title: "融化占比",
config: ItemConfig::RATE01_TYPE
}
]);
fn create(character: &CharacterCommonData, weapon: &WeaponCommonData, config: &TargetFunctionConfig) -> Box<dyn TargetFunction> {
// create boxed target function
}
}
impl TargetFunction for NewTargetFunction {
// 可以参考其他文件
}
- 在
target_functions/target_functions/<element>/mod.rs
中,重导出NewTargetFunction
// in <element>.rs
pub use new_target_function::NewTargetFunction;