Added new section-based format for ribbons.txt

This commit is contained in:
Maruno17
2021-06-20 17:57:35 +01:00
parent e201821919
commit 53d27d3cf5
6 changed files with 470 additions and 107 deletions

View File

@@ -19,7 +19,7 @@ module GameData
def initialize(hash) def initialize(hash)
@id = hash[:id] @id = hash[:id]
@real_name = hash[:name] || "Unnamed" @real_name = hash[:name] || "Unnamed"
@icon_position = hash[:icon_position] || -1 # -1 means "no icon" @icon_position = hash[:icon_position] || 0
end end
# @return [String] the translated name of this body shape # @return [String] the translated name of this body shape

View File

@@ -23,7 +23,7 @@ module GameData
@id = hash[:id] @id = hash[:id]
@real_name = hash[:name] || "Unnamed" @real_name = hash[:name] || "Unnamed"
@animation = hash[:animation] @animation = hash[:animation]
@icon_position = hash[:icon_position] || -1 # -1 means "no icon" @icon_position = hash[:icon_position] || 0
end end
# @return [String] the translated name of this status condition # @return [String] the translated name of this status condition

View File

@@ -2,20 +2,26 @@ module GameData
class Ribbon class Ribbon
attr_reader :id attr_reader :id
attr_reader :real_name attr_reader :real_name
attr_reader :real_description
attr_reader :icon_position # Where this ribbon's graphic is within ribbons.png attr_reader :icon_position # Where this ribbon's graphic is within ribbons.png
attr_reader :real_description
DATA = {} DATA = {}
DATA_FILENAME = "ribbons.dat" DATA_FILENAME = "ribbons.dat"
SCHEMA = {
"Name" => [:name, "s"],
"IconPosition" => [:icon_position, "u"],
"Description" => [:description, "q"]
}
extend ClassMethodsSymbols extend ClassMethodsSymbols
include InstanceMethods include InstanceMethods
def initialize(hash) def initialize(hash)
@id = hash[:id] @id = hash[:id]
@real_name = hash[:name] || "Unnamed" @real_name = hash[:name] || "Unnamed"
@icon_position = hash[:icon_position] || 0
@real_description = hash[:description] || "???" @real_description = hash[:description] || "???"
@icon_position = hash[:icon_position] || -1
end end
# @return [String] the translated name of this ribbon # @return [String] the translated name of this ribbon

View File

