WoJS Rank Up Message #4

Merged
Moonbase merged 2 commits from rankup-message-wojs into master 2025-03-11 21:05:26 -07:00
4 changed files with 27 additions and 6 deletions
Showing only changes of commit 69a2e33ee6 - Show all commits

View File

@ -13,14 +13,16 @@ public class ProfileController : Controller {
private readonly DBContext ctx;
private AchievementService achievementService;
private AchievementStoreSingleton achievementStore;
private ProfileService profileService;
private readonly IOptions<ApiServerConfig> config;
public ProfileController(DBContext ctx, AchievementService achievementService, ProfileService profileService, IOptions<ApiServerConfig> config) {
public ProfileController(DBContext ctx, AchievementService achievementService, AchievementStoreSingleton achievementStoreSingleton, ProfileService profileService, IOptions<ApiServerConfig> config) {
this.ctx = ctx;
this.achievementService = achievementService;
this.profileService = profileService;
this.config = config;
achievementStore = achievementStoreSingleton;
}
[HttpPost]
@ -140,7 +142,7 @@ public class ProfileController : Controller {
SubscriptionID = -3, // placeholder
IsActive = true, // placeholder
},
RankID = 0, // placeholder
RankID = achievementStore.GetRankFromXP(viking.AchievementPoints.FirstOrDefault(e => e.Type == (int)AchievementPointTypes.PlayerXP).Value, AchievementPointTypes.PlayerXP), // placeholder
AchievementInfo = null, // placeholder
Achievements = new UserAchievementInfo[] {
achievementService.CreateUserAchievementInfo(viking, AchievementPointTypes.PlayerXP),

View File

@ -98,11 +98,26 @@ namespace sodoff.Services {
ctx.SaveChanges();
return new AchievementReward{
AchievementReward achievementReward = new AchievementReward
{
EntityID = viking.Uid,
PointTypeID = type,
Amount = value
};
if(viking.GameVersion <= ClientVersion.WoJS && xpPoints.Type == (int)AchievementPointTypes.PlayerXP)
{
int initialRank = achievementStore.GetRankFromXP(initialPoints, AchievementPointTypes.PlayerXP);
int newRank = achievementStore.GetRankFromXP(xpPoints.Value, AchievementPointTypes.PlayerXP);
// wojs shows level up screen when a message of type rank is posted to their message board
if(newRank > initialRank)
{
// player leveled up, post message
messagingService.AddMessageToViking(null, viking, MessageType.Data, MessageTypeID.Rank, MessageLevel.WhiteList, "[[Line3]]=[[Congratulations Jumpee, You Leveled Up!]][[Prefab]]=[[RS_DATA/PfLevelUpRoom.unity3d/PfLevelUpRoom]]", "[[Line3]]=[[Congratulations Jumpee, You Leveled Up!]][[Prefab]]=[[RS_DATA/PfLevelUpRoom.unity3d/PfLevelUpRoom]]", "[[Line3]]=[[Congratulations Jumpee, You Leveled Up!]][[Prefab]]=[[RS_DATA/PfLevelUpRoom.unity3d/PfLevelUpRoom]]", isPrivate: true);
}
}
return achievementReward;
}
return null;
}

View File

@ -61,7 +61,7 @@ namespace sodoff.Services {
}
public int GetRankFromXP(int? xpPoints, AchievementPointTypes type) {
return ranks[type].Count(r => r.Value <= xpPoints);
return ranks[type].Count(r => r.Value <= xpPoints) - 1; // shitty attempt to fix wrong rank being reported
}
public AchievementReward[]? GetAchievementRewardsById(int achievementID) {

View File

@ -271,9 +271,13 @@ public class MessagingService
MessageTypeID = (int?)message.MessageTypeID,
Data = message.Data ?? "NoData",
MemberMessage = message.MemberMessage ?? "NoMessage",
NonMemberMessage = message.NonMemberMessage ?? "NoMessage"
NonMemberMessage = message.NonMemberMessage ?? "NoMessage",
MemberAudioUrl = "",
NonMemberAudioUrl = "",
MemberImageUrl = "",
NonMemberImageUrl = ""
};
messageInfos.Add(messageInfo);
}