예제 #1
0
    private void OnGoldDailyLevelChange(object arg0)
    {
        int level = (int)arg0;
        ConfigPlayerDailyCoinRecord record = ConfigurationManager.instance.playerDailyCoin.GetRecordByKeySearch(level);

        goldDailyValue = record.Value;
    }
예제 #2
0
 private void LevelUpDailyCoin()
 {
     if (DataAPIController.instance.LevelUpDailyCoin())
     {
         dailyCf     = dailyCfNext;
         dailyCfNext = ConfigurationManager.instance.playerDailyCoin.GetRecordByKeySearch(dailyCf.Level + 1);
         UpdateDownUI();
     }
 }
예제 #3
0
    public void InitHandler()
    {
        goldStartTime   = DataAPIController.instance.GetGoldStartTime();
        energyStartTime = DataAPIController.instance.GetEnergyStartTime();

        long currentTime = DateTimeOffset.Now.ToUnixTimeSeconds();

        ConfigPlayerDailyCoinRecord record = ConfigurationManager.instance.playerDailyCoin.
                                             GetRecordByKeySearch(DataAPIController.instance.GetCurrentGoldDailyLevel());

        goldDailyValue = record.Value;

        long goldRemainTime   = currentTime - goldStartTime;
        long energyRemainTime = currentTime - energyStartTime;

        int goldEarned   = (int)goldRemainTime / ResoucesConfig.GOLD_GAIN_TIME;
        int energyEarned = (int)energyRemainTime / ResoucesConfig.ENERGY_GAIN_TIME;


        if (goldEarned > 0)
        {
            DataAPIController.instance.AddGoldSaved(goldEarned * goldDailyValue);
        }

        goldTimeTillEarned = (goldStartTime % ResoucesConfig.GOLD_GAIN_TIME);
        goldStartTime      = currentTime + goldTimeTillEarned;
        DataAPIController.instance.SetGoldStartTime(goldStartTime);


        if (energyEarned > 0)
        {
            DataAPIController.instance.AddEnergy(energyEarned * ResoucesConfig.ENERGY_VALUE);
        }

        energyTimeTillEarned = (energyStartTime % ResoucesConfig.ENERGY_GAIN_TIME);
        energyStartTime      = currentTime + energyTimeTillEarned;
        DataAPIController.instance.SetEnergyStartTime(energyStartTime);

        DataAPIController.instance.RegisterEvent(DataPath.GOLDDAILYLEVEL, OnGoldDailyLevelChange);


        StartCoroutine(UpdateEarnedHandler());
    }
예제 #4
0
    public override void Setup()
    {
        currentGold = DataAPIController.instance.GetCurrentGold();



        if (root == null)
        {
            root = GetComponent <DownPanelExtendItem>();
        }

        if (!isSetupOneTime)
        {
            isSetupOneTime = true;

            int dailyLevel = DataAPIController.instance.GetCurrentDamageLevel();
            int valueLevel = DataAPIController.instance.GetCurrentFireRateLevel();
            dailyCf     = ConfigurationManager.instance.playerDailyCoin.GetRecordByKeySearch(dailyLevel);
            dailyCfNext = ConfigurationManager.instance.playerDailyCoin.GetRecordByKeySearch(dailyLevel + 1);
            valueCf     = ConfigurationManager.instance.playerCoinValue.GetRecordByKeySearch(valueLevel);
            valueCfNext = ConfigurationManager.instance.playerCoinValue.GetRecordByKeySearch(valueLevel + 1);

            root.btnDownBuy.onClick.AddListener(() =>
            {
                LevelUpDailyCoin();
            });
            root.btnMidBuy.onClick.AddListener(() =>
            {
                LevelUpCoinValue();
            });

            DataAPIController.instance.RegisterEvent(DataPath.GOLD, OnGoldChangeEvent);
        }


        UpdateDownUI();
        UpdateMidUI();
    }
예제 #5
0
    public bool LevelUpDailyCoin()
    {
        int currentLevel = GetCurrentGoldDailyLevel();
        ConfigPlayerDailyCoinRecord nextLevelConfig =
            ConfigurationManager.instance.playerDailyCoin.GetRecordByKeySearch(currentLevel + 1);

        if (nextLevelConfig == null)
        {
            return(false);
        }

        int gold = GetCurrentGold();

        if (gold >= nextLevelConfig.UnlockFee)
        {
            gold -= nextLevelConfig.UnlockFee;
            currentLevel++;
            dataModel.UpdateData(DataPath.GOLD, gold);
            dataModel.UpdateData(DataPath.GOLDDAILYLEVEL, currentLevel);
            return(true);
        }
        return(false);
    }