104 lines
2.8 KiB
C#
104 lines
2.8 KiB
C#
using Core.Annotations;
|
|
using Core.Generators;
|
|
using Core.Helpers;
|
|
using Core.Models.Eft.Profile;
|
|
using Core.Servers;
|
|
using Core.Services;
|
|
using Core.Utils.Cloners;
|
|
using Core.Utils;
|
|
using ILogger = Core.Models.Utils.ILogger;
|
|
using Core.Models.Eft.Common;
|
|
using Core.Models.Eft.Common.Tables;
|
|
using Core.Models.Eft.ItemEvent;
|
|
|
|
[Injectable]
|
|
public class CreateProfileService
|
|
{
|
|
private readonly ILogger _logger;
|
|
private readonly TimeUtil _timeUtil;
|
|
private readonly DatabaseService _databaseService;
|
|
private readonly SaveServer _saveServer;
|
|
private readonly ICloner _cloner;
|
|
|
|
public CreateProfileService(
|
|
ILogger logger,
|
|
TimeUtil timeUtil,
|
|
DatabaseService databaseService,
|
|
TraderAssortHelper traderAssortHelper,
|
|
TraderAssortService traderAssortService,
|
|
ProfileHelper profileHelper,
|
|
TraderHelper traderHelper,
|
|
PaymentHelper paymentHelper,
|
|
RagfairPriceService ragfairPriceService,
|
|
TraderPurchasePersisterService traderPurchasePersisterService,
|
|
FenceBaseAssortGenerator fenceBaseAssortGenerator,
|
|
ConfigServer configServer,
|
|
SaveServer saveServer,
|
|
ICloner cloner)
|
|
{
|
|
_logger = logger;
|
|
_timeUtil = timeUtil;
|
|
_databaseService = databaseService;
|
|
_saveServer = saveServer;
|
|
_cloner = cloner;
|
|
}
|
|
|
|
public string CreateProfile(string sessionID, ProfileCreateRequestData request)
|
|
{
|
|
var account = _saveServer.GetProfile(sessionID).ProfileInfo;
|
|
var profileTemplateClone =
|
|
_cloner.Clone(_databaseService.GetProfiles()[account.Edition][request.Side.ToLower()]);
|
|
var pmcData = profileTemplateClone.Character;
|
|
|
|
// Delete existing profile
|
|
DeleteProfileBySessionId(sessionID);
|
|
}
|
|
|
|
private void DeleteProfileBySessionId(string sessionId)
|
|
{
|
|
|
|
}
|
|
|
|
private void UpdateInventoryEquipmentId(PmcData pmcData)
|
|
{
|
|
|
|
}
|
|
|
|
private void ResetAllTradersInProfile(string sessionId)
|
|
{
|
|
|
|
}
|
|
|
|
/**
|
|
* Ensure a profile has the necessary internal containers e.g. questRaidItems / sortingTable
|
|
* DOES NOT check that stash exists
|
|
* @param pmcData Profile to check
|
|
*/
|
|
private void AddMissingInternalContainersToProfile(PmcData pmcData)
|
|
{
|
|
|
|
}
|
|
|
|
private void AddCustomisationUnlocksToProfile(SptProfile fullProfile)
|
|
{
|
|
|
|
}
|
|
|
|
private string GetGameEdition(SptProfile profile)
|
|
{
|
|
return "TODO";
|
|
}
|
|
|
|
/**
|
|
* Iterate over all quests in player profile, inspect rewards for the quests current state (accepted/completed)
|
|
* and send rewards to them in mail
|
|
* @param profileDetails Player profile
|
|
* @param sessionID Session id
|
|
* @param response Event router response
|
|
*/
|
|
private void GivePlayerStartingQuestRewards( SptProfile fullProfile, string sessionId, ItemEventRouterResponse response)
|
|
{
|
|
|
|
}
|
|
}
|