update 6.7

This commit is contained in:
chardub
2025-09-28 15:53:01 -04:00
parent ef5e023ae0
commit 318ff90d8d
696 changed files with 111759 additions and 198230 deletions

View File

@@ -0,0 +1,83 @@
def turnEventTowardsEvent(turning, turnedTowards)
event_x = turnedTowards.x
event_y = turnedTowards.y
if turning.x < event_x
turning.turn_right # Event is to the right of the player
elsif turning.x > event_x
turning.turn_left # Event is to the left of the player
elsif turning.y < event_y
turning.turn_down # Event is below the player
elsif turning.y > event_y
turning.turn_up # Event is above the player
end
end
def turnPlayerTowardsEvent(event)
if event.is_a?(Integer)
event = $game_map.events[event]
end
event_x = event.x
event_y = event.y
if $game_player.x < event_x
$game_player.turn_right # Event is to the right of the player
elsif $game_player.x > event_x
$game_player.turn_left # Event is to the left of the player
elsif $game_player.y < event_y
$game_player.turn_down # Event is below the player
elsif $game_player.y > event_y
$game_player.turn_up # Event is above the player
end
end
def giveJigglypuffScribbles(possible_versions = [1, 2, 3, 4])
selected_scribbles_version = possible_versions.sample
case selected_scribbles_version
when 1
scribbles_id = HAT_SCRIBBLES1
when 2
scribbles_id = HAT_SCRIBBLES2
when 3
scribbles_id = HAT_SCRIBBLES3
when 4
scribbles_id = HAT_SCRIBBLES4
end
return if !scribbles_id
if !hasHat?(scribbles_id)
$Trainer.unlocked_hats << scribbles_id
end
putOnHat(scribbles_id, true, true)
end
# type:
# 0: default
# 1: wood
def sign(message, type = 0)
signId = "sign_#{type}"
formatted_message = "\\sign[#{signId}]#{message}"
pbMessage(formatted_message)
end
def setEventGraphicsToPokemon(species, eventId)
event = $game_map.events[eventId]
return if !event
event.character_name = "Followers/#{species.to_s}"
event.refresh
end
# time in seconds
def idleHatEvent(hatId, time, switchToActivate = nil)
map = $game_map.map_id
i = 0
while i < (time / 5) do
# /5 because we update 5 times per second
return if $game_map.map_id != map
i += 1
pbWait(4)
i = 0 if $game_player.moving?
echoln i
end
$game_switches[switchToActivate] = true if switchToActivate
obtainHat(hatId)
end

View File

@@ -0,0 +1,161 @@
class PokemonTemp
# def pbClearAllTempEvents()
# echoln @tempEvents
# @tempEvents.keys.each {|map_id|
# map = $MapFactory.getMap(map_id,false)
# @tempEvents[map_id].each { |event|
# map.events[event.id] = nil
# }
# }
# @tempEvents={}
# @silhouetteDirection=nil
# end
def pbClearSilhouetteTempEvents()
echoln @tempEvents
@tempEvents.keys.each {|map_id|
map = $MapFactory.getMap(map_id,false)
@tempEvents[map_id].each { |event|
#this deletes the event after a small fadeout
$game_self_switches[[map_id, event.id, "B"]] = true if map.events[event.id]
}
}
@tempEvents={}
@silhouetteDirection=nil
end
end
def isNightmareEffect()
return $game_switches[SWITCH_NIGHTMARE_EFFECT] && PBDayNight.isNight?
end
# def playNightmareEffect()
# frame=1
# while true
# frame +=1
# frame = 1 if frame >4
# filename = "nightmare"+frame.to_s
# picture = Game_Picture.new(40)
# picture.show(filename, 0, 0, 0, 200, 200, 255, 0)
# pbWait(3)
# picture.erase
# end
#
# end
Events.onStepTaken += proc { |sender, e|
next if !$PokemonTemp.silhouetteDirection
if $PokemonTemp.silhouetteDirection && $PokemonTemp.silhouetteDirection == $game_player.direction
$PokemonTemp.pbClearSilhouetteTempEvents
$PokemonTemp.silhouetteDirection = nil
end
}
Events.onStepTaken += proc { |sender, e|
next if !$scene.is_a?(Scene_Map)
next if !isNightmareEffect()
steps_constant_offset = 40
steps_chance=100
minimum_steps=10
steps_nb = rand(steps_chance)+pbGet(VAR_KARMA)+steps_constant_offset
steps_nb = minimum_steps if steps_nb<minimum_steps
next if $PokemonGlobal.stepcount % steps_nb != 0
next if !isOutdoor()
$PokemonTemp.pbClearSilhouetteTempEvents
spawnSilhouette()
}
Events.onMapChange += proc { |sender, e|
next if $PokemonTemp.tempEvents.empty?
$PokemonTemp.pbClearTempEvents()
}
def getRandomPositionOnPerimeter(width, height, center_x, center_y, variance=0,edge=nil)
half_width = width / 2.0
half_height = height / 2.0
# Randomly select one of the four edges of the rectangle
edge = rand(4) if !edge
case edge
when 0 # Top edge
random_x = center_x + rand(-half_width..half_width)
random_y = center_y - half_height
when 1 # Bottom edge
random_x = center_x + rand(-half_width..half_width)
random_y = center_y + half_height
when 2 # Left edge
random_x = center_x - half_width
random_y = center_y + rand(-half_height..half_height)
when 3 # Right edge
random_x = center_x + half_width
random_y = center_y + rand(-half_height..half_height)
end
return random_x.round, random_y.round
end
# def launchSilhouetteCommonEvent(event)
# $scene.spriteset.addUserAnimation(VIRUS_ANIMATION_ID, event.x, event.y, true)
# $PokemonTemp.pbClearTempEvents
# $PokemonTemp.silhouetteDirection = nil
# pbCommonEvent(COMMON_EVENT_SILHOUETTE)
# end
#
# Faces the same way as player
# Disappears as soon as player takes a step in same direction as event
# -> when talk to it:
# ghost animation
# Message:
# A voice echoed from somewhere...
# [NEXT HINT] (ex: The house in Vermillion City...)
#
def generate_silhouette_event(id)
$game_self_switches[[MAP_TEMPLATE_EVENTS, TEMPLATE_EVENT_SILHOUETTE, "A"]] = false
$game_self_switches[[MAP_TEMPLATE_EVENTS, TEMPLATE_EVENT_SILHOUETTE, "B"]] = false
template_event = $MapFactory.getMap(MAP_TEMPLATE_EVENTS,false).events[TEMPLATE_EVENT_SILHOUETTE]
new_event= template_event.event.dup
new_event.name = "temp_silhouette"
new_event.id = id
return new_event
end
def spawnSilhouette()
found_available_position = false
max_tries = 10
current_try = 0
while !found_available_position
x, y = getRandomPositionOnPerimeter(15, 11, $game_player.x, $game_player.y, 2)
found_available_position = true if $game_map.passable?(x, y, $game_player.direction)
current_try += 1
return if current_try > max_tries
end
key_id = ($game_map.events.keys.max || -1) + 1
rpgEvent = generate_silhouette_event(key_id)
#rpgEvent = RPG::Event.new(x,y)
gameEvent = Game_Event.new($game_map.map_id, rpgEvent, $game_map)
direction = $game_player.direction #[2,4,6,8].sample
gameEvent.direction = direction
$PokemonTemp.silhouetteDirection = direction
$game_map.events[key_id] = gameEvent
gameEvent.moveto(x, y)
#-------------------------------------------------------------------------
#updating the sprites
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)
#$PokemonTemp.addTempEvent($game_map.map_id, gameEvent)
end