Update 6.8

This commit is contained in:
chardub
2026-07-10 15:42:06 -04:00
parent 5b85e72cb2
commit 6a6f126a18
7871 changed files with 493194 additions and 224826 deletions
@@ -0,0 +1,54 @@
def checkTrainerRematchChallenges
$Trainer.complete_challenge(:rematch_trainer)
end
class PokeBattle_Battler
def checkChallengesAfterTurn()
@battle.eachBattler do |battler|
if battler.pbOwnedByPlayer?
else
# # 1 HP left check
if battler.hp == 1
$Trainer.complete_challenge(:battle_enemy_1_hp)
end
end
end
end
def checkStatRaiseBattleChallenge(stat, increment)
$Trainer.complete_challenge(:battle_stat_boost)
$Trainer.complete_challenge(:battle_stat_boost_sharp) if increment >= 2
if statStageAtMax?(stat)
$Trainer.complete_challenge(:battle_stat_boost_max)
end
end
alias challenge_pbFlinch pbFlinch
def pbFlinch(_user = nil)
challenge_pbFlinch(_user)
if _user&.pbOwnedByPlayer?
$Trainer.complete_challenge(:battle_flinch)
end
end
end
class PokeBattle_Move
alias challenge_pbInflictHPDamage pbInflictHPDamage
def pbInflictHPDamage(target)
challenge_pbInflictHPDamage(target)
return if target.pbOwnedByPlayer?
# Not very effective 1 hit KO
if target.fainted? &&
target.damageState.initialHP == target.totalhp &&
Effectiveness.not_very_effective?(target.damageState.typeMod)
$Trainer.complete_challenge(:defeat_1_not_very_effective)
end
end
end
@@ -0,0 +1,37 @@
class PokemonTemp
attr_accessor :pokemon_is_weather_encounter
end
module PokeBattle_BattleCommon
def checkCatchChallenge(pokeball, battle, caught_pokemon)
#Caught in 1 try
if battle.balls_thrown == 0 #It's incremented after this method gets checked
$Trainer.complete_challenge(:catch_first_try)
end
#Catching at full health
if caught_pokemon.hp == caught_pokemon.totalhp
$Trainer.complete_challenge(:catch_full_health)
end
#Without receiving any damage
if battle.damage_received ==0
$Trainer.complete_challenge(:catch_no_damage)
end
if pokeball == :PREMIERBALL
$Trainer.complete_challenge(:catch_premierball)
end
if caught_pokemon.isFusion?
$Trainer.complete_challenge(:catch_fused)
end
if $PokemonBag.pbQuantity(pokeball) == 0
$Trainer.complete_challenge(:catch_last_pokeball)
end
if $PokemonTemp.pokemon_is_weather_encounter
$Trainer.complete_challenge(:catch_weather_encounter)
end
end
end
@@ -0,0 +1,49 @@
##
## Hooks for challenges about encountering overworld Pokemon
##
def all_same_pokemon?(pokemon_array)
species_array = pokemon_array.map {|pokemon| pokemon.species}
different_species = species_array.uniq
return different_species.length == 1
end
def all_different_pokemon?(pokemon_array)
species_array = pokemon_array.map {|pokemon| pokemon.species}
different_species = species_array.uniq
return different_species.length > 1
end
def checkEncounterChallenges(encountered_pokemon)
case encountered_pokemon.length
when 1
when 2
$Trainer.complete_challenge(:encounter_2_pokemon_at_once)
if all_different_pokemon?(encountered_pokemon)
$Trainer.complete_challenge(:encounter_2_different_pokemon_at_once)
elsif all_same_pokemon?(encountered_pokemon)
$Trainer.complete_challenge(:encounter_2_same_pokemon_at_once)
end
when 3
$Trainer.complete_challenge(:encounter_3_pokemon_at_once)
if all_different_pokemon?(encountered_pokemon)
$Trainer.complete_challenge(:encounter_3_different_pokemon_at_once)
elsif all_same_pokemon?(encountered_pokemon)
$Trainer.complete_challenge(:encounter_3_same_pokemon_at_once)
end
end
end
def checkWildFusePokemonChallenge(pokemon1,pokemon2)
$Trainer.complete_challenge(:fuse_wild_pokemon)
if $game_switches[SWITCH_WILD_FUSION_QUEST]
current_nb = pbGet(VAR_NB_WILD_FUSING_SEEN)
current_nb+=1
pbSet(VAR_NB_WILD_FUSING_SEEN,current_nb)
if current_nb <= 3
pbMEPlay("Register phone")
pbCallBub(3)
pbMessage(_INTL("Wild Fusion Study: {1} / 3",current_nb))
end
end
end
@@ -0,0 +1,41 @@
class PokemonTemp
attr_accessor :fuse_count_today
attr_accessor :unfuse_count_today
end
def checkFuseChallenges(head_pokemon, body_pokemon)
case $PokemonTemp.fuse_count_today
when 1
$Trainer.complete_challenge(:fuse_1_pokemon)
when 2
$Trainer.complete_challenge(:fuse_2_pokemon)
when 5
$Trainer.complete_challenge(:fuse_5_pokemon)
end
echoln head_pokemon.species
echoln body_pokemon.species
echoln head_pokemon.species == body_pokemon.species
if head_pokemon.species == body_pokemon.species
$Trainer.complete_challenge(:fuse_same_species)
end
species_data_head = GameData::Species.get(head_pokemon.species)
species_data_body = GameData::Species.get(body_pokemon.species)
for type in species_data_head&.types
if species_data_body.hasType?(type)
$Trainer.complete_challenge(:fuse_same_type)
end
end
end
def checkUnfuseChallenges(unfused_pokemon)
case $PokemonTemp.unfuse_count_today
when 1
$Trainer.complete_challenge(:unfuse_1_pokemon)
when 2
$Trainer.complete_challenge(:unfuse_2_pokemon)
when 5
$Trainer.complete_challenge(:unfuse_5_pokemon)
end
end