aboutsummaryrefslogtreecommitdiff
path: root/games/rstnode/rst-core/src/wire/game/action.rs
diff options
context:
space:
mode:
Diffstat (limited to 'games/rstnode/rst-core/src/wire/game/action.rs')
-rw-r--r--games/rstnode/rst-core/src/wire/game/action.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/games/rstnode/rst-core/src/wire/game/action.rs b/games/rstnode/rst-core/src/wire/game/action.rs
new file mode 100644
index 000000000000..22ab7ce6868e
--- /dev/null
+++ b/games/rstnode/rst-core/src/wire/game/action.rs
@@ -0,0 +1,33 @@
+use crate::data::{NodeId, Upgrade};
+use serde::{Deserialize, Serialize};
+
+/// All actions that a user can trigger via the UI
+#[derive(Serialize, Deserialize)]
+pub enum Action {
+ /// Cancel the running action
+ Cancel(NodeId),
+ /// Start a capture action
+ Capture { from: NodeId, to: NodeId },
+ /// Set the compute targets
+ Compute { from: NodeId, to: Vec<NodeId> },
+ /// Set to payload analysis mode
+ Payload(NodeId),
+ /// Send an exploit across the network
+ Reset {
+ from: NodeId,
+ to: NodeId,
+ exp: Exploit,
+ },
+ /// Try to upgrade the node to a level
+ Upgrade { node: NodeId, level: Upgrade },
+}
+
+/// A type of exploit a node can start running
+#[derive(Serialize, Deserialize)]
+pub enum Exploit {
+ Reset,
+ CNS,
+ Nitm,
+ Virus,
+ TakeOver,
+}