Beispiel #1
0
        public static string WithCostSuffix(string translationKey, PaidOperationType type, int desiredPreviewsPage = 0)
        {
            var cost   = RerollToolbox.GetOperationCost(type, desiredPreviewsPage);
            var suffix = cost > 0 ? "Reroll2_costSuffix".Translate(cost.ToString("0.#")) : String.Empty;

            return(translationKey.Translate(suffix));
        }
Beispiel #2
0
        public static void ChargeForOperation(PaidOperationType type, int desiredPreviewsPage = 0)
        {
            var map   = Find.CurrentMap;
            var state = GetStateForMap(map);
            var cost  = GetOperationCost(type, desiredPreviewsPage);

            if (cost > 0)
            {
                SubtractResourcePercentage(map, cost);
                if (type == PaidOperationType.GeneratePreviews)
                {
                    state.NumPreviewPagesPurchased = desiredPreviewsPage + 1;
                }
            }
        }
Beispiel #3
0
        public static float GetOperationCost(PaidOperationType type, int desiredPreviewsPage = 0)
        {
            if (MapRerollController.Instance.PaidRerollsSetting)
            {
                switch (type)
                {
                case PaidOperationType.RerollGeysers: return(Resources.Settings.MapRerollSettings.geyserRerollCost);

                case PaidOperationType.GeneratePreviews:
                    var mapState            = GetStateForMap();
                    var numOutstandingPages = Mathf.Max(0, desiredPreviewsPage - (mapState.NumPreviewPagesPurchased - 1));
                    return(numOutstandingPages > 0 ? Resources.Settings.MapRerollSettings.previewPageCost * numOutstandingPages : 0);
                }
            }
            return(0);
        }