コード例 #1
0
        private static bool IconStatus(string icon, TargetStatus targetState, out int iconLevel)
        {
            bool display;

            switch (icon)
            {
            case "speed":
                display   = targetState.Speed > -1;
                iconLevel = !display ? 0 : targetState.Speed;
                break;

            case "size":
                display   = targetState.Size > -1;
                iconLevel = !display ? 0 : targetState.Size;
                break;

            case "threat":
                display   = targetState.ThreatLvl > -1;
                iconLevel = !display ? 0 : targetState.ThreatLvl;
                break;

            case "shield":
                display   = targetState.ShieldHealth > -1;
                iconLevel = !display ? 0 : targetState.ShieldHealth;
                break;

            case "engagement":
                display   = targetState.Engagement > -1;
                iconLevel = !display ? 0 : targetState.Engagement;
                break;

            case "distance":
                display   = targetState.Distance > -1;
                iconLevel = !display ? 0 : targetState.Distance;
                break;

            default:
                display   = false;
                iconLevel = 0;
                break;
            }
            return(display);
        }
コード例 #2
0
        private bool TargetTextStatus(int slot, TargetStatus targetState, float scale, Vector2 localOffset, bool shielded, bool details, out string textStr, out Vector2 textOffset)
        {
            var showAll    = details && shielded;
            var minimal    = !details;
            var skipShield = !showAll && !minimal;
            var skip       = minimal && slot != 1 && slot != 2 && slot != 10 || skipShield && slot > 5 && slot != 10;

            if (skip)
            {
                textStr    = string.Empty;
                textOffset = Vector2.Zero;
                return(false);
            }

            textOffset = localOffset;

            var aspectScale = (2.37037f / _session.AspectRatio);

            var xOdd    = 0.3755f * scale;
            var xEven   = 0.07f * scale;
            var xCenter = 0.19f * scale;
            var yStart  = 0.9f * scale;
            var yStep   = 0.151f * scale;

            switch (slot)
            {
            case 0:
                textStr       = $"SIZE: {targetState.SizeExtended}";
                textOffset.X -= xOdd * aspectScale;
                textOffset.Y += yStart;
                break;

            case 1:
                var inKm    = targetState.RealDistance >= 1000;
                var unit    = inKm ? "km" : "m";
                var measure = inKm ? targetState.RealDistance / 1000 : targetState.RealDistance;
                textStr       = $"RANGE: {measure:#.0} {unit}";
                textOffset.X += xEven * aspectScale;
                textOffset.Y += yStart;
                break;

            case 2:
                var threatLvl = targetState.ThreatLvl > 0 ? targetState.ThreatLvl : 0;
                textStr       = $"THREAT: {threatLvl}";
                textOffset.X -= xOdd * aspectScale;
                if (minimal)
                {
                    textOffset.Y += yStart;
                }
                else
                {
                    textOffset.Y += yStart - (yStep * 1);
                }
                break;

            case 3:

                if (targetState.Engagement == 0)
                {
                    textStr = "INTERCEPT";
                }
                else if (targetState.Engagement == 1)
                {
                    textStr = "RETREATING";
                }
                else if (targetState.Speed < 1)
                {
                    textStr = "STATIONARY";
                }
                else
                {
                    textStr = "PARALLEL";
                }

                textOffset.X += xEven * aspectScale;
                textOffset.Y += yStart - (yStep * 1);
                break;

            case 4:
                var speed = MathHelper.Clamp(targetState.Speed, 0, int.MaxValue);
                textStr       = $"SPEED: {speed}";
                textOffset.X -= xOdd * aspectScale;
                textOffset.Y += yStart - (yStep * 2);
                break;

            case 5:
                textStr       = targetState.Aware.ToString();
                textOffset.X += xEven * aspectScale;
                textOffset.Y += yStart - (yStep * 2);
                break;

            case 6:
                var hp = targetState.ShieldHealth < 0 ? 0 : targetState.ShieldHealth;
                textStr       = $"SHIELD HP: {hp}%";
                textOffset.X -= xOdd * aspectScale;
                textOffset.Y += yStart - (yStep * 3);
                break;

            case 7:
                var type  = targetState.ShieldMod > 0 ? "ENERGY" : targetState.ShieldMod < 0 ? "KINETIC" : "NEUTRAL";
                var value = !MyUtils.IsZero(targetState.ShieldMod) ? Math.Round(1 / (2 - targetState.ShieldMod), 1) : 1;
                textStr       = $"{type}: {value}x";
                textOffset.X += xEven * aspectScale;
                textOffset.Y += yStart - (yStep * 3);
                break;

            case 8:
                textStr       = ShieldSides(targetState.ShieldFaces);
                textOffset.X -= xOdd * aspectScale;
                textOffset.Y += yStart - (yStep * 4);
                break;

            case 9:
                var reduction = ExpChargeReductions[targetState.ShieldHeat];
                textStr       = $"CHARGE RATE: {Math.Round(1f / reduction, 1)}x";
                textOffset.X += xEven * aspectScale;
                textOffset.Y += yStart - (yStep * 4);
                break;

            case 10:
                textStr       = targetState.Name;
                textOffset.X -= xCenter * aspectScale;
                if (minimal)
                {
                    textOffset.Y += yStart - (yStep * 1);
                }
                else if (shielded)
                {
                    textOffset.Y += yStart - (yStep * 5);
                }
                else
                {
                    textOffset.Y += yStart - (yStep * 3);
                }
                break;

            default:
                textStr    = string.Empty;
                textOffset = Vector2.Zero;
                return(false);
            }
            return(true);
        }
