少年修仙传客户端代码仓库
client_Wu Xijin
2018-11-22 b8b99e24035d9309e4fd4c5c0e0db52d38e06f61
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已添加
13个文件已修改
384 ■■■■ 已修改文件
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA556_tagCMGodWeaponActivate.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA556_tagCMGodWeaponActivate.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SDK/SDKUtility.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Hero.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionConfig.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionUtility.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/NormalDungeonEntranceWin.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PlayerTaskDatas.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskBoxBGMWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskListTip.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/MagicianWin.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipReinforceWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipWashModel.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WashTips.cs 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA556_tagCMGodWeaponActivate.cs
New file
@@ -0,0 +1,18 @@
using UnityEngine;
using System.Collections;
// A5 56 神兵激活 #tagCMGodWeaponActivate
public class CA556_tagCMGodWeaponActivate : GameNetPackBasic {
    public uint WeaponType;    // 神兵类型
    public CA556_tagCMGodWeaponActivate () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xA556;
    }
    public override void WriteToBytes () {
        WriteBytes (WeaponType, NetDataType.DWORD);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA556_tagCMGodWeaponActivate.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a664938d5594bf644b46e1442e048052
timeCreated: 1542874175
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/SDK/SDKUtility.cs
@@ -28,6 +28,16 @@
    public E_ChannelPlatform ChannelPlatform { get; set; }
    public static string Yj_AppID
    {
        get; private set;
    }
    public static string Yj_SpID
    {
        get; private set;
    }
    /// <summary>
    /// sdk初始化是否完成标识
    /// 客户端一般需要等待这个值为true才继续逻辑
@@ -98,6 +108,8 @@
    public void Init()
    {
        Yj_AppID = string.Empty;
        Yj_SpID = string.Empty;
        RegistrationID = string.Empty;
        AssetCopyFinished = false;
        ChannelPlatform = E_ChannelPlatform.Free;
@@ -402,9 +414,21 @@
                        else if (_channelPlatform.Equals("yj"))
                        {
                            ChannelPlatform = E_ChannelPlatform.Yj;
                        }
                    }
                }
                if (_dict.Contains("yj_appid"))
                {
                    Yj_AppID = _json["yj_appid"].ToString();
                }
                if (_dict.Contains("yj_spid"))
                {
                    Yj_SpID = _json["yj_spid"].ToString();
                }
                break;
            case CodeA2U.PushClientID:
                RegistrationID = _json["clientID"].ToString();
@@ -628,7 +652,6 @@
    public UnityAction onFreePlatformPayCancel;
    public UnityAction onFreePlatformBindOk;
    public UnityAction onFreePlatformBindFail;
    public class FP_LoginOk
    {
        public string account;
@@ -935,16 +958,6 @@
        if (_iDict.Contains("timeStamp"))
        {
            FreePlatformInfo.timeStamp = (string)json["timeStamp"];
        }
        if (_iDict.Contains("yjSdkId"))
        {
            FreePlatformInfo.yjSdkId = (string)json["yjSdkId"];
        }
        if (_iDict.Contains("yjAppId"))
        {
            FreePlatformInfo.yjAppId = (string)json["yjAppId"];
        }
        FreePlatformInfo.phone = 0;
Fight/GameActor/GA_Hero.cs
@@ -1,4 +1,5 @@
using Snxxz.UI;
using System.Collections;
using TableConfig;
using UnityEngine;
using UnityEngine.Events;
@@ -848,10 +849,8 @@
                 && !NewBieCenter.Instance.inGuiding
                 && PlayerTaskDatas.IsOPenAutoResolve())
            {
                DebugEx.LogError(taskmodel.currentMission+"GGGG");
                taskmodel.TaskMove(taskmodel.currentMission);
                SnxxzGame.Instance.StartCoroutine(Wait());
            }
        }
        if (MapArea.IsInMapArea(CurMapArea, MapArea.E_Type.Safe)
@@ -880,7 +879,15 @@
            }
        }
    }
    private IEnumerator Wait()
    {
        yield return WaitingForSecondConst.WaitMS1500;
        if (PlayerDatas.Instance.extersion.bossState == 1)
        {
            yield break;
        }
        taskmodel.TaskMove(taskmodel.currentMission);
    }
    private SFXController m_ArrowEffect;
    public void ShowArrow(bool showOrHide)
