mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Ball property in trainers.txt can now be a Poké Ball item's ID, fixed move-learning saying "already knows four moves" regardless of the value of Pokemon::MAX_MOVES
This commit is contained in:
@@ -71,6 +71,17 @@ class Numeric
|
||||
def to_s_formatted
|
||||
return self.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\1,').reverse
|
||||
end
|
||||
|
||||
def to_word
|
||||
ret = [_INTL("zero"), _INTL("one"), _INTL("two"), _INTL("three"),
|
||||
_INTL("four"), _INTL("five"), _INTL("six"), _INTL("seven"),
|
||||
_INTL("eight"), _INTL("nine"), _INTL("ten"), _INTL("eleven"),
|
||||
_INTL("twelve"), _INTL("thirteen"), _INTL("fourteen"), _INTL("fifteen"),
|
||||
_INTL("sixteen"), _INTL("seventeen"), _INTL("eighteen"), _INTL("nineteen"),
|
||||
_INTL("twenty")]
|
||||
return ret[self] if self.is_a?(Integer) && self >= 0 && self <= ret.length
|
||||
return self.to_s
|
||||
end
|
||||
end
|
||||
|
||||
#===============================================================================
|
||||
|
||||
@@ -29,7 +29,7 @@ module GameData
|
||||
"Happiness" => [:happiness, "u"],
|
||||
"Shiny" => [:shininess, "b"],
|
||||
"Shadow" => [:shadowness, "b"],
|
||||
"Ball" => [:poke_ball, "u"],
|
||||
"Ball" => [:poke_ball, "s"],
|
||||
}
|
||||
|
||||
extend ClassMethods
|
||||
@@ -155,7 +155,7 @@ module GameData
|
||||
pkmn.update_shadow_moves(true)
|
||||
pkmn.shiny = false
|
||||
end
|
||||
pkmn.poke_ball = pbBallTypeToItem(pkmn_data[:poke_ball]).id if pkmn_data[:poke_ball]
|
||||
pkmn.poke_ball = pkmn_data[:poke_ball] if pkmn_data[:poke_ball]
|
||||
pkmn.calc_stats
|
||||
end
|
||||
return trainer
|
||||
|
||||
@@ -239,7 +239,8 @@ class PokeBattle_Battle
|
||||
end
|
||||
# Pokémon already knows the maximum number of moves; try to forget one to learn the new move
|
||||
loop do
|
||||
pbDisplayPaused(_INTL("{1} wants to learn {2}, but it already knows four moves.",pkmnName,moveName))
|
||||
pbDisplayPaused(_INTL("{1} wants to learn {2}, but it already knows {3} moves.",
|
||||
pkmnName, moveName, pkmn.moves.length.to_word))
|
||||
if pbDisplayConfirm(_INTL("Forget a move to learn {1}?",moveName))
|
||||
pbDisplayPaused(_INTL("Which move should be forgotten?"))
|
||||
forgetMove = @scene.pbForgetMove(pkmn,newMove)
|
||||
|
||||
@@ -411,7 +411,8 @@ def pbLearnMove(pkmn,move,ignoreifknown=false,bymachine=false,&block)
|
||||
return true
|
||||
end
|
||||
loop do
|
||||
pbMessage(_INTL("{1} wants to learn {2}, but it already knows four moves.\1",pkmnname,movename),&block) if !bymachine
|
||||
pbMessage(_INTL("{1} wants to learn {2}, but it already knows {3} moves.\1",
|
||||
pkmnname, movename, pkmn.numMoves.to_word), &block) if !bymachine
|
||||
pbMessage(_INTL("Please choose a move that will be replaced with {1}.",movename),&block)
|
||||
forgetmove = pbForgetMove(pkmn,move)
|
||||
if forgetmove>=0
|
||||
@@ -421,7 +422,7 @@ def pbLearnMove(pkmn,move,ignoreifknown=false,bymachine=false,&block)
|
||||
if bymachine && Settings::TAUGHT_MACHINES_KEEP_OLD_PP
|
||||
pkmn.moves[forgetmove].pp = [oldmovepp,pkmn.moves[forgetmove].total_pp].min
|
||||
end
|
||||
pbMessage(_INTL("1,\\wt[16] 2, and\\wt[16]...\\wt[16] ...\\wt[16] ... Ta-da!\\se[Battle ball drop]\1"),&block)
|
||||
pbMessage(_INTL("1, 2, and...\\wt[16] ...\\wt[16] ... Ta-da!\\se[Battle ball drop]\1"),&block)
|
||||
pbMessage(_INTL("{1} forgot how to use {2}.\\nAnd...\1",pkmnname,oldmovename),&block)
|
||||
pbMessage(_INTL("\\se[]{1} learned {2}!\\se[Pkmn move learnt]",pkmnname,movename),&block)
|
||||
pkmn.changeHappiness("machine") if bymachine
|
||||
|
||||
@@ -134,7 +134,7 @@ def isBattlePokemonDuplicate(pk, pk2)
|
||||
end
|
||||
moves1.sort!
|
||||
moves2.sort!
|
||||
# Accept as same if moves are same and there are four moves each
|
||||
# Accept as same if moves are same and there are MAX_MOVES number of moves each
|
||||
return true if moves1 == moves2 && moves1[Pokemon::MAX_MOVES - 1]
|
||||
same_evs = true
|
||||
GameData::Stat.each_main { |s| same_evs = false if pk.ev[s.id] != pk2.ev[s.id] }
|
||||
|
||||
@@ -206,16 +206,16 @@ def pbChooseAbilityList(default = nil)
|
||||
return pbChooseList(commands, default, nil, -1)
|
||||
end
|
||||
|
||||
def pbChooseBallList(defaultMoveID = -1)
|
||||
def pbChooseBallList(defaultMoveID = nil)
|
||||
cmdwin = pbListWindow([], 200)
|
||||
commands = []
|
||||
moveDefault = 0
|
||||
for key in $BallTypes.keys
|
||||
item = GameData::Item.try_get($BallTypes[key])
|
||||
commands.push([key.to_i, item.name]) if item
|
||||
commands.push([$BallTypes[key], item.name]) if item
|
||||
end
|
||||
commands.sort! { |a, b| a[1] <=> b[1] }
|
||||
if defaultMoveID >= 0
|
||||
if defaultMoveID
|
||||
for i in 0...commands.length
|
||||
moveDefault = i if commands[i][0] == defaultMoveID
|
||||
end
|
||||
|
||||
@@ -557,8 +557,7 @@ class BallProperty
|
||||
end
|
||||
|
||||
def set(_settingname,oldsetting)
|
||||
ret = pbChooseBallList((oldsetting) ? oldsetting : -1)
|
||||
return (ret>=0) ? ret : (oldsetting) ? oldsetting : nil
|
||||
return pbChooseBallList(oldsetting)
|
||||
end
|
||||
|
||||
def defaultValue
|
||||
@@ -566,7 +565,7 @@ class BallProperty
|
||||
end
|
||||
|
||||
def format(value)
|
||||
return (value) ? pbBallTypeToItem(value).name : "-"
|
||||
return (value) ? GameData::Item.get(value).name : "-"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1222,6 +1222,15 @@ module Compiler
|
||||
value_hash[s.id] = property_value[s.pbs_order] || property_value[0]
|
||||
end
|
||||
current_pkmn[line_schema[0]] = value_hash
|
||||
when "Ball"
|
||||
if property_value[/^\d+$/]
|
||||
current_pkmn[line_schema[0]] = pbBallTypeToItem(property_value.to_i).id
|
||||
elsif !GameData::Item.exists?(property_value.to_sym) ||
|
||||
!GameData::Item.get(property_value.to_sym).is_poke_ball?
|
||||
raise _INTL("Value {1} isn't a defined Poké Ball.\r\n{2}", property_value, FileLineData.linereport)
|
||||
else
|
||||
current_pkmn[line_schema[0]] = property_value.to_sym
|
||||
end
|
||||
else
|
||||
current_pkmn[line_schema[0]] = property_value
|
||||
end
|
||||
|
||||
@@ -622,7 +622,7 @@ module Compiler
|
||||
f.write(sprintf(" IV = %s\r\n", ivs_array.join(","))) if pkmn[:iv]
|
||||
f.write(sprintf(" EV = %s\r\n", evs_array.join(","))) if pkmn[:ev]
|
||||
f.write(sprintf(" Happiness = %d\r\n", pkmn[:happiness])) if pkmn[:happiness]
|
||||
f.write(sprintf(" Ball = %d\r\n", pkmn[:poke_ball])) if pkmn[:poke_ball]
|
||||
f.write(sprintf(" Ball = %s\r\n", pkmn[:poke_ball])) if pkmn[:poke_ball]
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ Pokemon = GEODUDE,12
|
||||
Gender = male
|
||||
Moves = DEFENSECURL,HEADSMASH,ROCKPOLISH,ROCKTHROW
|
||||
Ability = 0
|
||||
IV = 20
|
||||
IV = 20,20,20,20,20,20
|
||||
Pokemon = ONIX,14
|
||||
Name = Rocky
|
||||
Gender = male
|
||||
@@ -20,8 +20,8 @@ Pokemon = ONIX,14
|
||||
Moves = HEADSMASH,ROCKTHROW,RAGE,ROCKTOMB
|
||||
Ability = 0
|
||||
Item = SITRUSBERRY
|
||||
IV = 20
|
||||
Ball = 19
|
||||
IV = 20,20,20,20,20,20
|
||||
Ball = HEAVYBALL
|
||||
#-------------------------------
|
||||
[TEAMROCKET_M,Grunt,1]
|
||||
LoseText = "You're too good for me!"
|
||||
@@ -82,6 +82,7 @@ Pokemon = TURTWIG,19
|
||||
Pokemon = CHIMCHAR,19
|
||||
#-------------------------------
|
||||
[POKEMONTRAINER_Brendan,Brendan]
|
||||
LoseText = "..."
|
||||
Pokemon = MARSHTOMP,19
|
||||
#-------------------------------
|
||||
[SWIMMER2_F,Ariel]
|
||||
@@ -114,4 +115,4 @@ Pokemon = VENUSAUR,63
|
||||
Pokemon = CHARIZARD,63
|
||||
Item = SITRUSBERRY
|
||||
Pokemon = BLASTOISE,63
|
||||
Item = SITRUSBERRY
|
||||
Item = SITRUSBERRY
|
||||
|
||||
Reference in New Issue
Block a user