SHOW:
|
|
- or go back to the newest paste.
1 | TypeNamePointers: ; 7DAE | |
2 | dw Type00Name | |
3 | dw Type01Name | |
4 | dw Type02Name | |
5 | dw Type03Name | |
6 | dw Type04Name | |
7 | dw Type05Name | |
8 | dw Type06Name | |
9 | dw Type07Name | |
10 | dw Type08Name | |
11 | dw Type00Name | |
12 | dw Type00Name | |
13 | dw Type00Name | |
14 | dw Type00Name | |
15 | dw Type00Name | |
16 | dw Type00Name | |
17 | dw Type00Name | |
18 | dw Type00Name | |
19 | dw Type00Name | |
20 | dw Type00Name | |
21 | dw Type00Name | |
22 | dw Type14Name | |
23 | dw Type15Name | |
24 | dw Type16Name | |
25 | dw Type17Name | |
26 | dw Type18Name | |
27 | dw Type19Name | |
28 | dw Type1AName | |
29 | ||
30 | Type00Name: | |
31 | db "NORMAL@" | |
32 | Type01Name: | |
33 | db "FIGHTING@" | |
34 | Type02Name: | |
35 | db "FLYING@" | |
36 | Type03Name: | |
37 | db "POISON@" | |
38 | Type14Name: | |
39 | db "FIRE@" | |
40 | Type15Name: | |
41 | db "WATER@" | |
42 | Type16Name: | |
43 | db "GRASS@" | |
44 | Type17Name: | |
45 | db "ELECTRIC@" | |
46 | Type18Name: | |
47 | db "PSYCHIC@" | |
48 | Type19Name: | |
49 | db "ICE@" | |
50 | Type04Name: | |
51 | db "GROUND@" | |
52 | Type05Name: | |
53 | db "ROCK@" | |
54 | Type06Name: | |
55 | db "BIRD@" | |
56 | Type07Name: | |
57 | db "BUG@" | |
58 | Type08Name: | |
59 | db "GHOST@" | |
60 | Type1AName: | |
61 | - | db "DRAGON@" |
61 | + | db "DRAGON@" |
62 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
63 | CalculateDamage: ; 0x3ddcf | |
64 | xor a | |
65 | ld hl, W_DAMAGE ;damage to eventually inflict, intitialise to zero | |
66 | ldi [hl], a | |
67 | ld [hl], a | |
68 | ld hl, W_PLAYERMOVEPOWER | |
69 | ld a, [hli] ;*read attack base power | |
70 | and a | |
71 | ld d, a ;*D = attack base, used later | |
72 | ret z ;return if attack is zero | |
73 | ld a, [hl] ;*test attacking type | |
74 | cp a, $14 ;types >= $14 are all special | |
75 | jr nc, .specialAttack | |
76 | .physicalAttack | |
77 | ld hl, W_ENEMYMONDEFENSE ;opponent defense | |
78 | ld a, [hli] ;*BC = opponent defense used later | |
79 | ld b, a | |
80 | ld c, [hl] | |
81 | ld a, [W_ENEMYBATTSTATUS3] ;test for reflect | |
82 | bit 2, a | |
83 | jr z, .next\@ | |
84 | .doubleDefense | |
85 | sla c ;x2 defense if bit2 of D069 is set | |
86 | rl b | |
87 | .next\@ | |
88 | ld hl, $d025 ;attack pointer | |
89 | ld a, [$d05e] | |
90 | and a | |
91 | jr z, .next3\@ | |
92 | ld c, 3 | |
93 | call $5f1c | |
94 | ld a, [$ff00+$97] | |
95 | ld b, a | |
96 | ld a, [$ff00+$98] | |
97 | ld c, a | |
98 | push bc | |
99 | ld hl, $d18f | |
100 | ld a, [W_PLAYERMONNUMBER] | |
101 | ld bc, $002c | |
102 | call AddNTimes | |
103 | pop bc | |
104 | jr .next3\@ | |
105 | .specialAttack | |
106 | ld hl, W_ENEMYMONSPECIAL ;opponent special | |
107 | ld a, [hli] ;*BC = opponent special defense used later | |
108 | ld b, a | |
109 | ld c, [hl] | |
110 | ld a, [W_ENEMYBATTSTATUS3] ;test for lightscreen | |
111 | bit 1, a | |
112 | jr z, .next2\@ |