< Summary

Information
Class: RaidLoop.Client.RaidPresentationCatalog
Assembly: RaidLoop.Client
File(s): /home/runner/work/RaidLoop/RaidLoop/src/RaidLoop.Client/RaidPresentationCatalog.cs
Line coverage
31%
Covered lines: 13
Uncovered lines: 28
Coverable lines: 41
Total lines: 83
Line coverage: 31.7%
Branch coverage
13%
Covered branches: 8
Total branches: 59
Branch coverage: 13.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetEncounterDescription(...)2.63%9483814.28%
GetEncounterDescription(...)33.33%33933.33%
GetEnemyLabel(...)100%22100%
GetEnemyLabel(...)12.5%38822.22%
LocalizeLogEntry(...)50%2266.66%

File(s)

/home/runner/work/RaidLoop/RaidLoop/src/RaidLoop.Client/RaidPresentationCatalog.cs

#LineLine coverage
 1namespace RaidLoop.Client;
 2
 3public static class RaidPresentationCatalog
 4{
 5    public static string GetEncounterDescription(string? encounterDescriptionKey, EncounterType encounterType, string? s
 6    {
 207        if (!string.IsNullOrWhiteSpace(encounterDescriptionKey))
 8        {
 09            return encounterDescriptionKey switch
 010            {
 011                "combat_contact" => "Enemy contact on your position.",
 012                "combat_hunter_contact" => "Hunter contact.",
 013                "combat_extract_ambush" => "You are ambushed while moving between positions.",
 014                "combat_mutual_contact" => "You and a patrol spot each other at the same moment.",
 015                "loot_container" => "A searchable container appears.",
 016                "extract_ready" => "You are near the extraction route.",
 017                "extract_hold" => "Holding at extract.",
 018                "neutral_travel" => "You move through the area carefully.",
 019                _ => GetEncounterDescription(encounterType, serverDescription, extractHoldActive)
 020            };
 21        }
 22
 2023        return GetEncounterDescription(encounterType, serverDescription, extractHoldActive);
 24    }
 25
 26    public static string GetEncounterDescription(EncounterType encounterType, string? serverDescription, bool extractHol
 27    {
 2028        if (extractHoldActive)
 29        {
 230            return "Holding at extract.";
 31        }
 32
 1833        if (!string.IsNullOrWhiteSpace(serverDescription))
 34        {
 1835            return serverDescription!;
 36        }
 37
 038        return encounterType switch
 039        {
 040            EncounterType.Combat => "Enemy contact on your position.",
 041            EncounterType.Loot => "A searchable container appears.",
 042            EncounterType.Extraction => "You are near the extraction route.",
 043            EncounterType.Neutral => "You move through the area carefully.",
 044            _ => string.Empty
 045        };
 46    }
 47
 48    public static string GetEnemyLabel(string? serverEnemyName)
 49    {
 2050        if (string.IsNullOrWhiteSpace(serverEnemyName))
 51        {
 1052            return string.Empty;
 53        }
 54
 1055        return serverEnemyName!.Replace("Scav", "Scavenger", StringComparison.OrdinalIgnoreCase);
 56    }
 57
 58    public static string GetEnemyLabel(string? enemyKey, string? serverEnemyName)
 59    {
 2060        if (!string.IsNullOrWhiteSpace(enemyKey))
 61        {
 062            return enemyKey switch
 063            {
 064                "scavenger" => "Scavenger",
 065                "extract_hunter" => "Extract Hunter",
 066                "guard" => "Guard",
 067                _ => GetEnemyLabel(serverEnemyName)
 068            };
 69        }
 70
 2071        return GetEnemyLabel(serverEnemyName);
 72    }
 73
 74    public static string LocalizeLogEntry(string entry)
 75    {
 2176        if (string.IsNullOrWhiteSpace(entry))
 77        {
 078            return string.Empty;
 79        }
 80
 2181        return entry.Replace("Scav", "Scavenger", StringComparison.OrdinalIgnoreCase);
 82    }
 83}