attr: added stub for attack damage calculation
authorLukas Krickl <lukas@krickl.dev>
Sat, 20 Dec 2025 18:07:02 +0000 (19:07 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sat, 20 Dec 2025 18:07:02 +0000 (19:07 +0100)
src/attributes.s

index 2f84a9af4b2292e9319de40ac0b13786de189721..f21a301bbcc41fbfac2fba441e0ff5ff142a307c 100644 (file)
@@ -10,3 +10,35 @@ attrdef 0, 0, 0, 0, 0, 0
 
 attr_bat:
 attrdef 1, 0, 0, 1, 0, 0
+       
+       ; gets strength attribute
+       ; of a given actor
+       ; inputs:
+       ;               de: actor
+       ;       returns:
+       ;               a: attribute value + item bounus + buffs - debuffs
+attr_get_str:
+       ret
+       
+       ; calculates the attack damage
+       ; of a given actor
+       ; inputs:
+       ;               de: actor
+       ;       returns:
+       ;               a: damage value
+attr_attack_damage:
+       ld hl, act_weapon
+       add hl, de
+       ld a, [hl] ; load weapon type
+       cp a, 0 ; if 0 -> unarmed
+       jp z, @unarmed
+       ret
+
+@unarmed:
+       ; unarmed is just strength / 2
+       call attr_get_str
+       sla a ; divide by 2
+       cp a, 0 ; damage should at least be 1!
+       ret nz
+       ld a, 1 ; ensure it is at least 1!
+       ret