Fixed X items being unusable by AI, finally fixed step after battle caused by a turn

This commit is contained in:
Maruno17
2020-10-29 19:53:57 +00:00
parent 66aea40198
commit c40f95838a
5 changed files with 67 additions and 119 deletions

View File

@@ -265,8 +265,6 @@ class Game_Character
@pattern = 0 if @walk_anime or @step_anime @pattern = 0 if @walk_anime or @step_anime
@anime_count = 0 @anime_count = 0
@prelock_direction = 0 @prelock_direction = 0
@moved_last_frame = false
@moved_this_frame = false
end end
def force_move_route(move_route) def force_move_route(move_route)
@@ -434,48 +432,34 @@ class Game_Character
end end
end end
def move_up(turn_enabled = true) def move_generic(dir, turn_enabled = true)
turn_up if turn_enabled turn_generic(dir) if turn_enabled
if passable?(@x, @y, 8) x_offset = (dir == 4) ? -1 : (dir == 6) ? 1 : 0
turn_up y_offset = (dir == 8) ? -1 : (dir == 2) ? 1 : 0
@y -= 1 if passable?(@x, @y, dir)
turn_generic(dir)
@x += x_offset
@y += y_offset
increase_steps increase_steps
else else
check_event_trigger_touch(@x, @y-1) check_event_trigger_touch(@x + x_offset, @y + y_offset)
end end
end end
def move_down(turn_enabled = true) def move_down(turn_enabled = true)
turn_down if turn_enabled move_generic(2, turn_enabled)
if passable?(@x, @y, 2)
turn_down
@y += 1
increase_steps
else
check_event_trigger_touch(@x, @y+1)
end
end end
def move_left(turn_enabled = true) def move_left(turn_enabled = true)
turn_left if turn_enabled move_generic(4, turn_enabled)
if passable?(@x, @y, 4)
turn_left
@x -= 1
increase_steps
else
check_event_trigger_touch(@x-1, @y)
end
end end
def move_right(turn_enabled = true) def move_right(turn_enabled = true)
turn_right if turn_enabled move_generic(6, turn_enabled)
if passable?(@x, @y, 6)
turn_right
@x += 1
increase_steps
else
check_event_trigger_touch(@x+1, @y)
end end
def move_up(turn_enabled = true)
move_generic(8, turn_enabled)
end end
def move_upper_left def move_upper_left
@@ -698,7 +682,7 @@ class Game_Character
end end
end end
def turnGeneric(dir) def turn_generic(dir)
return if @direction_fix return if @direction_fix
oldDirection = @direction oldDirection = @direction
@direction = dir @direction = dir
@@ -706,10 +690,10 @@ class Game_Character
pbCheckEventTriggerAfterTurning if dir != oldDirection pbCheckEventTriggerAfterTurning if dir != oldDirection
end end
def turn_up; turnGeneric(8); end def turn_down; turn_generic(2); end
def turn_down; turnGeneric(2); end def turn_left; turn_generic(4); end
def turn_left; turnGeneric(4); end def turn_right; turn_generic(6); end
def turn_right; turnGeneric(6); end def turn_up; turn_generic(8); end
def turn_right_90 def turn_right_90
case @direction case @direction

View File

@@ -64,75 +64,36 @@ class Game_Player < Game_Character
@bump_se = Graphics.frame_rate/4 @bump_se = Graphics.frame_rate/4
end end
def move_down(turn_enabled = true) def move_generic(dir, turn_enabled = true)
turn_down if turn_enabled turn_generic(dir, true) if turn_enabled
if passable?(@x, @y, 2) if !$PokemonTemp.encounterTriggered
return if pbLedge(0,1) x_offset = (dir == 4) ? -1 : (dir == 6) ? 1 : 0
return if pbEndSurf(0,1) y_offset = (dir == 8) ? -1 : (dir == 2) ? 1 : 0
turn_down if passable?(@x, @y, dir)
@y += 1 return if pbLedge(x_offset, y_offset)
return if pbEndSurf(x_offset, y_offset)
turn_generic(dir, true)
if !$PokemonTemp.encounterTriggered
@x += x_offset
@y += y_offset
$PokemonTemp.dependentEvents.pbMoveDependentEvents $PokemonTemp.dependentEvents.pbMoveDependentEvents
increase_steps increase_steps
end
else else
if !check_event_trigger_touch(@x, @y+1) if !check_event_trigger_touch(@x + x_offset, @y + y_offset)
bump_into_object bump_into_object
end end
end end
end end
$PokemonTemp.encounterTriggered = false
def move_left(turn_enabled = true)
turn_left if turn_enabled
if passable?(@x, @y, 4)
return if pbLedge(-1,0)
return if pbEndSurf(-1,0)
turn_left
@x -= 1
$PokemonTemp.dependentEvents.pbMoveDependentEvents
increase_steps
else
if !check_event_trigger_touch(@x-1, @y)
bump_into_object
end
end
end end
def move_right(turn_enabled = true) def turn_generic(dir, keep_enc_indicator = false)
turn_right if turn_enabled
if passable?(@x, @y, 6)
return if pbLedge(1,0)
return if pbEndSurf(1,0)
turn_right
@x += 1
$PokemonTemp.dependentEvents.pbMoveDependentEvents
increase_steps
else
if !check_event_trigger_touch(@x+1, @y)
bump_into_object
end
end
end
def move_up(turn_enabled = true)
turn_up if turn_enabled
if passable?(@x, @y, 8)
return if pbLedge(0,-1)
return if pbEndSurf(0,-1)
turn_up
@y -= 1
$PokemonTemp.dependentEvents.pbMoveDependentEvents
increase_steps
else
if !check_event_trigger_touch(@x, @y-1)
bump_into_object
end
end
end
def turnGeneric(dir)
old_direction = @direction old_direction = @direction
super super
if @direction != old_direction && !@move_route_forcing && !pbMapInterpreterRunning? if @direction != old_direction && !@move_route_forcing && !pbMapInterpreterRunning?
Events.onChangeDirection.trigger(self, self) Events.onChangeDirection.trigger(self, self)
$PokemonTemp.encounterTriggered = false if !keep_enc_indicator
end end
end end
@@ -170,8 +131,7 @@ class Game_Player < Game_Character
return result return result
end end
def pbCheckEventTriggerAfterTurning def pbCheckEventTriggerAfterTurning; end
end
def pbCheckEventTriggerFromDistance(triggers) def pbCheckEventTriggerFromDistance(triggers)
ret = pbTriggeredTrainerEvents(triggers) ret = pbTriggeredTrainerEvents(triggers)
@@ -385,10 +345,11 @@ class Game_Player < Game_Character
def update_command_new def update_command_new
dir = Input.dir4 dir = Input.dir4
unless pbMapInterpreterRunning? or $game_temp.message_window_showing or unless pbMapInterpreterRunning? || $game_temp.message_window_showing ||
$PokemonTemp.miniupdate or $game_temp.in_menu $PokemonTemp.miniupdate || $game_temp.in_menu
# Move player in the direction the directional button is being pressed # Move player in the direction the directional button is being pressed
if @moved_last_frame || (dir==@lastdir && Graphics.frame_count-@lastdirframe>Graphics.frame_rate/20) if @moved_last_frame ||
(dir > 0 && dir == @lastdir && Graphics.frame_count - @lastdirframe > Graphics.frame_rate / 20)
case dir case dir
when 2; move_down when 2; move_down
when 4; move_left when 4; move_left

