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
# 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({
:id => :Event,
:event_proc => proc { |pkmn, parameter, value|
next true
}
})
def pbEvolutionEvent(number)
return if !$player
$player.able_pokemon_party.each do |pkmn|
pkmn.trigger_event_evolution(number)
end
end
GameData::Evolution.register({
:id => :EventValue,
:id => :Event,
:parameter => Integer,
:event_proc => proc { |pkmn, parameter, value|
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({
:id => :EventAfterDamageTaken,
:parameter => Integer,
:after_battle_proc => proc { |pkmn, party_index, parameter|
if $game_temp.party_direct_damage_taken &&
$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
end
next false
},
: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
end
def trigger_event_evolution(value = 0)
new_species = check_evolution_by_event(value)
def trigger_event_evolution(number)
new_species = check_evolution_by_event(number)
if new_species
pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new

View File

@@ -23258,7 +23258,7 @@ Shape = BipedalTail
Category = Wushu
Pokedex = Kubfu trains hard to perfect its moves. The moves it masters will determine which form it takes when it evolves.
Generation = 8
Evolutions = URSHIFU,Event,
Evolutions = URSHIFU,Event,1
#-------------------------------
[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.
Generation = 8
Flags = InheritFormWithEverStone
Evolutions = RUNERIGUS,EventAfterDamageTaken,49
Evolutions = RUNERIGUS,EventAfterDamageTaken,2
#-------------------------------
[DEERLING,1]
FormName = Summer Form

View File

@@ -23258,7 +23258,7 @@ Shape = BipedalTail
Category = Wushu
Pokedex = Kubfu trains hard to perfect its moves. The moves it masters will determine which form it takes when it evolves.
Generation = 8
Evolutions = URSHIFU,Event,
Evolutions = URSHIFU,Event,1
#-------------------------------
[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.
Generation = 8
Flags = InheritFormWithEverStone
Evolutions = RUNERIGUS,EventAfterDamageTaken,49
Evolutions = RUNERIGUS,EventAfterDamageTaken,2
#-------------------------------
[DEERLING,1]
FormName = Summer Form