hch
昨天 27ca4a943889eff56ec448512e274fa4feb74c08
342 子 【主界面】官职晋升 / 官职补充修改
5个文件已修改
125 ■■■■ 已修改文件
Main/System/Main/HomeWin.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieCenter.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OfficialRank/OfficialRankManager.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OfficialRank/OfficialUpCell.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OfficialRank/OfficialUpWin.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/HomeWin.cs
@@ -14,6 +14,7 @@
    [SerializeField] Text playerLevelText;
    [SerializeField] SmoothSlider expSlider;
    [SerializeField] Button officialUpBtn;
    [SerializeField] Transform officialTip;
    //任务区
    [SerializeField] Button taskButton; //引导或者领取任务奖励
@@ -132,6 +133,7 @@
        DisplayRestState();
        funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
        officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
    }
    protected override void OnPreOpen()
@@ -147,6 +149,7 @@
        FirstChargeManager.Instance.OnUpdateFirstChargeInfo += OnUpdateFirstChargeInfo;
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
        Display();
        DisplayFirstChargeBtn();
@@ -169,9 +172,15 @@
        FirstChargeManager.Instance.OnUpdateFirstChargeInfo -= OnUpdateFirstChargeInfo;
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
        //  关闭的时候把战斗界面也给关了 虽然是在外面开的
        UIManager.Instance.CloseWindow<BattleWin>();
    }
    void OnOfficialCanLVUpEvent()
    {
        officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
    }
    private void OnClickEnterBoss()
@@ -208,6 +217,10 @@
            case PlayerDataType.ExAttr1:
            case PlayerDataType.ExAttr2:
                DisplayLevel();
                break;
            case PlayerDataType.RealmLevel:
                OnOfficialCanLVUpEvent();
                break;
        }
@@ -270,6 +283,11 @@
        {
            taskButton.SetActive(true);
            var taskConfig = TaskConfig.Get(task.TaskID);
            if (taskConfig == null)
            {
                Debug.LogError("找不到任务 " + task.TaskID);
                return;
            }
            taskText.text = taskConfig.TaskDescribe;
            taskNumText.text = string.Format("({0}/{1})", task.CurValue, taskConfig.NeedValue);
            taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.GetUIColor(TextColType.Red);
Main/System/NewBieGuidance/NewBieCenter.cs
@@ -49,6 +49,7 @@
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
        UIManager.Instance.OnOpenWindow += OnOpenWindow;
        UIManager.Instance.OnCloseWindow += OnCloseWindow;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
    }
    public override void Release()
@@ -59,6 +60,16 @@
        PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
        UIManager.Instance.OnCloseWindow -= OnCloseWindow;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
    }
    void OnOfficialCanLVUpEvent()
    {
        var guides = GuideConfig.GetGuideListByType((int)GuideTriggerType.Realm);
        if (guides != null)
        {
            TryStartNewBieGuides(guides, true);
        }
    }
    void OnOpenWindow(UIBase _ui)
@@ -131,14 +142,6 @@
                TryStartNewBieGuides(guides);
            }
        }
        else if (type == PlayerDataType.RealmLevel)
        {
            var guides = GuideConfig.GetGuideListByType((int)GuideTriggerType.Realm);
            if (guides != null)
            {
                TryStartNewBieGuides(guides);
            }
        }
        
    }
@@ -191,8 +194,9 @@
            return false;
        }
        if (currentGuide != 0)
        if (currentGuide != 0 && GuideConfig.Get(currentGuide).NoRecord == 0)
        {
            // 可重复触发的引导属于低优先级 会被新引导替换
            return false;
        }
@@ -448,7 +452,7 @@
            case GuideTriggerType.Level:
                return PlayerDatas.Instance.baseData.LV >= config.Condition;
            case GuideTriggerType.Realm:
                return PlayerDatas.Instance.baseData.realmLevel >= config.Condition;
                return PlayerDatas.Instance.baseData.realmLevel >= config.Condition && OfficialRankManager.Instance.CanOfficialLVUP();
            case GuideTriggerType.OpenWindow:
                return UIManager.Instance.IsOpened(config.WinName);
            case GuideTriggerType.MainLineQuestCanDo:
@@ -545,6 +549,6 @@
    MissionClick = 4,   //点击任务按任务类型引导
    OpenWindow = 5,     //打开界面的时机 如装备替换界面
    Level = 6,      //等级满足条件
    Realm = 7,  //官职等级
    Realm = 7,  //官职所有任务完成时触发引导,如6升7,6的任务全部完成,配置6
}
Main/System/OfficialRank/OfficialRankManager.cs
@@ -13,8 +13,12 @@
    int taskAwardState;
    Dictionary<int, int> taskValues = new Dictionary<int, int>();
    public event Action RealmMissionRefreshEvent;
    public event Action OnOfficialCanLVUpEvent; //检测到可以升官职
    public Dictionary<int, int> mainLevelDict = new Dictionary<int, int>();    //id:索引 用于判断还需多少关
    public Dictionary<int, int> guideDict = new Dictionary<int, int>();
    public override void Init()
    {
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
@@ -29,6 +33,8 @@
        { 
            mainLevelDict[levelList[i]] = i;
        }
        ParseConfig();
    }
    public override void Release()
