| using System.Collections; | 
| using System.Collections.Generic; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
| /// <summary> | 
| /// 公会徽章界面 :functionOrder 0 代表有公会的情况下打开,1 代表没有公会的情况下创建时打开 | 
| /// </summary> | 
| public class GuildEmblemWin : UIBase | 
| { | 
|     [SerializeField] GuildEmblemCell guildEmblem; | 
|     [SerializeField] ScrollerController emblemScroller; | 
|     [SerializeField] Text emblemInfoText; | 
|     [SerializeField] Text timeDescText; | 
|     [SerializeField] InputField flagNameText; | 
|     [SerializeField] Text nowTimeText; | 
|     [SerializeField] Button changeBtn; | 
|   | 
|   | 
|     string emblemWord; | 
|   | 
|     protected override void InitComponent() | 
|     { | 
|         flagNameText.onValueChanged.AddListener(OnFlagNameChange); | 
|         changeBtn.AddListener(ChangeEmblem); | 
|     } | 
|     protected override void OnPreOpen() | 
|     { | 
|         GuildEmblemModel.Instance.ChooseEmblemIdChangeEvent += ChooseEmblemEvent; | 
|         emblemScroller.OnRefreshCell += OnRefreshCell; | 
|   | 
|         if (functionOrder == 1) | 
|         { | 
|             GuildEmblemModel.Instance.nowChooseEmblemId = GuildEmblemModel.Instance.createSelectEmblemId; | 
|             emblemWord = GuildEmblemModel.Instance.createEmblemWord; | 
|         } | 
|         else | 
|         { | 
|             GuildEmblemModel.Instance.nowChooseEmblemId = PlayerDatas.Instance.fairyData.fairy.EmblemID; | 
|             emblemWord = PlayerDatas.Instance.fairyData.fairy.EmblemWord; | 
|         } | 
|   | 
|         flagNameText.text = emblemWord; | 
|         GuildEmblemModel.Instance.SortShowList(); | 
|   | 
|         CreateEmblemScroller(); | 
|         Display(); | 
|     } | 
|   | 
|     protected override void OnPreClose() | 
|     { | 
|   | 
|         GuildEmblemModel.Instance.ChooseEmblemIdChangeEvent -= ChooseEmblemEvent; | 
|         emblemScroller.OnRefreshCell -= OnRefreshCell; | 
|         GuildEmblemModel.Instance.RefreshOldShowActiveList(); | 
|     } | 
|   | 
|     void CreateEmblemScroller() | 
|     { | 
|         emblemScroller.Refresh(); | 
|         for (int i = 0; i < GuildEmblemModel.Instance.showList.Count; i++) | 
|         { | 
|             if (i % 5 == 0) | 
|             { | 
|                 emblemScroller.AddCell(ScrollerDataType.Header, i); | 
|             } | 
|         } | 
|         emblemScroller.Restart(); | 
|     } | 
|   | 
|     void OnRefreshCell(ScrollerDataType type, CellView cell) | 
|     { | 
|         var _cell = cell.GetComponent<GuildEmblemListCell>(); | 
|         _cell.Display(cell.index); | 
|     } | 
|   | 
|     void Display() | 
|     { | 
|         guildEmblem.Display(GuildEmblemModel.Instance.nowChooseEmblemId, emblemWord); | 
|         emblemScroller.m_Scorller.RefreshActiveCellViews(); | 
|         var config = FamilyEmblemConfig.Get(GuildEmblemModel.Instance.nowChooseEmblemId); | 
|         emblemInfoText.text = config.Descriptive; | 
|         if (config.ExpireMinutes == 0) | 
|         { | 
|             timeDescText.text = ""; | 
|         } | 
|         else | 
|         { | 
|             timeDescText.text = Language.Get("Mail12", TimeUtility.SecondsToShortDHMS(config.ExpireMinutes * 60)); | 
|         } | 
|   | 
|         if (functionOrder == 1) | 
|         { | 
|             nowTimeText.text = ""; | 
|         } | 
|         else | 
|         { | 
|             // 公会徽章过期时间 | 
|             if (GuildEmblemModel.Instance.IsLimitTime(GuildEmblemModel.Instance.nowChooseEmblemId, out var familyAction)) | 
|             { | 
|                 int time = (int)familyAction.Value2 - TimeUtility.AllSeconds; | 
|                 if (time > 0) | 
|                     nowTimeText.text = Language.Get("GoldRush29", TimeUtility.SecondsToShortDHMS(time)); | 
|                 else | 
|                     nowTimeText.text = ""; | 
|             } | 
|             else | 
|             { | 
|                 nowTimeText.text = ""; | 
|             } | 
|   | 
|         } | 
|   | 
|         if (functionOrder == 1) | 
|         { | 
|             changeBtn.SetInteractable(GuildEmblemModel.Instance.IsUnLock(GuildEmblemModel.Instance.nowChooseEmblemId)); | 
|         } | 
|         else | 
|         { | 
|             changeBtn.SetInteractable(GuildEmblemModel.Instance.IsCaptain() && GuildEmblemModel.Instance.IsUnLock(GuildEmblemModel.Instance.nowChooseEmblemId)); | 
|         } | 
|     } | 
|   | 
|   | 
|     void OnFlagNameChange(string value) | 
|     { | 
|         emblemWord = value; | 
|         guildEmblem.Display(GuildEmblemModel.Instance.nowChooseEmblemId, emblemWord); | 
|     } | 
|   | 
|     void ChooseEmblemEvent() | 
|     { | 
|         Display(); | 
|     } | 
|   | 
|     void ChangeEmblem() | 
|     { | 
|         if (functionOrder == 1) | 
|         { | 
|             GuildEmblemModel.Instance.createEmblemWord = emblemWord; | 
|             GuildEmblemModel.Instance.createSelectEmblemId = GuildEmblemModel.Instance.nowChooseEmblemId; | 
|         } | 
|         else | 
|         { | 
|             var pack = new CA624_tagCMChangeFamilyEmblem(); | 
|             pack.EmblemID = (byte)GuildEmblemModel.Instance.nowChooseEmblemId; | 
|             pack.EmblemWord = emblemWord; | 
|             GameNetSystem.Instance.SendInfo(pack); | 
|         } | 
|          | 
|         CloseWindow(); | 
|     } | 
| } |