drop ref file

main
Bel LaPointe 2025-03-13 21:03:49 -06:00
parent e6fa3a9293
commit 5b60e34801
1 changed files with 0 additions and 74 deletions

View File

@ -1,74 +0,0 @@
use godot::prelude::*;
use godot::classes::{ISprite2D, Sprite2D};
#[derive(GodotClass, Debug)]
#[class(base=Sprite2D)]
pub struct Mon {
base: Base<Sprite2D>,
name: GString,
hp: i32,
damage: i32,
level_d: i32,
}
#[godot_api]
impl ISprite2D for Mon {
fn init(base: Base<Sprite2D>) -> 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
}
}