示例#1
0
    /// <summary>
    /// 领取成就奖励
    /// </summary>
    public void getReward(int id)
    {
        AchievementCompleteData cData = _d.completeDatas.get(id);

        if (cData == null)
        {
            me.warnLog("领取成就奖励时,找不到完成成就", id);
            return;
        }

        if (cData.hasGotReward)
        {
            me.warnLog("领取成就奖励时,已经领过", id);
            return;
        }

        AchievementConfig config = AchievementConfig.get(id);

        if (config.rewardID > 0)
        {
            if (!me.bag.hasRewardPlace(config.rewardID))
            {
                me.warnLog("领取成就奖励时,背包空间不足", id);
                return;
            }
        }

        me.send(GetAchievementRewardRequest.create(id));
    }
示例#2
0
    /// <summary>
    /// 检查并添加成就
    /// </summary>
    protected void checkAndAccept(int id)
    {
        AchievementConfig config;

        if (checkCanAcceptAchievement(config = AchievementConfig.get(id)))
        {
            addRunningAchievement(config);
        }
    }
示例#3
0
    /// <summary>
    /// 完成成就,g层可复写
    /// </summary>
    protected virtual void onAchievementComplete(int id)
    {
        if (CommonSetting.isClientDriveLogic)
        {
            AchievementConfig config = AchievementConfig.get(id);

            IntList list;
            if (!(list = config.afters).isEmpty())
            {
                int[] values = list.getValues();

                for (int i = 0, len = list.size(); i < len; ++i)
                {
                    checkAndAccept(values[i]);
                }
            }
        }
    }