Files
infinitefusion-e18/Data/Scripts/052_InfiniteFusion/System/TempEvents.rb
2025-09-28 15:53:01 -04:00

56 lines
1.7 KiB
Ruby

class PokemonTemp
attr_accessor :tempEvents
attr_accessor :silhouetteDirection
def tempEvents
@tempEvents = {} if !@tempEvents
return @tempEvents
end
def pbClearTempEvents()
return if !@tempEvents || @tempEvents.empty?
@tempEvents.keys.each { |map_id|
map = $MapFactory.getMapNoAdd(map_id)
@tempEvents[map_id].each { |event|
$game_self_switches[[map_id, event.id, "A"]] = false
$game_self_switches[[map_id, event.id, "B"]] = false
$game_self_switches[[map_id, event.id, "C"]] = false
$game_self_switches[[map_id, event.id, "D"]] = false
map.events[event.id].erase if map.events[event.id]
}
}
@tempEvents = {}
@silhouetteDirection = nil
end
def createTempEvent(eventTemplateID, map_id, position = [0, 0],direction=nil)
template_event = $MapFactory.getMap(MAP_TEMPLATE_EVENTS,false).events[eventTemplateID]
key_id = ($game_map.events.keys.max || -1) + 1
rpgEvent= template_event.event.dup
rpgEvent.id = key_id
gameEvent = Game_Event.new($game_map.map_id, rpgEvent, $game_map)
gameEvent.moveto(position[0], position[1])
gameEvent.direction = direction if direction
registerTempEvent(map_id, gameEvent)
$game_map.events[key_id] = gameEvent
sprite = Sprite_Character.new(Spriteset_Map.viewport, $game_map.events[key_id])
$scene.spritesets[$game_map.map_id] = Spriteset_Map.new($game_map) if $scene.spritesets[$game_map.map_id] == nil
$scene.spritesets[$game_map.map_id].character_sprites.push(sprite)
return gameEvent
end
def registerTempEvent(map, event)
@tempEvents = {} if !@tempEvents
mapEvents = @tempEvents.has_key?(map) ? @tempEvents[map] : []
mapEvents.push(event)
@tempEvents[map] = mapEvents
end
end