use crate::geometry::*; struct GameBoard { player: Player, opponent: Player, powerups: Vec, map: Map, } struct Player { active_worm: usize, worms: Vec } struct Worm { id: i32, health: i32, position: Point2d, digging_range: u32, movement_range: u32, // This is unnecessary for now, but necessary later. I know // for sure for the first round that all the worms will do the // same damage and there isn't any way to change it. weapon: Option, } struct Weapon { damage: u32, range: u32, } enum Powerup { Health(Point2d, i32) } struct Map { size: u8, /// This is 2d, each row is size long cells: Vec } enum CellType { Air, Dirt, DeepSpace, }