diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json
index 8a68d87..3a07512 100755
--- a/DataCollection/gamedata.json
+++ b/DataCollection/gamedata.json
@@ -290,6 +290,10 @@
"horse_relative_format":"^I252^T7A Horse Relative, the %NAME%:^D4c%ID%|VIEW^R1",
"maximum_stats":"MAXIMUM STATS:
^AA",
"breed_preview_format":"Viewing %NAME%:
%DESCRIPTION%^D4|RETURN TO BREED LIST^R2^H",
+ "awards":{
+ "all_earnable_awards":"^HAll Awards Earnable by players in Horse Isle:",
+ "award_entry":"^I%ICONID%^T8 %AWARDNAME% ($%BONUSMONEY% bonus)^R1^H %DESCRIPTION%"
+ },
"locations":{
"known_islands":"^HHorse Isle Known Islands",
"known_towns":"^HHorse Isle Communities",
diff --git a/Horse Isle Server/HorseIsleServer/Game/Messages.cs b/Horse Isle Server/HorseIsleServer/Game/Messages.cs
index 466f4fc..46120a5 100755
--- a/Horse Isle Server/HorseIsleServer/Game/Messages.cs
+++ b/Horse Isle Server/HorseIsleServer/Game/Messages.cs
@@ -185,6 +185,10 @@ namespace HISP.Game
public static string MaxJewelryMessage;
public static string RemoveJewelry;
+ // Awards (Libary)
+ public static string AwardsAvalible;
+ public static string AwardEntryFormat;
+
// Locations (Libary)
public static string LocationKnownIslands;
public static string LocationKnownTowns;
@@ -533,6 +537,12 @@ namespace HISP.Game
// Click
public static string NothingInterestingHere;
+
+ public static string FormatAwardEntry(int iconId, string awardName, int bonusMoney, string description)
+ {
+ return AwardEntryFormat.Replace("%ICONID%", iconId.ToString()).Replace("%AWARDNAME%", awardName).Replace("%BONUSMONEY%",bonusMoney.ToString("N0")).Replace("%DESCRIPTION%",description);
+ }
+
public static string FormatLocationDescription(string description)
{
return LocationDescriptionFormat.Replace("%AREADESC%", description);
diff --git a/Horse Isle Server/HorseIsleServer/Game/Meta.cs b/Horse Isle Server/HorseIsleServer/Game/Meta.cs
index aa7c346..6ec755e 100755
--- a/Horse Isle Server/HorseIsleServer/Game/Meta.cs
+++ b/Horse Isle Server/HorseIsleServer/Game/Meta.cs
@@ -446,6 +446,19 @@ namespace HISP.Game
message += Messages.MetaTerminator;
return message;
}
+ public static string BuildAwardsLibary()
+ {
+ string message = "";
+ message += Messages.AwardsAvalible;
+ foreach(Award.AwardEntry award in Award.GlobalAwardList.OrderBy(o => o.Sort).ToArray())
+ {
+ message += Messages.FormatAwardEntry(award.IconId, award.Title, award.MoneyBonus, award.Description);
+ }
+ message += Messages.BackToMap;
+ message += Messages.MetaTerminator;
+ return message;
+ }
+
public static string BuildHorseReleased()
{
string message = "";
@@ -455,6 +468,7 @@ namespace HISP.Game
return message;
}
+
public static string BuildTopHighscores(string gameName)
{
Highscore.HighscoreTableEntry[] scores = Database.GetTopScores(gameName, 20);
diff --git a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs
index 1c3149d..fa5cbc4 100755
--- a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs
+++ b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs
@@ -602,6 +602,10 @@ namespace HISP.Server
Messages.StatMiscNoneRecorded = gameData.messages.meta.misc_stats.no_stats_recorded;
Messages.StatMiscEntryFormat = gameData.messages.meta.misc_stats.stat_format;
+ // Awards (Libary)
+ Messages.AwardsAvalible = gameData.messages.meta.libary.awards.all_earnable_awards;
+ Messages.AwardEntryFormat = gameData.messages.meta.libary.awards.award_entry;
+
// Locations (Libary)
Messages.LocationKnownIslands = gameData.messages.meta.libary.locations.known_islands;
Messages.LocationKnownTowns = gameData.messages.meta.libary.locations.known_towns;
diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs
index b446ac0..63e5b17 100755
--- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs
+++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs
@@ -1309,6 +1309,11 @@ namespace HISP.Server
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildLocationsLibary());
sender.SendPacket(metaPacket);
break;
+ case "23": // View Awards (Libary)
+ sender.LoggedinUser.MetaPriority = true;
+ metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildAwardsLibary());
+ sender.SendPacket(metaPacket);
+ break;
case "24": // Award List
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildAwardList(sender.LoggedinUser));