using Core.Models.Eft.Common; using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Inventory; using Core.Models.Eft.Profile; using Core.Models.Enums; using Core.Models.Spt.Dialog; namespace Core.Services; public class MapMarkerService { /// /// Add note to a map item in player inventory /// /// Player profile /// Add marker request /// Item public Item CreateMarkerOnMap(PmcData pmcData, InventoryCreateMarkerRequestData request) { throw new NotImplementedException(); } /// /// Delete a map marker /// /// Player profile /// Delete marker request /// Item public Item DeleteMarkerFromMap(PmcData pmcData, InventoryDeleteMarkerRequestData request) { throw new NotImplementedException(); } /// /// Edit an existing map marker /// /// Player profile /// Edit marker request /// Item public Item EditMarkerOnMap(PmcData pmcData, InventoryEditMarkerRequestData request) { throw new NotImplementedException(); } /// /// Strip out characters from note string that are not: letter/numbers/unicode/spaces /// /// Marker text to sanitise /// Sanitised map marker text protected string SanitiseMapMarkerText(string mapNoteText) { throw new NotImplementedException(); } /// /// Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale /// /// The session ID to send the message to /// The trader sending the message /// What type the message will assume (e.g. QUEST_SUCCESS) /// Text to send to the player /// Optional items to send to player /// Optional time to collect items before they expire public void SendDirectNpcMessageToPlayer( string sessionId, object trader, MessageType messageType, string message, List items = null, int? maxStorageTimeSeconds = null, SystemData systemData = null, MessageContentRagfair ragfair = null) { throw new NotImplementedException(); } /// /// Send a message from an NPC (e.g. prapor) to the player with or without items /// /// The session ID to send the message to /// The trader sending the message /// What type the message will assume (e.g. QUEST_SUCCESS) /// The localised text to send to player /// Optional items to send to player /// Optional time to collect items before they expire public void SendLocalisedNpcMessageToPlayer( string sessionId, object trader, MessageType messageType, string messageLocaleId, List items = null, int? maxStorageTimeSeconds = null, SystemData systemData = null, MessageContentRagfair ragfair = null) { throw new NotImplementedException(); } /// /// Send a message from SYSTEM to the player with or without items /// /// The session ID to send the message to /// The text to send to player /// Optional items to send to player /// Optional time to collect items before they expire public void SendSystemMessageToPlayer( string sessionId, string message, List items = null, int? maxStorageTimeSeconds = null, List profileChangeEvents = null) { throw new NotImplementedException(); } /// /// Send a message from SYSTEM to the player with or without items with localised text /// /// The session ID to send the message to /// Id of key from locale file to send to player /// Optional items to send to player /// Optional time to collect items before they expire public void SendLocalisedSystemMessageToPlayer( string sessionId, string messageLocaleId, List items = null, List profileChangeEvents = null, int? maxStorageTimeSeconds = null) { throw new NotImplementedException(); } /// /// Send a USER message to a player with or without items /// /// The session ID to send the message to /// Who is sending the message /// The text to send to player /// Optional items to send to player /// Optional time to collect items before they expire public void SendUserMessageToPlayer( string sessionId, UserDialogInfo senderDetails, string message, List items = null, int? maxStorageTimeSeconds = null) { throw new NotImplementedException(); } /// /// Large function to send messages to players from a variety of sources (SYSTEM/NPC/USER) /// Helper functions in this class are available to simplify common actions /// /// Details needed to send a message to the player public void SendMessageToPlayer(SendMessageDetails messageDetails) { throw new NotImplementedException(); } /// /// Send a message from the player to an NPC /// /// Player id /// NPC message is sent to /// Text to send to NPC public void SendPlayerMessageToNpc(string sessionId, string targetNpcId, string message) { throw new NotImplementedException(); } /// /// Create a message for storage inside a dialog in the player profile /// /// Id of dialog that will hold the message /// Various details on what the message must contain/do /// Message protected Message CreateDialogMessage(string dialogId, SendMessageDetails messageDetails) { throw new NotImplementedException(); } /// /// Add items to message and adjust various properties to reflect the items being added /// /// Message to add items to /// Items to add to message /// total time items are stored in mail before being deleted protected void AddRewardItemsToMessage( Message message, List itemsToSendToPlayer, int? maxStorageTimeSeconds) { throw new NotImplementedException(); } /// /// perform various sanitising actions on the items before they're considered ready for insertion into message /// /// The type of the dialog that will hold the reward items being processed /// /// Sanitised items protected List ProcessItemsBeforeAddingToMail( MessageType dialogType, SendMessageDetails messageDetails) { throw new NotImplementedException(); } /// /// Try to find the most correct item to be the 'primary' item in a reward mail /// /// Possible items to choose from /// Chosen 'primary' item protected Item GetBaseItemFromRewards(List items) { throw new NotImplementedException(); } /// /// Get a dialog with a specified entity (user/trader) /// Create and store empty dialog if none exists in profile /// /// Data on what message should do /// Relevant Dialogue protected Dialogue GetDialog(SendMessageDetails messageDetails) { throw new NotImplementedException(); } /// /// Get the appropriate sender id by the sender enum type /// /// /// gets an id of the individual sending it protected string GetMessageSenderIdByType(SendMessageDetails messageDetails) { throw new NotImplementedException(); } }