Exemple #1
0
        public static bool ShowIfNoFreeDroids(OnScreenModalResult onModalResult, object modalResultCookie)
        {
            CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>();
            int           num           = ContractUtils.CalculateDroidsInUse();

            if (num >= currentPlayer.CurrentDroidsAmount)
            {
                Lang   lang    = Service.Get <Lang>();
                string title   = lang.Get("droid_title_AllDroidsBusy", new object[0]);
                string message = (currentPlayer.CurrentDroidsAmount < currentPlayer.MaxDroidsAmount) ? lang.Get("droid_desc_CompletePreviousBuildingOrBuy", new object[0]) : lang.Get("droid_desc_CompletePreviousBuilding", new object[0]);
                int    num2    = ContractUtils.MinimumCostToFinish();
                PayMeScreen.ShowModal(num2, true, title, message, null, onModalResult, modalResultCookie);
                return(true);
            }
            return(false);
        }
Exemple #2
0
        public static bool ShowIfNotEnoughCurrency(int credits, int materials, int contraband, string purchaseContext, OnScreenModalResult onModalResult)
        {
            CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>();
            CurrencyType  currencyType  = GameUtils.GetCurrencyType(credits, materials, contraband);
            int           num           = 0;

            switch (currencyType)
            {
            case CurrencyType.Credits:
                num = credits - currentPlayer.CurrentCreditsAmount;
                break;

            case CurrencyType.Materials:
                num = materials - currentPlayer.CurrentMaterialsAmount;
                break;

            case CurrencyType.Contraband:
                num = contraband - currentPlayer.CurrentContrabandAmount;
                break;
            }
            if (num > 0)
            {
                if (GameUtils.HasEnoughCurrencyStorage(currencyType, num))
                {
                    Lang   lang             = Service.Get <Lang>();
                    string currencyStringId = LangUtils.GetCurrencyStringId(currencyType);
                    string text             = lang.Get(currencyStringId, new object[0]);
                    string title            = lang.Get("NEED_MORE", new object[]
                    {
                        text
                    });
                    string message = lang.Get("NEED_MORE_BUY_MISSING", new object[]
                    {
                        lang.ThousandsSeparated(num),
                        text
                    });
                    int num2 = 0;
                    switch (currencyType)
                    {
                    case CurrencyType.Credits:
                        num2 = GameUtils.CreditsCrystalCost(num);
                        break;

                    case CurrencyType.Materials:
                        num2 = GameUtils.MaterialsCrystalCost(num);
                        break;

                    case CurrencyType.Contraband:
                        num2 = GameUtils.ContrabandCrystalCost(num);
                        break;
                    }
                    string      currencyItemAssetName = UXUtils.GetCurrencyItemAssetName(currencyType.ToString());
                    CurrencyTag modalResultCookie     = new CurrencyTag(currencyType, num, num2, purchaseContext);
                    PayMeScreen.ShowModal(num2, false, title, message, currencyItemAssetName, onModalResult, modalResultCookie);
                }
                else
                {
                    onModalResult(null, null);
                }
                return(true);
            }
            return(false);
        }
Exemple #3
0
 public unsafe static long $Invoke8(long instance, long *args)
 {
     PayMeScreen.ShowModal(*(int *)args, *(sbyte *)(args + 1) != 0, Marshal.PtrToStringUni(*(IntPtr *)(args + 2)), Marshal.PtrToStringUni(*(IntPtr *)(args + 3)), Marshal.PtrToStringUni(*(IntPtr *)(args + 4)), (OnScreenModalResult)GCHandledObjects.GCHandleToObject(args[5]), GCHandledObjects.GCHandleToObject(args[6]));
     return(-1L);
 }