mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-12 15:04:36 +01:00
- Added GetAcquireBuffFunction to handle buff acquisition requests in the simulation room. - Added InfinitePopupCheck to manage infinite popup checks for users. - Added ProceedSkipFunction to process skip requests in the simulation room. - Updated SelectDifficulty to handle overclock options and season data. - Enhanced SimRoomHelper to support overclock mechanics and event group logic. - Modified GetSimRoomData to include buffs and legacy buffs in the response. - Updated Quit functionality to reset overclock state upon quitting the simulation room. - Added logic to handle overclock rewards and high score updates. - Refactored user model to retain current season data and legacy buffs during resets. - Introduced new OverclockData and OverclockHighScoreData models to manage overclock states.
50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
using EpinelPS.Utils;
|
|
|
|
namespace EpinelPS.LobbyServer.Character
|
|
{
|
|
[PacketPath("/character/get")]
|
|
public class GetCharacterData : LobbyMsgHandler
|
|
{
|
|
protected override async Task HandleAsync()
|
|
{
|
|
ReqGetCharacterData req = await ReadData<ReqGetCharacterData>();
|
|
User user = GetUser();
|
|
|
|
ResGetCharacterData response = new();
|
|
foreach (CharacterModel item in user.Characters)
|
|
{
|
|
response.Character.Add(new NetUserCharacterData()
|
|
{
|
|
Default = new()
|
|
{
|
|
Csn = item.Csn,
|
|
Skill1Lv = item.Skill1Lvl,
|
|
Skill2Lv = item.Skill2Lvl,
|
|
CostumeId = item.CostumeId,
|
|
Lv = user.GetCharacterLevel(item.Csn, item.Level),
|
|
Grade = item.Grade,
|
|
Tid = item.Tid,
|
|
UltiSkillLv = item.UltimateLevel
|
|
},
|
|
IsSynchro = user.GetSynchro(item.Csn)
|
|
});
|
|
|
|
// Check if character is main force
|
|
if (item.IsMainForce)
|
|
{
|
|
response.MainForceCsnList.Add(item.Csn);
|
|
}
|
|
}
|
|
|
|
List<CharacterModel> highestLevelCharacters = [.. user.Characters.OrderByDescending(x => x.Level).Take(5)];
|
|
|
|
foreach (CharacterModel? c in highestLevelCharacters)
|
|
{
|
|
response.SynchroStandardCharacters.Add(c.Csn);
|
|
}
|
|
|
|
await WriteDataAsync(response);
|
|
}
|
|
}
|
|
}
|