Fusion cries play both the head and body pokemon cries

This commit is contained in:
chardub
2025-02-15 12:23:44 -05:00
parent 05b1af28e0
commit fdcfbb5bb4
22 changed files with 112 additions and 6 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -218,6 +218,9 @@ module GameData
return @id_number > Settings::NB_POKEMON
end
def is_triple_fusion
return @id_number >= Settings::ZAPMOLCUNO_NB
end
def get_body_species
return @species
end

View File

@@ -208,15 +208,9 @@ module GameData
def self.check_cry_file(species, form)
species_data = self.get_species_form(species, form)
return nil if species_data.nil?
return "Cries/BIRDBOSS_2" if $game_switches[SWITCH_TRIPLE_BOSS_BATTLE] && !$game_switches[SWITCH_SILVERBOSS_BATTLE]
if species_data.is_fusion
species_data = GameData::Species.get(getHeadID(species_data))
end
# if form > 0
# ret = sprintf("Cries/%s_%d", species_data.species, form)
# return ret if pbResolveAudioSE(ret)
# end
ret = sprintf("Cries/%s", species_data.species)
return (pbResolveAudioSE(ret)) ? ret : nil
end
@@ -230,6 +224,13 @@ module GameData
end
def self.play_cry_from_species(species, form = 0, volume = 90, pitch = 100)
dex_num = getDexNumberForSpecies(species)
return play_triple_fusion_cry(species, volume, pitch) if dex_num > Settings::ZAPMOLCUNO_NB
if dex_num > NB_POKEMON
body_number = getBodyID(dex_num)
head_number = getHeadID(dex_num,body_number)
return play_fusion_cry(GameData::Species.get(head_number).species,GameData::Species.get(body_number).species, volume, pitch)
end
filename = self.cry_filename(species, form)
return if !filename
pbSEPlay(RPG::AudioFile.new(filename, volume, pitch)) rescue nil
@@ -237,12 +238,36 @@ module GameData
def self.play_cry_from_pokemon(pkmn, volume = 90, pitch = nil)
return if !pkmn || pkmn.egg?
species_data = pkmn.species_data
return play_triple_fusion_cry(pkmn.species, volume, pitch) if species_data.is_triple_fusion
if pkmn.species_data.is_fusion
return play_fusion_cry(species_data.get_head_species,species_data.get_body_species, volume, pitch)
end
filename = self.cry_filename_from_pokemon(pkmn)
return if !filename
pitch ||= 75 + (pkmn.hp * 25 / pkmn.totalhp)
pbSEPlay(RPG::AudioFile.new(filename, volume, pitch)) rescue nil
end
def self.play_triple_fusion_cry(species_id, volume, pitch)
fusion_components = get_triple_fusion_components(species_id)
echoln fusion_components
echoln species_id
for id in fusion_components
cry_filename = self.check_cry_file(id,nil)
pbSEPlay(cry_filename,volume-10) rescue nil
end
end
def self.play_fusion_cry(head_id,body_id, volume = 90, pitch = 100)
echoln "fusion"
head_cry_filename = self.check_cry_file(head_id,nil)
body_cry_filename = self.check_cry_file(body_id,nil)
pbSEPlay(body_cry_filename,volume-10) rescue nil
pbSEPlay(head_cry_filename,volume) rescue nil
end
def self.play_cry(pkmn, volume = 90, pitch = nil)
if pkmn.is_a?(Pokemon)
self.play_cry_from_pokemon(pkmn, volume, pitch)

View File

@@ -199,6 +199,7 @@ class BattleSpriteLoader
return PIFSprite.new(:BASE, dex_number, nil, random_alt)
end
#todo refactor by using get_triple_fusion_components()
def getSpecialSpriteName(dexNum)
base_path = "Graphics/Battlers/special/"
case dexNum

View File

@@ -331,3 +331,80 @@ def addNewTripleFusion(pokemon1, pokemon2, pokemon3, level = 1)
#$Trainer.pokedex.register(pokemon)
return true
end
def get_triple_fusion_components(species_id)
dex_num = GameData::Species.get(species_id).id_number
case dex_num
when Settings::ZAPMOLCUNO_NB
return [144,145,146]
when Settings::ZAPMOLCUNO_NB + 1
return [144,145,146]
when Settings::ZAPMOLCUNO_NB + 2
return [243,244,245]
when Settings::ZAPMOLCUNO_NB + 3
return [340,341,342]
when Settings::ZAPMOLCUNO_NB + 4
return [343,344,345]
when Settings::ZAPMOLCUNO_NB + 5
return [349,350,351]
when Settings::ZAPMOLCUNO_NB + 6
return [151,251,381]
when Settings::ZAPMOLCUNO_NB + 11
return [150,348,380]
#starters
when Settings::ZAPMOLCUNO_NB + 7
return [3,6,9]
when Settings::ZAPMOLCUNO_NB + 8
return [154,157,160]
when Settings::ZAPMOLCUNO_NB + 9
return [278,281,284]
when Settings::ZAPMOLCUNO_NB + 10
return [318,321,324]
#starters prevos
when Settings::ZAPMOLCUNO_NB + 12
return [1,4,7]
when Settings::ZAPMOLCUNO_NB + 13
return [2,5,8]
when Settings::ZAPMOLCUNO_NB + 14
return [152,155,158]
when Settings::ZAPMOLCUNO_NB + 15
return [153,156,159]
when Settings::ZAPMOLCUNO_NB + 16
return [276,279,282]
when Settings::ZAPMOLCUNO_NB + 17
return [277,280,283]
when Settings::ZAPMOLCUNO_NB + 18
return [316,319,322]
when Settings::ZAPMOLCUNO_NB + 19
return [317,320,323]
when Settings::ZAPMOLCUNO_NB + 20 #birdBoss Left
return []
when Settings::ZAPMOLCUNO_NB + 21 #birdBoss middle
return [144,145,146]
when Settings::ZAPMOLCUNO_NB + 22 #birdBoss right
return []
when Settings::ZAPMOLCUNO_NB + 23 #sinnohboss left
return []
when Settings::ZAPMOLCUNO_NB + 24 #sinnohboss middle
return [343,344,345]
when Settings::ZAPMOLCUNO_NB + 25 #sinnohboss right
return []
when Settings::ZAPMOLCUNO_NB + 25 #cardboard
return []
when Settings::ZAPMOLCUNO_NB + 26 #cardboard
return []
when Settings::ZAPMOLCUNO_NB + 27 #Triple regi
return [447,448,449]
#Triple Kalos 1
when Settings::ZAPMOLCUNO_NB + 28
return [479,482,485]
when Settings::ZAPMOLCUNO_NB + 29
return [480,483,486]
when Settings::ZAPMOLCUNO_NB + 30
return [481,484,487]
else
return [000]
end
end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.