summaryrefslogtreecommitdiff
path: root/src/json.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/json.rs')
-rw-r--r--src/json.rs51
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 {