コード例 #3
0
        private static bool TextStatus(int slot, TargetStatus targetState, Vector2 localOffset, out string textStr, out Vector2 textOffset)
        {
            bool display;

            textOffset = localOffset;
            switch (slot)
            {
            case 0:
                display     = targetState.Size > -1;
                textStr     = !display ? string.Empty : $"SIZE: {targetState.Size}";
                textOffset += 0.1f;
                break;

            case 1:
                Log.Line("1");
                display     = targetState.RealDistance > -1;
                textStr     = !display ? string.Empty : $"RANGE: {targetState.RealDistance:#.0}";
                textOffset += 0.1f;
                break;

            case 2:
                display     = targetState.ThreatLvl > -1;
                textStr     = !display ? string.Empty : $"THREAT: {targetState.ThreatLvl}";
                textOffset += 0.1f;
                break;

            case 3:
                display     = targetState.Engagement > -1;
                textStr     = !display ? string.Empty : $"ENGAGEMENT: {targetState.Engagement}";
                textOffset += 0.1f;
                break;

            case 4:
                display     = targetState.Speed > -1;
                textStr     = !display ? string.Empty : $"SPEED: {targetState.Speed}";
                textOffset += 0.1f;
                break;

            case 5:
                display     = targetState.ShieldHealth > -1;
                textStr     = !display ? string.Empty : $"SHIELD HP: {targetState.ShieldHealth}";
                textOffset += 0.1f;
                break;

            case 6:
                display     = targetState.Distance > -1;
                textStr     = !display ? string.Empty : $"EMPTY: {targetState.Distance}";
                textOffset += 0.1f;
                break;

            case 7:
                display     = targetState.Distance > -1;
                textStr     = !display ? string.Empty : $"EMPTY: {targetState.Distance}";
                textOffset += 0.1f;
                break;

            case 8:
                display     = targetState.Distance > -1;
                textStr     = !display ? string.Empty : $"EMPTY: {targetState.Distance}";
                textOffset += 0.1f;
                break;

            default:
                display    = false;
                textStr    = string.Empty;
                textOffset = Vector2.Zero;
                break;
            }
            return(display);
        }