private void DrawButtons(Rect inRect, Rect rowRect) { Rect confirmButtonRect = new Rect(inRect.width - AcceptButtonSize.x, inRect.height - AcceptButtonSize.y, AcceptButtonSize.x, AcceptButtonSize.y); if (Widgets.ButtonText(confirmButtonRect, "IR.ItemRequestWindow.Confirm".Translate(), true, false, true)) { Action onConfirmed = () => { SoundDefOf.ExecuteTrade.PlayOneShotOnCamera(null); Find.WindowStack.Add(new RequestAcknowledgedWindow(faction, () => { Close(false); requestSession.SetTimeOfOccurence(faction, Find.TickManager.TicksGame + CaravanManager.DetermineJourneyTime(faction, map)); requestSession.CloseSession(); CaravanManager.SendRequestedCaravan(faction, map); })); }; Action onCancelled = () => { }; if (colonySilver < requestSession.deal.TotalRequestedValue) { string title = "IR.ConfirmRequestWindow.WindowTitle".Translate(); string message = "IR.ConfirmRequestWindow.WindowMessage".Translate(); string confirmString = "IR.ConfirmRequestWindow.Confirm".Translate(); string cancelString = "IR.ConfirmRequestWindow.Cancel".Translate(); Find.WindowStack.Add(new ConfirmRequestWindow(onConfirmed, onCancelled, title, message, confirmString, cancelString)); } else if (requestSession.deal.GetRequestedItems().Count == 0) { string title = "IR.ConfirmEmptyRequestWindow.WindowTitle".Translate(); string message = "IR.ConfirmEmptyRequestWindow.WindowMessage".Translate(faction.Name); string confirmString = "IR.ConfirmEmptyRequestWindow.Confirm".Translate(); Find.WindowStack.Add(new ConfirmRequestWindow(() => { Close(false); requestSession.CloseOpenDealWith(faction); requestSession.CloseSession(); }, null, title, message, confirmString, null)); } else { onConfirmed(); } } Rect cancelButtonRect = new Rect(rowRect.x, confirmButtonRect.y, OtherBottomButtonSize.x, OtherBottomButtonSize.y); if (Widgets.ButtonText(cancelButtonRect, "IR.ItemRequestWindow.Cancel".Translate(), true, false, true)) { Close(true); requestSession.CloseOpenDealWith(faction); requestSession.CloseSession(); } }
private float DetermineDistMultiplier(out float daysToTravel) { var distToColonyInTicks = CaravanManager.DetermineJourneyTime(faction, map); daysToTravel = (float)distToColonyInTicks / CaravanManager.fullDayInTicks; float distMultiplier = 1; if (daysToTravel >= 4) { distMultiplier = 1.5f; } else if (daysToTravel >= 2.5f) { distMultiplier = 1.25f; } else if (daysToTravel >= 1.5) { distMultiplier = 1.1f; } return(distMultiplier); }