System/ClientVersion/VersionConfig.cs
@@ -13,10 +13,30 @@
    public const string VERSION_ALTERNATIVE = "1.2.0";
    [SerializeField] public string m_AppId = string.Empty;
    public string appId { get { return m_AppId; } }
    public string appId
    {
        get
        {
            if (!string.IsNullOrEmpty(SDKUtility.Yj_AppID))
            {
                return SDKUtility.Yj_AppID;
            }
            return m_AppId;
        }
    }
    [SerializeField] public string m_SpID = string.Empty;
    public string SpID { get { return m_SpID; } }
    public string SpID
    {
        get
        {
            if (!string.IsNullOrEmpty(SDKUtility.Yj_SpID))
            {
                return SDKUtility.Yj_SpID;
            }
            return m_SpID;
        }
    }
    [SerializeField] VersionAuthority m_VersionAuthority;
    public VersionAuthority versionAuthority { get { return m_VersionAuthority; } }
@@ -28,8 +48,10 @@
    public string clientPackageFlag { get { return m_ClientPackageFlag; } }
    [SerializeField] int m_Branch = 0;
    public int branch {
        get {
    public int branch
    {
        get
        {
            if (DebugUtility.Instance.debugAccount && DebugUtility.Instance.debugBranch >= 0)
            {
                return DebugUtility.Instance.debugBranch;
@@ -69,25 +91,29 @@
    public string appleDeveloperTeamID { get { return m_AppleDeveloperTeamID; } }
    [SerializeField] bool m_DebugVersion = false;
    public bool debugVersion {
    public bool debugVersion
    {
        get { return m_DebugVersion; }
        set { m_DebugVersion = value; }
    }
    [SerializeField] bool m_IsBanShu = false;
    public bool isBanShu {
    public bool isBanShu
    {
        get { return m_IsBanShu; }
        set { m_IsBanShu = value; }
    }
    [SerializeField] string m_BuildTime;
    public string buildTime {
    public string buildTime
    {
        get { return m_BuildTime; }
        set { m_BuildTime = value; }
    }
    [SerializeField] int m_BuildIndex;
    public int buildIndex {
    public int buildIndex
    {
        get { return m_BuildIndex; }
        set { m_BuildIndex = value; }
    }
System/ClientVersion/VersionUtility.cs
@@ -33,9 +33,11 @@
    public bool completed { get { return step == Step.Completed; } }
    Step m_Step = Step.None;
    public Step step {
    public Step step
    {
        get { return m_Step; }
        private set {
        private set
        {
            if (m_Step != value)
            {
                m_Step = value;
System/Dungeon/NormalDungeonEntranceWin.cs
@@ -53,14 +53,17 @@
        [SerializeField] RectTransform m_FairyLandTipBehaviour;
        [SerializeField] Text m_FairyLandTip;
        [SerializeField] Text m_WhyjEnterRule;//娲皇遗迹
        [SerializeField] Text WhyjEnterFloor;//娲皇遗迹
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        #region Built-in
        private int ruinsTranscriptMapId;
        protected override void BindController()
        {
            ruinsTranscriptMapId = int.Parse(Config.Instance.Get<FuncConfigConfig>("SpRewardMapID").Numerical1);
        }
        protected override void AddListeners()
@@ -80,6 +83,27 @@
            DrawDungeonTicketInfo();
            DisplayFairyLandTip();
            m_BreifInfo.SetDungeonInfo(model.currentDungeon);
            if (ruinsTranscriptMapId == model.currentDungeon.mapId)//娲皇遗迹
            {
                GetWhyjLayerNumber();
                m_WhyjEnterRule.gameObject.SetActive(true);
                m_WhyjEnterRule.text = Language.Get("WhyjEnterRule");
                if (!m_GroupStart.gameObject.activeSelf && !m_AutoGroupStart.gameObject.activeSelf)
                {
                    WhyjEnterFloor.gameObject.SetActive(true);
                    var mainModel = ModelCenter.Instance.GetModel<PlayerMainDate>();
                    WhyjEnterFloor.text = Language.Get("WhyjEnterFloor", mainModel.LayerNumber + 1);
                }
                else
                {
                    WhyjEnterFloor.gameObject.SetActive(false);
                }
            }
            else
            {
                m_WhyjEnterRule.gameObject.SetActive(false);
            }
        }
        protected override void OnAfterOpen()
@@ -471,6 +495,45 @@
            }
        }
        private void GetWhyjLayerNumber()//获取单人的娲皇层数
        {
            DungeonRecord dungeonRecords;
            var mainModel = ModelCenter.Instance.GetModel<PlayerMainDate>();
            if (model.TryGetRecord(ruinsTranscriptMapId, out dungeonRecords))
            {
                int Index = -1;
                for (int i = 0; i < dungeonRecords.lineGrades.Count; i++)
                {
                    if (dungeonRecords.lineGrades[i]== 5)
                    {
                        Index = i;
                    }
                }
                if (Index > -1)
                {
                    if (Index + 1 >= 7)
                    {
                        if (7 - mainModel.WaHuangHighestFloor >= 0)
                            mainModel.LayerNumber = 7 - mainModel.WaHuangHighestFloor;
                    }
                    else
                    {
                        if ((Index + 1) - mainModel.WaHuangHighestFloor >= 0)
                        {
                            mainModel.LayerNumber = (Index + 1) - mainModel.WaHuangHighestFloor;
                        }
                        else
                        {
                            mainModel.LayerNumber = 0;
                        }
                    }
                }
                else
                {
                    mainModel.LayerNumber = 0;
                }
            }
        }
    }
}
System/Login/LoginModel.cs
@@ -311,8 +311,8 @@
                    else if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Yj)
                    {
                        send.IDType = 5;
                        send.Extra += ("|" + SDKUtility.Instance.FreePlatformInfo.yjSdkId + "|" +
                                       SDKUtility.Instance.FreePlatformInfo.yjAppId + "|" +
                        send.Extra += ("|" + SDKUtility.Yj_SpID + "|" +
                                       SDKUtility.Yj_AppID + "|" +
                                       SDKUtility.Instance.FreePlatformInfo.accountID);
                        send.ExtraLen = (byte)send.Extra.Length;
                    }
System/MainInterfacePanel/PlayerTaskDatas.cs
@@ -324,8 +324,6 @@
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
    }
    VipModel m_Vipmodel;
    VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
    private void OnEventTalkEvent(int taskID)//NPC对话后的弹框
    {
        //if (WindowCenter.Instance.ExitAnyFullScreenOrMaskWin())
@@ -362,7 +360,7 @@
            }
            else
            {
                if (BountyDic.ContainsKey(_TaskNow) || (FairyAuDic.ContainsKey(_TaskNow)&& vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1))
                if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
                {
                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
                    {
@@ -1577,7 +1575,7 @@
    }
    public void TaskMove(int _taskID)
    {
        if (allMissionDict.ContainsKey(_taskID) && !NewBieCenter.Instance.inGuiding)
        if (MainTaskDic.ContainsKey(_taskID) && !NewBieCenter.Instance.inGuiding)
        {
            string _strTest = allMissionDict[_taskID].InforList;
            string strTask = TaskAllocation.Instance.GetTaskInfo(Config.Instance.Get<TASKINFOConfig>(_strTest).show_writing, _taskID);
System/MainInterfacePanel/TaskBoxBGMWin.cs
@@ -143,7 +143,7 @@
            if (_AllMissionDict.ContainsKey(_TaskId))
            {
                if (_AllMissionDict[_TaskId].Type == 7 || (_AllMissionDict[_TaskId].Type == 12 && vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1))
                if (_AllMissionDict[_TaskId].Type == 7 || _AllMissionDict[_TaskId].Type == 12)
                {
                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
                    {
System/MainInterfacePanel/TaskListTip.cs
@@ -105,7 +105,8 @@
            TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            OnCollectingTreasureChangeEvent(TreasureCategory.Human);
            TaskScheduling();//任务排序  1
            TaskScheduling();//任务排序
            Selected();//任务选择
            TheTaskToGenerate();//任务生成
            TaskJump();
@@ -230,6 +231,7 @@
            {
                if (MissionState != 0 && MissionID != 1 && _list.Contains(MissionID))
                {
                    Selected();//选中逻辑
                    TaskAddAndDelete(MissionID);
                    if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
                    {
@@ -501,6 +503,7 @@
                {
                    type = _list.IndexOf(jumpTask);
                }
            }
            if (_list.Count <= 2 || type <= 0)
            {
@@ -521,6 +524,21 @@
                m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(_position / ((Content as RectTransform).sizeDelta.y - 196));
            }
        }
        private void Selected()//选中逻辑修改
        {
            if (taskmodel.GetTaskStatus(taskmodel.GetNowTaskID) == PlayerTaskDatas.TaskStatus.CardLevel)
            {
                for (int i = 0; i < _list.Count; i++)
                {
                    if (taskmodel.GetTaskStatus(_list[i]) == PlayerTaskDatas.TaskStatus.Normal)
                    {
                        taskmodel.GetNowTaskID = _list[i];
                        return;
                    }
                }
            }
        }
    }
}
System/Role/MagicianWin.cs
@@ -759,6 +759,12 @@
            {
                autoHammerState = AutoHammerState.None;
            }
            if (!model.IsGodWeaponUnlock(model.selectType) && model.ContainsCondition(model.selectType))
            {
                return;
            }
            if (selectItemCount <= 0)
            {
                CheckSelectItemCounts();
@@ -791,6 +797,21 @@
            {
                autoHammerState = AutoHammerState.None;
            }
            if (!model.IsGodWeaponUnlock(model.selectType))
            {
                if (model.ContainsCondition(model.selectType))
                {
                    if (model.SatisfyUnlockCondition(model.selectType))
                    {
                        CA556_tagCMGodWeaponActivate pak = new CA556_tagCMGodWeaponActivate();
                        pak.WeaponType = (uint)model.selectType;
                        GameNetSystem.Instance.SendInfo(pak);
                    }
                    return;
                }
            }
            var godWeaponInfo = model.GetGodWeaponInfo(model.selectType);
            bool requireSwitchItem = false;
            if (godWeaponInfo != null)
@@ -880,8 +901,6 @@
            }
            else
            {
                autoHammerState = AutoHammerState.None;
                return;
                var godWeaponInfo = model.GetGodWeaponInfo(model.selectType);
                if (godWeaponInfo != null && godWeaponInfo.level >= model.autoHammerLevel)
                {
@@ -911,18 +930,20 @@
                    count = Mathf.CeilToInt((float)requireExp / autoHammerCost.exp);
                }
                count = Mathf.Max(1, count);
                count = Mathf.Min(byte.MaxValue, count);
                var cost = count * autoHammerCost.cost;
                if (PlayerDatas.Instance.baseData.Gold < cost)
                {
                    autoHammerState = AutoHammerState.None;
                    return;
                }
                //CA555_tagCMGodWeaponPlus pak = new CA555_tagCMGodWeaponPlus();
                //pak.ItemID = (uint)items[index];
                //pak.WeaponType = (uint)model.selectType;
                //pak.IsAutoBuy = 1;
                //pak.ItemCount = 1;
                //GameNetSystem.Instance.SendInfo(pak);
                var items = model.GetLevelUpItemByType(model.selectType);
                CA555_tagCMGodWeaponPlus pak = new CA555_tagCMGodWeaponPlus();
                pak.ItemID = (uint)items[0];
                pak.WeaponType = (uint)model.selectType;
                pak.IsAutoBuy = 1;
                pak.ItemCount = (byte)count;
                GameNetSystem.Instance.SendInfo(pak);
            }
            lockGodWeaponUpdate = true;
            lockItemUpdate = true;
System/Strengthening/EquipReinforceWin.cs
@@ -189,6 +189,7 @@
        private void OnClickEquipSuit()
        {
            equipWashModel.SetCurWashModel(0);
            if (StrengthenPnl.gameObject.activeSelf)
            {
                StrengthenPnl.gameObject.SetActive(false);
@@ -202,6 +203,7 @@
        private void OnClickWingsRefine()
        {
            equipWashModel.SetCurWashModel(0);
            if (StrengthenPnl.gameObject.activeSelf)
            {
                StrengthenPnl.gameObject.SetActive(false);
@@ -216,6 +218,7 @@
        private void OnClickInlayTitle()
        {
            equipWashModel.SetCurWashModel(0);
            if (StrengthenPnl.gameObject.activeSelf)
            {
                StrengthenPnl.gameObject.SetActive(false);
@@ -229,6 +232,7 @@
        private void OnClickStrengthTitle()
        {
            equipWashModel.SetCurWashModel(0);
            StrengthenPnl.gameObject.SetActive(true);
            _InlaidGemPanel.gameObject.SetActive(false);
            WashTip.gameObject.SetActive(false);
System/Strengthening/EquipWashModel.cs
@@ -160,6 +160,14 @@
        CheckIsMasterLv();
    }
    #region 设置当前洗练的数据
    public int curWashEquip { get; private set;}
    public void SetCurWashModel(int index)
    {
        curWashEquip = index;
    }
    #endregion
    #region 解析本地数据
    public int mustWashMatId { get; private set;}
    private void ParseFuncConfig()
System/Strengthening/WashTips.cs
@@ -54,8 +54,6 @@
    private ItemModel _itemModel; //洗练的装备
    private int[] _costMoneylist = null;
    private List<WashProCount> _washInfolist;
    private int curWashEquip = 0;
    EquipWashModel _equipWashModel;
    EquipWashModel equipWashModel
    {
@@ -116,16 +114,17 @@
    private void OnEnable()
    {    
        jumpToWashId = 0;
        guideEffect = null;
        //_equipWashCtrl.mScrollRect.verticalNormalizedPosition = 1;
        #region 初始化监听和数据
        curWashEquip = 0;
        isOpenPrompting = true;
        _attackWashPro.toggleIsOn = false;
        _lifeWashPro.toggleIsOn = false;
        _ignoreDefenceWashPro.toggleIsOn = false;
        if(equipWashModel.curWashEquip == 0)
        {
            _attackWashPro.toggleIsOn = false;
            _lifeWashPro.toggleIsOn = false;
            _ignoreDefenceWashPro.toggleIsOn = false;
            isOpenPrompting = true;
            jumpToWashId = 0;
        }
        _equipWashCtrl.lockType = EnhanceLockType.KeepVertical;
        _cancelBtn.onClick.AddListener(OnClickCancelBtn);
        _upgradeBtn.onClick.AddListener(OnClickUpGradeBtn);
@@ -145,6 +144,10 @@
        _washMasterBtn.onClick.RemoveAllListeners();
        equipWashModel.RefreshWashModelEvent -= RefreshModel;
        playerPack.RefreshItemCountAct -= RefreshCostItem;
        if(!WindowJumpMgr.Instance.IsJumpState)
        {
            equipWashModel.SetCurWashModel(0);
        }
    }
    private void CheckJumpToModel()
@@ -152,61 +155,65 @@
        _attackWashPro.isShowPerfectEffect = false;
        _lifeWashPro.isShowPerfectEffect = false;
        _ignoreDefenceWashPro.isShowPerfectEffect = false;
        if (AchievementGoto.guideAchievementId != 0)
        SuccessConfig successConfig = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
        if (successConfig != null && successConfig.Type == 66)
        {
            SuccessConfig successConfig = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
            if(successConfig.Type == 66)
            bool isWash = false;
            for (int i = 0; i < _washInfolist.Count; i++)
            {
                bool isWash = false;
                for(int i = 0; i < _washInfolist.Count; i++)
                WashProCount washPro = _washInfolist[i];
                ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, washPro.EquipPlace);
                if (itemModel != null)
                {
                    WashProCount washPro = _washInfolist[i];
                    ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip,washPro.EquipPlace);
                    if(itemModel != null)
                    var washModel = EquipWashConfig.GetEquipWashData(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
                    if (washModel != null
                        && equipWashModel.IsEnoughMat(washModel.washConfig)
                        && equipWashModel.IsCanWash(itemModel))
                    {
                        var washModel = EquipWashConfig.GetEquipWashData(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
                        if (washModel!= null
                            && equipWashModel.IsEnoughMat(washModel.washConfig)
                            && equipWashModel.IsCanWash(itemModel))
                        {
                            jumpToWashId = washPro.EquipPlace;
                            isWash = true;
                            curWashEquip = i;
                            _equipWashCtrl.JumpIndex(curWashEquip);
                            _equipWashCtrl.m_Scorller.RefreshActiveCellViews();
                            break;
                        }
                        jumpToWashId = washPro.EquipPlace;
                        isWash = true;
                        equipWashModel.SetCurWashModel(i);
                        _equipWashCtrl.JumpIndex(equipWashModel.curWashEquip);
                        _equipWashCtrl.m_Scorller.RefreshActiveCellViews();
                        break;
                    }
                }
                if(!isWash)
                {
                    MessageWin.Inst.ShowFixedTip(Language.Get("Material101"));
                }
                else
                {
                    guideEffect = AchievementGuideEffectPool.Require(1);
                    guideEffect.transform.SetParentEx(_washBtn.transform,Vector3.zero,Quaternion.identity,Vector3.one);
                }
                AchievementGoto.guideAchievementId = 0;
            }
            if (!isWash)
            {
                MessageWin.Inst.ShowFixedTip(Language.Get("Material101"));
            }
            else
            {
                guideEffect = AchievementGuideEffectPool.Require(1);
                guideEffect.transform.SetParentEx(_washBtn.transform, Vector3.zero, Quaternion.identity, Vector3.one);
            }
            AchievementGoto.guideAchievementId = 0;
        }
        else
        {
            curWashEquip = equipWashModel.JumpToIndex;
            _equipWashCtrl.JumpIndex(curWashEquip);
            _equipWashCtrl.m_Scorller.RefreshActiveCellViews();
            if(equipWashModel.curWashEquip != 0)
            {
                _equipWashCtrl.JumpIndex(equipWashModel.curWashEquip);
                _equipWashCtrl.m_Scorller.RefreshActiveCellViews();
            }
            else
            {
                equipWashModel.SetCurWashModel(equipWashModel.JumpToIndex);
                _equipWashCtrl.JumpIndex(equipWashModel.curWashEquip);
                _equipWashCtrl.m_Scorller.RefreshActiveCellViews();
            }
        }
        OnClickWashCellToggle(_washInfolist[curWashEquip],curWashEquip);
        OnClickWashCellToggle(_washInfolist[equipWashModel.curWashEquip], equipWashModel.curWashEquip);
        StartCoroutine(SetOffestPos());
    }
    private IEnumerator SetOffestPos()
    {
        yield return null;
        if (curWashEquip != 0)
        if (equipWashModel.curWashEquip != 0)
        {
            _equipWashCtrl.JumpIndex(-offest, 0, EnhancedUI.EnhancedScroller.EnhancedScroller.TweenType.immediate);
        }
@@ -227,7 +234,7 @@
    public void RefreshModel()
    {
        CreateEquipWashCell();
        OnClickWashCellToggle(_washInfolist[curWashEquip], curWashEquip);
        OnClickWashCellToggle(_washInfolist[equipWashModel.curWashEquip], equipWashModel.curWashEquip);
    }
@@ -237,7 +244,7 @@
        if(equipWashCell != null)
        {
            WashProCount washPro = _washInfolist[cell.index];
            equipWashCell.SetDisplayModel(washPro, equipWashModel.washEquipRedPointlist[cell.index].id,cell.index,curWashEquip);
            equipWashCell.SetDisplayModel(washPro, equipWashModel.washEquipRedPointlist[cell.index].id,cell.index, equipWashModel.curWashEquip);
            equipWashCell.cellToggle.RemoveAllListeners();
            equipWashCell.cellToggle.AddListener(()=>
            {
@@ -249,7 +256,7 @@
    private void OnClickWashCellToggle(WashProCount washPro,int index)
    {
        if (curWashEquip != index)
        if (equipWashModel.curWashEquip != index)
        {
            _attackWashPro.isShowPerfectEffect = false;
            _lifeWashPro.isShowPerfectEffect = false;
@@ -313,7 +320,7 @@
        RefreshSpecWashUI();
        ChangeBtn();
        curWashEquip = index;
        equipWashModel.SetCurWashModel(index);
        equipWashModel.washBtnRedpoint.state = equipWashModel.washEquipRedPointlist[index].state;
        _equipWashCtrl.m_Scorller.RefreshActiveCellViews();
    }
@@ -625,9 +632,8 @@
                                    mustWashEffect.Play();
                                    equipWashModel.SendWashQuest(_washProModel.EquipPlace, GetWashCheckUseGoldAttr());
                                }
                                isOpenPrompting = !isToggle;
                            }
                            isOpenPrompting = !isToggle;
                        });
                    }
                    else