actor: Added more actor types and damage types master origin/HEAD origin/master
authorLukas Krickl <lukas@krickl.dev>
Thu, 2 Apr 2026 16:34:41 +0000 (18:34 +0200)
committerLukas Krickl <lukas@krickl.dev>
Thu, 2 Apr 2026 16:34:41 +0000 (18:34 +0200)
src/actor.s
src/d_actor.s
src/hram.s
src/wram.s

index f9881f30f8893a53537a1a527592b419a152a403..856869e475f6793f99c5deb939aa91c1eeed95a3 100644 (file)
@@ -144,3 +144,27 @@ act_move_right:
 
        ld a, 1
        ret
+
+
+       ; armor value table for each actor 
+       ; type
+act_armor_table:
+       .db 0 ; T_NULL
+       .db 0 ; T_PLAYER
+       .db 0 ; T_GUARD
+       
+       ; the actors damge type
+       ; each actor can deal single damage type
+       ; one entry for each actor type
+act_dmg_type_table:
+       .db ACT_DT_NONE ; T_NULL
+       .db ACT_DT_NONE ; T_PLAYER
+       .db ACT_DT_SHOT ; T_GUARD
+       
+       ; which damage type this actor resists
+       ; one entry per actor type
+act_res_type_table:
+       .db ACT_DT_NONE ; T_NULL
+       .db ACT_DT_NONE ; T_PLAYER
+       .db ACT_DT_NONE ; T_GUARD
+
index 28ca0b2ff3d40d45dfbe7285283222ac6712f291..d6a1eb5731523ed9a15bbdf5d8b62d341c8000f6 100644 (file)
@@ -1,11 +1,31 @@
+       ; actor types
 .se 0
 .de ACT_T_NULL, 1
 .de ACT_T_PLAYER, 1
-
+.de ACT_T_GUARD, 1
+       
+       ; damage types
+.se 0
+.de ACT_DT_NONE, 1
+.de ACT_DT_SHOT, 1
+       
+       ; max number of actors each player may spawn
+#define ACT_PER_PLAYER 16
+       
+       ; each actor has exactly 10 hp
+       ; based on its damage type and def type
+       ; flags each attack does a certain amount of damage
+#define ACT_HP_MAX 10
+       
+       ; actor struct
 .se 0
 .de act_type, 1
 .de act_flags, 1
 .de act_y, 1
 .de act_x, 1
+       ; player number that owns the actor
+.de act_owner, 1
+       ; current hp
+.de act_hp, 1  
 .de act_size, 0
-
+       
index 0100ee28008a7e0a83a10f6d806395255c47abef..dfa092d601786e868a8708d6cc0caf6931f72e52 100644 (file)
@@ -6,3 +6,9 @@
 
        ; current tile id the cursor is hovering over
 cursor_tile_id: .adv 1
+
+       ; current player number
+       ; 0 - no player
+       ;       1 - player 1
+       ;       2 - player 2
+playerno: .adv 1
index deb915aad87c02b5ba3fe7122ef369ba93cd56cf..608882e61c7480b902494528332cfbc7a4e721be 100644 (file)
@@ -23,6 +23,9 @@ inputs_prev: .adv 1
 
 player: .adv act_size
 
+player1_units: .adv act_size * ACT_PER_PLAYER
+player2_units: .adv act_size * ACT_PER_PLAYER
+
        ; ptr to current map
 map: .adv 2