pokecrystal-board/data/odd_eggs.asm

485 lines
7.0 KiB
NASM
Raw Normal View History

2013-08-29 20:26:01 -07:00
GiveOddEgg: ; 1fb4b6
2014-07-18 05:28:30 -07:00
; Figure out which egg to give.
; Compare a random word to
; probabilities out of 0xffff.
call Random
2013-08-29 20:26:01 -07:00
ld hl, .Probabilities
ld c, 0
ld b, c
2014-07-18 05:28:30 -07:00
.loop
2013-08-29 20:26:01 -07:00
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
2014-07-18 05:28:30 -07:00
; Break on $ffff.
2013-08-29 20:26:01 -07:00
ld a, d
2014-07-18 05:28:30 -07:00
cp $ffff / $100
jr nz, .not_done
2013-08-29 20:26:01 -07:00
ld a, e
2014-07-18 05:28:30 -07:00
cp $ffff % $100
2013-08-29 20:26:01 -07:00
jr z, .done
2014-07-18 05:28:30 -07:00
.not_done
; Break when [hRandom] <= de.
ld a, [hRandom + 1]
2013-08-29 20:26:01 -07:00
cp d
jr c, .done
2014-07-18 05:28:30 -07:00
jr z, .ok
jr .next
.ok
ld a, [hRandom + 0]
2013-08-29 20:26:01 -07:00
cp e
jr c, .done
jr z, .done
2014-07-18 05:28:30 -07:00
.next
2013-08-29 20:26:01 -07:00
inc bc
2014-07-18 05:28:30 -07:00
jr .loop
2013-08-29 20:26:01 -07:00
.done
ld hl, OddEggs
ld a, OddEgg2 - OddEgg1
call AddNTimes
2014-07-18 05:28:30 -07:00
ld de, $c608
2013-08-29 20:26:01 -07:00
ld bc, $0046
call CopyBytes
2014-07-18 05:28:30 -07:00
2013-08-29 20:26:01 -07:00
ld a, EGG_TICKET
ld [CurItem], a
ld a, $1
ld [$d10c], a
ld a, $ff
ld [$d107], a
ld hl, NumItems
call TossItem
2014-07-18 05:28:30 -07:00
2013-08-29 20:26:01 -07:00
ld a, EGG
ld [$cd2a], a
2014-07-18 05:28:30 -07:00
ld a, $cd29 % $100
2013-08-29 20:26:01 -07:00
ld [$cd20], a
2014-07-18 05:28:30 -07:00
ld a, $cd29 / $100
2013-08-29 20:26:01 -07:00
ld [$cd21], a
2014-07-18 05:28:30 -07:00
ld a, $c608 % $100
2013-08-29 20:26:01 -07:00
ld [$cd22], a
2014-07-18 05:28:30 -07:00
ld a, $c608 / $100
2013-08-29 20:26:01 -07:00
ld [$cd23], a
ld hl, .Odd
ld de, $cd2b
2014-07-18 05:28:30 -07:00
ld bc, PKMN_NAME_LENGTH
2013-08-29 20:26:01 -07:00
call CopyBytes
2014-07-18 05:28:30 -07:00
ld a, $cd2b % $100
2013-08-29 20:26:01 -07:00
ld [$cd24], a
2014-07-18 05:28:30 -07:00
ld a, $cd2b / $100
2013-08-29 20:26:01 -07:00
ld [$cd25], a
2014-07-18 05:28:30 -07:00
ld a, $c638 % $100
2013-08-29 20:26:01 -07:00
ld [$cd26], a
2014-07-18 05:28:30 -07:00
ld a, $c638 / $100
2013-08-29 20:26:01 -07:00
ld [$cd27], a
callba Function11b98f
ret
; 1fb546
.Odd
db "ODD@@@@@@@@@"
.Probabilities
2014-07-18 05:28:30 -07:00
prob: MACRO
prob_total = prob_total + (\1)
dw prob_total * $ffff / 100
ENDM
prob_total = 0
prob 8
prob 1
prob 16
prob 3
prob 16
prob 3
prob 14
prob 2
prob 10
prob 2
prob 12
prob 2
prob 10
prob 1
2013-08-29 20:26:01 -07:00
; 1fb56e
OddEggs: ; 1fb56e
OddEgg1:
2013-08-21 13:02:18 -07:00
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:
2013-08-21 13:02:18 -07:00
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@@@@@@@@"