Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PokemonTemp #edit
- attr_accessor :fishingSpot
- attr_accessor :fishingStreak
- end
- FISHINGMAXSTREAK = 20 #edit
- def pbFishing(hasencounter,rodtype=1)
- speedup=($Trainer.firstParty && !$Trainer.firstParty.isEgg? &&
- (isConst?($Trainer.firstParty.ability,PBAbilities,:STICKYHOLD) ||
- isConst?($Trainer.firstParty.ability,PBAbilities,:SUCTIONCUPS)))
- bitechance=20+(25*rodtype) # 45, 70, 95
- bitechance*=1.00+(0.33*checkBordering) #edit (I don't have the exact numbers)
- bitechance=100 if checkBordering == 3 #edit
- bitechance*=1.5 if speedup
- hookchance=100
- oldpattern=$game_player.fullPattern
- currentSpot=[$game_map.map_id,$game_player.x,$game_player.y,$game_player.direction] #edit
- if !$PokemonTemp.fishingSpot || $PokemonTemp.fishingSpot != currentSpot #edit
- $PokemonTemp.fishingSpot=currentSpot #edit
- $PokemonTemp.fishingStreak=0 #edit
- end #edit
- pbFishingBegin
- msgwindow=Kernel.pbCreateMessageWindow
- loop do
- time=2+rand(10)
- time=[time,2+rand(10)].min if speedup
- message=""
- time.times do
- message+=". "
- end
- if pbWaitMessage(msgwindow,time)
- pbFishingEnd
- $game_player.setDefaultCharName(nil,oldpattern)
- Kernel.pbMessageDisplay(msgwindow,_INTL("Not even a nibble..."))
- Kernel.pbDisposeMessageWindow(msgwindow)
- $PokemonTemp.fishingStreak=0 #edit
- return false
- end
- if (rand(100)<bitechance) && hasencounter
- frames=rand(21)+20
- if !pbWaitForInput(msgwindow,message+_INTL("\r\nOh! A bite!"),frames)
- pbFishingEnd
- $game_player.setDefaultCharName(nil,oldpattern)
- Kernel.pbMessageDisplay(msgwindow,_INTL("The Pokémon got away..."))
- Kernel.pbDisposeMessageWindow(msgwindow)
- $PokemonTemp.fishingStreak=0 #edit
- return false
- end
- if rand(100)<hookchance || FISHINGAUTOHOOK
- Kernel.pbMessageDisplay(msgwindow,_INTL("Landed a Pokémon!"))
- Kernel.pbDisposeMessageWindow(msgwindow)
- pbFishingEnd
- $game_player.setDefaultCharName(nil,oldpattern)
- $PokemonTemp.fishingStreak+=1 #edit
- $PokemonTemp.fishingStreak=[$PokemonTemp.fishingStreak,FISHINGMAXSTREAK].max #edit
- return true
- end
- # bitechance+=15
- # hookchance+=15
- else
- pbFishingEnd
- $game_player.setDefaultCharName(nil,oldpattern)
- Kernel.pbMessageDisplay(msgwindow,_INTL("Not even a nibble..."))
- Kernel.pbDisposeMessageWindow(msgwindow)
- $PokemonTemp.fishingStreak=0 #edit
- return false
- end
- end
- Kernel.pbDisposeMessageWindow(msgwindow)
- return false
- end
- def checkBordering # of the bobber #edit
- p=$game_player
- ret=0
- case p.direction
- when 2 # down
- ret+=1 if !p.passable?(p.x,p.y+1,4)
- ret+=1 if !p.passable?(p.x,p.y+1,6)
- ret+=1 if !p.passable?(p.x,p.y+1,8)
- when 4 # left
- ret+=1 if !p.passable?(p.x-1,p.y,2)
- ret+=1 if !p.passable?(p.x-1,p.y,6)
- ret+=1 if !p.passable?(p.x-1,p.y,8)
- when 6 # right
- ret+=1 if !p.passable?(p.x+1,p.y,2)
- ret+=1 if !p.passable?(p.x+1,p.y,4)
- ret+=1 if !p.passable?(p.x+1,p.y,8)
- when 8 # up
- ret+=1 if !p.passable?(p.x,p.y-1,2)
- ret+=1 if !p.passable?(p.x,p.y-1,4)
- ret+=1 if !p.passable?(p.x,p.y-1,6)
- end
- return ret
- end
- alias _fishing_pbGenerateWildPokemon pbGenerateWildPokemon #edit
- def pbGenerateWildPokemon(*args) # Do the generating #edit
- wildpoke=_fishing_pbGenerateWildPokemon(*args)
- if $PokemonTemp.fishingStreak && $PokemonTemp.fishingStreak>0
- for i in 0...(2*$PokemonTemp.fishingStreak)
- break if wildpoke.isShiny?
- wildpoke.personalID=rand(65536)|(rand(65536)<<16)
- end
- end
- return wildpoke
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement