mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 06:04:59 +00:00
6.6 update
This commit is contained in:
196
Data/Scripts/052_InfiniteFusion/TrainerCardBackgrounds.rb
Normal file
196
Data/Scripts/052_InfiniteFusion/TrainerCardBackgrounds.rb
Normal file
@@ -0,0 +1,196 @@
|
||||
#Purchasable from pokemart.
|
||||
CARD_BACKGROUND_DEFAULT_PURCHASABLE = [
|
||||
"BLUE",
|
||||
"PLAIN_BLUE",
|
||||
"GREEN",
|
||||
"PLAIN_GREEN",
|
||||
"RED",
|
||||
"PURPLE",
|
||||
"BLACK",
|
||||
"BRONZE",
|
||||
"SILVER",
|
||||
"GOLD",
|
||||
]
|
||||
|
||||
#Purchasable, but not from pokemart.
|
||||
# a special npc somewhere.
|
||||
CARD_BACKGROUND_CITY_EXCLUSIVES = {
|
||||
"GRAYPOLY" => :PEWTER,
|
||||
"EEVEELUTION" => :CELADON,
|
||||
"GALAXYMAIL" => :SAFFRON,
|
||||
"HEARTMAIL" => :CERULEAN,
|
||||
"PIKACHU" => :VERMILLION,
|
||||
"RAINBOWMAIL" => :CELADON,
|
||||
}
|
||||
|
||||
#purchasable from pokemart after unlocking a
|
||||
# certain switch
|
||||
#flag => switch to unlock
|
||||
CARD_BACKGROUND_UNLOCKABLES = {
|
||||
"BLASTOISE" => SWITCH_BEAT_THE_LEAGUE,
|
||||
"CHARIZARD" => SWITCH_BEAT_THE_LEAGUE,
|
||||
"VENUSAUR" => SWITCH_BEAT_THE_LEAGUE,
|
||||
|
||||
"GROUDON" => SWITCH_HOENN_HAIR_COLLECTION,
|
||||
"KYOGRE" => SWITCH_HOENN_HAIR_COLLECTION,
|
||||
"RAYQUAZA" => SWITCH_HOENN_HAIR_COLLECTION,
|
||||
|
||||
"RESHIRAM" => SWITCH_UNOVA_HAIR_COLLECTION,
|
||||
"ZEKROM" => SWITCH_UNOVA_HAIR_COLLECTION,
|
||||
|
||||
"BOULDERBADGE" => SWITCH_GOT_BADGE_1,
|
||||
"CASCADEBADGE" => SWITCH_GOT_BADGE_2,
|
||||
"THUNDERBADGE" => SWITCH_GOT_BADGE_3,
|
||||
"RAINBOWBADGE" => SWITCH_GOT_BADGE_4,
|
||||
"SOULBADGE" => SWITCH_GOT_BADGE_5,
|
||||
"MARSHBADGE" => SWITCH_GOT_BADGE_6,
|
||||
"VOLCANOBADGE" => SWITCH_GOT_BADGE_7,
|
||||
"EARTHBADGE" => SWITCH_GOT_BADGE_8,
|
||||
"PLAINBADGE" => SWITCH_GOT_BADGE_9,
|
||||
"HIVEBADGE" => SWITCH_GOT_BADGE_10,
|
||||
"ZEPHYRBADGE" => SWITCH_GOT_BADGE_11,
|
||||
"RISINGBADGE" => SWITCH_GOT_BADGE_12,
|
||||
"FOGBADGE" => SWITCH_GOT_BADGE_13,
|
||||
"GLACIERBADGE" => SWITCH_GOT_BADGE_14,
|
||||
"STORMBADGE" => SWITCH_GOT_BADGE_15,
|
||||
"MINERALBADGE" => SWITCH_GOT_BADGE_16,
|
||||
}
|
||||
|
||||
def unlock_card_background(id)
|
||||
$Trainer.unlocked_card_backgrounds = [] if !$Trainer.unlocked_card_backgrounds
|
||||
$Trainer.unlocked_card_backgrounds << id
|
||||
end
|
||||
|
||||
def getDisplayedName(card_id)
|
||||
return card_id.downcase.gsub('_', ' ').gsub('flags/', 'Team ').split.map(&:capitalize).join(' ')
|
||||
end
|
||||
|
||||
|
||||
def purchaseCardBackground(price = 1000)
|
||||
$Trainer.unlocked_card_backgrounds = [] if ! $Trainer.unlocked_card_backgrounds
|
||||
purchasable_cards = []
|
||||
current_city = pbGet(VAR_CURRENT_MART)
|
||||
current_city = :PEWTER if !current_city.is_a?(Symbol)
|
||||
for card in CARD_BACKGROUND_DEFAULT_PURCHASABLE
|
||||
purchasable_cards << card if !$Trainer.unlocked_card_backgrounds.include?(card)
|
||||
end
|
||||
for card in CARD_BACKGROUND_UNLOCKABLES.keys
|
||||
purchasable_cards << card if $game_switches[CARD_BACKGROUND_UNLOCKABLES[card]] && !$Trainer.unlocked_card_backgrounds.include?(card)
|
||||
end
|
||||
for card in CARD_BACKGROUND_CITY_EXCLUSIVES.keys
|
||||
purchasable_cards << card if current_city == CARD_BACKGROUND_CITY_EXCLUSIVES[card]
|
||||
end
|
||||
|
||||
if purchasable_cards.length <= 0
|
||||
pbMessage("There are no more Trainer Card backgrounds available for purchase!")
|
||||
return
|
||||
end
|
||||
|
||||
commands = []
|
||||
index = 0
|
||||
for card in purchasable_cards
|
||||
index += 1
|
||||
name = getDisplayedName(card)
|
||||
commands.push([index, name, card])
|
||||
end
|
||||
pbMessage("\\GWhich background would you like to purchase?")
|
||||
chosen = pbListScreen("Trainer card", TrainerCardBackgroundLister.new(purchasable_cards))
|
||||
echoln chosen
|
||||
if chosen != nil
|
||||
name = getDisplayedName(chosen)
|
||||
if pbConfirmMessage("\\GPurchase the \\C[1]#{name} Trainer Card background\\C[0] for $#{price.to_s}?")
|
||||
if $Trainer.money < price
|
||||
pbSEPlay("GUI sel buzzer", 80)
|
||||
pbMessage("\\G\\C[2]Insufficient funds")
|
||||
return false
|
||||
end
|
||||
pbSEPlay("Mart buy item")
|
||||
$Trainer.money -= price
|
||||
unlock_card_background(chosen)
|
||||
pbSEPlay("Item get")
|
||||
pbMessage("\\GYou purchased the #{name} Trainer Card background!")
|
||||
if pbConfirmMessage("Would you like to swap your current Trainer Card for the newly purchased one?")
|
||||
pbSEPlay("GUI trainer card open")
|
||||
$Trainer.card_background = chosen
|
||||
else
|
||||
pbMessage("You can swap the background at anytime when viewing your Trainer Card.")
|
||||
end
|
||||
echoln $Trainer.unlocked_card_backgrounds
|
||||
return true
|
||||
end
|
||||
else
|
||||
pbSEPlay("computerclose")
|
||||
end
|
||||
end
|
||||
|
||||
class TrainerCardBackgroundLister
|
||||
BASE_TRAINER_CARD_PATH = "Graphics/Pictures/Trainer Card/backgrounds"
|
||||
|
||||
def initialize(cardsList)
|
||||
@sprite = SpriteWrapper.new
|
||||
@sprite.bitmap = nil
|
||||
@sprite.x = 250
|
||||
@sprite.y = 100
|
||||
@sprite.z = -2
|
||||
@sprite.zoom_x = 0.5
|
||||
@sprite.zoom_y = 0.5
|
||||
|
||||
@frame = SpriteWrapper.new
|
||||
@frame.bitmap = AnimatedBitmap.new("Graphics/Pictures/Trainer Card/overlay").bitmap
|
||||
@frame.x = 250
|
||||
@frame.y = 100
|
||||
@frame.z = -2
|
||||
@frame.zoom_x = 0.5
|
||||
@frame.zoom_y = 0.5
|
||||
|
||||
@commands = []
|
||||
@cardsList = cardsList
|
||||
@index = 0
|
||||
end
|
||||
|
||||
def dispose
|
||||
@sprite.bitmap.dispose if @sprite.bitmap
|
||||
@sprite.dispose
|
||||
@frame.bitmap.dispose if @sprite.bitmap
|
||||
@frame.dispose
|
||||
end
|
||||
|
||||
def setViewport(viewport)
|
||||
@sprite.viewport = viewport
|
||||
@frame.viewport = viewport
|
||||
end
|
||||
|
||||
def startIndex
|
||||
return @index
|
||||
end
|
||||
|
||||
def commands
|
||||
@commands.clear
|
||||
for i in 0...@cardsList.length
|
||||
card_id = @cardsList[i]
|
||||
card_name = getDisplayedName(@cardsList[i])
|
||||
@commands.push(card_name)
|
||||
end
|
||||
@commands << "Cancel"
|
||||
return @commands
|
||||
end
|
||||
|
||||
def value(index)
|
||||
return nil if index < 0
|
||||
return nil if index == @commands.length
|
||||
return @cardsList[index]
|
||||
end
|
||||
|
||||
def refresh(index)
|
||||
return if index >= @cardsList.length
|
||||
return if index < 0
|
||||
@sprite.bitmap.dispose if @sprite.bitmap
|
||||
card_id = @cardsList[index]
|
||||
trainer_card_path = "#{BASE_TRAINER_CARD_PATH}/#{card_id}"
|
||||
echoln index
|
||||
echoln @cardsList.length
|
||||
@sprite.bitmap = AnimatedBitmap.new(trainer_card_path).bitmap
|
||||
#sprite.ox = @sprite.bitmap.width/2 if @sprite.bitmap
|
||||
#@sprite.oy = @sprite.bitmap.height/2 if @sprite
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user