Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
            }
        }