diff options
Diffstat (limited to 'stats')
-rw-r--r-- | stats/battle_tower.asm | 252 | ||||
-rw-r--r-- | stats/odd_eggs.asm | 465 | ||||
-rw-r--r-- | stats/wild/fish.asm | 4 |
3 files changed, 718 insertions, 3 deletions
diff --git a/stats/battle_tower.asm b/stats/battle_tower.asm index 4a74fe0f5..044f351f8 100644 --- a/stats/battle_tower.asm +++ b/stats/battle_tower.asm @@ -1,4 +1,254 @@ - +Function1f8000: ; 1f8000 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + xor a + ld hl, $d100 + ld bc, $00e0 + call ByteFill + ld a, $ff + ld [$d10c], a + ld [$d147], a + ld [$d182], a + ld de, $d100 + ld a, [hRandomAdd] + ld b, a +.asm_1f8022 + call Random + ld a, [hRandomAdd] + add b + ld b, a + and $1f + cp $15 + jr nc, .asm_1f8022 + ld b, a + ld a, $1 + call GetSRAMBank + ld c, $7 + ld hl, $be48 +.asm_1f803a + ld a, [hli] + cp b + jr z, .asm_1f8022 + dec c + jr nz, .asm_1f803a + ld hl, $be48 + ld a, [$be46] + ld c, a + ld a, b + ld b, 0 + add hl, bc + ld [hl], a + call CloseSRAM + push af + ld hl, BattleTowerTrainers + ld bc, 11 + call AddNTimes + ld bc, 11 + call CopyBytes + call Function1f8081 + pop af + ld hl, Function1f8000 + ld bc, $0024 + call AddNTimes + ld bc, $0024 +.asm_1f8070 + ld a, $7c + call GetFarByte + ld [de], a + inc hl + inc de + dec bc + ld a, b + or c + jr nz, .asm_1f8070 + pop af + ld [rSVBK], a + ret +; 1f8081 + +Function1f8081: ; 1f8081 + ld c, $3 + push bc + ld a, $1 + call GetSRAMBank +.asm_1f8089 + ld a, [$d800] + dec a + ld hl, BattleTowerMons + ld bc, BattleTowerMons2 - BattleTowerMons1 + call AddNTimes + + ld a, [hRandomAdd] + ld b, a +.asm_1f8099 + call Random + ld a, [hRandomAdd] + add b + ld b, a + and $1f + cp (BattleTowerMons2 - BattleTowerMons1) / ($3b) + jr nc, .asm_1f8099 + + ld bc, $3b + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hld] + ld c, a + ld a, [$d10b] + cp b + jr z, .asm_1f8089 + ld a, [$d10c] + cp c + jr z, .asm_1f8089 + ld a, [$d146] + cp b + jr z, .asm_1f8089 + ld a, [$d147] + cp c + jr z, .asm_1f8089 + ld a, [$d181] + cp b + jr z, .asm_1f8089 + ld a, [$d182] + cp c + jr z, .asm_1f8089 + ld a, [$be51] + cp b + jr z, .asm_1f8089 + ld a, [$be52] + cp b + jr z, .asm_1f8089 + ld a, [$be53] + cp b + jr z, .asm_1f8089 + ld a, [$be54] + cp b + jr z, .asm_1f8089 + ld a, [$be55] + cp b + jr z, .asm_1f8089 + ld a, [$be56] + cp b + jr z, .asm_1f8089 + + ld bc, $3b + call CopyBytes + ld a, [$d265] + push af + push de + ld hl, -$3b + add hl, de + ld a, [hl] + ld [$d265], a + ld bc, $0030 + add hl, bc + push hl + call GetPokemonName + ld h, d + ld l, e + pop de + ld bc, $000b + call CopyBytes + pop de + pop af + ld [$d265], a + pop bc + dec c + jp nz, $4083 + ld a, [$be51] + ld [$be54], a + ld a, [$be52] + ld [$be55], a + ld a, [$be53] + ld [$be56], a + ld a, [$d10b] + ld [$be51], a + ld a, [$d146] + ld [$be52], a + ld a, [$d181] + ld [$be53], a + call CloseSRAM + ret +; 1f814e + +BattleTowerTrainers: ; 1f814e + db "HANSON@@@@", FISHER + db "SAWYER@@@@", POKEMANIAC + db "MASUDA@@@@", GUITARIST + db "NICKEL@@@@", SCIENTIST + db "OLSON@@@@@", POKEFANM + db "ZABOROWSKI", LASS + db "WRIGHT@@@@", YOUNGSTER + db "ALEXANDER@", HIKER + db "KAWAKAMI@@", TEACHER + db "BICKETT@@@", POKEFANM + db "SAITO@@@@@", KIMONO_GIRL + db "CRAWFORD@@", BOARDER + db "DIAZ@@@@@@", PICNICKER + db "ERICKSON@@", BIKER + db "FAIRFIELD@", JUGGLER + db "HUNTER@@@@", POKEFANF + db "HILL@@@@@@", FIREBREATHER + db "JAVIER@@@@", SWIMMERF + db "KAUFMAN@@@", SWIMMERM + db "LANCASTER@", SKIER + db "McMAHILL@@", CAMPER + db "OBRIEN@@@@", GENTLEMAN + db "FROST@@@@@", BEAUTY + db "MORSE@@@@@", SUPER_NERD + db "YUFUNE@@@@", BLACKBELT_T + db "RAJAN@@@@@", COOLTRAINERF + db "RODRIGUEZ@", OFFICER + db "SANTIAGO@@", PSYCHIC_T + db "STOCK@@@@@", POKEFANM + db "THURMAN@@@", SCIENTIST + db "VALENTINO@", BEAUTY + db "WAGNER@@@@", CAMPER + db "YATES@@@@@", BIRD_KEEPER + db "ANDREWS@@@", PICNICKER + db "BAHN@@@@@@", POKEMANIAC + db "MORI@@@@@@", SCIENTIST + db "BUCKMAN@@@", SAGE + db "COBB@@@@@@", SCHOOLBOY + db "HUGHES@@@@", FISHER + db "ARITA@@@@@", KIMONO_GIRL + db "EASTON@@@@", PSYCHIC_T + db "FREEMAN@@@", CAMPER + db "GIESE@@@@@", LASS + db "HATCHER@@@", GENTLEMAN + db "JACKSON@@@", POKEFANF + db "KAHN@@@@@@", POKEMANIAC + db "LEONG@@@@@", YOUNGSTER + db "MARINO@@@@", TEACHER + db "NEWMAN@@@@", SAILOR + db "NGUYEN@@@@", BLACKBELT_T + db "OGDEN@@@@@", SUPER_NERD + db "PARK@@@@@@", COOLTRAINERF + db "RAINE@@@@@", SWIMMERM + db "SELLS@@@@@", BIRD_KEEPER + db "ROCKWELL@@", BOARDER + db "THORNTON@@", LASS + db "TURNER@@@@", OFFICER + db "VAN DYKE@@", SKIER + db "WALKER@@@@", SCHOOLBOY + db "MEYER@@@@@", SWIMMERF + db "JOHNSON@@@", YOUNGSTER + db "ADAMS@@@@@", GUITARIST + db "SMITH@@@@@", BUG_CATCHER + db "TAJIRI@@@@", BUG_CATCHER + db "BAKER@@@@@", POKEMANIAC + db "COLLINS@@@", SCIENTIST + db "SMART@@@@@", SUPER_NERD + db "DYKSTRA@@@", SWIMMERF + db "EATON@@@@@", BIKER + db "WONG@@@@@@", FIREBREATHER +; 1f8450 + + +BattleTowerMons: ; 1f8450 BattleTowerMons1: diff --git a/stats/odd_eggs.asm b/stats/odd_eggs.asm new file mode 100644 index 000000000..6922a2de7 --- /dev/null +++ b/stats/odd_eggs.asm @@ -0,0 +1,465 @@ +GiveOddEgg: ; 1fb4b6 + +; Figure out which egg to give. + call Random + ld hl, .Probabilities + ld c, 0 + ld b, c +.next + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, d + cp $ff + jr nz, .first + ld a, e + cp $ff + jr z, .done +.first + ld a, [hRandomSub] + cp d + jr c, .done + jr z, .second + jr .good +.second + ld a, [hRandomAdd] + cp e + jr c, .done + jr z, .done +.good + inc bc + jr .next +.done + + ld hl, OddEggs + ld a, OddEgg2 - OddEgg1 + call AddNTimes + ld de, EnemyMoveAnimation + ld bc, $0046 + call CopyBytes + ld a, EGG_TICKET + ld [CurItem], a + ld a, $1 + ld [$d10c], a + ld a, $ff + ld [$d107], a + ld hl, NumItems + call Function2f53 + ld a, EGG + ld [$cd2a], a + ld a, $29 + ld [$cd20], a + ld a, $cd + ld [$cd21], a + ld a, $8 + ld [$cd22], a + ld a, $c6 + ld [$cd23], a + + ld hl, .Odd + ld de, $cd2b + ld bc, $000b + call CopyBytes + + ld a, $2b + ld [$cd24], a + ld a, $cd + ld [$cd25], a + ld a, $38 + ld [$cd26], a + ld a, $c6 + ld [$cd27], a + callba Function11b98f + ret +; 1fb546 + +.Odd + db "ODD@@@@@@@@@" + +.Probabilities + dw $147a ; 92% -> 8% + dw $170a ; 91% -> 1% + dw $3fff ; 75% -> 16% + dw $47ad ; 72% -> 3% + dw $70a3 ; 56% -> 16% + dw $7851 ; 53% -> 3% + dw $9c28 ; 39% -> 14% + dw $a147 ; 37% -> 2% + dw $bae0 ; 27% -> 10% + dw $bfff ; 25% -> 2% + dw $deb7 ; 13% -> 12% + dw $e3d6 ; 11% -> 2% + dw $fd6f ; 1% -> 10% + dw $ffff ; 0% -> 1% +; 1fb56e + + +OddEggs: ; 1fb56e + +OddEgg1: + db PICHU + db NO_ITEM + db THUNDERSHOCK, CHARM, DIZZY_PUNCH, NONE + dw 02048 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 30, 20, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 17 ; Max HP + bigdw 9 ; Atk + bigdw 6 ; Def + bigdw 11 ; Spd + bigdw 8 ; SAtk + bigdw 8 ; SDef + db "EGG@@@@@@@@" + +OddEgg2: + db PICHU + db NO_ITEM + db THUNDERSHOCK, CHARM, DIZZY_PUNCH, NONE + dw 00256 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 30, 20, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 17 ; Max HP + bigdw 9 ; Atk + bigdw 7 ; Def + bigdw 12 ; Spd + bigdw 9 ; SAtk + bigdw 9 ; SDef + db "EGG@@@@@@@@" + + db CLEFFA + db NO_ITEM + db POUND, CHARM, DIZZY_PUNCH, NONE + dw 04096 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 35, 20, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 20 ; Max HP + bigdw 7 ; Atk + bigdw 7 ; Def + bigdw 6 ; Spd + bigdw 9 ; SAtk + bigdw 10 ; SDef + db "EGG@@@@@@@@" + + db CLEFFA + db NO_ITEM + db POUND, CHARM, DIZZY_PUNCH, NONE + dw 00768 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 35, 20, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 20 ; Max HP + bigdw 7 ; Atk + bigdw 8 ; Def + bigdw 7 ; Spd + bigdw 10 ; SAtk + bigdw 11 ; SDef + db "EGG@@@@@@@@" + + db IGGLYBUFF + db NO_ITEM + db SING, CHARM, DIZZY_PUNCH, NONE + dw 04096 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 15, 20, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 24 ; Max HP + bigdw 8 ; Atk + bigdw 6 ; Def + bigdw 6 ; Spd + bigdw 9 ; SAtk + bigdw 7 ; SDef + db "EGG@@@@@@@@" + + db IGGLYBUFF + db NO_ITEM + db SING, CHARM, DIZZY_PUNCH, NONE + dw 00768 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 15, 20, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 24 ; Max HP + bigdw 8 ; Atk + bigdw 7 ; Def + bigdw 7 ; Spd + bigdw 10 ; SAtk + bigdw 8 ; SDef + db "EGG@@@@@@@@" + + db SMOOCHUM + db NO_ITEM + db POUND, LICK, DIZZY_PUNCH, NONE + dw 03584 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 35, 30, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 19 ; Max HP + bigdw 8 ; Atk + bigdw 6 ; Def + bigdw 11 ; Spd + bigdw 13 ; SAtk + bigdw 11 ; SDef + db "EGG@@@@@@@@" + + db SMOOCHUM + db NO_ITEM + db POUND, LICK, DIZZY_PUNCH, NONE + dw 00512 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 35, 30, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 19 ; Max HP + bigdw 8 ; Atk + bigdw 7 ; Def + bigdw 12 ; Spd + bigdw 14 ; SAtk + bigdw 12 ; SDef + db "EGG@@@@@@@@" + + db MAGBY + db NO_ITEM + db EMBER, DIZZY_PUNCH, NONE, NONE + dw 02560 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 25, 10, 0, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 19 ; Max HP + bigdw 12 ; Atk + bigdw 8 ; Def + bigdw 13 ; Spd + bigdw 12 ; SAtk + bigdw 10 ; SDef + db "EGG@@@@@@@@" + + db MAGBY + db NO_ITEM + db EMBER, DIZZY_PUNCH, NONE, NONE + dw 00512 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 25, 10, 0, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 19 ; Max HP + bigdw 12 ; Atk + bigdw 9 ; Def + bigdw 14 ; Spd + bigdw 13 ; SAtk + bigdw 11 ; SDef + db "EGG@@@@@@@@" + + db ELEKID + db NO_ITEM + db QUICK_ATTACK, LEER, DIZZY_PUNCH, NONE + dw 03072 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 30, 30, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 19 ; Max HP + bigdw 11 ; Atk + bigdw 8 ; Def + bigdw 14 ; Spd + bigdw 11 ; SAtk + bigdw 10 ; SDef + db "EGG@@@@@@@@" + + db ELEKID + db NO_ITEM + db QUICK_ATTACK, LEER, DIZZY_PUNCH, NONE + dw 00512 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 30, 30, 10, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 19 ; Max HP + bigdw 11 ; Atk + bigdw 9 ; Def + bigdw 15 ; Spd + bigdw 12 ; SAtk + bigdw 11 ; SDef + db "EGG@@@@@@@@" + + db TYROGUE + db NO_ITEM + db TACKLE, DIZZY_PUNCH, NONE, NONE + dw 02560 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $0, $0 ; DVs + db 35, 10, 0, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 18 ; Max HP + bigdw 8 ; Atk + bigdw 8 ; Def + bigdw 8 ; Spd + bigdw 8 ; SAtk + bigdw 8 ; SDef + db "EGG@@@@@@@@" + + db TYROGUE + db NO_ITEM + db TACKLE, DIZZY_PUNCH, NONE, NONE + dw 00256 ; OT ID + dt 125 ; Exp + ; Stat exp + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + bigdw 0 + db $2a, $aa ; DVs + db 35, 10, 0, 0 ; PP + db 20 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 5 ; Level + db 0, 0 ; Status + bigdw 0 ; HP + bigdw 18 ; Max HP + bigdw 8 ; Atk + bigdw 9 ; Def + bigdw 9 ; Spd + bigdw 9 ; SAtk + bigdw 9 ; SDef + db "EGG@@@@@@@@" + diff --git a/stats/wild/fish.asm b/stats/wild/fish.asm index 75f49d6c4..44a30a0b2 100644 --- a/stats/wild/fish.asm +++ b/stats/wild/fish.asm @@ -39,7 +39,7 @@ Fish: ; 9241a ; Fish for monsters with rod b from encounter data in FishGroup at hl. ; Return monster e at level d. - call RNG + call Random ; Got a bite? cp [hl] @@ -59,7 +59,7 @@ Fish: ; 9241a ld l, a ; Encounter chance for this monster: - call RNG + call Random .CheckEncounter cp [hl] |