mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-07-22 15:47:00 +00:00
Update 6.8
This commit is contained in:
@@ -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
|
||||
|
||||
+37
@@ -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
|
||||
+49
@@ -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
|
||||
Reference in New Issue
Block a user