Crates.io | dragon_blade |
lib.rs | dragon_blade |
version | 2.1.0 |
source | src |
created_at | 2023-07-20 00:16:10.161862 |
updated_at | 2023-07-25 18:47:57.633792 |
description | A transpiler from Rust to Overwatch Workshop |
homepage | |
repository | |
max_upload_size | |
id | 920820 |
size | 178,184 |
This library lets you write code for the Overwatch Workshop in rust.
use dragon_blade::*;
bind_subroutines! {
convert_to_healing;
}
bind_player_variables! {
converted_damage: Number;
}
fn main() {
let script = Script::new("Heal for damage dealt");
script.add(Rule {
name: "Heal for adaptive amoumt",
event: SubroutineBody(Subroutine::convert_to_healing()),
conditions: conditions([]),
actions: || {
let amount =
(1.15 - EventPlayer.normalized_health()) * EventPlayer.converted_damage() * 4;
EventPlayer.heal(Null, amount);
},
});
script.add(Rule {
name: "heal player when they deal damage",
event: PlayerDealtDamage(Team::Team1, Everyone),
conditions: conditions([EventPlayer.is_alive()]),
actions: || {
cf_abort_if(Victim.equal(EventPlayer));
EventPlayer.converted_damage().set(EventDamage);
Subroutine::convert_to_healing().call();
},
});
let script = script.generate();
script.write_to_file("script.txt");
script.copy_to_clipboard();
}