release beta 1

This commit is contained in:
infinitefusion
2021-09-04 13:23:05 -04:00
parent 0672b5823e
commit 82681f4611
55 changed files with 1312 additions and 39949 deletions

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

@@ -192,6 +192,11 @@ class Game_Character
return self.map.terrain_tag(@x, @y)
end
def cancelMoveRoute()
@move_route=nil
@move_route_forcing = false
end
def bush_depth
return @bush_depth || 0
end

View File

@@ -4,7 +4,7 @@ module GameData
attr_reader :id_number
attr_reader :real_name
attr_reader :can_surf
attr_reader :waterfall # The main part only, not the crest
attr_reader :waterfall # The main part only, not the crest
attr_reader :waterfall_crest
attr_reader :can_fish
attr_reader :can_dive
@@ -36,28 +36,29 @@ module GameData
end
def self.load; end
def self.save; end
def initialize(hash)
@id = hash[:id]
@id_number = hash[:id_number]
@real_name = hash[:id].to_s || "Unnamed"
@can_surf = hash[:can_surf] || false
@waterfall = hash[:waterfall] || false
@waterfall_crest = hash[:waterfall_crest] || false
@can_fish = hash[:can_fish] || false
@can_dive = hash[:can_dive] || false
@deep_bush = hash[:deep_bush] || false
@shows_grass_rustle = hash[:shows_grass_rustle] || false
@land_wild_encounters = hash[:land_wild_encounters] || false
@id = hash[:id]
@id_number = hash[:id_number]
@real_name = hash[:id].to_s || "Unnamed"
@can_surf = hash[:can_surf] || false
@waterfall = hash[:waterfall] || false
@waterfall_crest = hash[:waterfall_crest] || false
@can_fish = hash[:can_fish] || false
@can_dive = hash[:can_dive] || false
@deep_bush = hash[:deep_bush] || false
@shows_grass_rustle = hash[:shows_grass_rustle] || false
@land_wild_encounters = hash[:land_wild_encounters] || false
@double_wild_encounters = hash[:double_wild_encounters] || false
@battle_environment = hash[:battle_environment]
@ledge = hash[:ledge] || false
@ice = hash[:ice] || false
@bridge = hash[:bridge] || false
@shows_reflections = hash[:shows_reflections] || false
@must_walk = hash[:must_walk] || false
@ignore_passability = hash[:ignore_passability] || false
@battle_environment = hash[:battle_environment]
@ledge = hash[:ledge] || false
@ice = hash[:ice] || false
@bridge = hash[:bridge] || false
@shows_reflections = false #= hash[:shows_reflections] || false
@must_walk = hash[:must_walk] || false
@ignore_passability = hash[:ignore_passability] || false
end
def can_surf_freely
@@ -69,134 +70,134 @@ end
#===============================================================================
GameData::TerrainTag.register({
:id => :None,
:id_number => 0
})
:id => :None,
:id_number => 0
})
GameData::TerrainTag.register({
:id => :Ledge,
:id_number => 1,
:ledge => true
})
:id => :Ledge,
:id_number => 1,
:ledge => true
})
GameData::TerrainTag.register({
:id => :Grass,
:id_number => 2,
:shows_grass_rustle => true,
:land_wild_encounters => true,
:battle_environment => :Grass
})
:id => :Grass,
:id_number => 2,
:shows_grass_rustle => true,
:land_wild_encounters => true,
:battle_environment => :Grass
})
GameData::TerrainTag.register({
:id => :Sand,
:id_number => 3,
:battle_environment => :Sand
})
:id => :Sand,
:id_number => 3,
:battle_environment => :Sand
})
GameData::TerrainTag.register({
:id => :Rock,
:id_number => 15,
:battle_environment => :Rock
})
:id => :Rock,
:id_number => 15,
:battle_environment => :Rock
})
GameData::TerrainTag.register({
:id => :DeepWater,
:id_number => 5,
:can_surf => true,
:can_fish => true,
:can_dive => true,
:battle_environment => :MovingWater
})
:id => :DeepWater,
:id_number => 5,
:can_surf => true,
:can_fish => true,
:can_dive => true,
:battle_environment => :MovingWater
})
GameData::TerrainTag.register({
:id => :WaterCurrent,
:id_number => 6,
:can_surf => true,
:can_fish => true,
:battle_environment => :MovingWater
})
:id => :WaterCurrent,
:id_number => 6,
:can_surf => true,
:can_fish => true,
:battle_environment => :MovingWater
})
GameData::TerrainTag.register({
:id => :StillWater,
:id_number => 17,
:can_surf => true,
:can_fish => true,
:battle_environment => :StillWater
#:shows_reflections => true
})
:id => :StillWater,
:id_number => 17,
:can_surf => true,
:can_fish => true,
:battle_environment => :StillWater
#:shows_reflections => true
})
GameData::TerrainTag.register({
:id => :Water,
:id_number => 7,
:can_surf => true,
:can_fish => true,
:battle_environment => :MovingWater
})
:id => :Water,
:id_number => 7,
:can_surf => true,
:can_fish => true,
:battle_environment => :MovingWater
})
GameData::TerrainTag.register({
:id => :Waterfall,
:id_number => 8,
:can_surf => true,
:waterfall => true
})
:id => :Waterfall,
:id_number => 8,
:can_surf => true,
:waterfall => true
})
GameData::TerrainTag.register({
:id => :WaterfallCrest,
:id_number => 9,
:can_surf => true,
:can_fish => true,
:waterfall_crest => true
})
:id => :WaterfallCrest,
:id_number => 9,
:can_surf => true,
:can_fish => true,
:waterfall_crest => true
})
GameData::TerrainTag.register({
:id => :TallGrass,
:id_number => 10,
:deep_bush => true,
:land_wild_encounters => true,
:double_wild_encounters => true,
:battle_environment => :TallGrass,
:must_walk => true
})
:id => :TallGrass,
:id_number => 10,
:deep_bush => true,
:land_wild_encounters => true,
:double_wild_encounters => true,
:battle_environment => :TallGrass,
:must_walk => true
})
GameData::TerrainTag.register({
:id => :UnderwaterGrass,
:id_number => 11,
:land_wild_encounters => true
})
:id => :UnderwaterGrass,
:id_number => 11,
:land_wild_encounters => true
})
GameData::TerrainTag.register({
:id => :Ice,
:id_number => 12,
:battle_environment => :Ice,
:ice => true,
:must_walk => true
})
:id => :Ice,
:id_number => 12,
:battle_environment => :Ice,
:ice => true,
:must_walk => true
})
GameData::TerrainTag.register({
:id => :Neutral,
:id_number => 13,
:ignore_passability => true
})
:id => :Neutral,
:id_number => 13,
:ignore_passability => true
})
# NOTE: This is referenced by ID in an Events.onStepTakenFieldMovement proc that
# adds soot to the Soot Sack if the player walks over one of these tiles.
GameData::TerrainTag.register({
:id => :SootGrass,
:id_number => 14,
:shows_grass_rustle => true,
:land_wild_encounters => true,
:battle_environment => :Grass
})
:id => :SootGrass,
:id_number => 14,
:shows_grass_rustle => true,
:land_wild_encounters => true,
:battle_environment => :Grass
})
GameData::TerrainTag.register({
:id => :Bridge,
:id_number => 4,
:bridge => true
})
:id => :Bridge,
:id_number => 4,
:bridge => true
})
GameData::TerrainTag.register({
:id => :Puddle,
:id_number => 16,
:battle_environment => :Puddle,
:shows_reflections => false
})
:id => :Puddle,
:id_number => 16,
:battle_environment => :Puddle,
:shows_reflections => false
})

