23 Commits

Author SHA1 Message Date
chardub
47ea64728a gitkeep 2025-06-07 11:20:04 -04:00
chardub
937527828f removes temp folder 2025-06-07 10:40:53 -04:00
chardub
b2f6901c6b fixes alt sprites option being on by default 2025-06-07 10:22:50 -04:00
chardub
a393ba1137 6.6 update 2025-06-07 08:16:50 -04:00
chardub
295a71dbcd updates dex entries 2025-06-07 07:57:16 -04:00
chardub
a94f2f1169 adds new clothes, hats, hairs 2025-06-07 07:55:47 -04:00
chardub
eae5af977c adds new hats & wearable silph scoe 2025-05-25 15:07:58 -04:00
chardub
2b3dae22ac updated custom pokedex entries 2025-05-25 13:11:11 -04:00
chardub
3698cadb83 Compatibility with IF2 2025-05-25 12:30:53 -04:00
chardub
a1c1d37ceb couple of map fixes 2025-05-11 22:28:23 -04:00
chardub
28cccd884f missing graphics 2025-05-11 21:45:34 -04:00
chardub
0ad7b1a899 adds new loading screens 2025-05-05 09:25:26 -04:00
chardub
370814733b fixes tileset fuckuo 2025-04-30 23:20:49 -04:00
chardub
4bc79de9dd revert temp fix 2025-04-19 22:40:28 -04:00
chardub
26312dfd6c temp fix 2025-04-19 22:34:21 -04:00
chardub
53adec3526 fixes police officer not setting azurill 2025-04-19 22:31:18 -04:00
chardub
9dcbf2b910 ignore .git folder when loading scripts 2025-04-19 17:27:42 -04:00
chardub
383ef3f51b Adds animated flowers graphics 2025-04-19 15:48:01 -04:00
chardub
e4cb1ce6ef Adds Scripts folder as submodule 2025-04-19 15:45:12 -04:00
chardub
58da1023c1 Remove Scripts folder to convert to submodule 2025-04-19 15:43:57 -04:00
chardub
0807a7ea79 flowers 2025-04-19 15:42:41 -04:00
chardub
86471fbedf Animated flowers 2025-04-19 14:23:57 -04:00
chardub
5255ce0215 Reapply "Map fixes"
This reverts commit d559b813ed.
2025-04-19 13:09:08 -04:00
5255 changed files with 16599 additions and 2319 deletions

4
.gitignore vendored
View File

