Пример #1
0
        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);
        }