View File

@@ -83,7 +83,7 @@ class PokeBattle_Battle
end end
end end
# Uses an item on a Pokémon in the player's party. # Uses an item on a Pokémon in the trainer's party.
def pbUseItemOnPokemon(item,idxParty,userBattler) def pbUseItemOnPokemon(item,idxParty,userBattler)
trainerName = pbGetOwnerName(userBattler.index) trainerName = pbGetOwnerName(userBattler.index)
pbUseItemMessage(item,trainerName) pbUseItemMessage(item,trainerName)
@@ -100,14 +100,14 @@ class PokeBattle_Battle
pbReturnUnusedItemToBag(item,userBattler.index) pbReturnUnusedItemToBag(item,userBattler.index)
end end
# Uses an item on a Pokémon in battle that belongs to the player. # Uses an item on a Pokémon in battle that belongs to the trainer.
def pbUseItemOnBattler(item,idxParty,userBattler) def pbUseItemOnBattler(item,idxBattler,userBattler)
trainerName = pbGetOwnerName(userBattler.index) trainerName = pbGetOwnerName(userBattler.index)
pbUseItemMessage(item,trainerName) pbUseItemMessage(item,trainerName)
pkmn = pbParty(userBattler.index)[idxParty] idxBattler = userBattler.index if idxBattler<0
battler = pbFindBattler(idxParty,userBattler.index) battler = @battlers[idxBattler]
ch = @choices[userBattler.index] ch = @choices[userBattler.index]
if ItemHandlers.triggerCanUseInBattle(item,pkmn,battler,ch[3],true,self,@scene,false) if ItemHandlers.triggerCanUseInBattle(item,battler.pokemon,battler,ch[3],true,self,@scene,false)
ItemHandlers.triggerBattleUseOnBattler(item,battler,@scene) ItemHandlers.triggerBattleUseOnBattler(item,battler,@scene)
ch[1] = 0 # Delete item from choice ch[1] = 0 # Delete item from choice
return return

View File

@@ -368,6 +368,7 @@ def pbOnStepTaken(eventTriggered)
Events.onStepTakenTransferPossible.trigger(nil,handled) Events.onStepTakenTransferPossible.trigger(nil,handled)
return if handled[0] return if handled[0]
pbBattleOnStepTaken(repel) if !eventTriggered && !$game_temp.in_menu pbBattleOnStepTaken(repel) if !eventTriggered && !$game_temp.in_menu
$PokemonTemp.encounterTriggered = false # This info isn't needed
end end
# Start wild encounters while turning on the spot # Start wild encounters while turning on the spot
@@ -394,6 +395,7 @@ def pbBattleOnStepTaken(repel=false)
pbWildBattle(encounter[0], encounter[1]) pbWildBattle(encounter[0], encounter[1])
end end
$PokemonTemp.encounterType = -1 $PokemonTemp.encounterType = -1
$PokemonTemp.encounterTriggered = true
end end
$PokemonTemp.forceSingleBattle = false $PokemonTemp.forceSingleBattle = false
EncounterModifier.triggerEncounterEnd EncounterModifier.triggerEncounterEnd

View File

@@ -11,6 +11,7 @@ end
class PokemonTemp class PokemonTemp
attr_accessor :encounterTriggered
attr_accessor :encounterType attr_accessor :encounterType
attr_accessor :evolutionLevels attr_accessor :evolutionLevels