diff --git a/src/rust/src/mon.rs b/src/rust/src/mon.rs deleted file mode 100644 index 130b730..0000000 --- a/src/rust/src/mon.rs +++ /dev/null @@ -1,74 +0,0 @@ -use godot::prelude::*; - -use godot::classes::{ISprite2D, Sprite2D}; -#[derive(GodotClass, Debug)] -#[class(base=Sprite2D)] -pub struct Mon { - base: Base, - name: GString, - hp: i32, - damage: i32, - level_d: i32, -} - -#[godot_api] -impl ISprite2D for Mon { - fn init(base: Base) -> Self { - Self{ - base: base, - name: "my_name".into(), - hp: 100, - damage: 0, - level_d: 0, - } - } - - fn ready(&mut self) { - self.hp_change() - } -} - -use crate::mon_move; -#[godot_api] -impl Mon { - #[func] - pub fn mon_name(&self) -> GString { - self.name.clone() - } - - #[func] - pub fn hp(&self) -> f32 { - (self.hp - self.damage) as f32 / self.hp as f32 - } - - #[func] - pub fn tackled(&mut self) { - self.recv(mon_move::TACKLE); - self.hp_change() - } - - fn hp_change(&mut self) { - self.base_mut().emit_signal("hp_changed", &[]); - } - - #[signal] - fn hp_changed(); -} - -impl Mon { - fn recv(&mut self, m: mon_move::MonMove) { - m.use_on(self); - } - - pub fn hit_for(&mut self, power: i32) { - self.damage += power; - } - - pub fn damage_scalar(&self) -> f32 { - let mut result = 1.0; - for _ in 0..self.level_d { - result /= 2.0; - } - result - } -}