6.4 update (minus sprites)

This commit is contained in:
infinitefusion
2024-12-21 09:43:11 -05:00
parent f70c2cfde4
commit 1e325366d2
1717 changed files with 140299 additions and 27845 deletions

View File

@@ -1,18 +1,35 @@
def obtainNewHat(outfit_id)
return obtainHat(outfit_id)
end
def obtainNewClothes(outfit_id)
return obtainClothes(outfit_id)
end
def obtainHat(outfit_id)
echoln "obtained new hat: " + outfit_id
outfit = get_hat_by_id(outfit_id)
if !outfit
pbMessage(_INTL("The hat #{outfit_id} is invalid."))
return
end
$Trainer.unlocked_hats << outfit_id if !$Trainer.unlocked_hats.include?(outfit_id)
obtainOutfitMessage(outfit)
if pbConfirmMessage("Would you like to put it on right now?")
putOnHat(outfit_id)
putOnHat(outfit_id, false)
return true
end
return false
end
def obtainNewClothes(outfit_id)
def obtainClothes(outfit_id)
echoln "obtained new clothes: " + outfit_id
outfit = get_clothes_by_id(outfit_id)
if !outfit
pbMessage(_INTL("The clothes #{outfit_id} are invalid."))
return
end
return if !outfit
$Trainer.unlocked_clothes << outfit_id if !$Trainer.unlocked_clothes.include?(outfit_id)
obtainOutfitMessage(outfit)
if pbConfirmMessage("Would you like to put it on right now?")
@@ -23,56 +40,95 @@ def obtainNewClothes(outfit_id)
end
def obtainNewHairstyle(full_outfit_id)
split_outfit_id =getSplitHairFilenameAndVersionFromID(full_outfit_id)
hairstyle_id =split_outfit_id[1]
hairstyle_version= split_outfit_id[0]
outfit = get_hair_by_id(hairstyle_id)
$Trainer.unlocked_clothes << hairstyle_id if !$Trainer.unlocked_hairstyles.include?(hairstyle_id)
split_outfit_id = getSplitHairFilenameAndVersionFromID(full_outfit_id)
hairstyle_id = split_outfit_id[1]
hairstyle = get_hair_by_id(hairstyle_id)
musical_effect = "Key item get"
pbMessage(_INTL("\\me[{1}]Your hairstyle was changed to \\c[1]{2}\\c[0] hairstyle!\\wtnp[30]", musical_effect, outfit.name))
# pbMessage(_INTL("\\me[{1}]You obtained the \\c[1]{2}\\c[0] hairstyle!\\wtnp[30]", musical_effect, outfit.name))
# if pbConfirmMessage("Would you like to use this hairstyle right now?")
# putOnHair(hairstyle_id,hairstyle_version)
# return true
# end
return false
pbMessage(_INTL("\\me[{1}]Your hairstyle was changed to \\c[1]{2}\\c[0] hairstyle!\\wtnp[30]", musical_effect, hairstyle.name))
return true
end
def putOnClothes(outfit_id)
def putOnClothes(outfit_id, silent = false)
$Trainer.last_worn_outfit = $Trainer.clothes
outfit = get_clothes_by_id(outfit_id)
$Trainer.clothes = outfit_id
putOnOutfitMessage(outfit)
$Trainer.clothes_color = nil
$game_map.update
refreshPlayerOutfit()
putOnOutfitMessage(outfit) if !silent
end
def putOnHat(outfit_id)
def putOnHat(outfit_id, silent = false)
$Trainer.last_worn_hat = $Trainer.hat
outfit = get_hat_by_id(outfit_id)
$Trainer.hat = outfit_id
putOnOutfitMessage(outfit)
$Trainer.hat_color = nil
$game_map.
refreshPlayerOutfit()
putOnOutfitMessage(outfit) if !silent
end
def putOnHairFullId(full_outfit_id)
outfit_id = getSplitHairFilenameAndVersionFromID(full_outfit_id)[1]
outfit = get_hair_by_id(outfit_id)
$Trainer.hair = getFullHairId(full_outfit_id)
$Trainer.hair = full_outfit_id
$game_map.update
refreshPlayerOutfit()
putOnOutfitMessage(outfit)
end
def putOnHair(outfit_id, version)
full_id = getFullHairId(outfit_id, version)
putOnHairFullId(full_id)
#outfit = get_hair_by_id(outfit_id)
$Trainer.hair = getFullHairId(outfit_id,version)
#$Trainer.hair =
#putOnOutfitMessage(outfit)
end
def showOutfitPicture(outfit)
begin
outfitPath = outfit.trainer_sprite_path()
viewport = Viewport.new(Graphics.width / 4, 0, Graphics.width / 2, Graphics.height)
bg_sprite = Sprite.new(viewport)
outfit_sprite = Sprite.new(viewport)
outfit_bitmap = AnimatedBitmap.new(outfitPath) if pbResolveBitmap(outfitPath)
bg_bitmap = AnimatedBitmap.new("Graphics/Pictures/Outfits/obtain_bg")
outfit_sprite.bitmap = outfit_bitmap.bitmap
bg_sprite.bitmap = bg_bitmap.bitmap
# bitmap = AnimatedBitmap.new("Graphics/Pictures/Outfits/obtain_bg")
outfit_sprite.x = -50
outfit_sprite.y = 50
outfit_sprite.y -= 120 if outfit.type == :CLOTHES
# outfit_sprite.y = Graphics.height/2
outfit_sprite.zoom_x = 2
outfit_sprite.zoom_y = 2
bg_sprite.x = 0
viewport.z = 99999
# bg_sprite.y = Graphics.height/2
return viewport
rescue
#ignore
end
end
#todo: add a little preview window?
def obtainOutfitMessage(outfit)
pictureViewport = showOutfitPicture(outfit)
musical_effect = "Key item get"
pbMessage(_INTL("\\me[{1}]You obtained a \\c[1]{2}\\c[0]!\\wtnp[30]", musical_effect, outfit.name))
pictureViewport.dispose if pictureViewport
end
def putOnOutfitMessage(outfit)
playOutfitChangeAnimation()
pbMessage(_INTL("You put on the \\c[1]{1}\\c[0]!\\wtnp[30]", outfit.name))
outfitName = outfit.name == "" ? outfit.id : outfit.name
pbMessage(_INTL("You put on the \\c[1]{1}\\c[0]!\\wtnp[30]", outfitName))
end
def refreshPlayerOutfit()
@@ -92,5 +148,155 @@ def findLastHairVersion(hairId)
end
}
return last_version
end
def isWearingClothes(outfitId)
return $Trainer.clothes == outfitId
end
def isWearingHat(outfitId)
return $Trainer.hat == outfitId
end
def isWearingHairstyle(outfitId, version = nil)
current_hair_split_id = getSplitHairFilenameAndVersionFromID($Trainer.hair)
current_id = current_hair_split_id.length >= 1 ? current_hair_split_id[1] : nil
current_version = current_hair_split_id[0]
if version
return outfitId == current_id && version == current_version
end
return outfitId == current_id
end
#Some game switches need to be on/off depending on the outfit that the player is wearing,
# this is called every time you change outfit to make sure that they're always updated correctly
def updateOutfitSwitches(refresh_map = true)
$game_switches[WEARING_ROCKET_OUTFIT] = isWearingTeamRocketOutfit()
#$game_map.update
#$scene.reset_map(true) if refresh_map
#$scene.reset_map(false)
end
def getDefaultClothes()
gender = pbGet(VAR_TRAINER_GENDER)
if gender == GENDER_MALE
return DEFAULT_OUTFIT_MALE
end
return DEFAULT_OUTFIT_FEMALE
end
def hasClothes?(outfit_id)
return $Trainer.unlocked_clothes.include?(outfit_id)
end
def hasHat?(outfit_id)
return $Trainer.unlocked_hats.include?(outfit_id)
end
def getOutfitForPokemon(pokemonSpecies)
possible_clothes = []
possible_hats = []
body_pokemon_id = get_body_species_from_symbol(pokemonSpecies).to_s.downcase
head_pokemon_id = get_head_species_from_symbol(pokemonSpecies).to_s.downcase
body_pokemon_tag = "pokemon-#{body_pokemon_id}"
head_pokemon_tag = "pokemon-#{head_pokemon_id}"
possible_hats += search_hats([body_pokemon_tag])
possible_hats += search_hats([head_pokemon_tag])
possible_clothes += search_clothes([body_pokemon_tag])
possible_clothes += search_clothes([head_pokemon_tag])
if isFusion(getDexNumberForSpecies(pokemonSpecies))
possible_hats += search_hats(["pokemon-fused"], [], false)
possible_clothes += search_clothes(["pokemon-fused"], false)
end
possible_hats = filter_hats_only_not_owned(possible_hats)
possible_clothes = filter_clothes_only_not_owned(possible_clothes)
if !possible_hats.empty?() && !possible_clothes.empty?() #both have values, pick one at random
return [[possible_hats.sample, :HAT], [possible_clothes.sample, :CLOTHES]].sample
elsif !possible_hats.empty?
return [possible_hats.sample, :HAT]
elsif !possible_clothes.empty?
return [possible_clothes.sample, :CLOTHES]
end
return []
end
def hatUnlocked?(hatId)
return $Trainer.unlocked_hats.include?(hatId)
end
def export_current_outfit()
skinTone = $Trainer.skin_tone ? $Trainer.skin_tone : 0
hat = $Trainer.hat ? $Trainer.hat : "nil"
hair_color = $Trainer.hair_color || 0
clothes_color = $Trainer.clothes_color || 0
hat_color = $Trainer.hat_color || 0
exportedString = "TrainerAppearance.new(#{skinTone},\"#{hat}\",\"#{$Trainer.clothes}\",\"#{$Trainer.hair}\",#{hair_color},#{clothes_color},#{hat_color})"
Input.clipboard = exportedString
end
def clearEventCustomAppearance(event_id)
return if !$scene.is_a?(Scene_Map)
event_sprite = $scene.spriteset.character_sprites[@event_id]
for sprite in $scene.spriteset.character_sprites
if sprite.character.id == event_id
event_sprite = sprite
end
end
return if !event_sprite
event_sprite.clearBitmapOverride
end
def setEventAppearance(event_id, trainerAppearance)
return if !$scene.is_a?(Scene_Map)
event_sprite = $scene.spriteset.character_sprites[@event_id]
for sprite in $scene.spriteset.character_sprites
if sprite.character.id == event_id
event_sprite = sprite
end
end
return if !event_sprite
event_sprite.setSpriteToAppearance(trainerAppearance)
end
def getPlayerAppearance()
return TrainerAppearance.new($Trainer.skin_tone,$Trainer.hat,$Trainer.clothes, $Trainer.hair,
$Trainer.hair_color, $Trainer.clothes_color, $Trainer.hat_color)
end
def randomizePlayerOutfitUnlocked()
$Trainer.hat = $Trainer.unlocked_hats.sample
$Trainer.clothes = $Trainer.unlocked_clothes.sample
dye_hat = rand(2)==0
dye_clothes = rand(2)==0
dye_hair = rand(2)==0
$Trainer.hat_color = dye_hat ? rand(255) : 0
$Trainer.clothes_color = dye_clothes ? rand(255) : 0
$Trainer.hair_color = dye_hair ? rand(255) : 0
hair_id = $PokemonGlobal.hairstyles_data.keys.sample
hair_color = [1,2,3,4].sample
$Trainer.hair = getFullHairId(hair_id,hair_color)
end
def randomizePlayerOutfit()
$Trainer.hat = $PokemonGlobal.hats_data.keys.sample
$Trainer.clothes = $PokemonGlobal.clothes_data.keys.sample
$Trainer.hat_color = rand(2)==0 ? rand(255) : 0
$Trainer.clothes_color = rand(2)==0 ? rand(255) : 0
$Trainer.hair_color = rand(2)==0 ? rand(255) : 0
hair_id = $PokemonGlobal.hairstyles_data.keys.sample
hair_color = [1,2,3,4].sample
$Trainer.skin_tone = [1,2,3,4,5,6].sample
$Trainer.hair = getFullHairId(hair_id,hair_color)
end