summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2024-02-09 16:13:01 -0800
committerChristian Cunningham <cc@localhost>2024-02-09 16:13:01 -0800
commit5566537157361003277f043b8e3ea9a387ebb206 (patch)
tree6143b6e799df557de3c3e2a78f51fc02a734a9cc
parent5f3e5f473c6d7a45297c4d301eb2a2d61078586b (diff)
More Verbose Card Activatables
-rw-r--r--src/card/effect.rs30
-rw-r--r--src/main.rs4
2 files changed, 31 insertions, 3 deletions
diff --git a/src/card/effect.rs b/src/card/effect.rs
index a5f909e..65e54c7 100644
--- a/src/card/effect.rs
+++ b/src/card/effect.rs
@@ -2,7 +2,7 @@
#[derive(Copy,Clone)]
pub struct CardEffect {
pub name: &'static str,
- pub when: usize, // TODO: Change this
+ pub when: CardEffectStates, // TODO: Change this
pub fun: &'static dyn Fn(),
}
@@ -12,3 +12,31 @@ impl core::fmt::Debug for CardEffect {
}
}
+#[allow(dead_code)]
+#[allow(non_snake_case)]
+#[derive(Copy, Clone)]
+pub struct CardEffectStates {
+ DRAW: bool,
+ BEFORE_PLACE: bool,
+ DURING_PLACE: bool,
+ AFTER_PLACE: bool,
+ BEFORE_ATTACK: bool,
+ DURING_ATTACK: bool,
+ AFTER_ATTACK: bool,
+ END_TURN: bool,
+}
+
+impl Default for CardEffectStates {
+ fn default() -> Self {
+ Self {
+ DRAW: false,
+ BEFORE_PLACE: false,
+ DURING_PLACE: false,
+ AFTER_PLACE: false,
+ BEFORE_ATTACK: false,
+ DURING_ATTACK: false,
+ AFTER_ATTACK: false,
+ END_TURN: false,
+ }
+ }
+}
diff --git a/src/main.rs b/src/main.rs
index 2b8efc3..01c8fbb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -25,7 +25,7 @@ fn main() {
card.n = 254;
card.effect = Some(effect::CardEffect {
name: "Say Hello",
- when: 0,
+ when: card::effect::CardEffectStates::default(),
fun: &special_000,
});
println!("{:?}", card);
@@ -34,7 +34,7 @@ fn main() {
if let Some(effect) = card.effect {
(effect.fun)();
}
- let mut grid = Grid::<3>::default();
+ let mut grid = Grid::<4>::default();
println!("{:?}", grid);
grid.field[0][1] = Some(card);
println!("{:?}", grid);