hair can be one frame long
@@ -45,7 +45,7 @@ Special thanks to Aegide and Reizod for helping to rip the sprites from the webs
|
||||
and to the owners of the respective fusion websites for accepting to share
|
||||
their sprites.
|
||||
|
||||
Intro cinamatic
|
||||
Intro cinematic
|
||||
#####################
|
||||
Kiwikelly
|
||||
|
||||
@@ -116,7 +116,7 @@ with their respective authors' consent
|
||||
SailorVicious (Prof. Elm OW sprite) https://www.deviantart.com/sailorvicious
|
||||
OceansLugiaSpirit (Koga OW sprite) http://oceanslugiaspirit.deviantart.com/
|
||||
Wolfang62: https://www.deviantart.com/wolfang62/art/Wimpod-Sprite-Overworld-836704744
|
||||
|
||||
zender1752 (Sabrina OW sprite)
|
||||
Battle sprites:
|
||||
Custom graphics:
|
||||
Kiwikelly, UnworthyPie
|
||||
@@ -124,7 +124,7 @@ with their respective authors' consent
|
||||
Free use graphics:
|
||||
luckygirl88 (Misty VS sprite) http://luckygirl88.deviantart.com/art/Pokemon-BW-Misty-Sprite-Sheet-268364830
|
||||
Lorelei VS sprite by Nalty http://nalty.deviantart.com/art/Lorelei-VS-Sprite-177184960
|
||||
|
||||
x-5-4-5-2 (Sabrina sprite) https://www.deviantart.com/x-5-4-5-2/art/Game-Sabrina-204548703
|
||||
### Custom tileset graphics ###
|
||||
Kiwikelly
|
||||
|
||||
|
||||
@@ -166,54 +166,5 @@ class Sprite_Wearable < RPG::Sprite
|
||||
@disposed
|
||||
end
|
||||
|
||||
# def getCurrentSpriteOffset()
|
||||
# direction = @character.direction
|
||||
# current_frame = @character.pattern
|
||||
# case @character_name
|
||||
# when "run"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# return Outfit_Offsets::RUN_OFFSETS_DOWN[current_frame]
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# return Outfit_Offsets::RUN_OFFSETS_LEFT[current_frame]
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# return Outfit_Offsets::RUN_OFFSETS_RIGHT[current_frame]
|
||||
# elsif direction == DIRECTION_UP
|
||||
# return Outfit_Offsets::RUN_OFFSETS_UP[current_frame]
|
||||
# end
|
||||
# when "surf"
|
||||
# #when "dive"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# return Outfit_Offsets::SURF_OFFSETS_DOWN[current_frame]
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# return Outfit_Offsets::SURF_OFFSETS_LEFT[current_frame]
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# return Outfit_Offsets::SURF_OFFSETS_RIGHT[current_frame]
|
||||
# elsif direction == DIRECTION_UP
|
||||
# return Outfit_Offsets::SURF_OFFSETS_UP[current_frame]
|
||||
# end
|
||||
# when "dive"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# return Outfit_Offsets::DIVE_OFFSETS_DOWN[current_frame]
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# return Outfit_Offsets::DIVE_OFFSETS_LEFT[current_frame]
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# return Outfit_Offsets::DIVE_OFFSETS_RIGHT[current_frame]
|
||||
# elsif direction == DIRECTION_UP
|
||||
# return Outfit_Offsets::DIVE_OFFSETS_UP[current_frame]
|
||||
# end
|
||||
# when "bike"
|
||||
# if direction == DIRECTION_DOWN
|
||||
# return Outfit_Offsets::BIKE_OFFSETS_DOWN[current_frame]
|
||||
# elsif direction == DIRECTION_LEFT
|
||||
# return Outfit_Offsets::BIKE_OFFSETS_LEFT[current_frame]
|
||||
# elsif direction == DIRECTION_RIGHT
|
||||
# return Outfit_Offsets::BIKE_OFFSETS_RIGHT[current_frame]
|
||||
# elsif direction == DIRECTION_UP
|
||||
# return Outfit_Offsets::BIKE_OFFSETS_UP[current_frame]
|
||||
# end
|
||||
# end
|
||||
# return Outfit_Offsets::BASE_OFFSET[current_frame]
|
||||
# end
|
||||
|
||||
|
||||
end
|
||||
|
||||
@@ -13,11 +13,12 @@ class Sprite_Hair < Sprite_Wearable
|
||||
crop_spritesheet(direction, current_frame, action)
|
||||
adjust_layer()
|
||||
set_sprite_position(@action, direction, current_frame)
|
||||
adjust_position_for_nonAnimated_hairstyles(current_frame)
|
||||
end
|
||||
|
||||
def crop_spritesheet(direction, current_frame, action)
|
||||
sprite_x = ((current_frame)) * @frameWidth
|
||||
|
||||
sprite_x = 0 if @frameWidth == @wearableBitmap.width
|
||||
# Don't animate surf
|
||||
sprite_x = 0 if action == "surf"
|
||||
|
||||
@@ -25,6 +26,10 @@ class Sprite_Hair < Sprite_Wearable
|
||||
@sprite.src_rect.set(sprite_x, sprite_y, @frameWidth, @frameHeight)
|
||||
end
|
||||
|
||||
def adjust_position_for_nonAnimated_hairstyles(current_frame)
|
||||
return if @frameWidth != @wearableBitmap.width
|
||||
@sprite.y -= 2 if current_frame % 2 == 1
|
||||
end
|
||||
def set_sprite_position(action, direction, current_frame)
|
||||
@sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
@sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
@@ -80,7 +85,7 @@ class Sprite_Hair < Sprite_Wearable
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_UP, current_frame)
|
||||
end
|
||||
end
|
||||
|
||||
adjustPositionForScreenScrolling()
|
||||
end
|
||||
|
||||
end
|
||||
@@ -134,9 +134,10 @@ end
|
||||
|
||||
def generate_front_trainer_sprite_bitmap_from_appearance(trainerAppearance)
|
||||
echoln trainerAppearance.hat
|
||||
return generate_front_trainer_sprite_bitmap(false,nil,trainerAppearance.clothes,trainerAppearance.hat,nil,
|
||||
return generate_front_trainer_sprite_bitmap(false,nil,trainerAppearance.clothes,trainerAppearance.hat,trainerAppearance.hat2,
|
||||
trainerAppearance.hair,trainerAppearance.skin_color,
|
||||
trainerAppearance.hair_color,trainerAppearance.hat_color,trainerAppearance.clothes_color)
|
||||
trainerAppearance.hair_color,trainerAppearance.hat_color,trainerAppearance.clothes_color,
|
||||
trainerAppearance.hat2_color)
|
||||
end
|
||||
|
||||
def generate_front_trainer_sprite_bitmap(allowEasterEgg=true, pokeball = nil,
|
||||
|
||||
@@ -112,7 +112,7 @@ HAIR_SURGE = "surge" #does not exist yet
|
||||
HAIR_ERIKA = "erika"
|
||||
HAIR_KOGA = "koga" #does not exist yet
|
||||
HAIR_JANINE = "janine"
|
||||
HAIR_SABRINA = "sabrina" #does not exist yet
|
||||
HAIR_SABRINA = "sabrinaGSC"
|
||||
HAIR_BLAINE = "blaine" #does not exist yet
|
||||
HAIR_GIOVANNI = "giovanni" #does not exist yet
|
||||
HAIR_WHITNEY = "whitney"
|
||||
|
||||
@@ -313,12 +313,13 @@ def randomizePlayerOutfitUnlocked()
|
||||
end
|
||||
|
||||
def convert_letter_to_number(letter, max_number = nil)
|
||||
return 0 if !letter
|
||||
return letter.ord if !max_number
|
||||
return letter.ord % max_number
|
||||
end
|
||||
|
||||
def generate_appearance_from_name(name)
|
||||
name_seed_length = 15
|
||||
name_seed_length = 11
|
||||
|
||||
seed = name[0, name_seed_length] # Truncate if longer than 8
|
||||
seed += seed[0, name_seed_length - seed.length] while seed.length < name_seed_length # Repeat first characters if shorter
|
||||
@@ -330,29 +331,22 @@ def generate_appearance_from_name(name)
|
||||
hairstyles_list = $PokemonGlobal.hairstyles_data.keys
|
||||
|
||||
hat = hats_list[convert_letter_to_number(seed[0],hats_list.length)]
|
||||
hat2 = hats_list[convert_letter_to_number(seed[1],hats_list.length)]
|
||||
hat2 = nil if convert_letter_to_number(seed[2]) % 3 == 0 #1/3 chance of no 2nd hat
|
||||
hat_color = convert_letter_to_number(seed[1],255)
|
||||
hat_color = 0 if convert_letter_to_number(seed[2]) % 2 == 0 #1/2 chance of no dyed hat
|
||||
|
||||
hat_color = convert_letter_to_number(seed[3],255)
|
||||
hat_color = 0 if convert_letter_to_number(seed[4]) % 2 == 0 #1/2 chance of no dyed hat
|
||||
hat2_color = convert_letter_to_number(seed[5],255)
|
||||
hat2_color = 0 if convert_letter_to_number(seed[6]) % 2 == 0
|
||||
clothes = clothes_list[convert_letter_to_number(seed[3],clothes_list.length)]
|
||||
clothes_color = convert_letter_to_number(seed[4],255)
|
||||
clothes_color = 0 if convert_letter_to_number(seed[5]) % 2 == 0 #1/2 chance of no dyed clothes
|
||||
|
||||
clothes = clothes_list[convert_letter_to_number(seed[7],clothes_list.length)]
|
||||
clothes_color = convert_letter_to_number(seed[8],255)
|
||||
clothes_color = 0 if convert_letter_to_number(seed[9]) % 2 == 0 #1/2 chance of no dyed clothes
|
||||
|
||||
hair_base = hairstyles_list[convert_letter_to_number(seed[10],hairstyles_list.length)]
|
||||
hair_number = [1,2,3,4][convert_letter_to_number(seed[11],3)]
|
||||
hair_base = hairstyles_list[convert_letter_to_number(seed[6],hairstyles_list.length)]
|
||||
hair_number = [1,2,3,4][convert_letter_to_number(seed[7],3)]
|
||||
hair=getFullHairId(hair_base,hair_number)
|
||||
hair_color = convert_letter_to_number(seed[12],255)
|
||||
hair_color = 0 if convert_letter_to_number(seed[13]) % 2 == 0 #1/2 chance of no dyed hair
|
||||
hair_color = convert_letter_to_number(seed[8],255)
|
||||
hair_color = 0 if convert_letter_to_number(seed[9]) % 2 == 0 #1/2 chance of no dyed hair
|
||||
|
||||
skin_tone = [1,2,3,4,5,6][convert_letter_to_number(seed[14],5)]
|
||||
|
||||
echoln clothes
|
||||
skin_tone = [1,2,3,4,5,6][convert_letter_to_number(seed[10],5)]
|
||||
return TrainerAppearance.new(skin_tone,hat,clothes, hair,
|
||||
hair_color, clothes_color, hat_color,hat2,hat2_color)
|
||||
hair_color, clothes_color, hat_color)
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ end
|
||||
def getFusedPokemonIdFromSymbols(body_dex, head_dex)
|
||||
bodyDexNum = GameData::Species.get(body_dex).id_number
|
||||
headDexNum = GameData::Species.get(head_dex).id_number
|
||||
return getFusedPokemonIdFromDexNum(body_dex, head_dex)
|
||||
return getFusedPokemonIdFromDexNum(bodyDexNum, headDexNum)
|
||||
end
|
||||
|
||||
def generateFusionIcon(dexNum, path)
|
||||
|
||||
@@ -187,12 +187,19 @@
|
||||
},
|
||||
{
|
||||
"id": "highpony",
|
||||
"name": "High-pony",
|
||||
"name": "Ponytail",
|
||||
"description": "A high ponytail reminiscent of Lopunny's fur",
|
||||
"done": "yes",
|
||||
"price": 500,
|
||||
"tags": "default"
|
||||
},
|
||||
{
|
||||
"id": "hilda",
|
||||
"name": "High-pony",
|
||||
"description": "A voluminous high ponytail that shows you're ready for adventure. It's popular with new trainers in Unova!",
|
||||
"price": 2000,
|
||||
"tags": "unova,"
|
||||
},
|
||||
{
|
||||
"id": "hime",
|
||||
"name": "Hime",
|
||||
@@ -321,7 +328,10 @@
|
||||
},
|
||||
{
|
||||
"id": "lyra",
|
||||
"name": "Springy Pigtails"
|
||||
"name": "Peppy Pigtails",
|
||||
"description": "Bouncy pigtails with a playful charm that gives off a carefree vibes.",
|
||||
"price": 1500,
|
||||
"tags": "johto,"
|
||||
},
|
||||
{
|
||||
"id": "mawile",
|
||||
@@ -506,6 +516,16 @@
|
||||
"tags": "short, untied, spiky, thick, pokemon,celadon,",
|
||||
"howToGet": "Celadon special"
|
||||
},
|
||||
{
|
||||
"id": "sabrinaGSC",
|
||||
"name": "Clairvoyant Cut",
|
||||
"description": "A medium-length cut with a distinct parted fringe that frames the face.The style was popularized by the Gym Leader Sabrina.",
|
||||
"price": 2000
|
||||
},
|
||||
{
|
||||
"id": "sabrinaRBY",
|
||||
"name": "Telekinetic Tresses"
|
||||
},
|
||||
{
|
||||
"id": "samurai",
|
||||
"name": "Samurai"
|
||||
|
||||
@@ -1,5 +1,2 @@
|
||||
1740158773
|
||||
1740158778
|
||||
1740158828
|
||||
1740158832
|
||||
1740158832
|
||||
1740188152
|
||||
1740188180
|
||||
@@ -503,3 +503,70 @@ Graphics/CustomBattlers/spritesheets/spritesheets_custom/148/148.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/78/78c.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/136/136.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/260.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/208.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/208/208.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/151/151.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/305.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/498/498.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/461.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/33/33.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/232.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/78/78.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/155.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/373/373.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/197.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/197/197a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/86/86.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/478/478.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/459.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/459/459.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/24.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/158.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/14/14.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/327.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/327/327.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/15.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/15/15.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/246.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/412.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/48/48a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/116.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/223.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/223/223.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/60.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/99/99.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/275/275b.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/95.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/211.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/211/211.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/240.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/253.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/253/253.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/408.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/408/408.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/258.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/206/206.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/3/3a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/57/57.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/467/467a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/467/467.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/36.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/36/36.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/495.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/158/158.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/124.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/124/124.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/406/406.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/133.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/46/46a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/35.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/433.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/433/433.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/43.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/309/309.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/122.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/122/122.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/114.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/114/114.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/499/499.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/69.png
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 5.8 KiB |