The routine that deals damage to an enemy is at C4/4ECA-C4/4F43. At C4/4EFF, it calls C2/79D3 to determine the amount of damage dealt. Excuse any vagueness or omissions in my comments; This game was the first game I did much hacking on, and thus I was inexperienced with ROM hacking when I did this.
C2/79D3: 22 AF 72 C2 JSR $C272AF (get player data)
C2/79D7: C2 20 REP #$20
C2/79D9: A0 0C 00 LDY #$000C
C2/79DC: B7 56 LDA [$56],Y (power)
C2/79DE: 85 40 STA $40
C2/79E0: A0 1E 00 LDY #$001E
C2/79E3: B7 56 LDA [$56],Y (status)
C2/79E5: 89 20 00 BIT #$0020 (if power up)
C2/79E8: F0 02 BEQ $79EC
C2/79EA: 06 40 ASL $40
C2/79EC: A0 12 00 LDY #$0012
C2/79EF: B7 56 LDA [$56],Y (equipped weapon)
C2/79F1: 29 FF 00 AND #$00FF
C2/79F4: 85 42 STA $42
C2/79F6: 0A ASL
C2/79F7: 18 CLC
C2/79F8: 65 42 ADC $42
C2/79FA: A8 TAY
C2/79FB: C2 20 REP #$20
C2/79FD: A9 3A 4F LDA #$4F3A
C2/7A00: 85 50 STA $50
C2/7A02: E2 20 SEP #$20
C2/7A04: A9 C0 LDA #$C0
C2/7A06: 85 52 STA $52
C2/7A08: C2 20 REP #$20
C2/7A0A: B7 50 LDA [$50],Y (weapon data pointer)
C2/7A0C: 85 53 STA $53
C2/7A0E: C8 INY
C2/7A0F: C8 INY
C2/7A10: E2 20 SEP #$20
C2/7A12: B7 50 LDA [$50],Y
C2/7A14: 85 55 STA $55
C2/7A16: C2 20 REP #$20
C2/7A18: A7 53 LDA [$53] (weapon power)
C2/7A1A: 18 CLC
C2/7A1B: 65 40 ADC $40
C2/7A1D: 85 40 STA $40
C2/7A1F: A0 1E 00 LDY #$001E
C2/7A22: B7 56 LDA [$56],Y
C2/7A24: 89 00 08 BIT #$0800 (if defend)
C2/7A27: F0 08 BEQ $7A31
C2/7A29: A5 40 LDA $40
C2/7A2B: 4A LSR
C2/7A2C: 18 CLC
C2/7A2D: 65 40 ADC $40
C2/7A2F: 85 40 STA $40 (x1.5)
C2/7A31: 22 D3 72 C2 JSR $C272D3 (get enemy data)
C2/7A35: C2 20 REP #$20
C2/7A37: A0 1C 00 LDY #$001C
C2/7A3A: B7 59 LDA [$59],Y
C2/7A3C: 4A LSR
C2/7A3D: 85 42 STA $42 (defense/2)
C2/7A3F: A0 1E 00 LDY #$001E
C2/7A42: B7 59 LDA [$59],Y
C2/7A44: 89 08 00 BIT #$0008 (if defense down)
C2/7A47: F0 02 BEQ $7A4B
C2/7A49: 46 42 LSR $42
C2/7A4B: A0 14 00 LDY #$0014
C2/7A4E: B7 59 LDA [$59],Y (enemy armor)
C2/7A50: 29 FF 00 AND #$00FF
C2/7A53: F0 66 BEQ $7ABB (branch if no armor, i.e. not an apprentice)
C2/7A55: 85 44 STA $44
C2/7A57: 0A ASL
C2/7A58: 18 CLC
C2/7A59: 65 44 ADC $44
C2/7A5B: A8 TAY
C2/7A5C: C2 20 REP #$20
C2/7A5E: A9 3A 4F LDA #$4F3A
C2/7A61: 85 50 STA $50
C2/7A63: E2 20 SEP #$20
C2/7A65: A9 C0 LDA #$C0
C2/7A67: 85 52 STA $52
C2/7A69: C2 20 REP #$20
C2/7A6B: B7 50 LDA [$50],Y (armor data pointer)
C2/7A6D: 85 53 STA $53
C2/7A6F: C8 INY
C2/7A70: C8 INY
C2/7A71: E2 20 SEP #$20
C2/7A73: B7 50 LDA [$50],Y
C2/7A75: 85 55 STA $55
C2/7A77: C2 20 REP #$20
C2/7A79: A7 53 LDA [$53] (armor defense stat)
C2/7A7B: 29 FF 00 AND #$00FF
C2/7A7E: 18 CLC
C2/7A7F: 65 42 ADC $42
C2/7A81: 85 42 STA $42
C2/7A83: A0 13 00 LDY #$0013
C2/7A86: B7 59 LDA [$59],Y (accessory)
C2/7A88: 29 FF 00 AND #$00FF
C2/7A8B: F0 2E BEQ $7ABB (branch if no accessory)
C2/7A8D: 85 44 STA $44
C2/7A8F: 0A ASL
C2/7A90: 18 CLC
C2/7A91: 65 44 ADC $44
C2/7A93: A8 TAY
C2/7A94: C2 20 REP #$20
C2/7A96: A9 3A 4F LDA #$4F3A
C2/7A99: 85 50 STA $50
C2/7A9B: E2 20 SEP #$20
C2/7A9D: A9 C0 LDA #$C0
C2/7A9F: 85 52 STA $52
C2/7AA1: C2 20 REP #$20
C2/7AA3: B7 50 LDA [$50],Y (accessory data pointer)
C2/7AA5: 85 53 STA $53
C2/7AA7: C8 INY
C2/7AA8: C8 INY
C2/7AA9: E2 20 SEP #$20
C2/7AAB: B7 50 LDA [$50],Y
C2/7AAD: 85 55 STA $55
C2/7AAF: C2 20 REP #$20
C2/7AB1: A7 53 LDA [$53] (accessory defense stat)
C2/7AB3: 29 FF 00 AND #$00FF
C2/7AB6: 18 CLC
C2/7AB7: 65 42 ADC $42
C2/7AB9: 85 42 STA $42
C2/7ABB: C2 20 REP #$20
C2/7ABD: A5 40 LDA $40
C2/7ABF: 38 SEC
C2/7AC0: E5 42 SBC $42
C2/7AC2: 90 2C BCC $7AF0 (branch if negative)
C2/7AC4: 85 40 STA $40 (base damage)
C2/7AC6: 4A LSR
C2/7AC7: 22 6B 95 C2 JSR $C2956B (random number 0 to (damage/2)-1)
C2/7ACB: C2 20 REP #$20
C2/7ACD: 85 44 STA $44
C2/7ACF: A5 40 LDA $40
C2/7AD1: 4A LSR
C2/7AD2: 4A LSR
C2/7AD3: 85 42 STA $42 (damage/4)
C2/7AD5: A5 40 LDA $40
C2/7AD7: 38 SEC
C2/7AD8: E5 42 SBC $42
C2/7ADA: 18 CLC
C2/7ADB: 65 44 ADC $44 (adjusted damage)
C2/7ADD: 30 11 BMI $7AF0
C2/7ADF: F0 0F BEQ $7AF0
C2/7AE1: 85 40 STA $40
C2/7AE3: A0 1E 00 LDY #$001E
C2/7AE6: B7 59 LDA [$59],Y
C2/7AE8: 89 04 00 BIT #$0004 (if enemy defense up)
C2/7AEB: F0 02 BEQ $7AEF
C2/7AED: 46 40 LSR $40
C2/7AEF: 6B RTL
C2/7AF0: A9 01 00 LDA #$0001 (damage = 1)
C2/7AF3: 85 40 STA $40
C2/7AF5: 6B RTL
Critical hits are checked at C4/4F0E and are determined at the beginning of the round, before you get a chance to select an action. If my notes were better organized, I might even be able to tell you where that code is.