Store data passed back from SaveDialogueState call (#568)
* Store data passed back from SaveDialogueState call This makes the rest area game playable, though variables still don't save * Woops, bad casing --------- Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
This commit is contained in:
@@ -379,6 +379,7 @@ public class InventoryCallbacks(InventoryController inventoryController, QuestCo
|
||||
ItemEventRouterResponse output
|
||||
)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
inventoryController.SetDialogueProgress(pmcData, request, sessionId, output);
|
||||
return output;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,6 +136,19 @@ public class InventoryController(
|
||||
itemToAdjust.Upd.PinLockState = request.State;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle /client/game/profile/items/moving SaveDialogueState
|
||||
/// </summary>
|
||||
/// <param name="pmcData">Player's PMC profile</param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId">Session/Player id</param>
|
||||
/// <param name="output"></param>
|
||||
public void SetDialogueProgress(PmcData pmcData, SaveDialogueStateRequest request, MongoId sessionId, ItemEventRouterResponse output)
|
||||
{
|
||||
var fullProfile = profileHelper.GetFullProfile(sessionId);
|
||||
fullProfile.DialogueProgress = request.DialogueProgress;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle /client/game/profile/items/moving SetFavoriteItems
|
||||
/// </summary>
|
||||
|
||||
@@ -5,17 +5,17 @@ namespace SPTarkov.Server.Core.Models.Eft.Inventory;
|
||||
public record SaveDialogueStateRequest : InventoryBaseActionRequestData
|
||||
{
|
||||
[JsonPropertyName("nodePathTraveled")]
|
||||
public List<NodePathTraveled> NodePathTraveled { get; set; }
|
||||
public List<NodePathTraveled>? DialogueProgress { get; set; }
|
||||
}
|
||||
|
||||
public class NodePathTraveled
|
||||
{
|
||||
[JsonPropertyName("traderId")]
|
||||
public string TraderId { get; set; }
|
||||
public string? TraderId { get; set; }
|
||||
|
||||
[JsonPropertyName("dialogueId")]
|
||||
public string DialogueId { get; set; }
|
||||
public string? DialogueId { get; set; }
|
||||
|
||||
[JsonPropertyName("nodeId")]
|
||||
public string NodeId { get; set; }
|
||||
public string? NodeId { get; set; }
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ using System.Text.Json.Serialization;
|
||||
using SPTarkov.Server.Core.Models.Common;
|
||||
using SPTarkov.Server.Core.Models.Eft.Common;
|
||||
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
|
||||
using SPTarkov.Server.Core.Models.Eft.Inventory;
|
||||
using SPTarkov.Server.Core.Models.Eft.Prestige;
|
||||
using SPTarkov.Server.Core.Models.Enums;
|
||||
using SPTarkov.Server.Core.Models.Spt.Dialog;
|
||||
@@ -58,6 +59,12 @@ public record SptProfile
|
||||
/// </summary>
|
||||
[JsonPropertyName("customisationUnlocks")]
|
||||
public List<CustomisationStorage>? CustomisationUnlocks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Stores the most recently sent dialog progress result from the client
|
||||
/// </summary>
|
||||
[JsonPropertyName("dialogueProgress")]
|
||||
public List<NodePathTraveled>? DialogueProgress { get; set; }
|
||||
}
|
||||
|
||||
public record TraderPurchaseData
|
||||
|
||||
@@ -42,6 +42,7 @@ public class InventoryItemEventRouter(InventoryCallbacks inventoryCallbacks, Hid
|
||||
new(ItemEventActions.SET_FAVORITE_ITEMS, false),
|
||||
new(ItemEventActions.QUEST_FAIL, false),
|
||||
new(ItemEventActions.PIN_LOCK, false),
|
||||
new(ItemEventActions.SAVE_DIALOGUE_STATE, false),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user