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
def pbDisplayBattleFactoryPointsWindow(msgwindow)
pointsString = $game_variables[BATTLE_FACTORY_TOKENS].to_s
pointswindow = Window_AdvancedTextPokemon.new(_INTL("Tokens:\n<ar>{1}</ar>", pointsString))
pbDisplayVariableWindow(msgwindow,"Tokens",BATTLE_FACTORY_TOKENS)
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.resizeToFit(pointswindow.text, Graphics.width)
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
goldwindow.dispose if goldwindow
goldwindow = pbDisplayBattleFactoryPointsWindow(msgwindow)
when "hs" # Display battle factory tokens
when "hs" # Display heartscakes
goldwindow.dispose if goldwindow
goldwindow = pbDisplayHeartScalesWindow(msgwindow)
when "cn" # Display coins window

View File

@@ -29,6 +29,10 @@ BATTLE_FACTORY_TOKENS = 243
NB_GYM_REMATCHES = 162
CUSTOM_SPRITES_ENABLED= 196
COMMAND_WINDOW_INDEX=249
STANDARD_WONDERTRADE_LEFT=248
PREMIUM_WONDERTRADE_LEFT=111
#Settings
# 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

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]
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)
speciesList = onlyCustomSprites ? getCustomSpeciesListForPokemon(dexNum,allowLegendaries) : getAllPokemonWithBase(dexNum)
return speciesList.sample

View File

@@ -308,19 +308,28 @@ def obtainPokemonSpritePath(id, includeCustoms = true)
end
def obtainPokemonSpritePath(bodyId, headId, include_customs = true)
hasCustom = false
picturePath = _INTL("Graphics/Battlers/{1}/{1}.{2}.png", headId, bodyId)
if include_customs
pathCustom = _INTL("Graphics/CustomBattlers/{1}.{2}.png", headId, bodyId)
pathCustom = getCustomSpritePath(bodyId,headId)
if (pbResolveBitmap(pathCustom))
picturePath = pathCustom
hasCustom = true
end
end
return picturePath
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)
return :NORMAL if heldItem == nil
case heldItem
@@ -415,6 +424,8 @@ def Kernel.getItemNamesAsString(list)
return strList
end
def Kernel.getPlateType(item)
return :FIGHTING if item == PBItems::FISTPLATE
return :FLYING if item == PBItems::SKYPLATE

View File

@@ -1003,7 +1003,7 @@ RandPokeNick = [
"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
# except[i]=getID(PBSpecies,except[i]) if !except[i].is_a?(Integer)
# end
@@ -1013,6 +1013,7 @@ def pbWonderTrade(lvl, except = [], except2 = [], rare = true)
# ignoreExcept = rand(100) == 0 #tiny chance to include legendaries
#
# except+=[]
rare = premiumWonderTrade
chosen = pbChoosePokemon(1, 2, # Choose eligable pokemon
proc {
|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.
species = 0 if checkifBlacklisted(species, except2) && !ignoreExcept #except2.include?(species)
#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
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
#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
#lower level by 1 to prevent abuse

Binary file not shown.