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)); }
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; } } }
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); }