From a9888da251d3ce142dc98c6e9ab519ef37007250 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 11 四月 2019 17:00:54 +0800
Subject: [PATCH] 6481 【前端】【2.0】创角修改

---
 System/Login/CreateRoleWin.cs |  249 +++++++++++++++++++++----------------------------
 1 files changed, 108 insertions(+), 141 deletions(-)

diff --git a/System/Login/CreateRoleWin.cs b/System/Login/CreateRoleWin.cs
index 2d7216f..567bb51 100644
--- a/System/Login/CreateRoleWin.cs
+++ b/System/Login/CreateRoleWin.cs
@@ -3,38 +3,34 @@
 //    [  Date ]:           Saturday, September 02, 2017
 //--------------------------------------------------------
 
-using System;
 using System.Collections;
-using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
-
-using System.Text;
-using System.Text.RegularExpressions;
+using UnityEngine.Events;
 
 namespace Snxxz.UI
 {
 
     public class CreateRoleWin : Window
     {
-        [SerializeField] Button qhBtn;
-        [SerializeField] Image qhImg;
-        [SerializeField] Button dsBtn;
-        [SerializeField] Image dsImg;
-        [SerializeField] Button jsBtn;
-        [SerializeField] Image jsImg;
-        [SerializeField] Button createBtn;
-        [SerializeField] Button randomBtn;
-        [SerializeField] Button backBtn;
-        [SerializeField] InputField userNameInput;
-        [SerializeField] Image m_DescImg;
-        private int userJob = 0;
-        CreateRoleHeroShow m_CreateRoleShow;
+        [SerializeField] SelectRoleButton m_JobSelect1;
+        [SerializeField] SelectRoleButton m_JobSelect2;
 
-        LoginModel m_Model;
-        LoginModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<LoginModel>()); } }
+        [SerializeField] Button m_Create;
+        [SerializeField] Button m_RandomName;
+        [SerializeField] Button m_Back;
+
+        [SerializeField] InputField m_NameInput;
+        [SerializeField] Image m_Description;
+
+        [SerializeField] PositionTween m_LeftPostionTween;
+        [SerializeField] PositionTween m_RightPositionTween;
+        [SerializeField] UIAlphaTween m_AlphaTween;
+
+        LoginModel model { get { return ModelCenter.Instance.GetModel<LoginModel>(); } }
 
         string m_MarkName = string.Empty;
