diff --git a/Data/Actors.rxdata b/Data/Actors.rxdata index 7967a5432..41edc8e26 100644 Binary files a/Data/Actors.rxdata and b/Data/Actors.rxdata differ diff --git a/Data/Animations.rxdata b/Data/Animations.rxdata index a900929a9..71336e1f0 100644 Binary files a/Data/Animations.rxdata and b/Data/Animations.rxdata differ diff --git a/Data/Armors.rxdata b/Data/Armors.rxdata index 2249bec14..901f2bb2b 100644 Binary files a/Data/Armors.rxdata and b/Data/Armors.rxdata differ diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index 28e9dfed8..2af9e8509 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Enemies.rxdata b/Data/Enemies.rxdata index 004ee903d..be622f513 100644 Binary files a/Data/Enemies.rxdata and b/Data/Enemies.rxdata differ diff --git a/Data/Items.rxdata b/Data/Items.rxdata index 3e62ba6d2..fe767fa0b 100644 Binary files a/Data/Items.rxdata and b/Data/Items.rxdata differ diff --git a/Data/Map001.rxdata b/Data/Map001.rxdata index 11a30106e..767f52938 100644 Binary files a/Data/Map001.rxdata and b/Data/Map001.rxdata differ diff --git a/Data/Map077.rxdata b/Data/Map077.rxdata index 3a1d44e35..696ad7217 100644 Binary files a/Data/Map077.rxdata and b/Data/Map077.rxdata differ diff --git a/Data/Map357.rxdata b/Data/Map357.rxdata index 7fdef649a..1857bfa63 100644 Binary files a/Data/Map357.rxdata and b/Data/Map357.rxdata differ diff --git a/Data/Map380.rxdata b/Data/Map380.rxdata index 1564118da..d523f75b0 100644 Binary files a/Data/Map380.rxdata and b/Data/Map380.rxdata differ diff --git a/Data/Map491.rxdata b/Data/Map491.rxdata index 7722666f1..0edd9b455 100644 Binary files a/Data/Map491.rxdata and b/Data/Map491.rxdata differ diff --git a/Data/Map506.rxdata b/Data/Map506.rxdata index 559246715..2784be5c7 100644 Binary files a/Data/Map506.rxdata and b/Data/Map506.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 35fce8b96..0bd520b18 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/010_Data/002_PBS data/008_Species.rb b/Data/Scripts/010_Data/002_PBS data/008_Species.rb index d93f1cc72..0136dbce2 100644 --- a/Data/Scripts/010_Data/002_PBS data/008_Species.rb +++ b/Data/Scripts/010_Data/002_PBS data/008_Species.rb @@ -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 diff --git a/Data/Scripts/010_Data/002_PBS data/009_Species_Files.rb b/Data/Scripts/010_Data/002_PBS data/009_Species_Files.rb index 2ce5bdbee..ec136fa7f 100644 --- a/Data/Scripts/010_Data/002_PBS data/009_Species_Files.rb +++ b/Data/Scripts/010_Data/002_PBS data/009_Species_Files.rb @@ -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) diff --git a/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb b/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb index d25521ff1..595570033 100644 --- a/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb +++ b/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb @@ -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 diff --git a/Data/Scripts/052_AddOns/FusionUtils.rb b/Data/Scripts/052_AddOns/FusionUtils.rb index 25787eaa5..c59e81eb2 100644 --- a/Data/Scripts/052_AddOns/FusionUtils.rb +++ b/Data/Scripts/052_AddOns/FusionUtils.rb @@ -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 + diff --git a/Data/Skills.rxdata b/Data/Skills.rxdata index 61cba7ea2..a45219f5e 100644 Binary files a/Data/Skills.rxdata and b/Data/Skills.rxdata differ diff --git a/Data/States.rxdata b/Data/States.rxdata index 0f9b4ae5d..868d49e59 100644 Binary files a/Data/States.rxdata and b/Data/States.rxdata differ diff --git a/Data/System.rxdata b/Data/System.rxdata index 62cd1c934..42eab3bea 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index 6fd4dee80..81118b37b 100644 Binary files a/Data/Tilesets.rxdata and b/Data/Tilesets.rxdata differ diff --git a/Data/Weapons.rxdata b/Data/Weapons.rxdata index d9bd35260..c7ea19a7a 100644 Binary files a/Data/Weapons.rxdata and b/Data/Weapons.rxdata differ