Refining event evolution mechanics

This commit is contained in:
Maruno17
2021-11-07 21:20:47 +00:00
parent 34ab0b8afe
commit 15babcf835
6 changed files with 23 additions and 64 deletions

View File

@@ -630,83 +630,42 @@ GameData::Evolution.register({
#=============================================================================== #===============================================================================
# Evolution methods that are triggered by an event # Evolution methods that are triggered by an event
# Each event has its own number, which is the value of the parameter as defined
# in pokemon.txt/pokemon_forms.txt. It is also 'number' in def pbEvolutionEvent,
# which triggers evolution checks for a particular event number. 'value' in an
# event_proc is the number of the evolution event currently being triggered.
# Evolutions caused by different events should have different numbers. Used
# event numbers are:
# 1: Kubfu -> Urshifu
# 2: Galarian Yamask -> Runerigus
#=============================================================================== #===============================================================================
GameData::Evolution.register({ def pbEvolutionEvent(number)
:id => :Event, return if !$player
:event_proc => proc { |pkmn, parameter, value| $player.able_pokemon_party.each do |pkmn|
next true pkmn.trigger_event_evolution(number)
} end
}) end
GameData::Evolution.register({ GameData::Evolution.register({
:id => :EventValue, :id => :Event,
:parameter => Integer, :parameter => Integer,
:event_proc => proc { |pkmn, parameter, value| :event_proc => proc { |pkmn, parameter, value|
next value == parameter next value == parameter
} }
}) })
GameData::Evolution.register({
:id => :EventLevel,
:parameter => Integer,
:event_proc => proc { |pkmn, parameter, value|
next pkmn.level >= parameter
}
})
GameData::Evolution.register({
:id => :EventMale,
:event_proc => proc { |pkmn, parameter, value|
next pkmn.male?
}
})
GameData::Evolution.register({
:id => :EventFemale,
:event_proc => proc { |pkmn, parameter, value|
next pkmn.female?
}
})
GameData::Evolution.register({
:id => :EventDay,
:event_proc => proc { |pkmn, parameter, value|
next PBDayNight.isDay?
}
})
GameData::Evolution.register({
:id => :EventNight,
:event_proc => proc { |pkmn, parameter, value|
next PBDayNight.isNight?
}
})
GameData::Evolution.register({
:id => :EventItem,
:parameter => :Item,
:event_proc => proc { |pkmn, parameter, value|
next pkmn.item == parameter
},
:after_evolution_proc => proc { |pkmn, new_species, parameter, evo_species|
next false if evo_species != new_species || !pkmn.hasItem?(parameter)
pkmn.item = nil # Item is now consumed
next true
}
})
GameData::Evolution.register({ GameData::Evolution.register({
:id => :EventAfterDamageTaken, :id => :EventAfterDamageTaken,
:parameter => Integer, :parameter => Integer,
:after_battle_proc => proc { |pkmn, party_index, parameter| :after_battle_proc => proc { |pkmn, party_index, parameter|
if $game_temp.party_direct_damage_taken && if $game_temp.party_direct_damage_taken &&
$game_temp.party_direct_damage_taken[party_index] && $game_temp.party_direct_damage_taken[party_index] &&
$game_temp.party_direct_damage_taken[party_index] >= parameter $game_temp.party_direct_damage_taken[party_index] >= 49
pkmn.ready_to_evolve = true pkmn.ready_to_evolve = true
end end
next false next false
}, },
:event_proc => proc { |pkmn, parameter, value| :event_proc => proc { |pkmn, parameter, value|
next pkmn.ready_to_evolve next value == parameter && pkmn.ready_to_evolve
} }
}) })

View File

@@ -1025,8 +1025,8 @@ class Pokemon
return nil return nil
end end
def trigger_event_evolution(value = 0) def trigger_event_evolution(number)
new_species = check_evolution_by_event(value) new_species = check_evolution_by_event(number)
if new_species if new_species
pbFadeOutInWithMusic { pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new evo = PokemonEvolutionScene.new

View File

@@ -23258,7 +23258,7 @@ Shape = BipedalTail
Category = Wushu Category = Wushu
Pokedex = Kubfu trains hard to perfect its moves. The moves it masters will determine which form it takes when it evolves. Pokedex = Kubfu trains hard to perfect its moves. The moves it masters will determine which form it takes when it evolves.
Generation = 8 Generation = 8
Evolutions = URSHIFU,Event, Evolutions = URSHIFU,Event,1
#------------------------------- #-------------------------------
[URSHIFU] [URSHIFU]
Name = Urshifu Name = Urshifu

View File

@@ -1438,7 +1438,7 @@ TutorMoves = ALLYSWITCH,ATTRACT,BRUTALSWING,CALMMIND,DARKPULSE,EARTHPOWER,EARTHQ
Pokedex = A clay slab with cursed engravings took possession of a Yamask. The slab is said to be absorbing the Yamask's dark power. Pokedex = A clay slab with cursed engravings took possession of a Yamask. The slab is said to be absorbing the Yamask's dark power.
Generation = 8 Generation = 8
Flags = InheritFormWithEverStone Flags = InheritFormWithEverStone
Evolutions = RUNERIGUS,EventAfterDamageTaken,49 Evolutions = RUNERIGUS,EventAfterDamageTaken,2
#------------------------------- #-------------------------------
[DEERLING,1] [DEERLING,1]
FormName = Summer Form FormName = Summer Form

View File

@@ -23258,7 +23258,7 @@ Shape = BipedalTail
Category = Wushu Category = Wushu
Pokedex = Kubfu trains hard to perfect its moves. The moves it masters will determine which form it takes when it evolves. Pokedex = Kubfu trains hard to perfect its moves. The moves it masters will determine which form it takes when it evolves.
Generation = 8 Generation = 8
Evolutions = URSHIFU,Event, Evolutions = URSHIFU,Event,1
#------------------------------- #-------------------------------
[URSHIFU] [URSHIFU]
Name = Urshifu Name = Urshifu

View File

@@ -1438,7 +1438,7 @@ TutorMoves = ALLYSWITCH,ATTRACT,BRUTALSWING,CALMMIND,DARKPULSE,EARTHPOWER,EARTHQ
Pokedex = A clay slab with cursed engravings took possession of a Yamask. The slab is said to be absorbing the Yamask's dark power. Pokedex = A clay slab with cursed engravings took possession of a Yamask. The slab is said to be absorbing the Yamask's dark power.
Generation = 8 Generation = 8
Flags = InheritFormWithEverStone Flags = InheritFormWithEverStone
Evolutions = RUNERIGUS,EventAfterDamageTaken,49 Evolutions = RUNERIGUS,EventAfterDamageTaken,2
#------------------------------- #-------------------------------
[DEERLING,1] [DEERLING,1]
FormName = Summer Form FormName = Summer Form