Skip to main content

Crate rocalc

Crate rocalc 

Source
Expand description

下面是一段较为完整的代码示例,展示了如何以

  • 毛毛破罐破摔技能
  • 绒光优优天光技能
  • 水灵天洪技能

为例计算各种情况下对恶魔狼王造成的伤害。

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 po = Cfor::build(maomao_p.m_atk.round(), wolf_p.m_dfe.round(), 80.0)
    .prop(1.25)    // 本系加成
    .counter(2.00) // 双倍克制
    .pow_appd(60.0); // 技能威力附加(破罐破摔特性)
    println!{"破罐破摔{}", po.cal()}; // 打印结果

    // 用水灵的天洪技能打恶魔狼王
    let tianhong = Cfor::build(blue_p.m_atk.round(), wolf_p.m_dfe.round(), 150.0)
    .prop(1.25)
    .pow_buff(1.75); // 雨天下技能威力百分比加成
    println!{"雨天天洪:{}", tianhong.cal()};

    // 用绒光优优的天光技能打恶魔狼王
    let mut tianguang = Cfor::new(youyou_p.m_atk.round(), wolf_p.m_dfe.round(), 95.0)
    .prop(1.25)
    .counter(2.0)
    .pow_buff(1.5) // 放晴威力加成
    .pow_buff(1.5 * 1.75); // 放晴+雨天加成
    println!{"雨天天光:{}", tianguang.cal()};

    Ok(())
 }

Structs§

Cfor
复杂公式(Complex formula)
Sfor
简单公式(Simple formula)
Six
定义六维面板
Tri
创建精灵实体

Enums§

Car
精灵的二十种性格
Panel
精灵的六项面板

Functions§

get_race_value
输入精灵的名字,获得种族值。