+
         #region Built-in
         protected override void BindController()
         {
@@ -42,17 +38,16 @@
 
         protected override void AddListeners()
         {
-            qhBtn.onClick.AddListener(QhBtn);
-            dsBtn.onClick.AddListener(DsBtn);
-            jsBtn.onClick.AddListener(JsBtn);
+            m_JobSelect1.SetListener(SelectJob1);
+            m_JobSelect2.SetListener(SelectJob2);
 
-            createBtn.onClick.AddListener(CreateBtn);
-            randomBtn.onClick.AddListener(() =>
+            m_Back.SetListener(BackBtn);
+            m_Create.SetListener(CreateRole);
+            m_RandomName.SetListener(() =>
             {
-                ChangeUserName(true);
+                var job = CreateRoleManager.Instance.selectedJob.value;
+                ChangeUserName(job, true);
             });
-            backBtn.onClick.AddListener(BackBtn);
-
         }
 
         private void BackBtn()
@@ -62,25 +57,13 @@
 
         protected override void OnPreOpen()
         {
-            DTC0309_tagPlayerLoginInfo.RoleChange += RoleChage;
+            DTC0309_tagPlayerLoginInfo.RoleChange += OnCreateRoleSuccess;
             model.onCreateRole = true;
         }
 
         protected override void OnAfterOpen()
         {
-            userJob = 1;
-            int _rand = UnityEngine.Random.Range(0, 100);
-            for (int i = 0; i < GeneralDefine.RandomJobs.Count; i++)
-            {
-                var _value = GeneralDefine.RandomJobs[i];
-                if (_value != 0 && _rand < _value)
-                {
-                    userJob = i + 1;
-                    break;
-                }
-            }
-            ChangeUserName(true);
-            RoleShow(0.2f);
+
         }
 
         protected override void OnPreClose()
@@ -89,105 +72,94 @@
 
         protected override void OnAfterClose()
         {
-            DTC0309_tagPlayerLoginInfo.RoleChange -= RoleChage;
+            DTC0309_tagPlayerLoginInfo.RoleChange -= OnCreateRoleSuccess;
             model.onCreateRole = false;
-            RemoveRoleModel();
         }
+
+        protected override void OnActived()
+        {
+            base.OnActived();
+            m_LeftPostionTween.Play();
+            m_RightPositionTween.Play();
+            m_AlphaTween.Play();
+
+            ChangeUserName(CreateRoleManager.Instance.selectedJob.value, true);
+            DisplayDynamicInfo(true);
+        }
+
+        protected override void LateUpdate()
+        {
+            base.LateUpdate();
+            DisplayDynamicInfo(false);
+        }
+
         #endregion
 
-        private void JsBtn()
+        private void DisplayDynamicInfo(bool force)
         {
-            if (userJob == 3)
+            if (force || CreateRoleManager.Instance.selectedJob.dirty)
             {
-                ChangeUserName(true);
+                var job = CreateRoleManager.Instance.selectedJob.Fetch();
+
+                m_JobSelect1.SetSelected(job == 1);
+                m_JobSelect2.SetSelected(job == 2);
+
+                var config = CreateRoleConfig.Get(job);
+                m_Description.SetSprite(config.desc);
+            }
+        }
+
+        private void SelectJob1()
+        {
+            if (CreateRoleManager.Instance.selectedJob.value == 1)
+            {
+                ChangeUserName(1, true);
                 return;
             }
-            userJob = 3;
-            ChangeUserName(false);
-            RoleShow(0f);
+
+            ChangeUserName(1, false);
+            CreateRoleManager.Instance.View(1);
         }
 
-        private void DsBtn()
+        private void SelectJob2()
         {
-            if (userJob == 2)
+            if (CreateRoleManager.Instance.selectedJob.value == 2)
             {
-                ChangeUserName(true);
+                ChangeUserName(2, true);
                 return;
             }
-            userJob = 2;
-            ChangeUserName(false);
-            RoleShow(0f);
+
+            ChangeUserName(2, false);
+            CreateRoleManager.Instance.View(2);
         }
 
-        private void QhBtn()
+        private void ChangeUserName(int job, bool force = true)
         {
-            if (userJob == 1)
-            {
-                ChangeUserName(true);
-                return;
-            }
-            userJob = 1;
-            ChangeUserName(false);
-            RoleShow(0f);
-        }
-
-        public void UpdateInfo()
-        {
-            CreateRoleConfig qhCfg = CreateRoleConfig.Get(1);
-            CreateRoleConfig dsCfg = CreateRoleConfig.Get(2);
-            CreateRoleConfig jsCfg = CreateRoleConfig.Get(3);
-            CreateRoleConfig sltCfg = null;
-            switch (userJob)
-            {
-                case 1:
-                    sltCfg = qhCfg;
-                    break;
-                case 2:
-                    sltCfg = dsCfg;
-                    break;
-                case 3:
-                    sltCfg = jsCfg;
-                    break;
-            }
-            qhBtn.image.SetSprite(userJob == 1 ? sltCfg.selectIcon : sltCfg.unselectIcon);
-            dsBtn.image.SetSprite(userJob == 2 ? sltCfg.selectIcon : sltCfg.unselectIcon);
-            jsBtn.image.SetSprite(userJob == 3 ? sltCfg.selectIcon : sltCfg.unselectIcon);
-            qhImg.SetSprite(userJob == 1 ? "CreateRole_Job1_Select" : "CreateRole_Job1_UnSelect");
-            dsImg.SetSprite(userJob == 2 ? "CreateRole_Job2_Select" : "CreateRole_Job2_UnSelect");
-            jsImg.SetSprite(userJob == 3 ? "CreateRole_Job3_Select" : "CreateRole_Job3_UnSelect");
-            m_DescImg.SetSprite(sltCfg.desc);
-        }
-
-        private void ChangeUserName(bool _force = true)
-        {
-            if (!_force && !m_MarkName.Equals(userNameInput.text))
+            if (!force && !m_MarkName.Equals(m_NameInput.text))
             {
                 return;
             }
-            var _name = RandomNameConfig.GetFirstName(userJob) + RandomNameConfig.GetSecondName(userJob);
-            m_MarkName = _name;
-            ChangeUserName(_name);
+
+            var name = RandomNameConfig.GetFirstName(job) + RandomNameConfig.GetSecondName(job);
+            m_MarkName = name;
+            m_NameInput.text = name;
         }
 
-        private void ChangeUserName(string _name)
-        {
-            userNameInput.text = _name;
-        }
-
-        private void CreateBtn()
+        private void CreateRole()
         {
             if (GameNetSystem.Instance.netState == GameNetSystem.NetState.Connected)
             {
                 return;
             }
 
-            if (userNameInput.text.Equals(string.Empty))
+            if (m_NameInput.text.Equals(string.Empty))
             {
                 ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameNull"));
                 return;
             }
+
             int error = 0;
-            if (!UIHelper.SatisfyNameLength(userNameInput.text, out error))
+            if (!UIHelper.SatisfyNameLength(m_NameInput.text, out error))
             {
                 switch (error)
                 {
@@ -200,22 +172,24 @@
                 }
                 return;
             }
-            if (DirtyWordConfig.IsDirtWord(userNameInput.text) || UIHelper.HasSpecialCharac(userNameInput.text)
-                || DirtyNameConfig.IsDirtName(userNameInput.text))
+
+            if (DirtyWordConfig.IsDirtWord(m_NameInput.text) || UIHelper.HasSpecialCharac(m_NameInput.text)
+                || DirtyNameConfig.IsDirtName(m_NameInput.text))
             {
                 ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
                 return;
             }
+
             if (Application.internetReachability == NetworkReachability.NotReachable)
             {
                 ServerTipDetails.DisplayNormalTip(Language.Get("L1116"));
                 return;
             }
 
-            LanguageVerify.Instance.VerifyPlayerName(userNameInput.text, 0, string.Empty, 0, 0, (bool ok, string name) =>
+            LanguageVerify.Instance.VerifyPlayerName(m_NameInput.text, 0, string.Empty, 0, 0, (bool ok, string name) =>
               {
                   C0105_tagCCreateRole createRole = new C0105_tagCCreateRole();//瀹炰緥鍖朇0105_tagCCreateRole
-                  createRole.Job = (byte)userJob;
+                  createRole.Job = (byte)CreateRoleManager.Instance.selectedJob.value;
                   createRole.Name = name;
                   createRole.Sex = 1;
                   createRole.Hair = 10002;
@@ -225,52 +199,45 @@
                   createRole.PlayerType = 1;
                   GameNetSystem.Instance.SendInfo(createRole);//鍙戦�佸垱瑙掑寘
               });
-
-
-
-            //灞忚斀鑱屼笟鐗规晥棰勫厛鍔犺浇閫伙紝浠ュ噺灏戜笉蹇呰鐨勫唴瀛樻崯鑰楀拰鑾峰緱鏇村揩鐨勫満鏅垏鎹㈤�熷害锛岃祫婧愬帇缂╀娇鐢↙Z4鎵嶈銆�
-            // AssetPreLoad.Instance.PreLoadJobEffect(userJob);
         }
 
-        private void RoleChage()
+        private void OnCreateRoleSuccess()
         {
             if (Application.internetReachability == NetworkReachability.NotReachable)
             {
                 ServerTipDetails.DisplayNormalTip(Language.Get("L1116"));
                 return;
             }
-            C0108_tagCRoleLoginAsk tagCRoleLoginAsk = new C0108_tagCRoleLoginAsk();
+
+            var tagCRoleLoginAsk = new C0108_tagCRoleLoginAsk();
             tagCRoleLoginAsk.Type = 2;//杩涘叆娓告垙
             tagCRoleLoginAsk.ClientID = SDKUtility.Instance.RegistrationID;
             GameNetSystem.Instance.SendInfo(tagCRoleLoginAsk);
             NetLinkWin.Show();
         }
 
-        private void RoleShow(float _delay)
+        [System.Serializable]
+        public struct SelectRoleButton
         {
-            StopCoroutine("DelayShowActor");
-            StartCoroutine("DelayShowActor", _delay);
+            public int job;
+            public Button select;
+            public Image backGround;
+            public Image icon;
+
+            public void SetListener(UnityAction action)
+            {
+                select.SetListener(action);
+            }
+
+            public void SetSelected(bool selected)
+            {
+                var config = CreateRoleConfig.Get(job);
+                backGround.SetSprite(selected ? config.selectIcon : config.unselectIcon);
+                icon.SetSprite(selected ? "CreateRole_Job1_Select" : "CreateRole_Job1_UnSelect");
+            }
+
         }
 
-        IEnumerator DelayShowActor(float _delay)
-        {
-            m_CreateRoleShow = GameObject.FindObjectOfType<CreateRoleHeroShow>();
-            UpdateInfo();
-
-            yield return new WaitForSeconds(_delay);
-            RemoveRoleModel();
-            ShowRoleModel();
-        }
-
-        private void ShowRoleModel()
-        {
-            m_CreateRoleShow.CreateRoleShow(userJob);
-        }
-
-        private void RemoveRoleModel()
-        {
-            m_CreateRoleShow.Dispose();
-        }
     }
 
 }

--
Gitblit v1.8.0