@@ -921,17 +921,52 @@ module Compiler
#============================================================================= #=============================================================================
def compile_ribbons(path = "PBS/ribbons.txt") def compile_ribbons(path = "PBS/ribbons.txt")
GameData::Ribbon::DATA.clear GameData::Ribbon::DATA.clear
schema = GameData::Ribbon::SCHEMA
ribbon_names = [] ribbon_names = []
ribbon_descriptions = [] ribbon_descriptions = []
ribbon_hash = nil
pbCompilerEachPreppedLine(path) { |line, line_no| pbCompilerEachPreppedLine(path) { |line, line_no|
line = pbGetCsvRecord(line, line_no, [0, "unss"]) if line[/^\s*\[\s*(.+)\s*\]\s*$/] # New section [ribbon_id]
ribbon_symbol = line[1].to_sym # Add previous ribbon's data to records
if GameData::Ribbon::DATA[ribbon_symbol] GameData::Ribbon.register(ribbon_hash) if ribbon_hash
raise _INTL("Ribbon ID '{1}' is used twice.\r\n{2}", ribbon_symbol, FileLineData.linereport) # Parse ribbon ID
ribbon_id = $~[1].to_sym
if GameData::Ribbon.exists?(ribbon_id)
raise _INTL("Ribbon ID '{1}' is used twice.\r\n{2}", ribbon_id, FileLineData.linereport)
end end
# Construct ribbon hash # Construct ribbon hash
ribbon_hash = { ribbon_hash = {
:id => ribbon_symbol, :id => ribbon_id
}
elsif line[/^\s*(\w+)\s*=\s*(.*)\s*$/] # XXX=YYY lines
if !ribbon_hash
raise _INTL("Expected a section at the beginning of the file.\r\n{1}", FileLineData.linereport)
end
# Parse property and value
property_name = $~[1]
line_schema = schema[property_name]
next if !line_schema
property_value = pbGetCsvRecord($~[2], line_no, line_schema)
# Record XXX=YYY setting
ribbon_hash[line_schema[0]] = property_value
case property_name
when "Name"
ribbon_names.push(ribbon_hash[:name])
when "Description"
ribbon_descriptions.push(ribbon_hash[:description])
end
else # Old format
# Add previous ribbon's data to records
GameData::Ribbon.register(ribbon_hash) if ribbon_hash
# Parse ribbon
line = pbGetCsvRecord(line, line_no, [0, "unss"])
ribbon_id = line[1].to_sym
if GameData::Ribbon::DATA[ribbon_id]
raise _INTL("Ribbon ID '{1}' is used twice.\r\n{2}", ribbon_id, FileLineData.linereport)
end
# Construct ribbon hash
ribbon_hash = {
:id => ribbon_id,
:name => line[2], :name => line[2],
:description => line[3], :description => line[3],
:icon_position => line[0] - 1 :icon_position => line[0] - 1
@@ -940,7 +975,11 @@ module Compiler
GameData::Ribbon.register(ribbon_hash) GameData::Ribbon.register(ribbon_hash)
ribbon_names.push(ribbon_hash[:name]) ribbon_names.push(ribbon_hash[:name])
ribbon_descriptions.push(ribbon_hash[:description]) ribbon_descriptions.push(ribbon_hash[:description])
ribbon_hash = nil
end
} }
# Add last ribbon's data to records
GameData::Ribbon.register(ribbon_hash) if ribbon_hash
# Save all data # Save all data
GameData::Ribbon.save GameData::Ribbon.save
MessageTypes.setMessagesAsHash(MessageTypes::RibbonNames, ribbon_names) MessageTypes.setMessagesAsHash(MessageTypes::RibbonNames, ribbon_names)

View File

@@ -497,14 +497,13 @@ module Compiler
def write_ribbons def write_ribbons
File.open("PBS/ribbons.txt", "wb") { |f| File.open("PBS/ribbons.txt", "wb") { |f|
add_PBS_header_to_file(f) add_PBS_header_to_file(f)
# Write each ability in turn
GameData::Ribbon.each do |ribbon|
f.write("\#-------------------------------\r\n") f.write("\#-------------------------------\r\n")
GameData::Ribbon.each do |r| f.write("[#{ribbon.id}]\r\n")
f.write(sprintf("%d,%s,%s,%s\r\n", f.write("Name = #{ribbon.real_name}\r\n")
r.icon_position + 1, f.write("IconPosition = #{ribbon.icon_position}\r\n")
csvQuote(r.id.to_s), f.write("Description = #{ribbon.real_description}\r\n")
csvQuote(r.real_name),
csvQuoteAlways(r.real_description)
))
end end
} }
Graphics.update Graphics.update

View File

@@ -1,82 +1,401 @@
# See the documentation on the wiki to learn how to edit this file. # See the documentation on the wiki to learn how to edit this file.
#------------------------------- #-------------------------------
1,HOENNCOOL,Cool Ribbon,"Hoenn Cool Contest Normal Rank winner!" [HOENNCOOL]
2,HOENNCOOLSUPER,Cool Ribbon Super,"Hoenn Cool Contest Super Rank winner!" Name = Cool Ribbon
3,HOENNCOOLHYPER,Cool Ribbon Hyper,"Hoenn Cool Contest Hyper Rank winner!" IconPosition = 0
4,HOENNCOOLMASTER,Cool Ribbon Master,"Hoenn Cool Contest Master Rank winner!" Description = Hoenn Cool Contest Normal Rank winner!
5,HOENNBEAUTY,Beauty Ribbon,"Hoenn Beauty Contest Normal Rank winner!" #-------------------------------
6,HOENNBEAUTYSUPER,Beauty Ribbon Super,"Hoenn Beauty Contest Super Rank winner!" [HOENNCOOLSUPER]
7,HOENNBEAUTYHYPER,Beauty Ribbon Hyper,"Hoenn Beauty Contest Hyper Rank winner!" Name = Cool Ribbon Super
8,HOENNBEAUTYMASTER,Beauty Ribbon Master,"Hoenn Beauty Contest Master Rank winner!" IconPosition = 1
9,HOENNCUTE,Cute Ribbon,"Hoenn Cute Contest Normal Rank winner!" Description = Hoenn Cool Contest Super Rank winner!
10,HOENNCUTESUPER,Cute Ribbon Super,"Hoenn Cute Contest Super Rank winner!" #-------------------------------
11,HOENNCUTEHYPER,Cute Ribbon Hyper,"Hoenn Cute Contest Hyper Rank winner!" [HOENNCOOLHYPER]
12,HOENNCUTEMASTER,Cute Ribbon Master,"Hoenn Cute Contest Master Rank winner!" Name = Cool Ribbon Hyper
13,HOENNSMART,Smart Ribbon,"Hoenn Smart Contest Normal Rank winner!" IconPosition = 2
14,HOENNSMARTSUPER,Smart Ribbon Super,"Hoenn Smart Contest Super Rank winner!" Description = Hoenn Cool Contest Hyper Rank winner!
15,HOENNSMARTHYPER,Smart Ribbon Hyper,"Hoenn Smart Contest Hyper Rank winner!" #-------------------------------
16,HOENNSMARTMASTER,Smart Ribbon Master,"Hoenn Smart Contest Master Rank winner!" [HOENNCOOLMASTER]
17,HOENNTOUGH,Tough Ribbon,"Hoenn Tough Contest Normal Rank winner!" Name = Cool Ribbon Master
18,HOENNTOUGHSUPER,Tough Ribbon Super,"Hoenn Tough Contest Super Rank winner!" IconPosition = 3
19,HOENNTOUGHHYPER,Tough Ribbon Hyper,"Hoenn Tough Contest Hyper Rank winner!" Description = Hoenn Cool Contest Master Rank winner!
20,HOENNTOUGHMASTER,Tough Ribbon Master,"Hoenn Tough Contest Master Rank winner!" #-------------------------------
21,SINNOHCOOL,Cool Ribbon,"Super Contest Cool Category Normal Rank winner!" [HOENNBEAUTY]
22,SINNOHCOOLSUPER,Cool Ribbon Great,"Super Contest Cool Category Great Rank winner!" Name = Beauty Ribbon
23,SINNOHCOOLHYPER,Cool Ribbon Ultra,"Super Contest Cool Category Ultra Rank winner!" IconPosition = 4
24,SINNOHCOOLMASTER,Cool Ribbon Master,"Super Contest Cool Category Master Rank winner!" Description = Hoenn Beauty Contest Normal Rank winner!
25,SINNOHBEAUTY,Beauty Ribbon,"Super Contest Beauty Category Normal Rank winner!" #-------------------------------
26,SINNOHBEAUTYSUPER,Beauty Ribbon Great,"Super Contest Beauty Category Great Rank winner!" [HOENNBEAUTYSUPER]
27,SINNOHBEAUTYHYPER,Beauty Ribbon Ultra,"Super Contest Beauty Category Ultra Rank winner!" Name = Beauty Ribbon Super
28,SINNOHBEAUTYMASTER,Beauty Ribbon Master,"Super Contest Beauty Category Master Rank winner!" IconPosition = 5
29,SINNOHCUTE,Cute Ribbon,"Super Contest Cute Category Normal Rank winner!" Description = Hoenn Beauty Contest Super Rank winner!
30,SINNOHCUTESUPER,Cute Ribbon Great,"Super Contest Cute Category Great Rank winner!" #-------------------------------
31,SINNOHCUTEHYPER,Cute Ribbon Ultra,"Super Contest Cute Category Ultra Rank winner!" [HOENNBEAUTYHYPER]
32,SINNOHCUTEMASTER,Cute Ribbon Master,"Super Contest Cute Category Master Rank winner!" Name = Beauty Ribbon Hyper
33,SINNOHSMART,Smart Ribbon,"Super Contest Smart Category Normal Rank winner!" IconPosition = 6
34,SINNOHSMARTSUPER,Smart Ribbon Great,"Super Contest Smart Category Great Rank winner!" Description = Hoenn Beauty Contest Hyper Rank winner!
35,SINNOHSMARTHYPER,Smart Ribbon Ultra,"Super Contest Smart Category Ultra Rank winner!" #-------------------------------
36,SINNOHSMARTMASTER,Smart Ribbon Master,"Super Contest Smart Category Master Rank winner!" [HOENNBEAUTYMASTER]
37,SINNOHTOUGH,Tough Ribbon,"Super Contest Tough Category Normal Rank winner!" Name = Beauty Ribbon Master
38,SINNOHTOUGHSUPER,Tough Ribbon Great,"Super Contest Tough Category Great Rank winner!" IconPosition = 7
39,SINNOHTOUGHHYPER,Tough Ribbon Ultra,"Super Contest Tough Category Ultra Rank winner!" Description = Hoenn Beauty Contest Master Rank winner!
40,SINNOHTOUGHMASTER,Tough Ribbon Master,"Super Contest Tough Category Master Rank winner!" #-------------------------------
41,WINNING,Winning Ribbon,"Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 50 challenge." [HOENNCUTE]
42,VICTORY,Victory Ribbon,"Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 100 challenge." Name = Cute Ribbon
43,ABILITY,Ability Ribbon,"A Ribbon awarded for defeating the Tower Tycoon at the Battle Tower." IconPosition = 8
44,GREATABILITY,Great Ability Ribbon,"A Ribbon awarded for defeating the Tower Tycoon at the Battle Tower." Description = Hoenn Cute Contest Normal Rank winner!
45,DOUBLEABILITY,Double Ability Ribbon,"A Ribbon awarded for completing the Battle Tower Double challenge." #-------------------------------
46,MULTIABILITY,Multi Ability Ribbon,"A Ribbon awarded for completing the Battle Tower Multi challenge." [HOENNCUTESUPER]
47,PAIRABILITY,Pair Ability Ribbon,"A Ribbon awarded for completing the Battle Tower Link Multi challenge." Name = Cute Ribbon Super
48,WORLDABILITY,World Ability Ribbon,"A Ribbon awarded for completing the Wi-Fi Battle Tower challenge." IconPosition = 9
49,CHAMPION,Champion Ribbon,"Ribbon for clearing the Pokémon League and entering the Hall of Fame in another region. " Description = Hoenn Cute Contest Super Rank winner!
50,SINNOHCHAMP,Sinnoh Champ Ribbon,"Ribbon awarded for beating the Sinnoh Champion and entering the Hall of Fame." #-------------------------------
51,RECORD,Record Ribbon,"A Ribbon awarded for setting an incredible record." [HOENNCUTEHYPER]
52,EVENT,Event Ribbon,"Pokémon Event Participation Ribbon." Name = Cute Ribbon Hyper
53,LEGEND,Legend Ribbon,"A Ribbon awarded for setting a legendary record." IconPosition = 10
54,GORGEOUS,Gorgeous Ribbon,"An extraordinarily gorgeous and extravagant Ribbon." Description = Hoenn Cute Contest Hyper Rank winner!
55,ROYAL,Royal Ribbon,"An incredibly regal Ribbon with an air of nobility." #-------------------------------
56,GORGEOUSROYAL,Gorgeous Royal Ribbon,"A gorgeous and regal Ribbon that is the peak of fabulous." [HOENNCUTEMASTER]
57,ALERT,Alert Ribbon,"A Ribbon for recalling an invigorating event that created life energy." Name = Cute Ribbon Master
58,SHOCK,Shock Ribbon,"A Ribbon for recalling a thrilling event that made life more exciting." IconPosition = 11
59,DOWNCAST,Downcast Ribbon,"A Ribbon for recalling feelings of sadness that added spice to life." Description = Hoenn Cute Contest Master Rank winner!
60,CARELESS,Careless Ribbon,"A Ribbon for recalling a careless error that helped steer life decisions." #-------------------------------
61,RELAX,Relax Ribbon,"A Ribbon for recalling a refreshing event that added sparkle to life." [HOENNSMART]
62,SNOOZE,Snooze Ribbon,"A Ribbon for recalling a deep slumber that made life soothing." Name = Smart Ribbon
63,SMILE,Smile Ribbon,"A Ribbon for recalling that smiles enrich the quality of life." IconPosition = 12
64,FOOTPRINT,Footprint Ribbon,"A Ribbon awarded to a Pokémon deemed to have a top-quality footprint." Description = Hoenn Smart Contest Normal Rank winner!
65,ARTIST,Artist Ribbon,"Ribbon awarded for being chosen as a super sketch model in Hoenn." #-------------------------------
66,EFFORT,Effort Ribbon,"Ribbon awarded for being an exceptionally hard worker." [HOENNSMARTSUPER]
67,BIRTHDAY,Birthday Ribbon,"A Ribbon to celebrate a birthday." Name = Smart Ribbon Super
68,SPECIAL,Special Ribbon,"A special Ribbon for a special day." IconPosition = 13
69,CLASSIC,Classic Ribbon,"A Ribbon that proclaims love for Pokémon." Description = Hoenn Smart Contest Super Rank winner!
70,PREMIER,Premier Ribbon,"Special Holiday Ribbon." #-------------------------------
71,SOUVENIR,Souvenir Ribbon,"A Ribbon to cherish a special memory." [HOENNSMARTHYPER]
72,WISHING,Wishing Ribbon,"A Ribbon said to make your wish come true." Name = Smart Ribbon Hyper
73,NATIONAL,National Ribbon,"A Ribbon awarded for overcoming all difficult challenges." IconPosition = 14
74,COUNTRY,Country Ribbon,"Pokémon League Champion Ribbon." Description = Hoenn Smart Contest Hyper Rank winner!
75,BATTLECHAMPION,Battle Champion Ribbon,"Battle Competition Champion Ribbon." #-------------------------------
76,REGIONALCHAMPION,Regional Champion Ribbon,"Pokémon World Championships Regional Champion Ribbon." [HOENNSMARTMASTER]
77,EARTH,Earth Ribbon,"A Ribbon awarded for winning 100 matches in a row." Name = Smart Ribbon Master
78,WORLD,World Ribbon,"Pokémon League Champion Ribbon." IconPosition = 15
79,NATIONALCHAMPION,National Champion Ribbon,"Pokémon World Championships National Champion Ribbon." Description = Hoenn Smart Contest Master Rank winner!
80,WORLDCHAMPION,World Champion Ribbon,"Pokémon World Championships World Champion Ribbon." #-------------------------------
[HOENNTOUGH]
Name = Tough Ribbon
IconPosition = 16
Description = Hoenn Tough Contest Normal Rank winner!
#-------------------------------
[HOENNTOUGHSUPER]
Name = Tough Ribbon Super
IconPosition = 17
Description = Hoenn Tough Contest Super Rank winner!
#-------------------------------
[HOENNTOUGHHYPER]
Name = Tough Ribbon Hyper
IconPosition = 18
Description = Hoenn Tough Contest Hyper Rank winner!
#-------------------------------
[HOENNTOUGHMASTER]
Name = Tough Ribbon Master
IconPosition = 19
Description = Hoenn Tough Contest Master Rank winner!
#-------------------------------
[SINNOHCOOL]
Name = Cool Ribbon
IconPosition = 20
Description = Super Contest Cool Category Normal Rank winner!
#-------------------------------
[SINNOHCOOLSUPER]
Name = Cool Ribbon Great
IconPosition = 21
Description = Super Contest Cool Category Great Rank winner!
#-------------------------------
[SINNOHCOOLHYPER]
Name = Cool Ribbon Ultra
IconPosition = 22
Description = Super Contest Cool Category Ultra Rank winner!
#-------------------------------
[SINNOHCOOLMASTER]
Name = Cool Ribbon Master
IconPosition = 23
Description = Super Contest Cool Category Master Rank winner!
#-------------------------------
[SINNOHBEAUTY]
Name = Beauty Ribbon
IconPosition = 24
Description = Super Contest Beauty Category Normal Rank winner!
#-------------------------------
[SINNOHBEAUTYSUPER]
Name = Beauty Ribbon Great
IconPosition = 25
Description = Super Contest Beauty Category Great Rank winner!
#-------------------------------
[SINNOHBEAUTYHYPER]
Name = Beauty Ribbon Ultra
IconPosition = 26
Description = Super Contest Beauty Category Ultra Rank winner!
#-------------------------------
[SINNOHBEAUTYMASTER]
Name = Beauty Ribbon Master
IconPosition = 27
Description = Super Contest Beauty Category Master Rank winner!
#-------------------------------
[SINNOHCUTE]
Name = Cute Ribbon
IconPosition = 28
Description = Super Contest Cute Category Normal Rank winner!
#-------------------------------
[SINNOHCUTESUPER]
Name = Cute Ribbon Great
IconPosition = 29
Description = Super Contest Cute Category Great Rank winner!
#-------------------------------
[SINNOHCUTEHYPER]
Name = Cute Ribbon Ultra
IconPosition = 30
Description = Super Contest Cute Category Ultra Rank winner!
#-------------------------------
[SINNOHCUTEMASTER]
Name = Cute Ribbon Master
IconPosition = 31
Description = Super Contest Cute Category Master Rank winner!
#-------------------------------
[SINNOHSMART]
Name = Smart Ribbon
IconPosition = 32
Description = Super Contest Smart Category Normal Rank winner!
#-------------------------------
[SINNOHSMARTSUPER]
Name = Smart Ribbon Great
IconPosition = 33
Description = Super Contest Smart Category Great Rank winner!
#-------------------------------
[SINNOHSMARTHYPER]
Name = Smart Ribbon Ultra
IconPosition = 34
Description = Super Contest Smart Category Ultra Rank winner!
#-------------------------------
[SINNOHSMARTMASTER]
Name = Smart Ribbon Master
IconPosition = 35
Description = Super Contest Smart Category Master Rank winner!
#-------------------------------
[SINNOHTOUGH]
Name = Tough Ribbon
IconPosition = 36
Description = Super Contest Tough Category Normal Rank winner!
#-------------------------------
[SINNOHTOUGHSUPER]
Name = Tough Ribbon Great
IconPosition = 37
Description = Super Contest Tough Category Great Rank winner!
#-------------------------------
[SINNOHTOUGHHYPER]
Name = Tough Ribbon Ultra
IconPosition = 38
Description = Super Contest Tough Category Ultra Rank winner!
#-------------------------------
[SINNOHTOUGHMASTER]
Name = Tough Ribbon Master
IconPosition = 39
Description = Super Contest Tough Category Master Rank winner!
#-------------------------------
[WINNING]
Name = Winning Ribbon
IconPosition = 40
Description = Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 50 challenge.
#-------------------------------
[VICTORY]
Name = Victory Ribbon
IconPosition = 41
Description = Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 100 challenge.
#-------------------------------
[ABILITY]
Name = Ability Ribbon
IconPosition = 42
Description = A Ribbon awarded for defeating the Tower Tycoon at the Battle Tower.
#-------------------------------
[GREATABILITY]
Name = Great Ability Ribbon
IconPosition = 43
Description = A Ribbon awarded for defeating the Tower Tycoon at the Battle Tower.
#-------------------------------
[DOUBLEABILITY]
Name = Double Ability Ribbon
IconPosition = 44
Description = A Ribbon awarded for completing the Battle Tower Double challenge.
#-------------------------------
[MULTIABILITY]
Name = Multi Ability Ribbon
IconPosition = 45
Description = A Ribbon awarded for completing the Battle Tower Multi challenge.
#-------------------------------
[PAIRABILITY]
Name = Pair Ability Ribbon
IconPosition = 46
Description = A Ribbon awarded for completing the Battle Tower Link Multi challenge.
#-------------------------------
[WORLDABILITY]
Name = World Ability Ribbon
IconPosition = 47
Description = A Ribbon awarded for completing the Wi-Fi Battle Tower challenge.
#-------------------------------
[CHAMPION]
Name = Champion Ribbon
IconPosition = 48
Description = Ribbon for clearing the Pokémon League and entering the Hall of Fame in another region.
#-------------------------------
[SINNOHCHAMP]
Name = Sinnoh Champ Ribbon
IconPosition = 49
Description = Ribbon awarded for beating the Sinnoh Champion and entering the Hall of Fame.
#-------------------------------
[RECORD]
Name = Record Ribbon
IconPosition = 50
Description = A Ribbon awarded for setting an incredible record.
#-------------------------------
[EVENT]
Name = Event Ribbon
IconPosition = 51
Description = Pokémon Event Participation Ribbon.
#-------------------------------
[LEGEND]
Name = Legend Ribbon
IconPosition = 52
Description = A Ribbon awarded for setting a legendary record.
#-------------------------------
[GORGEOUS]
Name = Gorgeous Ribbon
IconPosition = 53
Description = An extraordinarily gorgeous and extravagant Ribbon.
#-------------------------------
[ROYAL]
Name = Royal Ribbon
IconPosition = 54
Description = An incredibly regal Ribbon with an air of nobility.
#-------------------------------
[GORGEOUSROYAL]
Name = Gorgeous Royal Ribbon
IconPosition = 55
Description = A gorgeous and regal Ribbon that is the peak of fabulous.
#-------------------------------
[ALERT]
Name = Alert Ribbon
IconPosition = 56
Description = A Ribbon for recalling an invigorating event that created life energy.
#-------------------------------
[SHOCK]
Name = Shock Ribbon
IconPosition = 57
Description = A Ribbon for recalling a thrilling event that made life more exciting.
#-------------------------------
[DOWNCAST]
Name = Downcast Ribbon
IconPosition = 58
Description = A Ribbon for recalling feelings of sadness that added spice to life.
#-------------------------------
[CARELESS]
Name = Careless Ribbon
IconPosition = 59
Description = A Ribbon for recalling a careless error that helped steer life decisions.
#-------------------------------
[RELAX]
Name = Relax Ribbon
IconPosition = 60
Description = A Ribbon for recalling a refreshing event that added sparkle to life.
#-------------------------------
[SNOOZE]
Name = Snooze Ribbon
IconPosition = 61
Description = A Ribbon for recalling a deep slumber that made life soothing.
#-------------------------------
[SMILE]
Name = Smile Ribbon
IconPosition = 62
Description = A Ribbon for recalling that smiles enrich the quality of life.
#-------------------------------
[FOOTPRINT]
Name = Footprint Ribbon
IconPosition = 63
Description = A Ribbon awarded to a Pokémon deemed to have a top-quality footprint.
#-------------------------------
[ARTIST]
Name = Artist Ribbon
IconPosition = 64
Description = Ribbon awarded for being chosen as a super sketch model in Hoenn.
#-------------------------------
[EFFORT]
Name = Effort Ribbon
IconPosition = 65
Description = Ribbon awarded for being an exceptionally hard worker.
#-------------------------------
[BIRTHDAY]
Name = Birthday Ribbon
IconPosition = 66
Description = A Ribbon to celebrate a birthday.
#-------------------------------
[SPECIAL]
Name = Special Ribbon
IconPosition = 67
Description = A special Ribbon for a special day.
#-------------------------------
[CLASSIC]
Name = Classic Ribbon
IconPosition = 68
Description = A Ribbon that proclaims love for Pokémon.
#-------------------------------
[PREMIER]
Name = Premier Ribbon
IconPosition = 69
Description = Special Holiday Ribbon.
#-------------------------------
[SOUVENIR]
Name = Souvenir Ribbon
IconPosition = 70
Description = A Ribbon to cherish a special memory.
#-------------------------------
[WISHING]
Name = Wishing Ribbon
IconPosition = 71
Description = A Ribbon said to make your wish come true.
#-------------------------------
[NATIONAL]
Name = National Ribbon
IconPosition = 72
Description = A Ribbon awarded for overcoming all difficult challenges.
#-------------------------------
[COUNTRY]
Name = Country Ribbon
IconPosition = 73
Description = Pokémon League Champion Ribbon.
#-------------------------------
[BATTLECHAMPION]
Name = Battle Champion Ribbon
IconPosition = 74
Description = Battle Competition Champion Ribbon.
#-------------------------------
[REGIONALCHAMPION]
Name = Regional Champion Ribbon
IconPosition = 75
Description = Pokémon World Championships Regional Champion Ribbon.
#-------------------------------
[EARTH]
Name = Earth Ribbon
IconPosition = 76
Description = A Ribbon awarded for winning 100 matches in a row.
#-------------------------------
[WORLD]
Name = World Ribbon
IconPosition = 77
Description = Pokémon League Champion Ribbon.
#-------------------------------
[NATIONALCHAMPION]
Name = National Champion Ribbon
IconPosition = 78
Description = Pokémon World Championships National Champion Ribbon.
#-------------------------------
[WORLDCHAMPION]
Name = World Champion Ribbon
IconPosition = 79
Description = Pokémon World Championships World Champion Ribbon.