mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Adds Premium wondertrades
This commit is contained in:
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.
@@ -421,8 +421,31 @@ def pbDisplayGoldWindow(msgwindow)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbDisplayBattleFactoryPointsWindow(msgwindow)
|
def pbDisplayBattleFactoryPointsWindow(msgwindow)
|
||||||
pointsString = $game_variables[BATTLE_FACTORY_TOKENS].to_s
|
pbDisplayVariableWindow(msgwindow,"Tokens",BATTLE_FACTORY_TOKENS)
|
||||||
pointswindow = Window_AdvancedTextPokemon.new(_INTL("Tokens:\n<ar>{1}</ar>", pointsString))
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def pbDisplayVariableWindow(msgwindow,name,variable_id)
|
||||||
|
pointsString = $game_variables[variable_id].to_s
|
||||||
|
pointswindow = Window_AdvancedTextPokemon.new(_INTL("{1}:\n<ar>{2}</ar>",name, pointsString))
|
||||||
|
pointswindow.setSkin("Graphics/Windowskins/goldskin")
|
||||||
|
pointswindow.resizeToFit(pointswindow.text, Graphics.width)
|
||||||
|
pointswindow.width = 160 if pointswindow.width <= 160
|
||||||
|
if msgwindow.y == 0
|
||||||
|
pointswindow.y = Graphics.height - pointswindow.height
|
||||||
|
else
|
||||||
|
pointswindow.y = 0
|
||||||
|
end
|
||||||
|
pointswindow.viewport = msgwindow.viewport
|
||||||
|
pointswindow.z = msgwindow.z
|
||||||
|
return pointswindow
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbDisplayTwoVariableWindow(msgwindow,name1,variable1_id,name2, variable2_id)
|
||||||
|
pointsString1 = $game_variables[variable1_id].to_s
|
||||||
|
pointsString2 = $game_variables[variable2_id].to_s
|
||||||
|
|
||||||
|
pointswindow = Window_AdvancedTextPokemon.new(_INTL("{1}:<ar>{2}</ar>\n{3}:<ar>{4}</ar>",name1, pointsString1,name2,pointsString2))
|
||||||
pointswindow.setSkin("Graphics/Windowskins/goldskin")
|
pointswindow.setSkin("Graphics/Windowskins/goldskin")
|
||||||
pointswindow.resizeToFit(pointswindow.text, Graphics.width)
|
pointswindow.resizeToFit(pointswindow.text, Graphics.width)
|
||||||
pointswindow.width = 160 if pointswindow.width <= 160
|
pointswindow.width = 160 if pointswindow.width <= 160
|
||||||
@@ -722,7 +745,7 @@ def pbMessageDisplay(msgwindow, message, letterbyletter = true, commandProc = ni
|
|||||||
when "ft" # Display battle factory tokens
|
when "ft" # Display battle factory tokens
|
||||||
goldwindow.dispose if goldwindow
|
goldwindow.dispose if goldwindow
|
||||||
goldwindow = pbDisplayBattleFactoryPointsWindow(msgwindow)
|
goldwindow = pbDisplayBattleFactoryPointsWindow(msgwindow)
|
||||||
when "hs" # Display battle factory tokens
|
when "hs" # Display heartscakes
|
||||||
goldwindow.dispose if goldwindow
|
goldwindow.dispose if goldwindow
|
||||||
goldwindow = pbDisplayHeartScalesWindow(msgwindow)
|
goldwindow = pbDisplayHeartScalesWindow(msgwindow)
|
||||||
when "cn" # Display coins window
|
when "cn" # Display coins window
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ BATTLE_FACTORY_TOKENS = 243
|
|||||||
NB_GYM_REMATCHES = 162
|
NB_GYM_REMATCHES = 162
|
||||||
CUSTOM_SPRITES_ENABLED= 196
|
CUSTOM_SPRITES_ENABLED= 196
|
||||||
COMMAND_WINDOW_INDEX=249
|
COMMAND_WINDOW_INDEX=249
|
||||||
|
|
||||||
|
STANDARD_WONDERTRADE_LEFT=248
|
||||||
|
PREMIUM_WONDERTRADE_LEFT=111
|
||||||
|
|
||||||
#Settings
|
#Settings
|
||||||
# This is for settings that are used in scripts since it's a chore to change them everywhere to include the module name
|
# This is for settings that are used in scripts since it's a chore to change them everywhere to include the module name
|
||||||
NUM_BADGES = Settings::NB_BADGES
|
NUM_BADGES = Settings::NB_BADGES
|
||||||
|
|||||||
@@ -174,6 +174,13 @@ def listLegendaryPokemonIds()
|
|||||||
return [144, 145, 146, 150, 151, 245, 243, 244, 245, 249, 250, 251, 315, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 378, 379, 380, 381]
|
return [144, 145, 146, 150, 151, 245, 243, 244, 245, 249, 250, 251, 315, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 378, 379, 380, 381]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pokemonIsPartLegendary(species)
|
||||||
|
head = getBasePokemonID(species, false)
|
||||||
|
body = getBasePokemonID(species, true)
|
||||||
|
return listLegendaryPokemonIds().include?(head) || listLegendaryPokemonIds().include?(body)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
def generateRandomFusionFromPokemon(dexNum, onlyCustomSprites = false, allowLegendaries=true)
|
def generateRandomFusionFromPokemon(dexNum, onlyCustomSprites = false, allowLegendaries=true)
|
||||||
speciesList = onlyCustomSprites ? getCustomSpeciesListForPokemon(dexNum,allowLegendaries) : getAllPokemonWithBase(dexNum)
|
speciesList = onlyCustomSprites ? getCustomSpeciesListForPokemon(dexNum,allowLegendaries) : getAllPokemonWithBase(dexNum)
|
||||||
return speciesList.sample
|
return speciesList.sample
|
||||||
|
|||||||
@@ -308,19 +308,28 @@ def obtainPokemonSpritePath(id, includeCustoms = true)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def obtainPokemonSpritePath(bodyId, headId, include_customs = true)
|
def obtainPokemonSpritePath(bodyId, headId, include_customs = true)
|
||||||
hasCustom = false
|
|
||||||
picturePath = _INTL("Graphics/Battlers/{1}/{1}.{2}.png", headId, bodyId)
|
picturePath = _INTL("Graphics/Battlers/{1}/{1}.{2}.png", headId, bodyId)
|
||||||
|
|
||||||
if include_customs
|
if include_customs
|
||||||
pathCustom = _INTL("Graphics/CustomBattlers/{1}.{2}.png", headId, bodyId)
|
pathCustom = getCustomSpritePath(bodyId,headId)
|
||||||
if (pbResolveBitmap(pathCustom))
|
if (pbResolveBitmap(pathCustom))
|
||||||
picturePath = pathCustom
|
picturePath = pathCustom
|
||||||
hasCustom = true
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return picturePath
|
return picturePath
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def getCustomSpritePath(body,head)
|
||||||
|
return _INTL("Graphics/CustomBattlers/{1}.{2}.png", head, body)
|
||||||
|
end
|
||||||
|
|
||||||
|
def customSpriteExists(species)
|
||||||
|
head = getBasePokemonID(species, false)
|
||||||
|
body = getBasePokemonID(species, true)
|
||||||
|
pathCustom = getCustomSpritePath(body,head)
|
||||||
|
return pbResolveBitmap(pathCustom) != nil
|
||||||
|
end
|
||||||
|
|
||||||
def getArceusPlateType(heldItem)
|
def getArceusPlateType(heldItem)
|
||||||
return :NORMAL if heldItem == nil
|
return :NORMAL if heldItem == nil
|
||||||
case heldItem
|
case heldItem
|
||||||
@@ -415,6 +424,8 @@ def Kernel.getItemNamesAsString(list)
|
|||||||
return strList
|
return strList
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def Kernel.getPlateType(item)
|
def Kernel.getPlateType(item)
|
||||||
return :FIGHTING if item == PBItems::FISTPLATE
|
return :FIGHTING if item == PBItems::FISTPLATE
|
||||||
return :FLYING if item == PBItems::SKYPLATE
|
return :FLYING if item == PBItems::SKYPLATE
|
||||||
|
|||||||
@@ -1003,7 +1003,7 @@ RandPokeNick = [
|
|||||||
"maymay"
|
"maymay"
|
||||||
]
|
]
|
||||||
|
|
||||||
def pbWonderTrade(lvl, except = [], except2 = [], rare = true)
|
def pbWonderTrade(lvl, except = [], except2 = [], premiumWonderTrade = true)
|
||||||
# for i in 0...except.length # Gets ID of pokemon in exception array
|
# for i in 0...except.length # Gets ID of pokemon in exception array
|
||||||
# except[i]=getID(PBSpecies,except[i]) if !except[i].is_a?(Integer)
|
# except[i]=getID(PBSpecies,except[i]) if !except[i].is_a?(Integer)
|
||||||
# end
|
# end
|
||||||
@@ -1013,6 +1013,7 @@ def pbWonderTrade(lvl, except = [], except2 = [], rare = true)
|
|||||||
# ignoreExcept = rand(100) == 0 #tiny chance to include legendaries
|
# ignoreExcept = rand(100) == 0 #tiny chance to include legendaries
|
||||||
#
|
#
|
||||||
# except+=[]
|
# except+=[]
|
||||||
|
rare = premiumWonderTrade
|
||||||
chosen = pbChoosePokemon(1, 2, # Choose eligable pokemon
|
chosen = pbChoosePokemon(1, 2, # Choose eligable pokemon
|
||||||
proc {
|
proc {
|
||||||
|poke| !poke.egg? && !(poke.isShadow?) && # No Eggs, No Shadow Pokemon
|
|poke| !poke.egg? && !(poke.isShadow?) && # No Eggs, No Shadow Pokemon
|
||||||
@@ -1041,8 +1042,18 @@ def pbWonderTrade(lvl, except = [], except2 = [], rare = true)
|
|||||||
# Redo the loop if the species is an exception.
|
# Redo the loop if the species is an exception.
|
||||||
species = 0 if checkifBlacklisted(species, except2) && !ignoreExcept #except2.include?(species)
|
species = 0 if checkifBlacklisted(species, except2) && !ignoreExcept #except2.include?(species)
|
||||||
#Redo loop if above BST
|
#Redo loop if above BST
|
||||||
species = 0 if bst > chosenBST + $game_variables[120] + bonus
|
bstLimit = chosenBST + bonus# + $game_variables[120]
|
||||||
|
if !premiumWonderTrade
|
||||||
|
bstLimit-=50
|
||||||
|
end
|
||||||
|
species = 0 if bst > bstLimit
|
||||||
|
if species > 0 && premiumWonderTrade
|
||||||
|
species = 0 if !customSpriteExists(species)
|
||||||
|
end
|
||||||
|
if species > 0
|
||||||
|
skipLegendaryCheck = premiumWonderTrade && rand(100) < luck
|
||||||
|
species = 0 if pokemonIsPartLegendary(species) && !$game_switches[BEAT_THE_LEAGUE] && !skipLegendaryCheck
|
||||||
|
end
|
||||||
#Redo loop if below BST - 200
|
#Redo loop if below BST - 200
|
||||||
species = 0 if bst < (chosenBST - 200)
|
species = 0 if bst < (chosenBST - 200)
|
||||||
|
|
||||||
@@ -1063,7 +1074,11 @@ def pbWonderTrade(lvl, except = [], except2 = [], rare = true)
|
|||||||
pname = RandPokeNick[rand(RandPokeNick.size)] # Randomizes Pokemon Nicknames
|
pname = RandPokeNick[rand(RandPokeNick.size)] # Randomizes Pokemon Nicknames
|
||||||
|
|
||||||
#num of Wondertrade - 1
|
#num of Wondertrade - 1
|
||||||
$game_variables[111] = $game_variables[111] - 1
|
if premiumWonderTrade
|
||||||
|
$game_variables[PREMIUM_WONDERTRADE_LEFT] -= 1
|
||||||
|
else
|
||||||
|
$game_variables[STANDARD_WONDERTRADE_LEFT] -= 1
|
||||||
|
end
|
||||||
|
|
||||||
newpoke = pbStartTrade(pbGet(1), species, pname, tname, 0, true) # Starts the trade
|
newpoke = pbStartTrade(pbGet(1), species, pname, tname, 0, true) # Starts the trade
|
||||||
#lower level by 1 to prevent abuse
|
#lower level by 1 to prevent abuse
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user