python-genshin-artifact/docs/SkillInfo.md

103 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

# SkillInfo 类说明文档
## 类定义
SkillInfo 是一个主要用于存放所需要分析的技能的类。它具有以下属性:
- `index`:技能索引。
- `config`:技能配置。
## index 技能索引
可以运行 `genshin_genshin_artifact/tools/get_character_skill_index.py` 寻找角色索引。
```
K:\PycharmProjects\python_genshin_artifact\venv\Scripts\python.exe K:\PycharmProjects\python_genshin_artifact\tools\get_character_skill_index.py
Enter character name: HuTao
Character name 胡桃
Skill A 普通攻击·往生秘传枪法
index 0 一段伤害
index 1 二段伤害
index 2 三段伤害
index 3 四段伤害
index 4 五段伤害-1
index 5 五段伤害-2
index 6 六段伤害
index 7 重击伤害
index 8 下坠期间伤害
index 9 低空坠地冲击伤害
index 10 高空坠地冲击伤害
Skill E 蝶引来生
index 11 血梅香伤害
Skill Q 安神秘法
index 12 技能伤害
index 13 低血量时技能伤害
Process finished with exit code 0
```
从输出可以看出,如果我们需要获得胡桃在低血量时开启大招的技能伤害,索引应该设置为 13。
```python
index = 13
```
**注意:莫娜计算器并不计算相关命座的技能等级加成,这需要前端作出相应的计算 ~~(人话:用户自己解决)~~**
## config 技能配置
这个参数设定了一些角色当前的状态,比如说胡桃 E 技能是否开启,如果开启会基于生命值获得额外攻击力,打出更高的伤害。
`genshin_artifact/mona_core/src/character/skill_config.rs` 文件我们可以看见各个角色的技能参数
```rust
#[derive(Serialize, Deserialize, Debug)]
pub enum CharacterSkillConfig {
Albedo { fatal_count: usize },
Aloy { coil_count: usize },
AratakiItto { after_q: bool },
Diluc { pyro: bool },
Eula { lightfall_stack: usize },
Ganyu { talent1_rate: f64 },
HuTao { after_e: bool },
KaedeharaKazuha { after_e_or_q: bool },
KamisatoAyaka { #[serde(default = "default_true")] after_dash: bool, #[serde(default = "default_false")] use_c6: bool },
KamisatoAyato { e_stack: usize, in_q: bool },
Keqing { after_e: bool },
Noelle { after_q: bool },
RaidenShogun { under_e: bool, resolve_stack: usize },
SangonomiyaKokomi { after_q: bool },
Xiao { after_q: bool, talent1_stack: f64, talent2_stack: f64 },
Xingqiu { c4: bool },
Xinyan { shield_rate: f64 },
Yanfei { after_q: bool },
Yoimiya { after_e: bool },
Dori { c6: bool },
Candace { crown: bool },
Cyno { under_judication: bool },
Nahida { q_bonus: bool, q_bonus_count: usize },
Wanderer { e_enabled: bool, e_hydro: bool, sdpoints: f64 },
Faruzan { talent2_ratio: f64 },
Alhaitham { under_e: bool },
Dehya { c2_rate: f64, c6_stack: f64 },
Kaveh { after_q: bool },
Freminet { talent2_rate: f64 },
Lyney { prop_stack: f64, under_pyro: bool, pyro_count: usize, },
Neuvillette { talent1_stack: usize },
Wriothesley { under_chilling_penalty: bool },
NoConfig,
}
```
以胡桃为例,如果要设置当前 E 技能状态生效,我们传入的参数是
```python
params = {"after_e": True}
```
如不进行任何设置,保持该参数不会被任何代码修改,或者设置为 `NoConfig`
```python
config = "NoConfig"
```