public async Task RequestUseHandler(RequestUseMessage message, Player player) { player.SendChatMessage($"Interacted with {message.TargetObject}"); await player.GetComponent <MissionInventoryComponent>().GoToNpcAsync( message.TargetObject.Lot ); if (message.IsMultiInteract) { // // Multi-interact is mission // if (message.MultiInteractType == default) { player.GetComponent <MissionInventoryComponent>().MessageOfferMission( (int)message.MultiInteractId, message.TargetObject ); } } else { message.TargetObject?.OnInteract.Invoke(player); } }
public async Task RequestUseHandler(RequestUseMessage message, Player player) { Logger.Information($"{player} interacted with {message.TargetObject}"); var inventory = player.GetComponent <MissionInventoryComponent>(); await inventory.GoToNpcAsync( message.TargetObject.Lot ); if (message.IsMultiInteract) { // // Multi-interact is mission // if (message.MultiInteractType == default) { player.GetComponent <MissionInventoryComponent>().MessageOfferMission( (int)message.MultiInteractId, message.TargetObject ); } } else if (message.TargetObject != default) { await message.TargetObject.OnInteract.InvokeAsync(player); await inventory.InteractAsync(message.TargetObject.Lot); } }
public async Task RequestUseHandler(RequestUseMessage message, Player player) { Logger.Information($"{player} interacted with {message.TargetObject}"); var inventory = player.GetComponent <MissionInventoryComponent>(); await inventory.GoToNpcAsync( message.TargetObject.Lot ); // Handle interactions with the faction vendors await HandleFactionVendorInteraction(message.TargetObject, inventory); if (message.IsMultiInteract) { // Multi-interact is mission if (message.MultiInteractType == InteractionType.MissionOfferer) // Mission Component { player.GetComponent <MissionInventoryComponent>().MessageOfferMission( (int)message.MultiInteractId, message.TargetObject ); } else if (message.MultiInteractType == InteractionType.Vendor) // Any other case { await message.TargetObject.OnInteract.InvokeAsync(player); await inventory.InteractAsync(message.TargetObject.Lot); } } else if (message.TargetObject != default) { await message.TargetObject.OnInteract.InvokeAsync(player); await inventory.InteractAsync(message.TargetObject.Lot); } }