@@ -1,4 +1,5 @@
|
||||
using Core.Models.Common;
|
||||
using Core.Models.Eft.Common;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using Core.Models.Spt.Config;
|
||||
|
||||
@@ -84,9 +85,13 @@ public class BotController
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
||||
public int GetBotCap()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public object GetAiBotBrainTypes() // TODO: Returns `any` in the node server
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
using Core.Models.Eft.Profile;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class BuildController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle client/handbook/builds/my/list
|
||||
/// </summary>
|
||||
/// <param name="sessionID"></param>
|
||||
/// <returns></returns>
|
||||
public UserBuilds GetUserBuilds(string sessionID)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/builds/weapon/save
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="body"></param>
|
||||
public void SaveWeaponBuild(string sessionId, PresetBuildActionRequestData body)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/builds/equipment/save event
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
public void SaveEquipmentBuild(string sessionId, PresetBuildActionRequestData request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/builds/delete
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
public void RemoveBuild(string sessionId, RemoveBuildReqestData request)
|
||||
{
|
||||
RemovePlayerBuild(request.id, sessionId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/builds/magazine/save
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
public void CreateMagazineTemplate(string sessionId, SetMagazineRequest request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="idToRemove"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
private void RemovePlayerBuild(string idToRemove, string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using Core.Models.Spt.Logging;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class ClientLogController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle /singleplayer/log
|
||||
/// </summary>
|
||||
/// <param name="logRequest"></param>
|
||||
public void ClientLog(ClientLogRequest logRequest)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
using Core.Models.Eft.Common;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using Core.Models.Eft.Hideout;
|
||||
using Core.Models.Eft.Profile;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class CustomizationController
|
||||
{
|
||||
/// <summary>
|
||||
/// Get purchasable clothing items from trader that match players side (usec/bear)
|
||||
/// </summary>
|
||||
/// <param name="traderId">trader to look up clothing for</param>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <returns>Suit array</returns>
|
||||
public Suit GetTraderSuits(string traderId, string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle CustomizationBuy event
|
||||
/// Purchase/unlock a clothing item from a trader
|
||||
/// </summary>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="buyClothingRequest">Request object</param>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <returns>ItemEventRouterResponse</returns>
|
||||
public ItemEventRouterResponse BuyClothing(
|
||||
PmcData pmcData,
|
||||
BuyClothingRequest buyClothingRequest,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update output object and player profile with purchase details
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="itemsToPayForClothingWith">Clothing purchased</param>
|
||||
/// <param name="output">Client response</param>
|
||||
private void PayForClothingItems(
|
||||
string sessionId,
|
||||
PmcData pmcData,
|
||||
List<PaymentItemForClothing> itemsToPayForClothingWith,
|
||||
ItemEventRouterResponse output)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update output object and player profile with purchase details for single piece of clothing
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="paymentItemDetails">Payment details</param>
|
||||
/// <param name="output">Client response</param>
|
||||
private void PayForClothingItem(
|
||||
string sessionId,
|
||||
PmcData pmcData,
|
||||
PaymentItemForClothing paymentItemDetails,
|
||||
ItemEventRouterResponse output)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
private List<Suit> GetAllTraderSuits(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/hideout/customization/offer/list
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public HideoutCustomisationStorage GetHideoutCustomisation(
|
||||
string sessionId,
|
||||
EmptyRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/customization/storage
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public List<CustomisationStorage> GetCustomisationStorage(
|
||||
string sessionId,
|
||||
EmptyRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="profile"></param>
|
||||
/// <returns></returns>
|
||||
private string GetGameEdition(SptProfile profile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle CustomizationSet event
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse SetClothing(
|
||||
string sessionId,
|
||||
CustomizationSetRequest request,
|
||||
PmcData pmcData)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Applies a purchased suit to the players doll
|
||||
/// </summary>
|
||||
/// <param name="customization">Suit to apply to profile</param>
|
||||
/// <param name="pmcData">Profile to update</param>
|
||||
private void ApplyClothingItemToProfile(
|
||||
CustomizationSetOption customization,
|
||||
PmcData pmcData)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
using Core.Models.Eft.Profile;
|
||||
using Core.Models.Enums;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class DialogueController
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="chatBot"></param>
|
||||
public void RegisterChatBot(DialogueChatBot chatBot)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle onUpdate spt event
|
||||
/// </summary>
|
||||
public void Update()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/friend/list
|
||||
/// </summary>
|
||||
/// <param name="sessionId">session id</param>
|
||||
/// <returns>GetFriendListDataResponse</returns>
|
||||
public GetFriendListDataResponse GetFriendList(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/mail/dialog/list
|
||||
/// Create array holding trader dialogs and mail interactions with player
|
||||
/// Set the content of the dialogue on the list tab.
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session Id</param>
|
||||
/// <returns>list of dialogs</returns>
|
||||
public List<DialogueInfo> GenerateDialogueList(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the content of a dialogue
|
||||
/// </summary>
|
||||
/// <param name="dialogueId">Dialog id</param>
|
||||
/// <param name="sessionId">Session Id</param>
|
||||
/// <returns>DialogueInfo</returns>
|
||||
public DialogueInfo GetDialogueInfo(
|
||||
string dialogueId,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the users involved in a dialog (player + other party)
|
||||
/// </summary>
|
||||
/// <param name="dialogue">The dialog to check for users</param>
|
||||
/// <param name="messageType">What type of message is being sent</param>
|
||||
/// <param name="sessionId">Player id</param>
|
||||
/// <returns>UserDialogInfo list</returns>
|
||||
public List<UserDialogInfo> GetDialogueUsers(
|
||||
Dialogue dialogue,
|
||||
MessageType messageType,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/mail/dialog/view
|
||||
/// Handle player clicking 'messenger' and seeing all the messages they've received
|
||||
/// Set the content of the dialogue on the details panel, showing all the messages
|
||||
/// for the specified dialogue.
|
||||
/// </summary>
|
||||
/// <param name="request">Get dialog request</param>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <returns>GetMailDialogViewResponseData object</returns>
|
||||
public GetMailDialogViewResponseData GenerateDialogueView(
|
||||
GetMailDialogViewResponseData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get dialog from player profile, create if doesn't exist
|
||||
/// </summary>
|
||||
/// <param name="profile">Player profile</param>
|
||||
/// <param name="request">get dialog request</param>
|
||||
/// <returns>Dialogue</returns>
|
||||
private Dialogue GetDialogByIdFromProfile(
|
||||
SptProfile profile,
|
||||
GetMailDialogViewRequestData request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the users involved in a mail between two entities
|
||||
/// </summary>
|
||||
/// <param name="fullProfile">Player profile</param>
|
||||
/// <param name="userDialogs">The participants of the mail</param>
|
||||
/// <returns>UserDialogInfo list</returns>
|
||||
private List<UserDialogInfo> GetProfilesForMail(
|
||||
SptProfile fullProfile,
|
||||
List<UserDialogInfo>? userDialogs)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a count of messages with attachments from a particular dialog
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="dialogueId">Dialog id</param>
|
||||
/// <returns>Count of messages with attachments</returns>
|
||||
private int GetUnreadMessagesWithAttachmentsCount(
|
||||
string sessionId,
|
||||
string dialogueId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Does list have messages with uncollected rewards (includes expired rewards)
|
||||
/// </summary>
|
||||
/// <param name="messages">Messages to check</param>
|
||||
/// <returns>true if uncollected rewards found</returns>
|
||||
private bool MessagesHaveUncollectedRewards(List<Message> messages)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/mail/dialog/remove
|
||||
/// Remove an entire dialog with an entity (trader/user)
|
||||
/// </summary>
|
||||
/// <param name="dialogueId">id of the dialog to remove</param>
|
||||
/// <param name="sessionId">Player id</param>
|
||||
public void RemoveDialogue(
|
||||
string dialogueId,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/mail/dialog/pin && Handle client/mail/dialog/unpin
|
||||
/// </summary>
|
||||
/// <param name="dialogueId"></param>
|
||||
/// <param name="shouldPin"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
public void SetDialoguePin(
|
||||
string dialogueId,
|
||||
bool shouldPin,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/mail/dialog/read
|
||||
/// Set a dialog to be read (no number alert/attachment alert)
|
||||
/// </summary>
|
||||
/// <param name="dialogueIds">Dialog ids to set as read</param>
|
||||
/// <param name="sessionId">Player profile id</param>
|
||||
public void SetRead(
|
||||
HashSet<string> dialogueIds,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/mail/dialog/getAllAttachments
|
||||
/// Get all uncollected items attached to mail in a particular dialog
|
||||
/// </summary>
|
||||
/// <param name="dialogueId">Dialog to get mail attachments from</param>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <returns>GetAllAttachmentsResponse or null if dialogue doesnt exist</returns>
|
||||
public GetAllAttachmentsResponse? GetAllAttachments(
|
||||
string dialogueId,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// handle client/mail/msg/send
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public string SendMessage(
|
||||
string sessionId,
|
||||
SendMessageRequest request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get messages from a specific dialog that have items not expired
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="dialogueId">Dialog to get mail attachments from</param>
|
||||
/// <returns>message list</returns>
|
||||
private List<Message> GetActiveMessagesFromDialogue(
|
||||
string sessionId,
|
||||
string dialogueId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return list of messages with uncollected items (includes expired)
|
||||
/// </summary>
|
||||
/// <param name="messages">Messages to parse</param>
|
||||
/// <returns>messages with items to collect</returns>
|
||||
private List<Message> GetMessageWithAttachments(List<Message> messages)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete expired items from all messages in player profile. triggers when updating traders.
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
private void RemoveExpiredItemsFromMessages(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes expired items from a message in player profile
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="dialogueId">Dialog id</param>
|
||||
private void RemoveExpiredItemsFromMessage(
|
||||
string sessionId,
|
||||
string dialogueId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
using Core.Models.Eft.Common;
|
||||
using Core.Models.Eft.Profile;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class GameController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle client/game/start
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="info"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="startTimeStampMs"></param>
|
||||
public void GameStart(
|
||||
string url,
|
||||
EmptyRequestData info,
|
||||
string sessionId,
|
||||
long startTimeStampMs)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles migrating profiles from older SPT versions
|
||||
/// </summary>
|
||||
/// <param name="fullProfile"></param>
|
||||
/// <remarks>Formerly migrate39xProfile in node server</remarks>
|
||||
private void MigrateProfile(SptProfile fullProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/game/config
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public GameConfigResponse GetGameConfig(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/game/mode
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="requestData"></param>
|
||||
/// <returns></returns>
|
||||
public object GetGameMode( // TODO: Returns `any` in node server
|
||||
string sessionId,
|
||||
GameModeRequestData requestData)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/server/list
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public List<ServerDetails> GetServer(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/match/group/current
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public CurrentGroupResponse GetCurrentGroup(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/checkVersion
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public CheckVersionResponse GetValidGameVersion(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/game/keepalive
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public GameKeepAliveResponse GetKeepAlive(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle singleplayer/settings/getRaidTime
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public GetRaidTimeResponse GetRaidTime(
|
||||
string sessionId,
|
||||
GetRaidTimeRequest request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public SurveyResponseData GetSurvey(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Players set botReload to a high value and don't expect the crazy fast reload speeds, give them a warn about it
|
||||
/// </summary>
|
||||
/// <param name="pmcProfile">Player profile</param>
|
||||
private void WarnOnActiveBotReloadSkill(PmcData pmcProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// When player logs in, iterate over all active effects and reduce timer
|
||||
/// </summary>
|
||||
/// <param name="pmcProfile">Profile to adjust values for</param>
|
||||
private void UpdateProfileHealthValues(PmcData pmcProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send starting gifts to profile after x days
|
||||
/// </summary>
|
||||
/// <param name="pmcProfile">Profile to add gifts to</param>
|
||||
private void SendPraporGiftsToNewProfiles(PmcData pmcProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a list of installed mods and save their details to the profile being used
|
||||
/// </summary>
|
||||
/// <param name="fullProfile">Profile to add mod details to</param>
|
||||
private void SaveActiveModsToProfile(SptProfile fullProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add the logged in players name to PMC name pool
|
||||
/// </summary>
|
||||
/// <param name="pmcProfile">Profile of player to get name from</param>
|
||||
private void AddPlayerToPmcNames(PmcData pmcProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check for a dialog with the key 'undefined', and remove it
|
||||
/// </summary>
|
||||
/// <param name="fullProfile">Profile to check for dialog in</param>
|
||||
private void CheckForAndRemoveUndefinedDialogues(SptProfile fullProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="fullProfile"></param>
|
||||
private void LogProfileDetails(SptProfile fullProfile)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
// TODO: This seems unused, is it even needed?
|
||||
public class HandBookController
|
||||
{
|
||||
public void Load()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
using Core.Models.Eft.Common;
|
||||
using Core.Models.Eft.Health;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class HealthController
|
||||
{
|
||||
/// <summary>
|
||||
/// When healing in menu
|
||||
/// </summary>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="request">Healing request</param>
|
||||
/// <param name="sessionId">Player id</param>
|
||||
/// <returns>ItemEventRouterResponse</returns>
|
||||
public ItemEventRouterResponse OffRaidHeal(
|
||||
PmcData pmcData,
|
||||
OffraidHealRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle Eat event
|
||||
/// Consume food/water outside of a raid
|
||||
/// </summary>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="request">Eat request</param>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <returns>ItemEventRouterResponse</returns>
|
||||
public ItemEventRouterResponse OffRaidEat(
|
||||
PmcData pmcData,
|
||||
OffraidEatRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle RestoreHealth event
|
||||
/// Occurs on post-raid healing page
|
||||
/// </summary>
|
||||
/// <param name="pmcData">player profile</param>
|
||||
/// <param name="request">Request data from client</param>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse HealthTreatment(
|
||||
PmcData pmcData,
|
||||
HealthTreatmentRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// applies skills from hideout workout.
|
||||
/// </summary>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="info">Request data</param>
|
||||
/// <param name="sessionId">session id</param>
|
||||
public void ApplyWorkoutChanges(
|
||||
PmcData pmcData,
|
||||
WorkoutData info,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class HideoutController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class InRaidController
|
||||
{
|
||||
/// <summary>
|
||||
/// Save locationId to active profiles in-raid object AND app context
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="info">Register player request</param>
|
||||
public void AddPlayer(
|
||||
string sessionId,
|
||||
RegisterPlayerRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle raid/profile/scavsave
|
||||
/// Save profile state to disk
|
||||
/// Handles pmc/pscav
|
||||
/// </summary>
|
||||
/// <param name="offRaidProfileData"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
public void SavePostRaidProfileForScav(
|
||||
ScavSaveRequestData offRaidProfileData,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the inraid config from configs/inraid.json
|
||||
/// </summary>
|
||||
public void GetInRaidConfig()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public float GetTraitorScavHostileChance(
|
||||
string url,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public List<string> GetBossConvertSettings(
|
||||
string url,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class InsuranceController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class InventoryController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
using Core.Models.Eft.Profile;
|
||||
using Core.Models.Spt.Mod;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class LauncherController
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ConnectResponse Connect()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get descriptive text for each of the profile edtions a player can choose, keyed by profile.json profile type
|
||||
/// e.g. "Edge Of Darkness"
|
||||
/// </summary>
|
||||
/// <returns>Dictionary of profile types with related descriptive text</returns>
|
||||
private Dictionary<string, string> GetProfileDescriptions()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public Info Find(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public string Login(LoginRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public string Register(RegisterData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
private string CreateAccount(RegisterData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private string GenerateProfileId()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="timeStamp"></param>
|
||||
/// <param name="counter"></param>
|
||||
/// <returns></returns>
|
||||
private string FormatId(
|
||||
long timeStamp,
|
||||
int counter)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public string ChangeUsername(ChangeRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public string ChangePassword(ChangeRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle launcher requesting profile be wiped
|
||||
/// </summary>
|
||||
/// <param name="info">RegisterData</param>
|
||||
/// <returns>Session id</returns>
|
||||
public string Wipe(RegisterData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string GetCompatibleTarkovVersion()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the mods the server has currently loaded
|
||||
/// </summary>
|
||||
/// <returns>Dictionary of mod name and mod details</returns>
|
||||
public Dictionary<string, PackageJsonData> GetLoadedServerMods() // TODO: We no longer use a package.json
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the mods a profile has ever loaded into game with
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Player id</param>
|
||||
/// <returns>List of mod details</returns>
|
||||
public List<ModDetails> GetServerModsProfileUsed(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class LocationController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle client/locations
|
||||
/// Get all maps base location properties without loot data
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Players Id</param>
|
||||
/// <returns>LocationsGenerateAllResponse</returns>
|
||||
public LocationsGenerateAllResponse GenerateAll(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/airdrop/loot
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public GetAirDropLootResponse GetAirDropLoot(GetAirDropLootRequest request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class MatchController
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool GetEnabled()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/match/group/delete
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
public void DeleteGroup(object info) // TODO: info is `any` in the node server
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle match/group/start_game
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ProfileStatusResponse JoinMatch(
|
||||
MatchGroupStartGameRequest info,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/match/group/status
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public MatchGroupStatusReponse GetGroupStatus(
|
||||
MatchGroupStatusRequest info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle /client/raid/configuration
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
public void ConfigureOfflineRaid(
|
||||
GetRaidConfigurationRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Convert a difficulty value from pre-raid screen to a bot difficulty
|
||||
/// </summary>
|
||||
/// <param name="botDifficulty">dropdown difficulty value</param>
|
||||
/// <returns>bot difficulty</returns>
|
||||
private string ConvertDifficultyDropdownIntoBotDifficulty(
|
||||
string botDifficulty)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/match/local/start
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public StartLocalRaidResponseData StartLocalRaid(
|
||||
string sessionId,
|
||||
StartLocalRaidRequestData request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/match/local/end
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="request"></param>
|
||||
public void EndLocalRaid(
|
||||
string sessionId,
|
||||
EndLocalRaidRequestData request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using Core.Models.Eft.Common;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class NoteController
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="body"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse AddNote(
|
||||
PmcData pmcData,
|
||||
NoteActionBody body,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="body"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse EditNote(
|
||||
PmcData pmcData,
|
||||
NoteActionBody body,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="body"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse DeleteNote(
|
||||
PmcData pmcData,
|
||||
NoteActionBody body,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class NotifierController
|
||||
{
|
||||
/// <summary>
|
||||
/// Resolve an array of session notifications.
|
||||
///
|
||||
/// If no notifications are currently queued then intermittently check for new notifications until either
|
||||
/// one or more appear or when a timeout expires.
|
||||
/// If no notifications are available after the timeout, use a default message.
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
public async Task NotifyAsync(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public string GetServer(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/notifier/channel/create
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public NotifierChannel GetChannel(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class PresetController
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public void Initialize()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class PrestigeController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle /client/prestige/list
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public Prestige GetPrestige(
|
||||
string sessionId,
|
||||
EmptyRequestData info)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle /client/prestige/obtain
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
public object ObtainPrestige( // TODO: returns `any` in the node server, not implemented either
|
||||
string sessionId,
|
||||
EmptyRequestData info)
|
||||
{
|
||||
throw new NotImplementedException("Method not Implemented");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class ProfileController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class QuestController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class RagfairController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using Core.Models.Eft.Common;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class RepairController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle TraderRepair event
|
||||
/// Repair with trader
|
||||
/// </summary>
|
||||
/// <param name="sessionId">session id</param>
|
||||
/// <param name="body">endpoint request data</param>
|
||||
/// <param name="pmcData">player profile</param>
|
||||
/// <returns>item event router action</returns>
|
||||
public ItemEventRouterResponse TraderRepair(
|
||||
string sessionId,
|
||||
TraderRepairActionDataRequest body,
|
||||
PmcData pmcData)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle Repair event
|
||||
/// Repair with repair kit
|
||||
/// </summary>
|
||||
/// <param name="sessionId">session id</param>
|
||||
/// <param name="body">endpoint request data</param>
|
||||
/// <param name="pmcData">player profile</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public ItemEventRouterResponse RepairWithKit(
|
||||
string sessionId,
|
||||
RepairActionDataRequest body,
|
||||
PmcData pmcData)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class RepeatableQuestController
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
using Core.Models.Eft.Common;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using Core.Models.Eft.Ragfair;
|
||||
using Core.Models.Enums;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class TradeController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle TradingConfirm event
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse ConfirmTrading(
|
||||
PmcData pmcData,
|
||||
ProcessBaseTradeRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle RagFairBuyOffer event
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse ConfirmRagfairTrading(
|
||||
PmcData pmcData,
|
||||
ProcessRagfairTradeRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Buy an item off the flea sold by a trader
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="fleaOffer">Offer being purchased</param>
|
||||
/// <param name="offerRequest">request data from client</param>
|
||||
/// <param name="output">Output to send back to client</param>
|
||||
private void BuyTraderItemFromRagfair(
|
||||
string sessionId,
|
||||
PmcData pmcData,
|
||||
RagfairOffer fleaOffer,
|
||||
OfferRequest offerRequest,
|
||||
ItemEventRouterResponse output)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Buy an item off the flea sold by a PMC
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <param name="fleaOffer">Offer being purchased</param>
|
||||
/// <param name="offerRequest">request data from client</param>
|
||||
/// <param name="output">Output to send back to client</param>
|
||||
private void BuyPmcItemFromRagfair(
|
||||
string sessionId,
|
||||
PmcData pmcData,
|
||||
RagfairOffer fleaOffer,
|
||||
OfferRequest offerRequest,
|
||||
ItemEventRouterResponse output)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is the provided offerid and ownerid from a player made offer
|
||||
/// </summary>
|
||||
/// <param name="offerId">id of the offer</param>
|
||||
/// <param name="offerOwnerId">Owner id</param>
|
||||
/// <returns>true if offer was made by a player</returns>
|
||||
private bool IsPlayerOffer(
|
||||
string offerId,
|
||||
string offerOwnerId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Does Player have necessary trader loyalty to purchase flea offer
|
||||
/// </summary>
|
||||
/// <param name="fleaOffer">Flea offer being bought</param>
|
||||
/// <param name="pmcData">Player profile</param>
|
||||
/// <returns>True if player can buy offer</returns>
|
||||
private bool PlayerLacksTraderLoyaltyLevelToBuyOffer(
|
||||
RagfairOffer fleaOffer,
|
||||
PmcData pmcData)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle SellAllFromSavage event
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse SellScavItemsToFence(
|
||||
PmcData pmcData,
|
||||
SellScavItemsToFenceRequestData request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send the specified rouble total to player as mail
|
||||
/// </summary>
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="roublesToSend">amount of roubles to send</param>
|
||||
/// <param name="trader">Trader to sell items to</param>
|
||||
private void MailMoneyToPlayer(
|
||||
string sessionId,
|
||||
int roublesToSend,
|
||||
Traders trader) // TODO: This is a static class now and cannot be passed as a param.
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up an items children and gets total handbook price for them
|
||||
/// </summary>
|
||||
/// <param name="parentItemId">parent item that has children we want to sum price of</param>
|
||||
/// <param name="items">All items (parent + children)</param>
|
||||
/// <param name="handbookPrices">Prices of items from handbook</param>
|
||||
/// <param name="traderDetails">Trader being sold to, to perform buy category check against</param>
|
||||
/// <returns>Rouble price</returns>
|
||||
private int GetPriceOfItemAndChildren(
|
||||
string parentItemId,
|
||||
List<Item> items,
|
||||
Dictionary<string, int> handbookPrices,
|
||||
TraderBase traderDetails)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class TraderController
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs when onLoad event is fired
|
||||
/// Iterate over traders, ensure a pristine copy of their assorts is stored in traderAssortService
|
||||
/// Store timestamp of next assort refresh in nextResupply property of traders .base object
|
||||
/// </summary>
|
||||
public void Load()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs when onUpdate is fired
|
||||
/// If current time is > nextResupply(expire) time of trader, refresh traders assorts and
|
||||
/// Fence is handled slightly differently
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool Update()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/trading/api/traderSettings
|
||||
/// </summary>
|
||||
/// <param name="sessionId">session id</param>
|
||||
/// <returns>Return a list of all traders</returns>
|
||||
public List<TraderBase> GetAllTraders(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Order traders by their traderId (Ttid)
|
||||
/// </summary>
|
||||
/// <param name="traderA">First trader to compare</param>
|
||||
/// <param name="traderB">Second trader to compare</param>
|
||||
/// <returns>1,-1 or 0</returns>
|
||||
private int SortByTraderId(
|
||||
TraderBase traderA,
|
||||
TraderBase traderB)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/trading/api/getTrader
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="traderId"></param>
|
||||
/// <returns></returns>
|
||||
public TraderBase GetTrader(
|
||||
string sessionId,
|
||||
string traderId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/trading/api/getTraderAssort
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <param name="traderId"></param>
|
||||
/// <returns></returns>
|
||||
public TraderAssort GetAssort(
|
||||
string sessionId,
|
||||
string traderId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/items/prices/TRADERID
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public GetItemPricesResponse GetItemPrices()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class WeatherController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle client/weather
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public WeatherData Generate()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle client/localGame/weather
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public GetLocalWeatherResponseData GenerateLocal(string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using Core.Models.Eft.Common;
|
||||
|
||||
namespace Core.Controllers;
|
||||
|
||||
public class WishlistController
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle AddToWishList
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse AddToWishList(
|
||||
PmcData pmcData,
|
||||
AddItemToWishlistRequest request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle RemoveFromWishList event
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse RemoveFromWishList(
|
||||
PmcData pmcData,
|
||||
RemoveFromWishlistRequest request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle changeWishlistItemCategory event
|
||||
/// </summary>
|
||||
/// <param name="pmcData"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public ItemEventRouterResponse ChangeWishListItemCategory(
|
||||
PmcData pmcData,
|
||||
ChangeWishlistItemCategoryRequest request,
|
||||
string sessionId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user