public override void Notify_Player() { base.Notify_Player(); if (!playerNotified && this.DestinationTarget != null) { Options.SettingsRef settingsRef = new Options.SettingsRef(); if (this.DestinationTarget.Faction == Faction.OfPlayer && this.Faction.HostileTo(Faction.OfPlayer) && Find.WorldGrid.TraversalDistanceBetween(this.Tile, this.DestinationTarget.Tile) <= settingsRef.letterNotificationRange && Rand.Chance(.35f)) { playerNotified = true; StringBuilder stringBuilder = new StringBuilder(); float num6 = (float)Utility.ArrivalTimeEstimator.EstimatedTicksToArrive(base.Tile, pather.Destination, this) / 60000f; if (stringBuilder.Length != 0) { stringBuilder.AppendLine(); } stringBuilder.Append("RW_EstimatedTimeToDestination".Translate(num6.ToString("0.#"))); Find.LetterStack.ReceiveLetter("RW_LetterApproachingThreatEvent".Translate(), "RW_LetterApproachingThreatEventText".Translate(this.Name, this.RimWarPoints, this.DestinationTarget.Label, stringBuilder), RimWarDefOf.RimWar_WarningEvent); } } }