Fixed Event Touch not working, fixed misnamed variables in module Effectiveness

This commit is contained in:
Maruno17
2021-05-08 16:31:33 +01:00
parent 43eddaa5da
commit 218225cc91
4 changed files with 29 additions and 22 deletions

View File

@@ -498,15 +498,13 @@ class Game_Character
def move_generic(dir, turn_enabled = true) def move_generic(dir, turn_enabled = true)
turn_generic(dir) if turn_enabled turn_generic(dir) if turn_enabled
x_offset = (dir == 4) ? -1 : (dir == 6) ? 1 : 0
y_offset = (dir == 8) ? -1 : (dir == 2) ? 1 : 0
if can_move_in_direction?(dir) if can_move_in_direction?(dir)
turn_generic(dir) turn_generic(dir)
@x += x_offset @x += (dir == 4) ? -1 : (dir == 6) ? 1 : 0
@y += y_offset @y += (dir == 8) ? -1 : (dir == 2) ? 1 : 0
increase_steps increase_steps
else else
check_event_trigger_touch(@x + x_offset, @y + y_offset) check_event_trigger_touch(dir)
end end
end end

View File

@@ -149,10 +149,20 @@ class Game_Event < Game_Character
end end
end end
def check_event_trigger_touch(check_x, check_y) def check_event_trigger_touch(dir)
return if $game_system.map_interpreter.running? return if $game_system.map_interpreter.running?
return if @trigger != 2 # Event touch return if @trigger != 2 # Event touch
return if !at_coordinate?(check_x, check_y) case dir
when 2
return if $game_player.y != @y + 1
when 4
return if $game_player.x != @x - 1
when 6
return if $game_player.x != @x + @width
when 8
return if $game_player.y != @y - @height
end
return if !in_line_with_coordinate?($game_player.x, $game_player.y)
return if jumping? || over_trigger? return if jumping? || over_trigger?
start start
end end

View File

@@ -70,9 +70,9 @@ class Game_Player < Game_Character
def move_generic(dir, turn_enabled = true) def move_generic(dir, turn_enabled = true)
turn_generic(dir, true) if turn_enabled turn_generic(dir, true) if turn_enabled
if !$PokemonTemp.encounterTriggered if !$PokemonTemp.encounterTriggered
x_offset = (dir == 4) ? -1 : (dir == 6) ? 1 : 0
y_offset = (dir == 8) ? -1 : (dir == 2) ? 1 : 0
if can_move_in_direction?(dir) if can_move_in_direction?(dir)
x_offset = (dir == 4) ? -1 : (dir == 6) ? 1 : 0
y_offset = (dir == 8) ? -1 : (dir == 2) ? 1 : 0
return if pbLedge(x_offset, y_offset) return if pbLedge(x_offset, y_offset)
return if pbEndSurf(x_offset, y_offset) return if pbEndSurf(x_offset, y_offset)
turn_generic(dir, true) turn_generic(dir, true)
@@ -82,10 +82,8 @@ class Game_Player < Game_Character
$PokemonTemp.dependentEvents.pbMoveDependentEvents $PokemonTemp.dependentEvents.pbMoveDependentEvents
increase_steps increase_steps
end end
else elsif !check_event_trigger_touch(dir)
if !check_event_trigger_touch(@x + x_offset, @y + y_offset) bump_into_object
bump_into_object
end
end end
end end
$PokemonTemp.encounterTriggered = false $PokemonTemp.encounterTriggered = false
@@ -312,14 +310,16 @@ class Game_Player < Game_Character
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# * Touch Event Starting Determinant # * Touch Event Starting Determinant
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
def check_event_trigger_touch(x, y) def check_event_trigger_touch(dir)
result = false result = false
# If event is running
return result if $game_system.map_interpreter.running? return result if $game_system.map_interpreter.running?
# All event loops # All event loops
x_offset = (dir == 4) ? -1 : (dir == 6) ? 1 : 0
y_offset = (dir == 8) ? -1 : (dir == 2) ? 1 : 0
for event in $game_map.events.values for event in $game_map.events.values
next if ![1, 2].include?(event.trigger) # Player touch, event touch
# If event coordinates and triggers are consistent # If event coordinates and triggers are consistent
next if !event.at_coordinate?(x, y) next if !event.at_coordinate?(@x + x_offset, @y + y_offset)
if event.name[/trainer\((\d+)\)/i] if event.name[/trainer\((\d+)\)/i]
distance = $~[1].to_i distance = $~[1].to_i
next if !pbEventCanReachPlayer?(event,self,distance) next if !pbEventCanReachPlayer?(event,self,distance)
@@ -327,7 +327,6 @@ class Game_Player < Game_Character
distance = $~[1].to_i distance = $~[1].to_i
next if !pbEventFacesPlayer?(event,self,distance) next if !pbEventFacesPlayer?(event,self,distance)
end end
next if ![1,2].include?(event.trigger)
# If starting determinant is front event (other than jumping) # If starting determinant is front event (other than jumping)
next if event.jumping? || event.over_trigger? next if event.jumping? || event.over_trigger?
event.start event.start

View File

@@ -89,27 +89,27 @@ module Effectiveness
end end
def ineffective_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil) def ineffective_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil)
value = calculate(attack_type, target_type1, target_type2, target_type3) value = calculate(attack_type, defend_type1, defend_type2, defend_type3)
return ineffective?(value) return ineffective?(value)
end end
def not_very_effective_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil) def not_very_effective_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil)
value = calculate(attack_type, target_type1, target_type2, target_type3) value = calculate(attack_type, defend_type1, defend_type2, defend_type3)
return not_very_effective?(value) return not_very_effective?(value)
end end
def resistant_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil) def resistant_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil)
value = calculate(attack_type, target_type1, target_type2, target_type3) value = calculate(attack_type, defend_type1, defend_type2, defend_type3)
return resistant?(value) return resistant?(value)
end end
def normal_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil) def normal_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil)
value = calculate(attack_type, target_type1, target_type2, target_type3) value = calculate(attack_type, defend_type1, defend_type2, defend_type3)
return normal?(value) return normal?(value)
end end
def super_effective_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil) def super_effective_type?(attack_type, defend_type1, defend_type2 = nil, defend_type3 = nil)
value = calculate(attack_type, target_type1, target_type2, target_type3) value = calculate(attack_type, defend_type1, defend_type2, defend_type3)
return super_effective?(value) return super_effective?(value)
end end