effect: added effect definition for all units
authorLukas Krickl <lukas@krickl.dev>
Sat, 31 May 2025 03:39:17 +0000 (05:39 +0200)
committerLukas Krickl <lukas@krickl.dev>
Sat, 31 May 2025 03:39:17 +0000 (05:39 +0200)
src/defs.s
src/effect.s [new file with mode: 0644]
src/macros.inc
src/main.s

index e697a62887d776f166e75f3c75b870c680867b8f..5e0492bc2e14286be79cf29ec81f52524bca6064 100644 (file)
@@ -33,6 +33,9 @@
 #define CURSOR_MIN_Y 0 
 #define CURSOR_MAX_Y 0xB8
 
+  ; each unit can have up to 4 status effects
+#define EFFECTS_MAX 4
+
 #define PLAYERS 2
 
   ; draw flags
 .de stat_max, 1
 .de stat_size, 0
 
+  ; status effect
+.se 0
+.de effect_type, 1
+.de effect_dat, 1
+.de effect_size, 0
+
+  ; status effect types
+.se 0
+.de EFFECT_NONE, 1
+
+  ; damage over time effect
+  ; dat NNNN0000: timer
+  ; dat 0000NNNN: damage value per tick
+.de EFFECT_DOT, 1
+
+
   ; actor type enum
 .se 0
 .de ACT_T_NULL, 1
 .de act_moves, stat_size ; moves for each turn
 .de act_init, 1 ; initiative value
 
+  ; inventory
+  
+  ; equipment 
+
+  ; status effects
+.de act_effect, EFFECTS_MAX * effect_size 
+
   ; actor states 
   ; used for state switching
   ; set to 0000 to disable the state
diff --git a/src/effect.s b/src/effect.s
new file mode 100644 (file)
index 0000000..e69de29
index 1435e88bea1853bbc3e6cd27ccdec322658bbfbf..d65256aa62cf16bc486b5129334ca47c7a0f2a4d 100644 (file)
 
   ; defines an empty status effect table
 #macro act_effects_empty
+  .db 0, 0
+  .db 0, 0
+  .db 0, 0
+  .db 0, 0
 #endmacro
 
   ; loads NULL into a 16 bit register
index ca44f74790ba11fd2ed74d55e82cdf7957191087..6ad5a4a284f38b71104c39325f90c8d3cc457a18 100644 (file)
@@ -66,6 +66,7 @@ main:
 #include "state.s"
 #include "tiles.inc"
 #include "unit.s"
+#include "effect.s"
 
 ; fill bank
 .fill 0, 0x7FFF - $