Files
2025-03-12 12:56:27 +00:00

63 lines
2.0 KiB
C#

#nullable enable
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Barotrauma;
partial class EventLog
{
public bool UnreadEntries { get; private set; }
public void AddEntry(Identifier eventPrefabId, Identifier entryId, string text)
{
TryAddEntryInternal(eventPrefabId, entryId, text);
GameMain.GameSession?.EnableEventLogNotificationIcon(enabled: true);
UnreadEntries = true;
}
public void CreateEventLogUI(GUIComponent parent, TraitorManager.TraitorResults? traitorResults = null)
{
UnreadEntries = false;
int spacing = GUI.IntScale(5);
foreach (var ev in events.Values)
{
LocalizedString nameString = string.Empty;
int difficultyIconCount = 0;
EventPrefab.Prefabs.TryGet(ev.EventIdentifier, out EventPrefab? eventPrefab);
if (eventPrefab is not null)
{
nameString = RichString.Rich(eventPrefab.Name);
if (eventPrefab is TraitorEventPrefab traitorEventPrefab)
{
difficultyIconCount = traitorEventPrefab.DangerLevel;
}
}
var textContent = new List<LocalizedString>();
textContent.AddRange(ev.Entries.Select(e => (LocalizedString)e.Text));
var icon = GUIStyle.GetComponentStyle("TraitorMissionIcon")?.GetDefaultSprite();
RoundSummary.CreateMissionEntry(
parent,
nameString,
textContent,
difficultyIconCount,
icon, GUIStyle.Red,
difficultyTooltipText: null,
out GUIImage missionIcon);
if (traitorResults != null &&
traitorResults.Value.TraitorEventIdentifier == ev.EventIdentifier)
{
RoundSummary.UpdateMissionStateIcon(traitorResults.Value.ObjectiveSuccessful, missionIcon);
}
}
}
}