View File

@@ -177,6 +177,7 @@ class PokeBattle_Battle
# For "1v2" names, the first number is for the player's side and the second
# number is for the opposing side.
def setBattleMode(mode)
default = $game_variables[242].is_a?(Array) ? $game_variables[242] : [1,1]
@sideSizes =
case mode
when "triple", "3v3" then [3, 3]
@@ -187,7 +188,7 @@ class PokeBattle_Battle
when "2v1" then [2, 1]
when "1v3" then [1, 3]
when "1v2" then [1, 2]
else [1, 1] # Single, 1v1 (default)
else default # Single, 1v1 (default)
end
end

View File

@@ -136,7 +136,9 @@ class PokeBattle_Scene
playerBase = "Graphics/Battlebacks/playerbase/"+baseFilename
enemyBase = "Graphics/Battlebacks/enemybase/"+baseFilename
messageBG = "Graphics/Battlebacks/"+messageFilename+"_message"
if !pbResolveBitmap(messageBG)
messageBG = "Graphics/Battlebacks/default_message"
end
# Apply graphics
bg = pbAddSprite("battle_bg",0,0,battleBG,@viewport)
bg.z = 0

View File

@@ -120,7 +120,7 @@ end
def pbPrepareBattle(battle)
battleRules = $PokemonTemp.battleRules
# The size of the battle, i.e. how many Pokémon on each side (default: "single")
battle.setBattleMode(battleRules["size"]) if !battleRules["size"].nil?
battle.setBattleMode(battleRules["size"]) if !battleRules["size"].nil? || $game_switches[NEW_GAME_PLUS]
# Whether the game won't black out even if the player loses (default: false)
battle.canLose = battleRules["canLose"] if !battleRules["canLose"].nil?
# Whether the player can choose to run from the battle (default: true)

