Build & Deploy / build (push) Successful in 21s
- RequestPlayerContracts: renvoie les vrais contrats actifs + job boards du joueur (peuplement initial des boards vides) au lieu d'une liste hardcodée. - RequestFactionProgression: renvoie la réputation réelle des 3 factions (au lieu de 0). - StartTechTreeNodeUpgradeClient: dependency check PlayerQuarterLevelRequired. - PurchaseWeaponShopItem: critère de déblocage par contrat (UnlockData.ContractLockPurchase). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
1.8 KiB
C#
52 lines
1.8 KiB
C#
using System.Text.Json;
|
|
using Prospect.Server.Api.Services.Auth.Extensions;
|
|
using Prospect.Server.Api.Services.CloudScript.Models;
|
|
using Prospect.Server.Api.Services.UserData;
|
|
|
|
namespace Prospect.Server.Api.Services.CloudScript.Functions;
|
|
|
|
[CloudScriptFunction("RequestFactionProgression")]
|
|
public class RequestFactionProgression : ICloudScriptFunction<FYQueryFactionProgressionRequest, object?>
|
|
{
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
private readonly UserDataService _userDataService;
|
|
|
|
public RequestFactionProgression(IHttpContextAccessor httpContextAccessor, UserDataService userDataService)
|
|
{
|
|
_httpContextAccessor = httpContextAccessor;
|
|
_userDataService = userDataService;
|
|
}
|
|
|
|
public async Task<object?> ExecuteAsync(FYQueryFactionProgressionRequest request)
|
|
{
|
|
var context = _httpContextAccessor.HttpContext;
|
|
if (context == null)
|
|
{
|
|
return null;
|
|
}
|
|
var userId = context.User.FindAuthUserId();
|
|
|
|
var userData = await _userDataService.FindAsync(
|
|
userId, userId,
|
|
new List<string> { "FactionProgressionICA", "FactionProgressionKorolev", "FactionProgressionOsiris" }
|
|
);
|
|
|
|
int Progression(string faction) =>
|
|
userData.TryGetValue("FactionProgression" + faction, out var v) && v.Value != null
|
|
? JsonSerializer.Deserialize<int>(v.Value)
|
|
: 0;
|
|
|
|
return new
|
|
{
|
|
factions = new[]
|
|
{
|
|
new { factionId = "ICA", currentProgression = Progression("ICA") },
|
|
new { factionId = "Korolev", currentProgression = Progression("Korolev") },
|
|
new { factionId = "Osiris", currentProgression = Progression("Osiris") },
|
|
},
|
|
userId,
|
|
error = ""
|
|
};
|
|
}
|
|
}
|