diff options
| author | pikalaxalt <PikalaxALT@gmail.com> | 2016-03-19 19:46:39 -0400 |
|---|---|---|
| committer | pikalaxalt <PikalaxALT@gmail.com> | 2016-03-19 19:46:39 -0400 |
| commit | 707020f9be6548b2ea24eda0819c6202b3531571 (patch) | |
| tree | 967db990ad0e4cb81fa5db41d89233af15769f53 /engine | |
| parent | 5b9ba5d921c7d389edc0a72a520df09d8d3ec3a1 (diff) | |
| parent | 9ce74b3d2c7b0a6a678e234fd06dd898e1e372d0 (diff) | |
Merge branch 'master' of https://github.com/pret/pokecrystal
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/fish.asm | 135 | ||||
| -rw-r--r-- | engine/phone_scripts.asm | 5 |
2 files changed, 136 insertions, 4 deletions
diff --git a/engine/fish.asm b/engine/fish.asm new file mode 100644 index 000000000..6aeec10a6 --- /dev/null +++ b/engine/fish.asm @@ -0,0 +1,135 @@ +Fish: ; 92402 +; Using a fishing rod. +; Fish for monsters with rod e in encounter group d. +; Return monster e at level d. + + push af + push bc + push hl + + ld b, e + call GetFishGroupIndex + + ld hl, FishGroups +rept 7 + add hl, de +endr + call .Fish + + pop hl + pop bc + pop af + ret +; 9241a + + +.Fish: ; 9241a +; Fish for monsters with rod b from encounter data in FishGroup at hl. +; Return monster e at level d. + + call Random + cp [hl] + jr nc, .no_bite + + ; Get encounter data by rod: + ; 0: Old + ; 1: Good + ; 2: Super + inc hl + ld e, b + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + + ; Compare the encounter chance to select a Pokemon. + call Random +.loop + cp [hl] + jr z, .ok + jr c, .ok +rept 3 + inc hl +endr + jr .loop +.ok + inc hl + + ; Species 0 reads from a time-based encounter table. + ld a, [hli] + ld d, a + and a + call z, .TimeEncounter + + ld e, [hl] + ret + +.no_bite + ld de, 0 + ret + +.TimeEncounter: + ; The level byte is repurposed as the index for the new table. + ld e, [hl] + ld d, 0 + ld hl, TimeFishGroups +rept 4 + add hl, de +endr + + ld a, [TimeOfDay] + and 3 + cp NITE + jr c, .time_species +rept 2 + inc hl +endr + +.time_species + ld d, [hl] + inc hl + ret +; 9245b + + +GetFishGroupIndex: ; 9245b +; Return the index of fishgroup d in de. + + push hl + ld hl, DailyFlags + bit 2, [hl] + pop hl + jr z, .done + + ld a, d + cp FISHGROUP_QWILFISH + jr z, .qwilfish + cp FISHGROUP_REMORAID + jr z, .remoraid + +.done + dec d + ld e, d + ld d, 0 + ret + +.qwilfish + ld a, [wFishingSwarmFlag] + cp FISHSWARM_QWILFISH + jr nz, .done + ld d, FISHGROUP_QWILFISH_SWARM + jr .done + +.remoraid + ld a, [wFishingSwarmFlag] + cp FISHSWARM_REMORAID + jr nz, .done + ld d, FISHGROUP_REMORAID_SWARM + jr .done +; 92488 + + +INCLUDE "data/wild/fish.asm" diff --git a/engine/phone_scripts.asm b/engine/phone_scripts.asm index e8af05f36..bcfec65e0 100644 --- a/engine/phone_scripts.asm +++ b/engine/phone_scripts.asm @@ -1,6 +1,3 @@ -SWARM_DUNSPARCE EQU 0 -SWARM_YANMA EQU 1 - UnusedPhoneScript: ; 0xbcea5 farwritetext UnusedPhoneText end @@ -832,7 +829,7 @@ Ralph_SetUpSwarm: setflag ENGINE_SPECIAL_WILDDATA pokenamemem QWILFISH, $1 landmarktotext ROUTE_32, $2 - writebyte $1 + writebyte FISHSWARM_QWILFISH special Special_ActivateFishingSwarm farjump UnknownScript_0xa05d6 |