View File

@@ -168,6 +168,7 @@ class PokemonIconSprite < SpriteWrapper
bodyPoke_number = getBodyID(pokemon.species)
headPoke_number = getHeadID(pokemon.species, bodyPoke_number)
bodyPoke = GameData::Species.get(bodyPoke_number).species
headPoke = GameData::Species.get(headPoke_number).species

View File

@@ -15,17 +15,17 @@ class PokemonSystem
attr_accessor :textinput
def initialize
@textspeed = 1 # Text speed (0=slow, 1=normal, 2=fast)
@battlescene = 0 # Battle effects (animations) (0=on, 1=off)
@battlestyle = 0 # Battle style (0=switch, 1=set)
@frame = 0 # Default window frame (see also Settings::MENU_WINDOWSKINS)
@textskin = 0 # Speech frame
@screensize = (Settings::SCREEN_SCALE * 2).floor - 1 # 0=half size, 1=full size, 2=full-and-a-half size, 3=double size
@language = 0 # Language (see also Settings::LANGUAGES in script PokemonSystem)
@runstyle = 0 # Default movement speed (0=walk, 1=run)
@bgmvolume = 100 # Volume of background music and ME
@sevolume = 100 # Volume of sound effects
@textinput = 1 # Text input mode (0=cursor, 1=keyboard)
@textspeed = 1 # Text speed (0=slow, 1=normal, 2=fast)
@battlescene = 0 # Battle effects (animations) (0=on, 1=off)
@battlestyle = 0 # Battle style (0=switch, 1=set)
@frame = 0 # Default window frame (see also Settings::MENU_WINDOWSKINS)
@textskin = 0 # Speech frame
@screensize = (Settings::SCREEN_SCALE * 2).floor - 1 # 0=half size, 1=full size, 2=full-and-a-half size, 3=double size
@language = 0 # Language (see also Settings::LANGUAGES in script PokemonSystem)
@runstyle = 0 # Default movement speed (0=walk, 1=run)
@bgmvolume = 100 # Volume of background music and ME
@sevolume = 100 # Volume of sound effects
@textinput = 1 # Text input mode (0=cursor, 1=keyboard)
end
end
@@ -50,22 +50,22 @@ class EnumOption
attr_reader :values
attr_reader :name
def initialize(name,options,getProc,setProc)
@name = name
@values = options
def initialize(name, options, getProc, setProc)
@name = name
@values = options
@getProc = getProc
@setProc = setProc
end
def next(current)
index = current+1
index = @values.length-1 if index>@values.length-1
index = current + 1
index = @values.length - 1 if index > @values.length - 1
return index
end
def prev(current)
index = current-1
index = 0 if index<0
index = current - 1
index = 0 if index < 0
return index
end
end
@@ -78,22 +78,22 @@ class EnumOption2
attr_reader :values
attr_reader :name
def initialize(name,options,getProc,setProc)
@name = name
@values = options
def initialize(name, options, getProc, setProc)
@name = name
@values = options
@getProc = getProc
@setProc = setProc
end
def next(current)
index = current+1
index = @values.length-1 if index>@values.length-1
index = current + 1
index = @values.length - 1 if index > @values.length - 1
return index
end
def prev(current)
index = current-1
index = 0 if index<0
index = current - 1
index = 0 if index < 0
return index
end
end
@@ -107,26 +107,26 @@ class NumberOption
attr_reader :optstart
attr_reader :optend
def initialize(name,optstart,optend,getProc,setProc)
@name = name
def initialize(name, optstart, optend, getProc, setProc)
@name = name
@optstart = optstart
@optend = optend
@getProc = getProc
@setProc = setProc
@optend = optend
@getProc = getProc
@setProc = setProc
end
def next(current)
index = current+@optstart
index = current + @optstart
index += 1
index = @optstart if index>@optend
return index-@optstart
index = @optstart if index > @optend
return index - @optstart
end
def prev(current)
index = current+@optstart
index = current + @optstart
index -= 1
index = @optend if index<@optstart
return index-@optstart
index = @optend if index < @optstart
return index - @optstart
end
end
@@ -139,27 +139,27 @@ class SliderOption
attr_reader :optstart
attr_reader :optend
def initialize(name,optstart,optend,optinterval,getProc,setProc)
@name = name
@optstart = optstart
@optend = optend
def initialize(name, optstart, optend, optinterval, getProc, setProc)
@name = name
@optstart = optstart
@optend = optend
@optinterval = optinterval
@getProc = getProc
@setProc = setProc
@getProc = getProc
@setProc = setProc
end
def next(current)
index = current+@optstart
index = current + @optstart
index += @optinterval
index = @optend if index>@optend
return index-@optstart
index = @optend if index > @optend
return index - @optstart
end
def prev(current)
index = current+@optstart
index = current + @optstart
index -= @optinterval
index = @optstart if index<@optstart
return index-@optstart
index = @optstart if index < @optstart
return index - @optstart
end
end
@@ -169,92 +169,92 @@ end
class Window_PokemonOption < Window_DrawableCommand
attr_reader :mustUpdateOptions
def initialize(options,x,y,width,height)
def initialize(options, x, y, width, height)
@options = options
@nameBaseColor = Color.new(24*8,15*8,0)
@nameShadowColor = Color.new(31*8,22*8,10*8)
@selBaseColor = Color.new(31*8,6*8,3*8)
@selShadowColor = Color.new(31*8,17*8,16*8)
@nameBaseColor = Color.new(24 * 8, 15 * 8, 0)
@nameShadowColor = Color.new(31 * 8, 22 * 8, 10 * 8)
@selBaseColor = Color.new(31 * 8, 6 * 8, 3 * 8)
@selShadowColor = Color.new(31 * 8, 17 * 8, 16 * 8)
@optvalues = []
@mustUpdateOptions = false
for i in 0...@options.length
@optvalues[i] = 0
end
super(x,y,width,height)
super(x, y, width, height)
end
def [](i)
return @optvalues[i]
end
def []=(i,value)
def []=(i, value)
@optvalues[i] = value
refresh
end
def setValueNoRefresh(i,value)
def setValueNoRefresh(i, value)
@optvalues[i] = value
end
def itemCount
return @options.length+1
return @options.length + 1
end
def drawItem(index,_count,rect)
rect = drawCursor(index,rect)
optionname = (index==@options.length) ? _INTL("Cancel") : @options[index].name
optionwidth = rect.width*9/20
pbDrawShadowText(self.contents,rect.x,rect.y,optionwidth,rect.height,optionname,
@nameBaseColor,@nameShadowColor)
return if index==@options.length
def drawItem(index, _count, rect)
rect = drawCursor(index, rect)
optionname = (index == @options.length) ? _INTL("Cancel") : @options[index].name
optionwidth = rect.width * 9 / 20
pbDrawShadowText(self.contents, rect.x, rect.y, optionwidth, rect.height, optionname,
@nameBaseColor, @nameShadowColor)
return if index == @options.length
if @options[index].is_a?(EnumOption)
if @options[index].values.length>1
if @options[index].values.length > 1
totalwidth = 0
for value in @options[index].values
totalwidth += self.contents.text_size(value).width
end
spacing = (optionwidth-totalwidth)/(@options[index].values.length-1)
spacing = 0 if spacing<0
xpos = optionwidth+rect.x
spacing = (optionwidth - totalwidth) / (@options[index].values.length - 1)
spacing = 0 if spacing < 0
xpos = optionwidth + rect.x
ivalue = 0
for value in @options[index].values
pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value,
(ivalue==self[index]) ? @selBaseColor : self.baseColor,
(ivalue==self[index]) ? @selShadowColor : self.shadowColor
pbDrawShadowText(self.contents, xpos, rect.y, optionwidth, rect.height, value,
(ivalue == self[index]) ? @selBaseColor : self.baseColor,
(ivalue == self[index]) ? @selShadowColor : self.shadowColor
)
xpos += self.contents.text_size(value).width
xpos += spacing
ivalue += 1
end
else
pbDrawShadowText(self.contents,rect.x+optionwidth,rect.y,optionwidth,rect.height,
optionname,self.baseColor,self.shadowColor)
pbDrawShadowText(self.contents, rect.x + optionwidth, rect.y, optionwidth, rect.height,
optionname, self.baseColor, self.shadowColor)
end
elsif @options[index].is_a?(NumberOption)
value = _INTL("Type {1}/{2}",@options[index].optstart+self[index],
@options[index].optend-@options[index].optstart+1)
xpos = optionwidth+rect.x
pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value,
@selBaseColor,@selShadowColor)
value = _INTL("Type {1}/{2}", @options[index].optstart + self[index],
@options[index].optend - @options[index].optstart + 1)
xpos = optionwidth + rect.x
pbDrawShadowText(self.contents, xpos, rect.y, optionwidth, rect.height, value,
@selBaseColor, @selShadowColor)
elsif @options[index].is_a?(SliderOption)
value = sprintf(" %d",@options[index].optend)
sliderlength = optionwidth-self.contents.text_size(value).width
xpos = optionwidth+rect.x
self.contents.fill_rect(xpos,rect.y-2+rect.height/2,
optionwidth-self.contents.text_size(value).width,4,self.baseColor)
value = sprintf(" %d", @options[index].optend)
sliderlength = optionwidth - self.contents.text_size(value).width
xpos = optionwidth + rect.x
self.contents.fill_rect(xpos, rect.y - 2 + rect.height / 2,
optionwidth - self.contents.text_size(value).width, 4, self.baseColor)
self.contents.fill_rect(
xpos+(sliderlength-8)*(@options[index].optstart+self[index])/@options[index].optend,
rect.y-8+rect.height/2,
8,16,@selBaseColor)
value = sprintf("%d",@options[index].optstart+self[index])
xpos += optionwidth-self.contents.text_size(value).width
pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value,
@selBaseColor,@selShadowColor)
xpos + (sliderlength - 8) * (@options[index].optstart + self[index]) / @options[index].optend,
rect.y - 8 + rect.height / 2,
8, 16, @selBaseColor)
value = sprintf("%d", @options[index].optstart + self[index])
xpos += optionwidth - self.contents.text_size(value).width
pbDrawShadowText(self.contents, xpos, rect.y, optionwidth, rect.height, value,
@selBaseColor, @selShadowColor)
else
value = @options[index].values[self[index]]
xpos = optionwidth+rect.x
pbDrawShadowText(self.contents,xpos,rect.y,optionwidth,rect.height,value,
@selBaseColor,@selShadowColor)
xpos = optionwidth + rect.x
pbDrawShadowText(self.contents, xpos, rect.y, optionwidth, rect.height, value,
@selBaseColor, @selShadowColor)
end
end
@@ -262,8 +262,8 @@ class Window_PokemonOption < Window_DrawableCommand
oldindex = self.index
@mustUpdateOptions = false
super
dorefresh = (self.index!=oldindex)
if self.active && self.index<@options.length
dorefresh = (self.index != oldindex)
if self.active && self.index < @options.length
if Input.repeat?(Input::LEFT)
self[self.index] = @options[self.index].prev(self[self.index])
dorefresh = true
@@ -286,104 +286,125 @@ class PokemonOption_Scene
pbUpdateSpriteHash(@sprites)
end
def pbStartScene(inloadscreen=false)
def pbStartScene(inloadscreen = false)
@sprites = {}
@viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport.z = 99999
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
_INTL("Options"),0,0,Graphics.width,64,@viewport)
_INTL("Options"), 0, 0, Graphics.width, 64, @viewport)
@sprites["textbox"] = pbCreateMessageWindow
@sprites["textbox"].text = _INTL("Speech frame {1}.",1+$PokemonSystem.textskin)
@sprites["textbox"].text = _INTL("Speech frame {1}.", 1 + $PokemonSystem.textskin)
@sprites["textbox"].letterbyletter = false
pbSetSystemFont(@sprites["textbox"].contents)
# These are the different options in the game. To add an option, define a
# setter and a getter for that option. To delete an option, comment it out
# or delete it. The game's options may be placed in any order.
@PokemonOptions = [
SliderOption.new(_INTL("Music Volume"),0,100,5,
proc { $PokemonSystem.bgmvolume },
proc { |value|
if $PokemonSystem.bgmvolume!=value
$PokemonSystem.bgmvolume = value
if $game_system.playing_bgm!=nil && !inloadscreen
playingBGM = $game_system.getPlayingBGM
$game_system.bgm_pause
$game_system.bgm_resume(playingBGM)
end
end
}
),
SliderOption.new(_INTL("SE Volume"),0,100,5,
proc { $PokemonSystem.sevolume },
proc { |value|
if $PokemonSystem.sevolume!=value
$PokemonSystem.sevolume = value
if $game_system.playing_bgs!=nil
$game_system.playing_bgs.volume = value
playingBGS = $game_system.getPlayingBGS
$game_system.bgs_pause
$game_system.bgs_resume(playingBGS)
end
pbPlayCursorSE
end
}
),
EnumOption.new(_INTL("Text Speed"),[_INTL("Normal"),_INTL("Fast"),_INTL("Instant")],
proc { $PokemonSystem.textspeed },
proc { |value|
$PokemonSystem.textspeed = value
MessageConfig.pbSetTextSpeed(MessageConfig.pbSettingToTextSpeed(value))
}
),
EnumOption.new(_INTL("Battle Effects"),[_INTL("On"),_INTL("Off")],
proc { $PokemonSystem.battlescene },
proc { |value| $PokemonSystem.battlescene = value }
),
EnumOption.new(_INTL("Battle Style"),[_INTL("Switch"),_INTL("Set")],
proc { $PokemonSystem.battlestyle },
proc { |value| $PokemonSystem.battlestyle = value }
),
EnumOption.new(_INTL("Default Movement"),[_INTL("Walking"),_INTL("Running")],
proc { $PokemonSystem.runstyle },
proc { |value| $PokemonSystem.runstyle = value }
),
NumberOption.new(_INTL("Speech Frame"),1,Settings::SPEECH_WINDOWSKINS.length,
proc { $PokemonSystem.textskin },
proc { |value|
$PokemonSystem.textskin = value
MessageConfig.pbSetSpeechFrame("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[value])
}
),
# NumberOption.new(_INTL("Menu Frame"),1,Settings::MENU_WINDOWSKINS.length,
# proc { $PokemonSystem.frame },
# proc { |value|
# $PokemonSystem.frame = value
# MessageConfig.pbSetSystemFrame("Graphics/Windowskins/" + Settings::MENU_WINDOWSKINS[value])
# }
# ),
EnumOption.new(_INTL("Text Entry"),[_INTL("Cursor"),_INTL("Keyboard")],
proc { $PokemonSystem.textinput },
proc { |value| $PokemonSystem.textinput = value }
),
EnumOption.new(_INTL("Screen Size"),[_INTL("S"),_INTL("M"),_INTL("L"),_INTL("XL"),_INTL("Full")],
proc { [$PokemonSystem.screensize, 4].min },
proc { |value|
if $PokemonSystem.screensize != value
$PokemonSystem.screensize = value
pbSetResizeFactor($PokemonSystem.screensize)
end
}
)
SliderOption.new(_INTL("Music Volume"), 0, 100, 5,
proc { $PokemonSystem.bgmvolume },
proc { |value|
if $PokemonSystem.bgmvolume != value
$PokemonSystem.bgmvolume = value
if $game_system.playing_bgm != nil && !inloadscreen
playingBGM = $game_system.getPlayingBGM
$game_system.bgm_pause
$game_system.bgm_resume(playingBGM)
end
end
}
),
SliderOption.new(_INTL("SE Volume"), 0, 100, 5,
proc { $PokemonSystem.sevolume },
proc { |value|
if $PokemonSystem.sevolume != value
$PokemonSystem.sevolume = value
if $game_system.playing_bgs != nil
$game_system.playing_bgs.volume = value
playingBGS = $game_system.getPlayingBGS
$game_system.bgs_pause
$game_system.bgs_resume(playingBGS)
end
pbPlayCursorSE
end
}
),
EnumOption.new(_INTL("Text Speed"), [_INTL("Normal"), _INTL("Fast"), _INTL("Instant")],
proc { $PokemonSystem.textspeed },
proc { |value|
$PokemonSystem.textspeed = value
MessageConfig.pbSetTextSpeed(MessageConfig.pbSettingToTextSpeed(value))
}
),
EnumOption.new(_INTL("Battle Effects"), [_INTL("On"), _INTL("Off")],
proc { $PokemonSystem.battlescene },
proc { |value| $PokemonSystem.battlescene = value }
),
EnumOption.new(_INTL("Battle Style"), [_INTL("Switch"), _INTL("Set")],
proc { $PokemonSystem.battlestyle },
proc { |value| $PokemonSystem.battlestyle = value }
),
EnumOption.new(_INTL("Default Movement"), [_INTL("Walking"), _INTL("Running")],
proc { $PokemonSystem.runstyle },
proc { |value| $PokemonSystem.runstyle = value }
),
NumberOption.new(_INTL("Speech Frame"), 1, Settings::SPEECH_WINDOWSKINS.length,
proc { $PokemonSystem.textskin },
proc { |value|
$PokemonSystem.textskin = value
MessageConfig.pbSetSpeechFrame("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[value])
}
),
# NumberOption.new(_INTL("Menu Frame"),1,Settings::MENU_WINDOWSKINS.length,
# proc { $PokemonSystem.frame },
# proc { |value|
# $PokemonSystem.frame = value
# MessageConfig.pbSetSystemFrame("Graphics/Windowskins/" + Settings::MENU_WINDOWSKINS[value])
# }
# ),
EnumOption.new(_INTL("Text Entry"), [_INTL("Cursor"), _INTL("Keyboard")],
proc { $PokemonSystem.textinput },
proc { |value| $PokemonSystem.textinput = value }
),
EnumOption.new(_INTL("Screen Size"), [_INTL("S"), _INTL("M"), _INTL("L"), _INTL("XL"), _INTL("Full")],
proc { [$PokemonSystem.screensize, 4].min },
proc { |value|
if $PokemonSystem.screensize != value
$PokemonSystem.screensize = value
pbSetResizeFactor($PokemonSystem.screensize)
end
}
)
]
if $game_switches && $game_switches[NEW_GAME_PLUS] #beat the league
@PokemonOptions <<
EnumOption.new(_INTL("Battle type"), [_INTL("Single"), _INTL("Double"), _INTL("Triple")],
proc { $PokemonSystem.textspeed },
proc { |value|
if value == 0
$game_variables[DEFAULT_BATTLE_TYPE] = [1, 1]
elsif value == 1
$game_variables[DEFAULT_BATTLE_TYPE] = [2, 2]
elsif value == 2
$game_variables[DEFAULT_BATTLE_TYPE] = [3, 3]
else
$game_variables[DEFAULT_BATTLE_TYPE] = [1, 1]
end
$PokemonSystem.textspeed = value
MessageConfig.pbSetTextSpeed(MessageConfig.pbSettingToTextSpeed(value))
}
)
end
@PokemonOptions = pbAddOnOptions(@PokemonOptions)
@sprites["option"] = Window_PokemonOption.new(@PokemonOptions,0,
@sprites["title"].height,Graphics.width,
Graphics.height-@sprites["title"].height-@sprites["textbox"].height)
@sprites["option"] = Window_PokemonOption.new(@PokemonOptions, 0,
@sprites["title"].height, Graphics.width,
Graphics.height - @sprites["title"].height - @sprites["textbox"].height)
@sprites["option"].viewport = @viewport
@sprites["option"].visible = true
@sprites["option"].visible = true
# Get the values of each option
for i in 0...@PokemonOptions.length
@sprites["option"].setValueNoRefresh(i,(@PokemonOptions[i].get || 0))
@sprites["option"].setValueNoRefresh(i, (@PokemonOptions[i].get || 0))
end
@sprites["option"].refresh
pbDeactivateWindows(@sprites)
@@ -395,9 +416,9 @@ class PokemonOption_Scene
end
def pbOptions
oldSystemSkin = $PokemonSystem.frame # Menu
oldTextSkin = $PokemonSystem.textskin # Speech
pbActivateWindow(@sprites,"option") {
oldSystemSkin = $PokemonSystem.frame # Menu
oldTextSkin = $PokemonSystem.textskin # Speech
pbActivateWindow(@sprites, "option") {
loop do
Graphics.update
Input.update
@@ -407,12 +428,12 @@ class PokemonOption_Scene
for i in 0...@PokemonOptions.length
@PokemonOptions[i].set(@sprites["option"][i])
end
if $PokemonSystem.textskin!=oldTextSkin
if $PokemonSystem.textskin != oldTextSkin
@sprites["textbox"].setSkin(MessageConfig.pbGetSpeechFrame())
@sprites["textbox"].text = _INTL("Speech frame {1}.",1+$PokemonSystem.textskin)
@sprites["textbox"].text = _INTL("Speech frame {1}.", 1 + $PokemonSystem.textskin)
oldTextSkin = $PokemonSystem.textskin
end
if $PokemonSystem.frame!=oldSystemSkin
if $PokemonSystem.frame != oldSystemSkin
@sprites["title"].setSkin(MessageConfig.pbGetSystemFrame())
@sprites["option"].setSkin(MessageConfig.pbGetSystemFrame())
oldSystemSkin = $PokemonSystem.frame
@@ -421,7 +442,7 @@ class PokemonOption_Scene
if Input.trigger?(Input::BACK)
break
elsif Input.trigger?(Input::USE)
break if @sprites["option"].index==@PokemonOptions.length
break if @sprites["option"].index == @PokemonOptions.length
end
end
}
@@ -449,7 +470,7 @@ class PokemonOptionScreen
@scene = scene
end
def pbStartScreen(inloadscreen=false)
def pbStartScreen(inloadscreen = false)
@scene.pbStartScene(inloadscreen)
@scene.pbOptions
@scene.pbEndScene

View File

@@ -0,0 +1,8 @@
#Switches
NEW_GAME_PLUS = 972
#Variables
DEFAULT_BATTLE_TYPE = 242

View File

@@ -0,0 +1,2 @@
class ControlConfig
end

View File

@@ -94,17 +94,21 @@ class BetterRegionMap
# end
@window["player"] = Sprite.new(@mapoverlayvp)
if @show_player
player = nil
player = GameData::MapMetadata.get($game_map.map_id).town_map_position #pbGetMetadata($game_map.map_id, MetadataMapPosition) if $game_map
if player && player[0] == @region
$PokemonGlobal.regionMapSel[0] = player[1]
$PokemonGlobal.regionMapSel[1] = player[2]
gender = $Trainer.gender.to_digits(3)
@window["player"].bmp("Graphics/Pictures/mapPlayer#{gender}")
@window["player"].x = TileWidth * player[1] + (TileWidth / 2.0)
@window["player"].y = TileHeight * player[2] + (TileHeight / 2.0)
@window["player"].center_origins
if map_metadata
player = map_metadata.town_map_position
if player && player[0] == @region
$PokemonGlobal.regionMapSel[0] = player[1]
$PokemonGlobal.regionMapSel[1] = player[2]
gender = $Trainer.gender.to_digits(3)
@window["player"].bmp("Graphics/Pictures/mapPlayer#{gender}")
@window["player"].x = TileWidth * player[1] + (TileWidth / 2.0)
@window["player"].y = TileHeight * player[2] + (TileHeight / 2.0)
@window["player"].center_origins
end
else
end
end
@window["areahighlight"] = BitmapSprite.new(@window["map"].bitmap.width,@window["map"].bitmap.height,@mapoverlayvp)
@window["areahighlight"].y = -8

View File

@@ -165,7 +165,8 @@ end
def getHeadID(species, bodyId)
head_dexNum = convertSpeciesSymbolToDexNumber(species)
body_dexNum = convertSpeciesSymbolToDexNumber(bodyId)
return (head_dexNum - (body_dexNum * NB_POKEMON)).round
calculated_number = (head_dexNum - (body_dexNum * NB_POKEMON)).round
return calculated_number == 0 ? 420 : calculated_number
end
def getAllNonLegendaryPokemon()
@@ -290,4 +291,14 @@ def pbBitmap(path)
bmp = Bitmap.new(1, 1)
end
return bmp
end
end
def Kernel.setRocketPassword(variableNum)
abilityIndex = rand(233)
speciesIndex =rand(PBSpecies.maxValue-1)
word1 = PBSpecies.getName(speciesIndex)
word2 = GameData::Ability.get(abilityIndex).name
password = _INTL("{1}'s {2}",word1,word2)
pbSet(variableNum,password)
end

View File

@@ -378,6 +378,31 @@ ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, pokemon, scene|
end
})
ItemHandlers::UseFromBag.add(:DEBUGGER,proc{|item|
Kernel.pbMessage(_INTL("[{1}]The debugger should ONLY be used if you are stuck somewhere because of a glitch.",Settings::GAME_VERSION_NUMBER))
if Kernel.pbConfirmMessageSerious(_INTL("Innapropriate use of this item can lead to unwanted effects and make the game unplayable. Do you want to continue?"))
$game_player.cancelMoveRoute()
Kernel.pbStartOver(false)
Kernel.pbMessage(_INTL("Please report the glitch on the Pokecommunity thread, on the game's subreddit or in the game's Discord channel."))
end
})
ItemHandlers::UseFromBag.add(:MAGICBOOTS,proc{|item|
if $DEBUG
if Kernel.pbConfirmMessageSerious(_INTL("Take off the Magic Boots?"))
$DEBUG = false
end
else
if Kernel.pbConfirmMessageSerious(_INTL("Put on the Magic Boots?"))
Kernel.pbMessage(_INTL("Debug mode is now active."))
$game_switches[842] = true #got debug mode (for compatibility)
$DEBUG = true
end
end
next 1
})
def pbForceEvo(pokemon)
newspecies = getEvolvedSpecies(pokemon)
return false if newspecies == -1

View File

@@ -694,7 +694,7 @@ class PokemonFusionScene
$Trainer.pokedex.set_owned(newSpecies)
Kernel.pbMessageDisplay(@sprites["msgwindow"],
_INTL("{1}'s data was added to the Pokédex", newspeciesname))
#@scene.pbShowPokedex(@newspecies)
@scene.pbShowPokedex(@newspecies)
end
#first check if hidden ability
hiddenAbility1 = @pokemon1.ability == @pokemon1.getAbilityList[0][-1]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.