From 1685bbc4d4a666ab5ba9591c44edb16e14e34c98 Mon Sep 17 00:00:00 2001 From: Maruno17 Date: Wed, 28 Apr 2021 23:25:35 +0100 Subject: [PATCH] Fixed dynamic shadows not disappearing after a transfer, fixed events not seeing the player at a distance if facing left, fixed crash when starting a battle against two trainers --- Data/Scripts/003_Game processing/002_Scene_Map.rb | 1 + Data/Scripts/005_Sprites/009_Sprite_DynamicShadows.rb | 5 +++++ Data/Scripts/012_Overworld/001_Overworld.rb | 2 +- .../001_Overworld_BattleStarting.rb | 10 +++++----- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Data/Scripts/003_Game processing/002_Scene_Map.rb b/Data/Scripts/003_Game processing/002_Scene_Map.rb index 4c731d674..d36e424fb 100644 --- a/Data/Scripts/003_Game processing/002_Scene_Map.rb +++ b/Data/Scripts/003_Game processing/002_Scene_Map.rb @@ -67,6 +67,7 @@ class Scene_Map pbCancelVehicles($game_temp.player_new_map_id) if cancelVehicles autofade($game_temp.player_new_map_id) pbBridgeOff + @spritesetGlobal.playersprite.clearShadows if $game_map.map_id!=$game_temp.player_new_map_id $MapFactory.setup($game_temp.player_new_map_id) end diff --git a/Data/Scripts/005_Sprites/009_Sprite_DynamicShadows.rb b/Data/Scripts/005_Sprites/009_Sprite_DynamicShadows.rb index a3372b1f9..6c1f86cde 100644 --- a/Data/Scripts/005_Sprites/009_Sprite_DynamicShadows.rb +++ b/Data/Scripts/005_Sprites/009_Sprite_DynamicShadows.rb @@ -149,6 +149,11 @@ class Sprite_Character < RPG::Sprite update end + def clearShadows + @ombrelist.each { |s| s.dispose if s } + @ombrelist.clear + end + alias shadow_update update def update diff --git a/Data/Scripts/012_Overworld/001_Overworld.rb b/Data/Scripts/012_Overworld/001_Overworld.rb index b6a726f64..6f4dfca87 100644 --- a/Data/Scripts/012_Overworld/001_Overworld.rb +++ b/Data/Scripts/012_Overworld/001_Overworld.rb @@ -369,7 +369,7 @@ def pbEventCanReachPlayer?(event, player, distance) when 2 # Down real_distance = player.y - event.y - 1 when 4 # Left - real_distance = event.x - player.x + 1 + real_distance = event.x - player.x - 1 when 6 # Right real_distance = player.x - event.x - event.width when 8 # Up diff --git a/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb b/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb index 34773eb5f..4f8bb59b8 100644 --- a/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb +++ b/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb @@ -368,12 +368,12 @@ def pbTrainerBattleCore(*args) foePartyStarts = [] for arg in args raise _INTL("Expected an array of trainer data, got {1}.",arg) if !arg.is_a?(Array) - if arg.is_a?(NPCTrainer) - foeTrainers.push(arg) + if arg[0].is_a?(NPCTrainer) + foeTrainers.push(arg[0]) foePartyStarts.push(foeParty.length) - arg.party.each { |pkmn| foeParty.push(pkmn) } - foeEndSpeeches.push(arg.lose_text) - foeItems.push(arg.items) + arg[0].party.each { |pkmn| foeParty.push(pkmn) } + foeEndSpeeches.push(arg[0].lose_text) + foeItems.push(arg[0].items) else # [trainer type, trainer name, ID, speech (optional)] trainer = pbLoadTrainer(arg[0],arg[1],arg[2])