Adds Premium wondertrades

This commit is contained in:
infinitefusion
2022-03-19 20:49:00 -04:00
parent dcd6a18189
commit fbf5495a14
17 changed files with 70 additions and 10 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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.