python-genshin-artifact/docs/CharacterInfo.md
luoshuijs 5f7033d331
📝 Add Documentation
Co-authored-by: Nahida <CHxCOOH@googlemail.com>
Co-authored-by: kotoriのねこ <minamiktr@outlook.com>
2023-10-24 18:42:49 +08:00

100 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CharacterInfo 类说明文档
## 类定义
CharacterInfo 是一个主要用于存放角色数据的类。它具有以下属性:
- `name`:角色名称。
- `level`:角色等级。
- `ascend`是否为突破等级如80级突破时该选项为 `true`
- `constellation`:命座。
- `skill1`A 技能等级。
- `skill2`E 技能等级。
- `skill3`Q 技能等级。
- `params`:角色参数。
## skill 等级说明
因为莫娜的代码,实际传递给计算器的传递的技能等级,为
```
传递的技能等级 = 角色技能等级 - 1
```
信息来源:
`genshin_artifact/src/composables/character.ts` L51 - L63
```typescript
const characterInterface = computed(() => {
let i = {
name: characterName.value,
level: characterLevelNumber.value,
ascend: characterAscend.value,
constellation: characterConstellation.value,
skill1: characterSkill1.value - 1,
skill2: characterSkill2.value - 1,
skill3: characterSkill3.value - 1,
params: characterConfig.value
}
return i
})
```
## params 参数说明
这个参数设定了一些角色当前的状态,比如说胡桃是否半血状态,如果是半血状态会激活胡桃的血之灶火天赋,使其在生效期间火元素伤害增加 33% 。
`genshin_artifact/mona_core/src/character/character_config.rs` 文件我们可以看见各个角色的参数
```rust
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub enum CharacterConfig {
Ganyu { talent2_rate: f64 },
HuTao { le_50: bool },
KamisatoAyaka { talent1_rate: f64, talent2_rate: f64 },
Keqing { talent2_rate: f64 },
KukiShinobu { hp_le_50: bool, use_c6: bool },
Ningguang { talent2_rate: f64 },
Rosaria { e_from_behind: bool },
Razor { e_stack: f64, talent2_ratio: f64 },
Yelan { team_element_count: usize },
Yoimiya { talent1_level: f64 },
Collei { background: bool },
Tighnari { talent1_ratio: f64, c2_ratio: f64 },
Cyno { c2_stack: f64, after_q: bool },
Nilou { golden_rate: f64 },
Candace { c2_rate: f64 },
Nahida { c4_e_count: usize },
Wanderer { e_pyro: bool, e_cryo: bool },
Faruzan { q_ratio: f64 },
Yaoyao { c4_rate: f64 },
Alhaitham { c2_stack: f64, c4_stack: f64, c6_rate: f64 },
Kaveh { talent2_stack: f64, c2_rate: f64 },
Baizhu { hp_below_50: bool },
Lynette { talent1_rate: f64, talent1_count: usize, talent2_rate: f64 },
Freminet { c4_stack: f64, c6_stack: f64 },
Lyney { c2_stack: f64, c4_rate: f64 },
Neuvillette { current_hp: usize },
Wriothesley { talent2_stack: f64 },
NoConfig,
}
```
以胡桃为例,如果要设置当前角色的状态为半血,我们传入的参数是
```python
params = {"le_50": True}
```
如不进行任何设置,保持该参数不会被任何代码修改,或者设置为 `NoConfig`
```python
params = "NoConfig"
```