少年修仙传客户端代码仓库
client_Zxw
2018-09-19 6cc9f56e28978bede19629ce50947b9609080da5
System/RolePromote/RoleStrongerCell.cs
@@ -11,76 +11,60 @@
        RolePromoteModel m_Model;
        RolePromoteModel model
        {
            get
            {
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RolePromoteModel>());
            }
            get { return ModelCenter.Instance.GetModel<RolePromoteModel>(); }
        }
        RoleParticularModel m_RoleParticularModel;
        RoleParticularModel roleParticularModel
        {
            get
            {
                return m_RoleParticularModel ?? (m_RoleParticularModel = ModelCenter.Instance.GetModel<RoleParticularModel>());
            }
            get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); }
        }
        [SerializeField] Image funcIcon;
        [SerializeField] Text presentFightPowerTxt;
        [SerializeField] Transform m_ContainerStrongerLabel;
        [SerializeField] Text strongerFightPowerTxt;
        [SerializeField] Text targetTxt;
        [SerializeField] Text m_FuncTxt;
        [SerializeField] Button strongerBtn;
        [SerializeField] GameObject reachTxtObj;
        [SerializeField] GameObject reachImgObj;
        [SerializeField] Image m_FuncIcon;
        [SerializeField] Text m_FightPower;
        [SerializeField] Text m_FuncName;
        [SerializeField] Image m_State;
        [SerializeField] Slider m_Slider;
        [SerializeField] Text m_Progress;
        [SerializeField] Button m_Goto;
        public override void Refresh(CellView cell)
        {
            int funcType = cell.index;
            int presentTargetValue = 0;
            bool reached = false;
            var cfg = model.GetPresentRoleStronger(funcType, out presentTargetValue, out reached);
            strongerBtn.onClick.RemoveAllListeners();
            if (cfg != null)
            var config = model.GetPresentRoleStronger(funcType);
            m_Goto.onClick.RemoveAllListeners();
            if (config != null)
            {
                var highestStage = model.IsHighestStage(funcType, cfg.id) && reached;
                funcIcon.SetSprite(cfg.Icon);
                m_FuncTxt.text = cfg.Name;
                ulong _presentFightPower = 0;
                _presentFightPower = roleParticularModel.GetFuncFightPower(funcType);
                presentFightPowerTxt.text = Language.Get("RolePromoteNowFight", _presentFightPower);
                m_FuncIcon.SetSprite(config.Icon);
                m_FuncName.text = config.Name;
                ulong fightPower = roleParticularModel.GetFuncFightPower(funcType);
                var highestStage = fightPower >= (ulong)config.recommendFightPower;
                m_FightPower.text = Language.Get("RolePromoteNowFight", fightPower);
                strongerFightPowerTxt.text = StringUtility.Contact(_presentFightPower >= (ulong)cfg.recommendFightPower ? Language.Get("RolePromoteMoreFight") : Language.Get("RolePromoteBetterFight"),
                    _presentFightPower >= (ulong)cfg.recommendFightPower ? cfg.strongerFightPower : cfg.recommendFightPower);
                strongerFightPowerTxt.color = _presentFightPower >= (ulong)cfg.recommendFightPower ?
                    UIHelper.GetUIColor(TextColType.Red) : UIHelper.GetUIColor(TextColType.Green, true);
                if (!highestStage)
                var progress = Mathf.Clamp01((float)fightPower / config.recommendFightPower);
                var percent = (int)(progress * 100);
                m_Slider.value = progress;
                m_Progress.text = StringUtility.Contact(percent, "%");
                var state = model.GetPromoteState(percent);
                switch (state)
                {
                    if (funcType == (int)FuncPowerType.Human
                        || funcType == (int)FuncPowerType.Demon
                        || funcType == (int)FuncPowerType.Fairy)
                    {
                        targetTxt.text = StringUtility.Contact(cfg.desc, "(", UIHelper.GetTextColorByItemColor(presentTargetValue > 0 ? TextColType.Green : TextColType.Red,
                            presentTargetValue.ToString()), "/", 1, ")");
                    }
                    else
                    {
                        targetTxt.text = StringUtility.Contact(cfg.desc, "(", UIHelper.GetTextColorByItemColor(presentTargetValue >= cfg.targetValue ? TextColType.Green : TextColType.Red,
                            presentTargetValue.ToString()), "/", cfg.targetValue, ")");
                    }
                    case 0:
                        m_State.SetSprite("XT_WYBQ_3");
                        break;
                    case 1:
                        m_State.SetSprite("XT_WYBQ_2");
                        break;
                    case 2:
                        m_State.SetSprite("XT_WYBQ_1");
                        break;
                }
                m_State.SetNativeSize();
                reachTxtObj.SetActive(highestStage);
                reachImgObj.SetActive(highestStage);
                targetTxt.gameObject.SetActive(!highestStage);
                strongerBtn.gameObject.SetActive(!highestStage);
                m_ContainerStrongerLabel.gameObject.SetActive(!highestStage);
                strongerBtn.onClick.AddListener(() =>
                m_Goto.onClick.AddListener(() =>
                {
                    WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)cfg.OpenUI);
                    WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.OpenUI);
                });
            }