dragon_blade 1.0.0

A transpiler from Rust to Overwatch Workshop
Documentation

Dragon Blade

This library lets you write code for the Overwatch Workshop in rust.

Example Usage:

use dragon_blade::*;

bind_subroutine!(convert_to_healing);
bind_player_variable!(converted_damage: Number);

fn main() {
    let script = Script::new();
    script.add(Rule {
        name: "Heal for adaptive amoumt",
        event: SubroutineBody(Subroutine::convert_to_healing()),
        condition: vec![],
        actions: || {
            let amount = (number(1.15) - EventPlayer.normalized_health())
                * EventPlayer.converted_damage().get()
                * number(4);
            heal(EventPlayer, Null, amount);
        },
    });
    script.add(Rule {
        name: "heal player when they deal damage",
        event: PlayerDealtDamage(Team::Team1, Everyone),
        condition: vec![EventPlayer.is_alive()],
        actions: || {
            EventPlayer.converted_damage().set(EventDamage);
            call_subroutine(Subroutine::convert_to_healing());
        },
    });
    std::fs::write("script.txt", script.generate()).unwrap();
}