feat(preprod): contrats fonctionnels, réputation factions, gating tech-tree & shop
Build & Deploy / build (push) Successful in 21s
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>
This commit is contained in:
+29
-26
@@ -1,5 +1,7 @@
|
||||
using Prospect.Server.Api.Services.Auth.Extensions;
|
||||
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;
|
||||
|
||||
@@ -7,42 +9,43 @@ namespace Prospect.Server.Api.Services.CloudScript.Functions;
|
||||
public class RequestFactionProgression : ICloudScriptFunction<FYQueryFactionProgressionRequest, object?>
|
||||
{
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly UserDataService _userDataService;
|
||||
|
||||
public RequestFactionProgression(IHttpContextAccessor httpContextAccessor)
|
||||
public RequestFactionProgression(IHttpContextAccessor httpContextAccessor, UserDataService userDataService)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_userDataService = userDataService;
|
||||
}
|
||||
|
||||
public Task<object?> ExecuteAsync(FYQueryFactionProgressionRequest request)
|
||||
|
||||
public async Task<object?> ExecuteAsync(FYQueryFactionProgressionRequest request)
|
||||
{
|
||||
var context = _httpContextAccessor.HttpContext;
|
||||
if (context == null)
|
||||
{
|
||||
return Task.FromResult<object?>(null);
|
||||
return null;
|
||||
}
|
||||
|
||||
return Task.FromResult<object?>(new
|
||||
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 []
|
||||
factions = new[]
|
||||
{
|
||||
new
|
||||
{
|
||||
factionId = "ICA",
|
||||
currentProgression = 0
|
||||
},
|
||||
new
|
||||
{
|
||||
factionId = "Korolev",
|
||||
currentProgression = 0
|
||||
},
|
||||
new
|
||||
{
|
||||
factionId = "Osiris",
|
||||
currentProgression = 0
|
||||
},
|
||||
new { factionId = "ICA", currentProgression = Progression("ICA") },
|
||||
new { factionId = "Korolev", currentProgression = Progression("Korolev") },
|
||||
new { factionId = "Osiris", currentProgression = Progression("Osiris") },
|
||||
},
|
||||
userId = context.User.FindAuthUserId(),
|
||||
userId,
|
||||
error = ""
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user