Added def follower_move_route which makes the next Move Route event command apply to the follower instead, events are no longer automatically erased if they are followers

This commit is contained in:
Maruno17
2021-12-09 23:33:46 +00:00
parent c55f1f0a2a
commit 6a56a8f7d0
3 changed files with 19 additions and 6 deletions

View File

@@ -35,6 +35,7 @@ class Interpreter
@child_interpreter = nil # child interpreter
@branch = {} # branch data
@buttonInput = false
end_follower_move_route
end
#-----------------------------------------------------------------------------
# * Event Setup
@@ -109,6 +110,9 @@ class Interpreter
for event in $game_map.events.values
return if event.move_route_forcing
end
$game_temp.followers.each_follower do |event, follower|
return if event.move_route_forcing
end
@move_route_waiting = false
end
# Do nothing while waiting
@@ -268,6 +272,17 @@ class Interpreter
temp_index += 1
end
end
def follower_move_route(id = nil)
@follower_move_route_id = id
@follower_move_route = true
end
def end_follower_move_route
@follower_move_route_id = nil
@follower_move_route = false
end
#-----------------------------------------------------------------------------
# * Various methods to be used in a script event command.
#-----------------------------------------------------------------------------

View File

@@ -126,6 +126,7 @@ class Interpreter
#-----------------------------------------------------------------------------
def command_end
@list = nil
end_follower_move_route
# If main map event and event ID are valid, unlock event
if @main && @event_id > 0 && $game_map.events[@event_id]
$game_map.events[@event_id].unlock
@@ -742,6 +743,8 @@ class Interpreter
#-----------------------------------------------------------------------------
def command_209
character = get_character(@parameters[0])
character = Followers.get(@follower_move_route_id) if @follower_move_route
end_follower_move_route
return true if character.nil?
character.force_move_route(@parameters[1])
return true

View File

@@ -56,7 +56,6 @@ class Game_FollowerFactory
followers.push(eventData)
@events.push(newEvent)
@last_update += 1
event.erase
end
def remove_follower_by_event(event)
@@ -241,9 +240,6 @@ class FollowerSprites
@sprites.each { |sprite| sprite.dispose }
@sprites.clear
$game_temp.followers.each_follower do |event, follower|
$map_factory.maps.each do |map|
map.events[follower.event_id].erase if follower.original_map_id == map.map_id
end
@sprites.push(Sprite_Character.new(@viewport, event))
end
end
@@ -320,8 +316,7 @@ module Followers
# @return [Game_Follower, nil] follower object
def get(name = nil)
return $game_temp.followers.get_follower_by_name(name) if name
$game_temp.followers.get_follower_by_index
return nil
return $game_temp.followers.get_follower_by_index
end
end