@@ -1,6 +1,8 @@
Graphics/CustomBattlers/local_sprites/*
Graphics/Pokemon/FusionIcons/*
Graphics/CustomBattlers/spritesheets
Graphics/Battlers/Shiny/*
Graphics/CustomBattlers/spritesheets/*
Graphics/CustomBattlers/*
Data/sprites/*
Data/VERSION

View File

@@ -1,4 +1,5 @@
########## CREDITS ###############
Pok?mon Infinite Fusion: Hoenn
Game made by Chardub
*This is NOT an official Pokemon game. The author of this game is not
@@ -12,19 +13,29 @@ Chardub
##############################
## Maps ##
##############################
Chardub, Kiwikelly
Some of the maps were based on work by:
BenGames,Films, and More! (Pokemon Adventures in Kanto) http://www.pokecommunity.com/showthread.php?t=303850
Zeak6464 (Kanto Map pack) http://www.pokecommunity.com/showthread.php?t=345591
Chardub, Kiwikelly, Payapon
#################################
# Story / Dialogues #
#################################
Chardub
Kiwikelly
The story and dialogues were based off Pokémon Red and Blue, as well as
Pokémon Gold and Silver. Both games are made by Game Freak.
The story and dialogues were based off Pok?mon Ruby, Sapphire and Emerald, as well as Pok?mon
Omega Ruby and Alpha Sapphire, which are all made by Game Freak.
##############################
## Music ##
##############################
Pory
##############################
## Animation ##
#############################
-- Intro cinematic animation --
Kiwikelly
###########################################################
### Fusion Sprites ###
@@ -35,47 +46,77 @@ Generated Sprites
Pokefusion 2 (version 4.5+)
http://japeal.com/pkm
Pokefusion (version 4.0-4.4)
http://pokefusion.japeal.com/
Alexonsager (version 3.x and below)
http://pokemon.alexonsager.net/
Special thanks to Aegide and Reizod for helping to rip the sprites from the website
and to the owners of the respective fusion websites for accepting to share
their sprites.
Intro cinematic
Custom sprites
#####################
Kiwikelly
Individual sprite credits can be found in Data/SPRITE_CREDS file for full, up to date credits
Custom sprites collecting and handling
Kiwikelly, Payapon, Thornsoflight
Discord custom sprites coordination
Discord custom sprites coordination
--- Sprite Managers ---
avianAnnihilator<s>Blaquaza
BéBoutton<s>CaBiNE
BBoutton<s>CaBiNE
CoramSun<s>hero.drawing
Howls<s>Ignus
Howlingstarr<s>Ignus
Kiwi<s>Maelmc
Milchik the Miltank<s>Payapon
Pix<s>Rosemagwin
Thornsoflight
Thornsoflight<s>FauxBlue
Custom fusion sprites
#####################
Check the Data/SPRITE_CREDS file for full, up to date credits
### Spriter application reviews (Klefki)
007z3lda<s>barkey<s>the_cardinals
doodledoo<s>grafaiguy<s>gummy.frog
holgast<s>ignust<s>jcobe800
markusknight<s>monolithyk<s>stickieanimates
takopus<s>_woofa_<s>yumatei
### Sprites quality assurance (Chansey)
dodoowner_<s>fauxblue<s>fioretovi
<greystorm101<s>.payapon<s>smasllcutekitty
odditylad<s>midnightender6<s>toadettexmushina
### Spriting process checking (Swablu)
cataylor_01<s>pikahunter07<s>say_4732
justvince.<s>
### Abandoned sprites harvesting (Zigzagoon)
_testrun_<s>greystorm101<s>.izik
mystora<s>reddevil85<s>riberna
chespining<s>togepimax
Triple fusion sprites
########################
Legendary birds fusion sprite by Universez
Legendary beasts fusion sprite by Milchik
Weather trio fusion sprite by magnuzone
Creation and Tao trio trio fusion sprite by mammuth89
###################################
### Game quality assurance ###
###################################
### Tech support and bugs reporting management
sapphire_chuu<s>megaman.
ymirbot<s>
### Tech support and bugs reporting(Porygon)
sapphire_chu<s>ernesto_gaming<s>xiaoanemo
kitsuwren<s>lunarcharlotte<s>megaman.
casinoluck<s>ymirbot
###################################
### Custom Pok?dex entries ###
###################################
### Pok?dex entries quality control (Unown)
luvischlo<s>char_latte3412<s>strawbearycandy
bobosmith01<s>griddle<s>.izik
knilk<s>lordjoostmeister<s>.realthree
wigglypon<s>wildheartrazorfangs<s>ziggaway
### Individual Pok?dex entries credits can be found in Data/pokedex/dex.json
###########################################################
#### Pokemon Essentials ###
###########################################################
@@ -104,8 +145,6 @@ The following ressources were also used
with their respective authors' consent
#######################################################################
### Sprites ###
Overworld Sprites:
Custom graphics:
Kiwikelly, Knuckles, UnworthyPie
@@ -116,7 +155,9 @@ with their respective authors' consent
SailorVicious (Prof. Elm OW sprite) https://www.deviantart.com/sailorvicious
OceansLugiaSpirit (Koga OW sprite) http://oceanslugiaspirit.deviantart.com/
Wolfang62: https://www.deviantart.com/wolfang62/art/Wimpod-Sprite-Overworld-836704744
zender1752 (Sabrina OW sprite)
zender1752 (Sabrina OW sprite) https://www.deviantart.com/zender1752/art/Pokemon-Anime-Delia-Ketchum-Overworld-sprite-840038766
wesleyfg (Hoenn overworld NPCs) https://www.deviantart.com/wesleyfg/art/Hoenn-People-OW-in-BW-style-274475232
Wergan https://www.deviantart.com/wergan/art/Pokemon-Random-characters-002-959395621
Battle sprites:
Custom graphics:
Kiwikelly, UnworthyPie
@@ -125,6 +166,9 @@ with their respective authors' consent
luckygirl88 (Misty VS sprite) http://luckygirl88.deviantart.com/art/Pokemon-BW-Misty-Sprite-Sheet-268364830
Lorelei VS sprite by Nalty http://nalty.deviantart.com/art/Lorelei-VS-Sprite-177184960
x-5-4-5-2 (Sabrina sprite) https://www.deviantart.com/x-5-4-5-2/art/Game-Sabrina-204548703
Zender1752 (overworld mom sprite) https://www.deviantart.com/zender1752/art/Pokemon-Anime-Delia-Ketchum-Overworld-sprite-840038766
### Custom tileset graphics ###
Kiwikelly
@@ -173,7 +217,7 @@ audreyeyeyeye https://www.deviantart.com/audreyeyeyeye/art/Pokemon-Type-Icons-FR
### Other graphics
Region map: Kiwikelly
Hoenn map: shivanking (Deviantart)
Move animations:
Augmented Reborn Animations Project
@@ -188,7 +232,12 @@ Move animations:
### RPG Maker Scripts ###
###########################################################
andracass (Pokémon Reborn) Compiler optimization
#Custom Infinite fusion scripts:
Improved Shinies: anthonygourmand
andracass (Pok?on Reborn) Compiler optimization (legacy)
#Public use scripts:
Luka S.J. Elite Battle System
Animated Title Screen (modified):
shiney570 BW2 Summary script (+ graphics) http://reliccastle.com/forums/showthread.php?tid=1090

BIN
Data/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -5,9 +5,9 @@
#==============================================================================#
module Settings
# The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format.
GAME_VERSION = '6.5.1'
GAME_VERSION_NUMBER = "6.5.1"
LATEST_GAME_RELEASE = "6.5"
GAME_VERSION = '6.6.0'
GAME_VERSION_NUMBER = "6.6.0"
LATEST_GAME_RELEASE = "6.6"
POKERADAR_LIGHT_ANIMATION_RED_ID = 17
POKERADAR_LIGHT_ANIMATION_GREEN_ID = 18
@@ -17,11 +17,14 @@ module Settings
LEADER_VICTORY_MUSIC="Battle victory leader"
TRAINER_VICTORY_MUSIC="trainer-victory"
WILD_VICTORY_MUSIC="wild-victory"
#getRandomCustomFusionForIntro
FUSION_ICON_SPRITE_OFFSET = 10
ANIMATE_REFLECTIONS= false#GAME_ID == :IF_HOENN #true
USE_REFLECTIONS = false
#Infinite fusion settings
NB_POKEMON = 501
NB_POKEMON = Settings::GAME_ID == :IF_HOENN ? 565 : 501
CUSTOM_BASE_SPRITES_FOLDER = "Graphics/CustomBattlers/local_sprites/BaseSprites/"
CUSTOM_BATTLERS_FOLDER = "Graphics/CustomBattlers/"
CUSTOM_SPRITES_TO_IMPORT_FOLDER = "Graphics/CustomBattlers/Sprites to import/"
@@ -79,7 +82,7 @@ module Settings
EGGSPRITE_SCALE = 1
BACKSPRITE_POSITION_OFFSET = 20
FRONTSPRITE_POSITION = 200
SHINY_HUE_OFFSET = 75
SHINY_HUE_OFFSET = 75 #no longer used
NO_LEVEL_MODE_LEVEL_INCR = 5.8
NO_LEVEL_MODE_LEVEL_BASE = 6
@@ -161,7 +164,7 @@ module Settings
# Number of badges in the game
NB_BADGES = 16
# The odds of a newly generated Pokémon being shiny (out of 65536).
SHINY_POKEMON_CHANCE = 16#(MECHANICS_GENERATION >= 6) ? 16 : 8
SHINY_POKEMON_CHANCE =16#(MECHANICS_GENERATION >= 6) ? 16 : 8
# The odds of a wild Pokémon/bred egg having Pokérus (out of 65536).
POKERUS_CHANCE = 3
@@ -218,10 +221,10 @@ module Settings
POISON_IN_FIELD = true #(MECHANICS_GENERATION <= 4)
# Whether poisoned Pokémon will faint while walking around in the field
# (true), or survive the poisoning with 1 HP (false).
POISON_FAINT_IN_FIELD = (MECHANICS_GENERATION >= 3)
POISON_FAINT_IN_FIELD = false
# Whether planted berries grow according to Gen 4 mechanics (true) or Gen 3
# mechanics (false).
NEW_BERRY_PLANTS = (MECHANICS_GENERATION >= 4)
NEW_BERRY_PLANTS = true
# Whether fishing automatically hooks the Pokémon (true), or whether there is
# a reaction test first (false).
FISHING_AUTO_HOOK = false
@@ -526,6 +529,9 @@ module Settings
# ID of the animation played when a berry tree grows a stage while the player
# is on the map (for new plant growth mechanics only).
PLANT_SPARKLE_ANIMATION_ID = 7
SPARKLE_SHORT_ANIMATION_ID = 25
SPARKLE_SUBTLE_ANIMATION_ID = 29
SLEEP_ANIMATION_ID = 26
CUT_TREE_ANIMATION_ID = 19

View File

@@ -1,6 +1,8 @@
# Using mkxp-z v2.2.0 - https://gitlab.com/mkxp-z/mkxp-z/-/releases/v2.2.0
$VERBOSE = nil
Font.default_shadow = false if Font.respond_to?(:default_shadow)
Encoding.default_internal = Encoding::UTF_8
Encoding.default_external = Encoding::UTF_8
Graphics.frame_rate = 40
def pbSetWindowText(string)
@@ -13,8 +15,15 @@ class Bitmap
alias mkxp_draw_text draw_text unless method_defined?(:mkxp_draw_text)
def draw_text(x, y, width, height, text, align = 0)
height = text_size(text).height
mkxp_draw_text(x, y, width, height, text, align)
if x.is_a?(Rect)
x.y -= (@text_offset_y || 0)
# rect, string & alignment
mkxp_draw_text(x, y, width)
else
y -= (@text_offset_y || 0)
height = text_size(text).height
mkxp_draw_text(x, y, width, height, text, align)
end
end
end

View File

@@ -17,6 +17,7 @@ class Game_Screen
attr_reader :weather_type # weather type
attr_reader :weather_max # max number of weather sprites
attr_accessor :weather_duration # ticks in which the weather should fade in
attr_accessor :weather_power
#-----------------------------------------------------------------------------
# * Object Initialization
#-----------------------------------------------------------------------------
@@ -41,6 +42,7 @@ class Game_Screen
@weather_type = 0
@weather_max = 0.0
@weather_duration = 0
@weather_power = 0
end
#-----------------------------------------------------------------------------
# * Start Changing Color Tone
@@ -82,6 +84,7 @@ class Game_Screen
#-----------------------------------------------------------------------------
def weather(type, power, duration)
@weather_type = GameData::Weather.get(type).id
@weather_power = power
@weather_max = (power + 1) * RPG::Weather::MAX_SPRITES / 10
@weather_duration = duration # In 1/20ths of a seconds
end

View File

@@ -9,7 +9,6 @@ class Game_Switches
# * Object Initialization
#-----------------------------------------------------------------------------
def initialize
echoln caller
@data = []
end
#-----------------------------------------------------------------------------

View File

@@ -77,6 +77,7 @@ class Game_Character
@locked = false
@prelock_direction = 0
@under_everything=false
@forced_z=nil
end
def at_coordinate?(check_x, check_y)
@@ -339,6 +340,7 @@ class Game_Character
def screen_z(height = 0)
return -1 if @under_everything
return 999 if @always_on_top
return @forced_z if @forced_z
z = screen_y_ground
if @tile_id > 0
begin

View File

@@ -24,6 +24,9 @@ class Game_Event < Game_Character
@through = true
@to_update = true
@tempSwitches = {}
if @event.name[/forced_z\s*=\s*(-?\d+)/i]
@forced_z = $1.to_i
end
moveto(@event.x, @event.y) if map
refresh
end
@@ -140,6 +143,7 @@ class Game_Event < Game_Character
return false
end
def pbCheckEventTriggerAfterTurning
return if $game_system.map_interpreter.running? || @starting
if @event.name[/trainer\((\d+)\)/i]
@@ -276,4 +280,10 @@ class Game_Event < Game_Character
@interpreter.update
end
end
def active?
return !@erased && @page != nil
end
end

View File

@@ -75,14 +75,20 @@ class Sprite_Character < RPG::Sprite
@oldbushdepth = 0
@spriteoffset = false
if !character || character == $game_player || (character.name[/reflection/i] rescue false)
@reflection = Sprite_Reflection.new(self, character, viewport)
if Settings::USE_REFLECTIONS && (!character || character == $game_player || (character.name[/reflection/i] rescue false))
@reflection = Sprite_Reflection.new(self, viewport)
end
@surfbase = Sprite_SurfBase.new(self, character, viewport) if character == $game_player
checkModifySpriteGraphics(@character) if @character
if @character && @character != $game_player
checkModifySpriteGraphics(@character) if @character.active?
end
update
end
def event_is_active?(game_event)
return !game_event.event.page.nil?
end
def checkModifySpriteGraphics(character)
return if character == $game_player || !character.name
if TYPE_EXPERTS_APPEARANCES.keys.include?(character.name.to_sym)
@@ -216,8 +222,8 @@ class Sprite_Character < RPG::Sprite
@bushbitmap = nil
#@spriteoffset = @character_name[/offset/i]
@spriteoffset = @character_name[/fish/i] || @character_name[/dive/i] || @character_name[/surf/i]
@cw = @charbitmap.width / 4
@ch = @charbitmap.height / 4
@cw = @charbitmap.width / 4 if !@charbitmap.disposed?
@ch = @charbitmap.height / 4 if !@charbitmap.disposed?
self.ox = @cw / 2
@character.sprite_size = [@cw, @ch]
end

View File

@@ -1,18 +1,18 @@
#===============================================================================
#
#===============================================================================
class Sprite_Reflection
attr_reader :visible
attr_accessor :event
def initialize(sprite,event,viewport=nil)
@rsprite = sprite
@sprite = nil
@event = event
@height = 0
def initialize(parent_sprite, viewport = nil)
@parent_sprite = parent_sprite
@sprite = nil
@height = 0
@fixedheight = false
if @event && @event!=$game_player
if @event.name[/reflection\((\d+)\)/i]
@height = $~[1].to_i || 0
@fixedheight = true
end
if @parent_sprite.character && @parent_sprite.character != $game_player &&
@parent_sprite.character.name[/reflection\((\d+)\)/i]
@height = $~[1].to_i || 0
@fixedheight = true
end
@viewport = viewport
@disposed = false
@@ -20,15 +20,19 @@ class Sprite_Reflection
end
def dispose
if !@disposed
@sprite.dispose if @sprite
@sprite = nil
@disposed = true
end
return if @disposed
@sprite&.dispose
@sprite = nil
@parent_sprite = nil
@disposed = true
end
def disposed?
@disposed
return @disposed
end
def event
return @parent_sprite.character
end
def visible=(value)
@@ -37,51 +41,53 @@ class Sprite_Reflection
end
def update
return
# return if disposed?
# shouldShow = @rsprite.visible
# if !shouldShow
# # Just-in-time disposal of sprite
# if @sprite
# @sprite.dispose
# @sprite = nil
# end
# return
# end
# # Just-in-time creation of sprite
# @sprite = Sprite.new(@viewport) if !@sprite
# if @sprite
# x = @rsprite.x-@rsprite.ox
# y = @rsprite.y-@rsprite.oy
# y -= 32 if @rsprite.character.character_name[/offset/i]
# @height = $PokemonGlobal.bridge if !@fixedheight
# y += @height*16
# width = @rsprite.src_rect.width
# height = @rsprite.src_rect.height
# @sprite.x = x+width/2
# @sprite.y = y+height+height/2
# @sprite.ox = width/2
# @sprite.oy = height/2-2 # Hard-coded 2 pixel shift up
# @sprite.oy -= @rsprite.character.bob_height*2
# @sprite.z = -50 # Still water is -100, map is 0 and above
# @sprite.zoom_x = @rsprite.zoom_x
# @sprite.zoom_y = @rsprite.zoom_y
# frame = (Graphics.frame_count%40)/10
# @sprite.zoom_x *= [1.0, 0.95, 1.0, 1.05][frame]
# @sprite.angle = 180.0
# @sprite.mirror = true
# @sprite.bitmap = @rsprite.bitmap
# @sprite.tone = @rsprite.tone
# if @height>0
# @sprite.color = Color.new(48,96,160,255) # Dark still water
# @sprite.opacity = @rsprite.opacity
# @sprite.visible = !Settings::TIME_SHADING # Can't time-tone a colored sprite
# else
# @sprite.color = Color.new(224,224,224,96)
# @sprite.opacity = @rsprite.opacity*3/4
# @sprite.visible = true
# end
# @sprite.src_rect = @rsprite.src_rect
# end
end
return if disposed?
shouldShow = @parent_sprite.visible
if !shouldShow
# Just-in-time disposal of sprite
if @sprite
@sprite.dispose
@sprite = nil
end
return
end
# Just-in-time creation of sprite
@sprite = Sprite.new(@viewport) if !@sprite
if @sprite
x = @parent_sprite.x - (@parent_sprite.ox * TilemapRenderer::ZOOM_X)
y = @parent_sprite.y - (@parent_sprite.oy * TilemapRenderer::ZOOM_Y)
y -= Game_Map::TILE_HEIGHT * TilemapRenderer::ZOOM_Y if event.character_name[/offset/i]
@height = $PokemonGlobal.bridge if !@fixedheight
y += @height * TilemapRenderer::ZOOM_Y * Game_Map::TILE_HEIGHT / 2
width = @parent_sprite.src_rect.width
height = @parent_sprite.src_rect.height
@sprite.x = x + ((width / 2) * TilemapRenderer::ZOOM_X)
@sprite.y = y + ((height + (height / 2)) * TilemapRenderer::ZOOM_Y)
@sprite.ox = width / 2
@sprite.oy = (height / 2) - 2 # Hard-coded 2 pixel shift up
@sprite.oy -= event.bob_height * 2
@sprite.z = @parent_sprite.groundY - (Graphics.height / 2)
@sprite.z -= 1000 # Still water is -2000, map is 0 and above
@sprite.z += 1 if event == $game_player
@sprite.zoom_x = @parent_sprite.zoom_x
if Settings::ANIMATE_REFLECTIONS
@sprite.zoom_x += 0.05 * @sprite.zoom_x * Math.sin(2 * Math::PI * System.uptime)
end
@sprite.zoom_y = @parent_sprite.zoom_y
@sprite.angle = 180.0
@sprite.mirror = true
@sprite.bitmap = @parent_sprite.bitmap
@sprite.tone = @parent_sprite.tone
if @height > 0
@sprite.color = Color.new(48, 96, 160, 255) # Dark still water
@sprite.opacity = @parent_sprite.opacity
@sprite.visible = !Settings::TIME_SHADING # Can't time-tone a colored sprite
else
@sprite.color = Color.new(224, 224, 224, 96)
@sprite.opacity = @parent_sprite.opacity * 3 / 4
@sprite.visible = true
end
@sprite.src_rect = @parent_sprite.src_rect
end
end
end

View File

@@ -49,7 +49,7 @@ class Spriteset_Map
$scene.map_renderer.add_tileset(@map.tileset_name)
@map.autotile_names.each do |filename|
$scene.map_renderer.add_autotile(filename)
$scene.map_renderer.add_extra_autotiles(@map.tileset_id)
$scene.map_renderer.add_extra_autotiles(@map.tileset_id,@map.map_id)
end
@panorama = AnimatedPlane.new(@@viewport0)
@@ -153,9 +153,9 @@ class Spriteset_Map
sprite.update
end
if self.map!=$game_map
@weather.fade_in(:None, 0, 20)
#@weather.fade_in(:None, 0, 20)
else
@weather.fade_in($game_screen.weather_type, $game_screen.weather_max, $game_screen.weather_duration)
@weather.fade_in($game_screen.weather_type, $game_screen.weather_power, $game_screen.weather_duration)
end
@weather.ox = tmox
@weather.oy = tmoy

View File

@@ -96,6 +96,12 @@ class Sprite_Player < Sprite_Character
def update
super
if Settings::GAME_ID == :IF_HOENN && $PokemonGlobal.diving
self.z = -4
@hat.adjust_layer if @hat
@hat2.adjust_layer if @hat2
@hair.adjust_layer if @hair
end
end
def dispose

View File

@@ -2,28 +2,29 @@
#
#===============================================================================
class TilemapRenderer
attr_reader :tilesets
attr_reader :autotiles
attr_reader :tilesets
attr_reader :autotiles
attr_reader :custom_autotile_ids
attr_accessor :tone
attr_accessor :color
attr_reader :viewport
attr_accessor :ox # Does nothing
attr_accessor :oy # Does nothing
attr_accessor :visible # Does nothing
attr_reader :viewport
attr_accessor :ox # Does nothing
attr_accessor :oy # Does nothing
attr_accessor :visible # Does nothing
DISPLAY_TILE_WIDTH = Game_Map::TILE_WIDTH rescue 32
DISPLAY_TILE_HEIGHT = Game_Map::TILE_HEIGHT rescue 32
SOURCE_TILE_WIDTH = 32
SOURCE_TILE_HEIGHT = 32
ZOOM_X = DISPLAY_TILE_WIDTH / SOURCE_TILE_WIDTH
ZOOM_Y = DISPLAY_TILE_HEIGHT / SOURCE_TILE_HEIGHT
TILESET_TILES_PER_ROW = 8
AUTOTILES_COUNT = 8 # Counting the blank tile as an autotile
TILES_PER_AUTOTILE = 48
TILESET_START_ID = AUTOTILES_COUNT * TILES_PER_AUTOTILE
DISPLAY_TILE_WIDTH = Game_Map::TILE_WIDTH rescue 32
DISPLAY_TILE_HEIGHT = Game_Map::TILE_HEIGHT rescue 32
SOURCE_TILE_WIDTH = 32
SOURCE_TILE_HEIGHT = 32
ZOOM_X = DISPLAY_TILE_WIDTH / SOURCE_TILE_WIDTH
ZOOM_Y = DISPLAY_TILE_HEIGHT / SOURCE_TILE_HEIGHT
TILESET_TILES_PER_ROW = 8
AUTOTILES_COUNT = 8 # Counting the blank tile as an autotile
TILES_PER_AUTOTILE = 48
TILESET_START_ID = AUTOTILES_COUNT * TILES_PER_AUTOTILE
# If an autotile's filename ends with "[x]", its frame duration will be x/20
# seconds instead.
AUTOTILE_FRAME_DURATION = 5 # In 1/20ths of a second
AUTOTILE_FRAME_DURATION = 5 # In 1/20ths of a second
# Filenames of extra autotiles for each tileset. Each tileset's entry is an
# array containing two other arrays (you can leave either of those empty, but
@@ -44,9 +45,84 @@ class TilemapRenderer
# 6 => [["Water rock", "Sea deep"], []]
EXTRA_AUTOTILES = {
# 23 => {
# 384 => "flowers_pink",
# }
1 => { #route-field
996 => "flowers_orange[10]",
991 => "flowers_pink[10]",
999 => "flowers_yellow[10]",
1007 => "flowers_blue[10]",
1015 => "flowers_purple[10]",
1023 => "flowers_red[10]",
1031 => "flowers_grey[10]",
1039 => "flowers_white[10]",
},
2 => { #small-town
996 => "flowers_orange[10]",
991 => "flowers_pink[10]",
999 => "flowers_yellow[10]",
1007 => "flowers_blue[10]",
1015 => "flowers_purple[10]",
1023 => "flowers_red[10]",
1031 => "flowers_grey[10]",
1039 => "flowers_white[10]",
},
23 => { #outdoor
1232 => "flowers_orange[10]",
1240 => "flowers_pink[10]",
1248 => "flowers_yellow[10]",
1256 => "flowers_blue[10]",
1264 => "flowers_purple[10]",
1272 => "flowers_red[10]",
1280 => "flowers_grey[10]",
1288 => "flowers_white[10]",
},
30 => {
2620 => "flowers_orange[10]",
2628 => "flowers_pink[10]",
2636 => "flowers_yellow[10]",
2644 => "flowers_blue[10]",
2652 => "flowers_purple[10]",
2660 => "flowers_red[10]",
2668 => "flowers_grey[10]",
2676 => "flowers_white[10]",
}
}
WIND_TREE_AUTOTILES = {
1 => { #Route-field
864 => "tree_sway_single_1",
865 => "tree_sway_single_2",
872 => "tree_sway_single_3",
873 => "tree_sway_single_4",
880 => "tree_sway_single_5",
881 => "tree_sway_single_6",
866 => "tree_sway_group_1",
867 => "tree_sway_group_2",
874 => "tree_sway_group_3",
875 => "tree_sway_group_4",
},
2 => { #small-town
#trees
864 => "tree_sway_single_1",
865 => "tree_sway_single_2",
872 => "tree_sway_single_3",
873 => "tree_sway_single_4",
880 => "tree_sway_single_5",
881 => "tree_sway_single_6",
866 => "tree_sway_group_1",
867 => "tree_sway_group_2",
874 => "tree_sway_group_3",
875 => "tree_sway_group_4",
},
}
#=============================================================================
@@ -57,11 +133,11 @@ class TilemapRenderer
attr_accessor :bitmaps
def initialize
@bitmaps = {}
@bitmap_wraps = {} # Whether each tileset is a mega texture and has multiple columns
@load_counts = {}
@bridge = 0
@changed = true
@bitmaps = {}
@bitmap_wraps = {} # Whether each tileset is a mega texture and has multiple columns
@load_counts = {}
@bridge = 0
@changed = true
end
def [](filename)
@@ -129,10 +205,10 @@ class TilemapRenderer
def initialize
super
@frame_counts = {} # Number of frames in each autotile
@frame_durations = {} # How long each frame lasts per autotile
@current_frames = {} # Which frame each autotile is currently showing
@timer = 0.0#System.uptime
@frame_counts = {} # Number of frames in each autotile
@frame_durations = {} # How long each frame lasts per autotile
@current_frames = {} # Which frame each autotile is currently showing
@timer = 0.0 # System.uptime
end
def []=(filename, value)
@@ -142,28 +218,52 @@ class TilemapRenderer
set_current_frame(filename)
end
EXPANDED_AUTOTILES_FOLDER = "Graphics/Autotiles/ExpandedAutotiles/"
def add(filename)
return if nil_or_empty?(filename)
if @bitmaps[filename]
@load_counts[filename] += 1
return
end
orig_bitmap = pbGetAutotile(filename)
@bitmap_wraps[filename] = false
duration = AUTOTILE_FRAME_DURATION
if filename[/\[\s*(\d+?)\s*\]\s*$/]
duration = $~[1].to_i
# Try to load expanded autotile from cache first
cached_path = File.join("Graphics", "Autotiles/ExpandedAutotiles", "#{filename}.png")
if safeExists?(cached_path)
#echoln "Loading cached expanded autotile for #{filename}"
bitmap = RPG::Cache.load_bitmap(EXPANDED_AUTOTILES_FOLDER, filename)
duration = AUTOTILE_FRAME_DURATION
if filename[/\[\s*(\d+?)\s*\]\s*$/]
duration = $~[1].to_i
end
@frame_durations[filename] = duration.to_f / 20
else
orig_bitmap = pbGetAutotile(filename)
@bitmap_wraps[filename] = false
duration = AUTOTILE_FRAME_DURATION
if filename[/\[\s*(\d+?)\s*\]\s*$/]
duration = $~[1].to_i
end
@frame_durations[filename] = duration.to_f / 20
expanded_bitmap = AutotileExpander.expand(orig_bitmap)
# Save expanded bitmap to cache for next time
Dir.mkdir(EXPANDED_AUTOTILES_FOLDER) unless Dir.exist?(EXPANDED_AUTOTILES_FOLDER)
expanded_bitmap.save_to_png(cached_path)
bitmap = expanded_bitmap
orig_bitmap.dispose if orig_bitmap != expanded_bitmap
end
@frame_durations[filename] = duration.to_f / 20
bitmap = AutotileExpander.expand(orig_bitmap)
self[filename] = bitmap
if bitmap.height > SOURCE_TILE_HEIGHT && bitmap.height < TILES_PER_AUTOTILE * SOURCE_TILE_HEIGHT
@bitmap_wraps[filename] = true
end
orig_bitmap.dispose if orig_bitmap != bitmap
@load_counts[filename] = 1
end
def remove(filename)
super
return if @load_counts[filename] && @load_counts[filename] > 0
@@ -203,15 +303,24 @@ class TilemapRenderer
end
def set_src_rect(tile, tile_id)
return if nil_or_empty?(tile.filename)
return if !@bitmaps[tile.filename]
frame = current_frame(tile.filename)
if @bitmaps[tile.filename].height == SOURCE_TILE_HEIGHT
filename = tile.filename
# Check if this tile_id was overridden to use a specific autotile
override_filename = @custom_autotile_ids && @custom_autotile_ids[tile_id]
filename = override_filename if override_filename
return if nil_or_empty?(filename)
return unless @bitmaps[filename]
frame = current_frame(filename)
if @bitmaps[filename].height == SOURCE_TILE_HEIGHT
tile.src_rect.x = frame * SOURCE_TILE_WIDTH
tile.src_rect.y = 0
return
end
wraps = @bitmap_wraps[tile.filename]
wraps = @bitmap_wraps[filename]
high_id = ((tile_id % TILES_PER_AUTOTILE) >= TILES_PER_AUTOTILE / 2)
tile.src_rect.x = 0
tile.src_rect.y = (tile_id % TILES_PER_AUTOTILE) * SOURCE_TILE_HEIGHT
@@ -220,6 +329,9 @@ class TilemapRenderer
tile.src_rect.y -= SOURCE_TILE_HEIGHT * TILES_PER_AUTOTILE / 2
end
tile.src_rect.x += frame * SOURCE_TILE_WIDTH * (wraps ? 2 : 1)
# Override the filename in the tile object for consistency
tile.filename = filename if override_filename
end
def update
@@ -245,61 +357,63 @@ class TilemapRenderer
attr_accessor :animated
attr_accessor :priority
attr_accessor :shows_reflection
attr_accessor :underwater_tile
attr_accessor :bridge
attr_accessor :need_refresh
def set_bitmap(filename, tile_id, autotile, animated, priority, bitmap)
self.bitmap = bitmap
self.src_rect = Rect.new(0, 0, SOURCE_TILE_WIDTH, SOURCE_TILE_HEIGHT)
self.zoom_x = ZOOM_X
self.zoom_y = ZOOM_Y
@filename = filename
@tile_id = tile_id
@is_autotile = autotile
@animated = animated
@priority = priority
self.bitmap = bitmap
self.src_rect = Rect.new(0, 0, SOURCE_TILE_WIDTH, SOURCE_TILE_HEIGHT)
self.zoom_x = ZOOM_X
self.zoom_y = ZOOM_Y
@filename = filename
@tile_id = tile_id
@is_autotile = autotile
@animated = animated
@priority = priority
@shows_reflection = false
@bridge = false
self.visible = !bitmap.nil?
@need_refresh = true
@bridge = false
self.visible = !bitmap.nil?
@need_refresh = true
end
end
#-----------------------------------------------------------------------------
def initialize(viewport)
@tilesets = TilesetBitmaps.new
@autotiles = AutotileBitmaps.new
@tilesets = TilesetBitmaps.new
@autotiles = AutotileBitmaps.new
@custom_autotile_ids = {} # key: tile_id, value: filename
@tiles_horizontal_count = (Graphics.width.to_f / DISPLAY_TILE_WIDTH).ceil + 1
@tiles_vertical_count = (Graphics.height.to_f / DISPLAY_TILE_HEIGHT).ceil + 1
@tone = Tone.new(0, 0, 0, 0)
@old_tone = Tone.new(0, 0, 0, 0)
@color = Color.new(0, 0, 0, 0)
@old_color = Color.new(0, 0, 0, 0)
@self_viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport = (viewport) ? viewport : @self_viewport
@old_viewport_ox = 0
@old_viewport_oy = 0
@tiles_vertical_count = (Graphics.height.to_f / DISPLAY_TILE_HEIGHT).ceil + 1
@tone = Tone.new(0, 0, 0, 0)
@old_tone = Tone.new(0, 0, 0, 0)
@color = Color.new(0, 0, 0, 0)
@old_color = Color.new(0, 0, 0, 0)
@self_viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport = (viewport) ? viewport : @self_viewport
@old_viewport_ox = 0
@old_viewport_oy = 0
# NOTE: The extra tiles horizontally/vertically hang off the left and top
# edges of the screen, because the pixel_offset values are positive
# and are added to the tile sprite coordinates.
@tiles = []
@tiles = []
@tiles_horizontal_count.times do |i|
@tiles[i] = []
@tiles_vertical_count.times do |j|
@tiles[i][j] = Array.new(3) { TileSprite.new(@viewport) }
end
end
@current_map_id = 0
@tile_offset_x = 0
@tile_offset_y = 0
@pixel_offset_x = 0
@pixel_offset_y = 0
@ox = 0
@oy = 0
@visible = true
@need_refresh = true
@disposed = false
@current_map_id = 0
@tile_offset_x = 0
@tile_offset_y = 0
@pixel_offset_x = 0
@pixel_offset_y = 0
@ox = 0
@oy = 0
@visible = true
@need_refresh = true
@disposed = false
end
def dispose
@@ -342,10 +456,22 @@ class TilemapRenderer
@autotiles.remove(filename)
end
def add_extra_autotiles(tileset_id)
return if !EXTRA_AUTOTILES[tileset_id]
EXTRA_AUTOTILES[tileset_id].each do |arr|
arr.each { |filename| add_autotile(filename) }
def get_autotile_overrides(tileset_id,map_id)
base_overrides = EXTRA_AUTOTILES[tileset_id] || {}
return base_overrides unless $game_weather
wind_overrides =WIND_TREE_AUTOTILES[tileset_id] || {}
if $game_weather.map_current_weather_type(map_id) == :Wind && WIND_TREE_AUTOTILES[tileset_id]
return base_overrides.merge(wind_overrides)
end
return base_overrides
end
def add_extra_autotiles(tileset_id,map_id)
overrides = get_autotile_overrides(tileset_id,map_id)
return if !overrides || overrides.empty?
overrides.each do |tile_id, filename|
@autotiles.add(filename)
@custom_autotile_ids[tile_id] = filename
end
end
@@ -367,28 +493,38 @@ class TilemapRenderer
if tile_id < TILES_PER_AUTOTILE
tile.set_bitmap("", tile_id, false, false, 0, nil)
tile.shows_reflection = false
tile.bridge = false
tile.bridge = false
else
terrain_tag = map.terrain_tags[tile_id] || 0
terrain_tag_data = GameData::TerrainTag.try_get(terrain_tag)
priority = map.priorities[tile_id] || 0
single_autotile_start_id = TILESET_START_ID
true_tileset_start_id = TILESET_START_ID
extra_autotile_arrays = EXTRA_AUTOTILES[map.tileset_id]
if extra_autotile_arrays
large_autotile_count = extra_autotile_arrays[0].length
single_autotile_count = extra_autotile_arrays[1].length
single_autotile_start_id += large_autotile_count * TILES_PER_AUTOTILE
true_tileset_start_id += large_autotile_count * TILES_PER_AUTOTILE
true_tileset_start_id += single_autotile_count
end
if tile_id < true_tileset_start_id
filename = ""
if tile_id < TILESET_START_ID # Real autotiles
# extra_autotile_arrays = EXTRA_AUTOTILES[map.tileset_id]
# if extra_autotile_arrays
# large_autotile_count = extra_autotile_arrays[0].length
# single_autotile_count = extra_autotile_arrays[1].length
# single_autotile_start_id += large_autotile_count * TILES_PER_AUTOTILE
# true_tileset_start_id += large_autotile_count * TILES_PER_AUTOTILE
# true_tileset_start_id += single_autotile_count
# end
filename = nil
extra_autotile_hash = get_autotile_overrides(map.tileset_id,map.map_id)
if extra_autotile_hash && extra_autotile_hash[tile_id]
# Custom tile_id override
filename = extra_autotile_hash[tile_id]
tile.set_bitmap(filename, tile_id, true, @autotiles.animated?(filename),
priority, @autotiles[filename])
elsif tile_id < true_tileset_start_id
# Default behavior
if tile_id < TILESET_START_ID # Real autotiles
filename = map.autotile_names[(tile_id / TILES_PER_AUTOTILE) - 1]
elsif tile_id < single_autotile_start_id # Large extra autotiles
elsif tile_id < single_autotile_start_id # Large extra autotiles
filename = extra_autotile_arrays[0][(tile_id - TILESET_START_ID) / TILES_PER_AUTOTILE]
else # Single extra autotiles
else
# Single extra autotiles
filename = extra_autotile_arrays[1][tile_id - single_autotile_start_id]
end
tile.set_bitmap(filename, tile_id, true, @autotiles.animated?(filename),
@@ -397,8 +533,10 @@ class TilemapRenderer
filename = map.tileset_name
tile.set_bitmap(filename, tile_id, false, false, priority, @tilesets[filename])
end
tile.shows_reflection = terrain_tag_data&.shows_reflections
tile.bridge = terrain_tag_data&.bridge
tile.underwater_tile = terrain_tag_data&.underwater
tile.bridge = terrain_tag_data&.bridge
end
refresh_tile_src_rect(tile, tile_id)
end
@@ -424,8 +562,8 @@ class TilemapRenderer
end
def refresh_tile_z(tile, map, y, layer, tile_id)
if tile.shows_reflection
tile.z = -100
if tile.underwater_tile#tile.shows_reflection -2000
tile.z = -5
elsif tile.bridge && $PokemonGlobal.bridge > 0
tile.z = 0
else
@@ -453,7 +591,7 @@ class TilemapRenderer
@tile_offset_x -= offsets[0]
@tile_offset_y -= offsets[1]
else
ret = true # Need a full refresh
ret = true # Need a full refresh
end
else
ret = true
@@ -562,7 +700,7 @@ class TilemapRenderer
@screen_moved_vertically = false
if $PokemonGlobal.bridge != @bridge
@bridge = $PokemonGlobal.bridge
@screen_moved_vertically = true # To update bridge tiles' z values
@screen_moved_vertically = true # To update bridge tiles' z values
end
do_full_refresh = true if check_if_screen_moved
# Update all tile sprites
@@ -615,7 +753,7 @@ class TilemapRenderer
coord.each do |tile|
tile.set_bitmap("", 0, false, false, 0, nil)
tile.shows_reflection = false
tile.bridge = false
tile.bridge = false
end
end
end

View File

@@ -170,7 +170,7 @@ def createMinimap(mapid)
map = load_data(sprintf("Data/Map%03d.rxdata", mapid)) rescue nil
return Bitmap.new(32, 32) if !map
bitmap = Bitmap.new(map.width * 4, map.height * 4)
black = Color.black
black=Color.new(0,0,0)
tilesets = $data_tilesets
tileset = tilesets[map.tileset_id]
return bitmap if !tileset

View File

@@ -101,6 +101,7 @@ end
# volume -- Volume of the file, up to 100
# pitch -- Pitch of the file, normally 100
def pbMEPlay(param,volume=nil,pitch=nil)
echoln param
return if !param
param=pbResolveAudioFile(param,volume,pitch)
if param.name && param.name!=""

View File

@@ -33,11 +33,17 @@ module GameData
return other if other.is_a?(self)
other = other.to_sym if other.is_a?(String)
#B1H1 - old format (still supported)
if other.to_s.match?(/\AB\d+H\d+\z/)
species = GameData::FusedSpecies.new(other)
return species
end
if other.to_s.include?("/")
species = GameData::FusedSpecies.new(other)
return species
end
if other.is_a?(Integer) && self == GameData::Species
if other > NB_POKEMON
body_id = getBodyID(other)
@@ -67,10 +73,16 @@ module GameData
return other if other.is_a?(self)
other = other.to_sym if other.is_a?(String)
if other.to_s.match?(/\AB\d+H\d+\z/)
if other.to_s.match?(/\AB\d+H\d+\z/) #old format (still supported)
species = GameData::FusedSpecies.new(other)
return species
end
if other.to_s.include?("_x_") #new format
species = GameData::FusedSpecies.new(other)
return species
end
if other.is_a?(Integer) && self == GameData::Species
if other > NB_POKEMON
body_id = getBodyID(other)

View File

@@ -29,6 +29,7 @@ module GameData
attr_reader :flower
attr_reader :trashcan
attr_reader :sharpedoObstacle
attr_reader :underwater #only visible when diving
DATA = {}
@@ -67,9 +68,10 @@ module GameData
@ice = hash[:ice] || false
@waterCurrent = hash[:waterCurrent] || false
@bridge = hash[:bridge] || false
@shows_reflections = false #= hash[:shows_reflections] || false
@shows_reflections = hash[:shows_reflections] || false
@must_walk = hash[:must_walk] || false
@ignore_passability = hash[:ignore_passability] || false
@ignore_passability = hash[:ignore_passability] || false
@flowerRed = hash[:flowerRed] || false
@flowerYellow = hash[:flowerYellow] || false
@@ -78,6 +80,7 @@ module GameData
@flower = hash[:flower] || false
@trashcan = hash[:trashcan] || false
@sharpedoObstacle = hash[:sharpedoObstacle] || false
@underwater = hash[:underwater] || false
end
@@ -138,14 +141,7 @@ GameData::TerrainTag.register({
:battle_environment => :MovingWater
})
GameData::TerrainTag.register({
:id => :StillWater,
:id_number => 17,
:can_surf => true,
:can_fish => true,
:battle_environment => :StillWater
#:shows_reflections => true
})
GameData::TerrainTag.register({
:id => :Water,
@@ -183,6 +179,7 @@ GameData::TerrainTag.register({
GameData::TerrainTag.register({
:id => :UnderwaterGrass,
:id_number => 11,
:underwater => true,
:land_wild_encounters => true
})
@@ -220,7 +217,7 @@ GameData::TerrainTag.register({
:id => :Puddle,
:id_number => 16,
:battle_environment => :Puddle,
:shows_reflections => true
:shows_reflections => false
})
GameData::TerrainTag.register({
@@ -286,4 +283,20 @@ GameData::TerrainTag.register({
:shows_grass_rustle => true,
:land_wild_encounters => true,
:battle_environment => :Grass
})
GameData::TerrainTag.register({
:id => :StillWater,
:id_number => 27,
:can_surf => true,
:can_fish => true,
:battle_environment => :StillWater,
:shows_reflections => true
})
GameData::TerrainTag.register({
:id => :Underwater,
:id_number => 28,
:battle_environment => :underwater,
:underwater => true,
})

View File

@@ -22,6 +22,7 @@ module GameData
attr_reader :tile_delta_x
attr_reader :tile_delta_y
attr_reader :tone_proc
attr_reader :fog_name
DATA = {}
@@ -43,6 +44,8 @@ module GameData
@tile_delta_y = hash[:tile_delta_y] || 0
@graphics = hash[:graphics] || []
@tone_proc = hash[:tone_proc]
@fog_name = hash[:fog_name]
end
def has_particles?
@@ -150,7 +153,7 @@ GameData::Weather.register({
:id_number => 7,
:category => :Sun,
:tone_proc => proc { |strength|
next Tone.new(64, 64, 32, 0)
next Tone.new(32, 32, 16, 0)
}
})
@@ -158,16 +161,34 @@ GameData::Weather.register({
:id => :Fog,
:category => :Fog,
:id_number => 8,
:tile_delta_x => -32,
:tile_delta_x => -2,
:tile_delta_y => 0,
:graphics => [nil, ["fog_tile"]]
:fog_name => "fog_tile"
})
GameData::Weather.register({
:id => :Wind,
:category => :StrongWinds,
:id_number => 9,
:particle_delta_x => -1000,
:particle_delta_y => 0,
:graphics => [["wind1","wind2","wind3","windleaf1","windleaf2"], nil]
})
GameData::Weather.register({
:id => :StrongWinds,
:category => :StrongWinds,
:id_number => 9,
:tile_delta_x => -1200,
:tile_delta_y => 0,
:graphics => [nil, ["strong_winds"]]
:id_number => 10,
:particle_delta_x => -1000,
:particle_delta_y => 0,
:graphics => [["wind1","wind2","wind3","windleaf1","windleaf2"], nil]
})
GameData::Weather.register({
:id => :HarshSun,
:id_number => 11,
:category => :Sun,
:tone_proc => proc { |strength|
next Tone.new(64, 64, 32, 0)
}
})

View File

@@ -30,63 +30,63 @@ end
GameData::EncounterType.register({
:id => :Land,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :Land1,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :Land2,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :Land3,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :LandDay,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :LandNight,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :LandMorning,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :LandAfternoon,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})
GameData::EncounterType.register({
:id => :LandEvening,
:type => :land,
:trigger_chance => 21,
:trigger_chance => 10,
:old_slots => [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
})

Some files were not shown because too many files have changed in this diff Show More