diff options
Diffstat (limited to 'src/json.rs')
-rw-r--r-- | src/json.rs | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/src/json.rs b/src/json.rs index 252481c..798c567 100644 --- a/src/json.rs +++ b/src/json.rs @@ -53,6 +53,7 @@ pub struct PlayerWorm { pub digging_range: u32, pub movement_range: u32, pub weapon: Weapon, + pub banana_bombs: Option<Bomb> } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] @@ -152,6 +153,15 @@ pub struct Weapon { pub range: u8, } +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct Bomb { + pub damage: i32, + pub range: u8, + pub count: u8, + pub damage_radius: u8 +} + impl State { pub fn active_worm_index(&self) -> Option<usize> { self.my_player @@ -193,8 +203,30 @@ mod test { "damage": 1, "range": 3 }, + "bananaBombs": { + "damage": 20, + "range": 5, + "count": 3, + "damageRadius": 2 + }, + "diggingRange": 1, + "movementRange": 1, + "profession": "Agent" + }, + { + "id": 2, + "health": 150, + "position": { + "x": 1, + "y": 16 + }, + "weapon": { + "damage": 1, + "range": 3 + }, "diggingRange": 1, - "movementRange": 1 + "movementRange": 1, + "profession": "Commando" } ] }, @@ -306,6 +338,23 @@ mod test { }, digging_range: 1, movement_range: 1, + banana_bombs: Some(Bomb { + damage: 20, + range: 5, + count: 3, + damage_radius: 2 + }), + }, PlayerWorm { + id: 2, + health: 150, + position: Position { x: 1, y: 16 }, + weapon: Weapon { + damage: 1, + range: 3, + }, + digging_range: 1, + movement_range: 1, + banana_bombs: None, }], }, opponents: vec![Opponent { |