Esempio n. 1
0
    private void SetButtons(Work aWorkInfo)
    {
        if (null == aWorkInfo)
        {
            return;
        }

        GAMEDATA.DATA.GAMEDATA_WORK workData = GAMEDATA.GAMEDATAINFOS.Instance.GetWorkData(aWorkInfo.Kind);
        if (null == workData)
        {
            return;
        }

        if (workData.maxLevel <= aWorkInfo.Level)
        {
            buttonUpgrade1.gameObject.SetActive(false);
            buttonUpgrade10.gameObject.SetActive(false);
            return;
        }

        if (workData.maxLevel < aWorkInfo.Level + 10)
        {
            buttonUpgrade10.gameObject.SetActive(false);
        }
        else
        {
            buttonUpgrade10.gameObject.SetActive(true);
        }


        int next10Level = Math.Min(workData.maxLevel, aWorkInfo.Level + 10);

        int nextRequireGold   = 0;
        int next10RequireGold = 0;

        for (int i = aWorkInfo.Level; i < next10Level; ++i)
        {
            var workLevelData = GAMEDATA.GAMEDATAINFOS.Instance.GetWorkLevelData(aWorkInfo.Kind, i);

            if (null == workLevelData)
            {
                continue;
            }

            if (i == aWorkInfo.Level)
            {
                nextRequireGold = workLevelData.RequireForNextLevel;
            }

            next10RequireGold += workLevelData.RequireForNextLevel;
        }


        textUpgrade1.text  = nextRequireGold.ToString("N0");
        textUpgrade10.text = next10RequireGold.ToString("N0");
    }
Esempio n. 2
0
    private void ClickUpgradeButton(int aUpgradeLevel)
    {
        var curWorkInfo = GameMain.Instance.WorkMgr.GetWorkInfo(workKind);

        GAMEDATA.DATA.GAMEDATA_WORK workData = GAMEDATA.GAMEDATAINFOS.Instance.GetWorkData(curWorkInfo.Kind);
        if (null == workData)
        {
            return;
        }

        int targetLevel = curWorkInfo.Level + aUpgradeLevel;

        if (workData.maxLevel < targetLevel)
        {
            return;
        }


        Int64 requireGold = 0;

        for (int i = curWorkInfo.Level; i < targetLevel; ++i)
        {
            var workLevelData = GAMEDATA.GAMEDATAINFOS.Instance.GetWorkLevelData(curWorkInfo.Kind, i);
            if (null == workLevelData)
            {
                continue;
            }

            requireGold += workLevelData.RequireForNextLevel;
        }

        if (GameMain.Instance.UserInfo.SubstructGold(requireGold))
        {
            GameMain.Instance.WorkMgr.SetWork(curWorkInfo.Kind, targetLevel);
        }
    }