/// <summary> /// 現在の状態をレポートし、必要であればユーザに書の使用を通知します /// </summary> /// <param name="warEvents"></param> /// <param name="isBookUsed"></param> /// <param name="keepDamage"></param> public void ReportCurrentStatusWithNotify(WarEvents warEvents, bool isBookUsed, KeepDamage keepDamage) { if (!IsEnabled) { return; } // 書を使用中なら通知の必要がないので対象外 if (isBookUsed) { return; } // 戦争中じゃなければ通知対象外 if (warEvents != WarEvents.WarStarted) { return; } // ゲージが一定以下でなければ通知対象外 var min = Math.Min(keepDamage.AttackKeepDamage, keepDamage.DefenceKeepDamage); if (keepDamage.IsEmpty() || min > BookUseNotificationThreashold) { return; } // 初回の通知、または前回の通知から一定時間経過していれば通知する if (!_previousNotificateDateTime.HasValue || (DateTime.Now - _previousNotificateDateTime.Value) > BookUseNoticationTimeSpan) { PlayNotifySound(); _previousNotificateDateTime = DateTime.Now; } }
public KeepDamageUpdatedEventArgs(KeepDamage damage) { Damage = damage; }