public static Next_Waypoint Create(SystemJump currentWaypoint, int jumpIndex, double travelPercent, bool copyToClipboard = false, bool emitEvent = false)
        {
            var @event = new Next_Waypoint()
            {
                CopyToClipboard = copyToClipboard,
                EmitEvent       = emitEvent
            };

            foreach (var variable in currentWaypoint.SystemJumpToVoiceAttackVariables())
            {
                @event.EventArgs.Add(variable);
            }

            @event.EventArgs.Add(VoiceAttackVariable.Create("travel_percent", Convert.ToDecimal(travelPercent)));
            @event.EventArgs.Add(VoiceAttackVariable.Create("jump_number", jumpIndex + 1));

            return(@event);
        }
        public static Calculate_Route Create(Route route)
        {
            var @event = new Calculate_Route();

            @event.EventArgs.Add(VoiceAttackVariable.Create("total_jumps", route.TotalJumps));

            if (route.SystemJumps.Count > 0)
            {
                var currentWaypoint = route.SystemJumps.ElementAt(0);
                foreach (var variable in currentWaypoint.SystemJumpToVoiceAttackVariables())
                {
                    @event.EventArgs.Add(variable);
                }
            }
            @event.EventArgs.Add(VoiceAttackVariable.Create("travel_percent", (decimal)0));
            @event.EventArgs.Add(VoiceAttackVariable.Create("jump_number", 1));
            @event.EventArgs.Add(VoiceAttackVariable.Create("spansh_uri", route.Uri));

            return(@event);
        }
        public static Previous_Waypoint Create(SystemJump currentWaypoint, int jumpIndex, double travelPercent, bool copyToClipboard = false, bool emitEvent = false)
        {
            var @event = new Previous_Waypoint()
            {
                CopyToClipboard = copyToClipboard,
                EmitEvent       = emitEvent
            };

            var variables = currentWaypoint.SystemJumpToVoiceAttackVariables()
                            .Concat(new[]
            {
                VoiceAttackVariable.Create("travel_percent", Convert.ToDecimal(travelPercent)),
                VoiceAttackVariable.Create("jump_number", jumpIndex + 1)
            });

            foreach (var variable in variables)
            {
                @event.EventArgs.Add(variable);
            }

            return(@event);
        }