/
puma
/
ppa
Обзор
Документация
Войти
/
puma
/
ppa
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Models/Units/DamageLoggerObserver.cs
31 строка
1 KB
Margarita
obnova
28 май 2026, 14:34
28 май 2026, 14:34
7c0ec51
Код
Авторство
О чём код?
/// <summary> /// Наблюдатель, логирующий урон в файл /// </summary> public class DamageLoggerObserver : IUnitEventObserver { private static string GetLogFilePath() { int sessionNumber = DamageLogViewer.GetSessionNumber(); return Path.Combine(AppContext.BaseDirectory, $"damage_log_session_{sessionNumber}.txt"); } public void OnDamageTaken(DamageTakenEventArgs args) { try { Directory.CreateDirectory(AppContext.BaseDirectory); string logFilePath = GetLogFilePath(); File.AppendAllText(logFilePath, $"[{args.Timestamp:yyyy-MM-dd HH:mm:ss.fff}] Раунд {args.Round} | Юнит {args.Unit.Name} (ID {args.Unit.Id}) получил {args.DamageTaken} урона (с {args.HealthBefore} на {args.HealthAfter})\n"); } catch { // Игнорируем ошибки логирования, чтобы не прерывать ход игры } } public void OnUnitDeath(UnitDeathEventArgs args) { // Для логгера урона смерть не требует специальной обработки } }