diff --git a/Data/Map078.rxdata b/Data/Map078.rxdata index 6caccacdb..2abe572fc 100644 Binary files a/Data/Map078.rxdata and b/Data/Map078.rxdata differ diff --git a/Data/Map490.rxdata b/Data/Map490.rxdata index 630692201..e4b534641 100644 Binary files a/Data/Map490.rxdata and b/Data/Map490.rxdata differ diff --git a/Data/Map624.rxdata b/Data/Map624.rxdata index 5c55586ba..e48c40b6e 100644 Binary files a/Data/Map624.rxdata and b/Data/Map624.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 12a65f0e0..16b28da01 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb b/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb index d976db834..c0267d2ca 100644 --- a/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb +++ b/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb @@ -64,6 +64,11 @@ class PokeBattle_Battler return GameData::Ability.try_get(@ability_id) end + def hasHiddenAbility? + return @pokemon.ability_index >= 2 + end + + def ability=(value) new_ability = GameData::Ability.try_get(value) @ability_id = (new_ability) ? new_ability.id : nil diff --git a/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb b/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb index c7c76c1e4..980a3ba1c 100644 --- a/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb +++ b/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb @@ -42,6 +42,15 @@ class PokeBattle_Scene if @battle.showAnims for i in 0...@battle.sideSizes[1] idxBattler = 2*i+1 + + #hidden ability animation + if @battle.battlers[idxBattler].hasHiddenAbility? + pbCommonAnimation("StatUp",@battle.battlers[idxBattler]) + @battle.pbShowAbilitySplash(@battle.battlers[idxBattler],true) + @battle.pbHideAbilitySplash(@battle.battlers[idxBattler]) + end + + #shiny animation next if !@battle.battlers[idxBattler] || !@battle.battlers[idxBattler].shiny? pbCommonAnimation("Shiny",@battle.battlers[idxBattler]) end diff --git a/Data/Scripts/048_Fusion/PokemonFusion.rb b/Data/Scripts/048_Fusion/PokemonFusion.rb index 481774960..97549bf30 100644 --- a/Data/Scripts/048_Fusion/PokemonFusion.rb +++ b/Data/Scripts/048_Fusion/PokemonFusion.rb @@ -729,8 +729,9 @@ class PokemonFusionScene @scene.pbShowPokedex(@newspecies) end #first check if hidden ability - hiddenAbility1 = @pokemon1.ability == @pokemon1.getAbilityList[0][-1] - hiddenAbility2 = @pokemon2.ability == @pokemon2.getAbilityList[0][-1] + # getAbilityList format: [[:ABILITY, index],...] + hiddenAbility1 = @pokemon1.ability == @pokemon1.getAbilityList[-1][0] + hiddenAbility2 = @pokemon2.ability == @pokemon2.getAbilityList[-1][0] #change species @pokemon1.species = newSpecies diff --git a/Data/Scripts/049_Compatibility/Constants.rb b/Data/Scripts/049_Compatibility/Constants.rb index 3432ae548..515ec355c 100644 --- a/Data/Scripts/049_Compatibility/Constants.rb +++ b/Data/Scripts/049_Compatibility/Constants.rb @@ -115,6 +115,7 @@ VAR_PREMIUM_WONDERTRADE_LEFT=111 VAR_RIVAL_STARTER=250 VAR_FUSION_ICON_STYLE=220 VAR_SHINY_HUE_OFFSET=275 +VAR_CURRENT_HIDDEN_MAP = 226 #Randomizer VAR_RANDOMIZER_WILD_POKE_BST=197 diff --git a/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb b/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb index 4a004a09a..67016493d 100644 --- a/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb +++ b/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb @@ -1,7 +1,7 @@ HIDDEN_MAPS_STEPS = 1500 -HIDDEN_MAP_ALWAYS = [178,655,570,356] +HIDDEN_MAP_ALWAYS = [178,655,570,356,78] #todo remove 78 (route 1) RANDOM_HIDDEN_MAP_LIST = [8,109,431,446,402,403,467,468,10,23,167,16,19,78,185,86, 491,90,40,342,490,102,103,104,105,106,1,12,413,445,484,485,486,140,350,146, 149,304,356,307,409,351,495,154,349,322,323,544,198,144,155,444,58,59,229,52,53,54, @@ -9,7 +9,7 @@ RANDOM_HIDDEN_MAP_LIST = [8,109,431,446,402,403,467,468,10,23,167,16,19,78,185, 335,254,261,262,266,230,145,147,258,284,283,267,586,285,286,287,300,311,47,580,529, 635,638,646,560,559,526,600,564,594,566,562,619,563,603,561,597,633,640,641,621,312, 670,692,643,523,698, - 602,642,623,569,588,573,362,645,651,376 + 602,642,623,569,588,573,362,645,651,376,762 ] Events.onMapUpdate+=proc {|sender,e| @@ -20,9 +20,25 @@ Events.onMapUpdate+=proc {|sender,e| } def changeHiddenMap() i = rand(RANDOM_HIDDEN_MAP_LIST.length-1) - pbSet(226,RANDOM_HIDDEN_MAP_LIST[i]) + pbSet(VAR_CURRENT_HIDDEN_MAP,RANDOM_HIDDEN_MAP_LIST[i]) end +Events.onWildPokemonCreate+=proc {|sender,e| + if $game_map.map_id== pbGet(226) || isAlwaysHiddenAbilityMap($game_map.map_id) + pokemon=e[0] + chosenAbility = pokemon.getAbilityList.sample #format: [[:ABILITY, index],...] + p chosenAbility + pokemon.ability = chosenAbility[0] + pokemon.ability_index = chosenAbility[1] + end +} + +def isAlwaysHiddenAbilityMap(mapId) + return HIDDEN_MAP_ALWAYS.include? mapId +end + + + def Kernel.getMapName(id) mapinfos = pbLoadMapInfos return mapinfos[id].name diff --git a/Data/Scripts/050_AddOns/New Items effects.rb b/Data/Scripts/050_AddOns/New Items effects.rb index f8a499466..3c1ba9e67 100644 --- a/Data/Scripts/050_AddOns/New Items effects.rb +++ b/Data/Scripts/050_AddOns/New Items effects.rb @@ -378,6 +378,24 @@ ItemHandlers::UseFromBag.add(:ODDKEYSTONE, proc { |item| end }) +def useDreamMirror + map_name = Kernel.getMapName(pbGet(226)).to_s + Kernel.pbMessage(_INTL("You peeked into the Dream Mirror...")) + Kernel.pbMessage(_INTL("You can see a faint glimpse of {1} in the reflection.", map_name)) +end + +#DREAMMIRROR +ItemHandlers::UseFromBag.add(:DREAMMIRROR, proc { |item| + useDreamMirror + next 1 +}) + +ItemHandlers::UseInField.add(:DREAMMIRROR, proc { |item| + useDreamMirror + next 1 +}) + + ItemHandlers::UseFromBag.add(:MAGICBOOTS, proc { |item| if $DEBUG if Kernel.pbConfirmMessageSerious(_INTL("Take off the Magic Boots?")) @@ -450,6 +468,8 @@ ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, pokemon, scene| next false }) + + ItemHandlers::UseOnPokemon.add(:DNAREVERSER, proc { |item, pokemon, scene| if !pokemon.isFusion? scene.pbDisplay(_INTL("It won't have any effect.")) diff --git a/Data/System.rxdata b/Data/System.rxdata index 272789408..c590e0db9 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/PBS/items.txt b/PBS/items.txt index f1909a111..8bafb83cb 100644 --- a/PBS/items.txt +++ b/PBS/items.txt @@ -667,6 +667,7 @@ 659,TM121,TM121,TM121s,4,10000,"The user shoots boiling hot water at its target. It may also leave the target with a burn.",3,0,0,SCALD 660,LINKINGCORD,Linking Cord,Linking Cords,1,6000,"A cable exuding a mysterious energy. It’s loved by certain Pokémon.",1,0,7, 661,INVISIBALL,Invisiball,Invisiball,3,200,"A Pokéball that is completely invisble to the human eye. You shouldn't be able to obtain this item",0,4,4, +662,DREAMMIRROR,Dream Mirror,Dream Mirrors,8,0,"A strange mirror that allows you to peak into the Dream World for a brief instant.",2,0,6,