@@ -43,6 +49,13 @@
    {
        taskValues.Clear();
        taskAwardState = 0;
    }
    void ParseConfig()
    {
        var config = FuncConfigConfig.Get("Official");
        guideDict = ConfigParse.ParseIntDict(config.Numerical1);
    }
@@ -97,10 +110,8 @@
                return PlayerDatas.Instance.baseData.ExAttr1 / 100 > config.NeedValueList[0] ? 1 : 0;
            case 3:
                return taskValues.ContainsKey(missionID) && taskValues[missionID] >= config.NeedValueList[0] ? 1 : 0;
            case 4:
                return BlessLVManager.Instance.m_TreeLV >= config.NeedValueList[0] ? 1 : 0;
            default:
                return 0;
        }
@@ -194,9 +205,25 @@
        
        if (finish)
            redpoint.state = RedPointState.Simple;
        CanOfficialLVUP(true);
    }
    public bool CanOfficialLVUP(bool notifyEvent = false)
    {
        //只要任务完成即可
        var ids = RealmLVUPTaskConfig.GetMissionIDs(PlayerDatas.Instance.baseData.realmLevel);
        foreach (var id in ids)
        {
            if (GetMissionState(PlayerDatas.Instance.baseData.realmLevel, id) == 0)
                return false;
        }
        if (notifyEvent)
            OnOfficialCanLVUpEvent?.Invoke();
        return true;
    }
    public Color GetOfficialRankColor(int quality)
Main/System/OfficialRank/OfficialUpCell.cs
@@ -32,12 +32,13 @@
        getAwardImg.SetActive(state == 1);
        getAwardEffect.SetActive(state == 1);
        bgImg.SetSprite(state == 0 ? "OfficialMissionBG0" : "OfficialMissionBG1");
        switch (config.TaskType)
        var type = config.TaskType;
        switch (type)
        {
            case 1:
            case 3:
            case 4:
                taskName.text = Language.Get("OfficialMission" + config.TaskType, config.NeedValueList[0]);
                taskName.text = Language.Get("OfficialMission" + type, config.NeedValueList[0]);
                break;
            case 2:
                var mainLVConfig = MainLevelConfig.Get(config.NeedValueList[0]);
@@ -51,15 +52,19 @@
        taskProcessText.text = process + "/" + total;
        int itemID = config.AwardItemList[0][0];
        taskReward.Init(new ItemCellModel(itemID, false, config.AwardItemList[0][1]));
        taskReward.button.AddListener(() =>
        {
            ItemTipUtility.Show(itemID);
        });
        // taskReward.button.AddListener(() =>
        // {
        //     ItemTipUtility.Show(itemID);
        // });
        getBtn.AddListener(() =>
        {
            if (state != 1)
            {
                UIManager.Instance.CloseWindow<OfficialUpWin>();
                NewBieCenter.Instance.StartNewBieGuide(OfficialRankManager.Instance.guideDict[type]);
                return;
            }
            OfficialRankManager.Instance.RequestAllAwards(id);
        });
Main/System/OfficialRank/OfficialUpWin.cs
@@ -15,6 +15,7 @@
    [SerializeField] Image officialIcon;
    [SerializeField] Image officialNextIcon;
    [SerializeField] Button closeBtn;
    [SerializeField] Text addLVText;
    [SerializeField] PositionTween[] paopaoArr;
    [SerializeField] Text[] paopaoTextArrName;
    [SerializeField] Text[] paopaoTextArrValue;
@@ -61,9 +62,14 @@
        for (int i = 0; i < paopaoArr.Length; i++)
        {
            paopaoArr[i].Play();
            if (i < nextConfig.AddAttrType.Length)
            {
            paopaoTextArrName[i].text = PlayerPropertyConfig.Get(nextConfig.AddAttrType[i]).Name;
            paopaoTextArrValue[i].text = "+" + PlayerPropertyConfig.GetValueDescription(nextConfig.AddAttrType[i], nextConfig.AddAttrNum[i]);
        }
        }
        addLVText.text = "+" + (nextConfig.LVMax - config.LVMax);
        RefreshBtn();
    }
@@ -81,20 +87,31 @@
            }
        }
        //所有泡泡飞向按钮
        for (int i = 0; i < paopaoArr.Length; i++)
        {
            paopaoArr[i].Stop();
            paopaoArr[i].transform.DOLocalMove(lvUpBtn.transform.localPosition, 0.4f);
        }
        effectPlayer.Play();
        upEffect.onComplete = () =>
        {
            CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp();
            GameNetSystem.Instance.SendInfo(pak);
        };
        effectPlayer.onComplete = () =>
        {
        upEffect.Play();
        };
        //所有泡泡飞向按钮
        for (int i = 0; i < paopaoArr.Length; i++)
        {
            int index = i;
            paopaoArr[i].Stop();
            paopaoArr[i].transform.DOLocalMove(lvUpBtn.transform.localPosition, 0.3f).onComplete = () =>
            {
                if (index == 0)
                {
                    effectPlayer.Play();
                }
            };
        }
    }