From f67cf5db56ddc1e5e6846b6d39647615c7c1e1d2 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Thu, 2 Apr 2026 18:34:41 +0200 Subject: [PATCH] actor: Added more actor types and damage types --- src/actor.s | 24 ++++++++++++++++++++++++ src/d_actor.s | 24 ++++++++++++++++++++++-- src/hram.s | 6 ++++++ src/wram.s | 3 +++ 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/actor.s b/src/actor.s index f9881f3..856869e 100644 --- a/src/actor.s +++ b/src/actor.s @@ -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 + diff --git a/src/d_actor.s b/src/d_actor.s index 28ca0b2..d6a1eb5 100644 --- a/src/d_actor.s +++ b/src/d_actor.s @@ -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 - + diff --git a/src/hram.s b/src/hram.s index 0100ee2..dfa092d 100644 --- a/src/hram.s +++ b/src/hram.s @@ -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 diff --git a/src/wram.s b/src/wram.s index deb915a..608882e 100644 --- a/src/wram.s +++ b/src/wram.s @@ -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 -- 2.30.2