1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//! 下面是一段较为完整的代码示例,展示了如何以
//!
//! - **毛毛**的**破罐破摔**技能
//! - **绒光优优**的**天光**技能
//! - **水灵**的**天洪**技能
//!
//! 为例计算各种情况下对恶魔狼王造成的伤害。
//!
//!```rust
//!use std::error::Error;
//!use rocalc::*;
//!fn main() -> Result<(), Box<dyn Error>> {
//! // 获取精灵种族值
//! let wolf_rac = get_race_value("恶魔狼王", "your_path.csv")?;
//! let maomao_rac = get_race_value("毛毛", "your_path.csv")?;
//! let youyou_rac = get_race_value("绒光优优", "your_path.csv")?;
//! let blue_rac = get_race_value("水灵", "your_path.csv")?;
//!
//! // 使用 Tri 结构定义计算精灵面板所需的三项:性格、种族值、个体值
//! let mut wolf_tri = Tri {
//! car: Car::Sanguine, // 定义性格
//! rac: wolf_rac, // 定义种族值
//! ind: [ // 定义个体值
//! (Panel::Hp, 10.0),
//! (Panel::Spd, 10.0),
//! (Panel::Atk, 10.0),
//! ],
//! };
//!
//! // 或者使用new构建
//! // 定义个体值
//! //[derive(Clone, Copy)]
//! const matk_ind: [(Panel, f32); 3] = [
//! (Panel::Hp, 10.0),
//! (Panel::Spd, 10.0),
//! (Panel::MAtk, 10.0),
//! ];
//! // new接受性格、种族值和个体值作为参数
//! let mut youyou_tri = Tri::new(Car::Timid, &youyou_rac, &matk_ind);
//! let mut blue_tri = Tri::new(Car::Clever, &blue_rac, &matk_ind);
//! let mut maomao_tri = Tri::new(Car::Clever, &maomao_rac, &matk_ind);
//!
//! // 根据精灵的三项进行面板修正,得到真正的面板属性
//! let wolf_p = wolf_tri.cor();
//! let maomao_p = maomao_tri.cor();
//! let youyou_p =youyou_tri.cor();
//! let blue_p = blue_tri.cor();
//!
//! // 用毛毛的破罐破摔技能打恶魔狼王
//! let mut po = Cfor::new(maomao_p.m_atk.round(), wolf_p.m_dfe.round(), 80.0);
//! // 本系加成和双倍克制
//! po.prop = 1.25;
//! po.counter= 2.00;
//!
//! // 吃破罐破摔的技能威力加成
//! po.pow_appd = 60.0;
//! println!{"破罐破摔{}", po.cal()};
//!
//! // 用水灵的天洪技能打恶魔狼王
//! let mut tianhong = Cfor::new(blue_p.m_atk.round(), wolf_p.m_dfe.round(), 150.0);
//! tianhong.prop = 1.25;
//! println!{"天洪:{}", tianhong.cal()};
//!
//! // 算上雨天加成
//! tianhong.pow_buff= 1.75;
//! println!{"雨天天洪:{}", tianhong.cal()};
//!
//! // 用绒光优优的天光技能打恶魔狼王
//! let mut tianguang = Cfor::new(youyou_p.m_atk.round(), wolf_p.m_dfe.round(), 95.0);
//! tianguang.prop = 1.25;
//! tianguang.counter = 2.0;
//! println!{"天光:{}", tianguang.cal()};
//!
//! tianguang.pow_buff = 1.5;
//! println!{"放晴天光:{}", tianguang.cal()};
//!
//! tianguang.pow_buff = 1.5 * 1.75;
//! println!{"雨天天光:{}", tianguang.cal()};
//! Ok(())
//! }
//!```
pub use crate*;
pub use crate*;
pub use crate*;
pub use crate;