From bd41d84bbd61de37bd880c591ecce690ebe294bd Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期日, 19 十月 2025 18:12:49 +0800 Subject: [PATCH] 65 子 【公会】基础主体 / 【公会】基础主体-客户端 --- Main/System/Guild/GuildEmblemModel.cs | 188 ++++++++++++++++++++-------------------------- 1 files changed, 83 insertions(+), 105 deletions(-) diff --git a/Main/System/Guild/GuildEmblemModel.cs b/Main/System/Guild/GuildEmblemModel.cs index 1d6d526..d50ac7a 100644 --- a/Main/System/Guild/GuildEmblemModel.cs +++ b/Main/System/Guild/GuildEmblemModel.cs @@ -13,14 +13,11 @@ public class GuildEmblemModel : GameSystemManager<GuildEmblemModel> { - public readonly int MaxItemRowCount = 6; // 涓�琛屽睍绀簒涓窘绔� - public readonly int FamilyActionsType = 15; // 寰界珷绫诲瀷15 - public readonly int FuncId = 237; - public int defaultFamilyEmblemId; // 榛樿寰界珷ID + public readonly int FamilyActionsType = 15; // 鍏細璁板綍寰界珷绫诲瀷15 - public bool isSendA408Pack = false; private int m_NowChooseEmblemId; + public event Action ChooseEmblemIdChangeEvent; //鍒囨崲寰界珷 public int nowChooseEmblemId { get { return m_NowChooseEmblemId; } @@ -32,19 +29,46 @@ } - public event Action ChooseEmblemIdChangeEvent; //鍒囨崲鏍囩椤� + //鍒涘缓鍏細鏃讹紝閫夋嫨鐨勫窘绔� + int m_CreateSelectEmblemId; + public event Action CreateSelectEmblemIdChangeEvent; + public int createSelectEmblemId + { + get { return m_CreateSelectEmblemId; } + set + { + m_CreateSelectEmblemId = value; + CreateSelectEmblemIdChangeEvent?.Invoke(); + } + } + public string createEmblemWord = ""; //鍒涘缓鍏細鏃讹紝杈撳叆鐨勬棗鍙� Redpoint entranceRedPoint = new Redpoint(10702, MainRedDot.FairyEmbleManageRepoint); //浠欑洘绠$悊闈㈡澘鍏ュ彛绾㈢偣 + // 鏃х殑鏄剧ず鍒楄〃锛岀敤浜庡垽鏂槸鍚︽湁鍙樺寲, 瀵规瘮绾㈢偣鏄剧ず + public List<int> oldShowActiveList = new List<int>(); // 鏃х殑婵�娲诲垪琛紝鐐瑰嚮鏂扮殑寰界珷鏃朵細鏇存柊锛屾垨鑰呭叧闂殑鏃跺�欐洿鏂� + public List<int> showList = new List<int>(); public override void Init() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; - defaultFamilyEmblemId = int.Parse(FuncConfigConfig.Get("FairyEmblem").Numerical1); + GuildManager.Instance.FamilyActionInfoEvent += OnFamilyActionInfoEvent; + DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; } public override void Release() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; + GuildManager.Instance.FamilyActionInfoEvent -= OnFamilyActionInfoEvent; + DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize; + } + + public void OnBeforePlayerDataInitialize() + { + m_NowChooseEmblemId = 0; + m_CreateSelectEmblemId = 0; + createEmblemWord = ""; + oldShowActiveList.Clear(); + showList.Clear(); } private void OnRefreshFairyInfo() @@ -59,97 +83,65 @@ // 浠呯洘涓昏兘鐪嬪埌 if (!IsCaptain()) return; - // 浠欑洘2绾у嚭鐜� - if (PlayerDatas.Instance.fairyData == null || PlayerDatas.Instance.fairyData.fairy.FamilyLV != 2) - return; - // 鍙嚭鐜颁竴娆� - if (GetRedPointShow()) + + if (!GetRedPointShow()) return; entranceRedPoint.state = RedPointState.Simple; } - string localStr = "FairyEmblemEntranceRedPoint_"; - + // 鏂版棫鍒楄〃瀵规瘮鏄剧ず绾㈢偣 public bool GetRedPointShow() { - return LocalSave.GetBool(localStr + PlayerDatas.Instance.PlayerId); - } + if (oldShowActiveList.IsNullOrEmpty()) + return false; - public void SetRedPointShow() - { - LocalSave.SetBool(localStr + PlayerDatas.Instance.PlayerId, true); - } - - public bool TryGetNowEmblemID(out int nowID) - { - nowID = 0; - int emblemID = (int)PlayerDatas.Instance.fairyData.fairy.EmblemID; - if (FamilyEmblemConfig.HasKey(emblemID) && IsUnLock(emblemID)) + for (int i = 0; i < showList.Count; i++) { - nowID = (int)emblemID; - return true; - } - - if (FamilyEmblemConfig.HasKey(defaultFamilyEmblemId)) - { - nowID = defaultFamilyEmblemId; - return true; - } - - nowID = 0; - return false; - - } - - // 灞曠ず鎸囧畾寰界珷 琛ㄤ腑鎵句笉鍒板窘绔犲氨鏄剧ず榛樿鐨� - public void ShowEmblem(int emblemID, ImageEx imgTitle, float scale = 1.0f) - { - int nowEmblemID = emblemID; - if (!FamilyEmblemConfig.HasKey(nowEmblemID)) - { - nowEmblemID = defaultFamilyEmblemId; - } - FamilyEmblemConfig config = FamilyEmblemConfig.Get(nowEmblemID); - UIFrame frame = imgTitle.GetComponent<UIFrame>(); - if (UIFrameMgr.Inst.ContainsDynamicImage(config.Image)) - { - if (frame == null) - frame = imgTitle.gameObject.AddComponent<UIFrame>(); - - List<UnityEngine.Sprite> spriteList = UIFrameMgr.Inst.GetDynamicImage(config.Image); - if (!spriteList.IsNullOrEmpty()) + //宸茶В閿佺殑 + if (!oldShowActiveList.Contains(showList[i]) && IsUnLock(showList[i])) { - imgTitle.rectTransform.sizeDelta = new Vector2(spriteList[0].rect.width, spriteList[0].rect.height); + return true; } - - imgTitle.raycastTarget = false; - frame.ResetFrame(config.Image); - frame.enabled = true; } - else - { - if (frame != null) - frame.enabled = false; - imgTitle.SetSprite(config.Image); - imgTitle.SetNativeSize(); - } - imgTitle.rectTransform.localScale = new Vector3(scale, scale, scale); + return false; } - - - public List<int> GetShowList() + public List<int> SortShowList() { - List<int> showList = new List<int>(); - List<int> keys = FamilyEmblemConfig.GetKeys(); - for (int i = 0; i < keys.Count; i++) + if (showList.IsNullOrEmpty()) { - showList.Add(keys[i]); + List<int> keys = FamilyEmblemConfig.GetKeys(); + for (int i = 0; i < keys.Count; i++) + { + showList.Add(keys[i]); + } } showList.Sort(Cmp); + + if (oldShowActiveList.IsNullOrEmpty()) + { + // 鍒濆鍖栨椂锛屽埛鏂版棫鐨勬縺娲诲垪琛� + RefreshOldShowActiveList(); + } return showList; } + + // 鍒锋柊鏃х殑婵�娲诲垪琛紝鐢ㄤ簬瀵规瘮绾㈢偣鏄剧ず + public void RefreshOldShowActiveList() + { + oldShowActiveList.Clear(); + for (int i = 0; i < showList.Count; i++) + { + //宸茶В閿佺殑 + if (IsUnLock(showList[i])) + { + oldShowActiveList.Add(showList[i]); + } + } + } + + // 宸叉縺娲�>鏈縺娲� private int Cmp(int a, int b) @@ -180,12 +172,10 @@ } return a.CompareTo(b); - } + } public int GetSortNum(int emblemID) { - if (!FamilyEmblemConfig.HasKey(emblemID)) - return 0; return FamilyEmblemConfig.Get(emblemID).SortNum; } @@ -200,7 +190,7 @@ return config.UnlockFamilyLV > 0 ? FairyEmblemUnlockMethodType.LV : FairyEmblemUnlockMethodType.Active; } - // 鎸囧畾鐨勫窘绔犺В閿佷簡鍚� + // 寰界珷鏄惁瑙i攣锛屾湭鍔犲叆鍏細鐨勪篃鍙互璋冪敤鍒ゆ柇 public bool IsUnLock(int emblemId) { FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemId); @@ -220,8 +210,13 @@ return true; case FairyEmblemUnlockMethodType.LV: + int lv = 1; //娌℃湁鍏細鐨勬儏鍐� + if (PlayerDatas.Instance.fairyData.fairy != null) + { + lv = PlayerDatas.Instance.fairyData.fairy.FamilyLV; + } //鎵�鍦ㄤ粰鐩熺瓑绾у皬浜庡窘绔犺姹傜瓑绾� 鏈В閿� - if (PlayerDatas.Instance.fairyData.fairy.FamilyLV < config.UnlockFamilyLV) + if (lv < config.UnlockFamilyLV) return false; return true; @@ -238,13 +233,10 @@ } } - public bool IsUsing(int emblemId) + + void OnFamilyActionInfoEvent(int familyId, int actionType) { - if (!TryGetNowEmblemID(out int Id)) - { - return false; - } - return emblemId == Id; + UpdateRedPoint(); } public bool IsLimitTime(int emblemId, out HA513_tagMCFamilyActionInfo.tagMCFamilyAction familyAction) @@ -272,10 +264,10 @@ public bool IsCaptain() { - return (int)PlayerDatas.Instance.fairyData.mine.FmLV == 3; + return PlayerDatas.Instance.fairyData.mine.FmLV == 3; } - // 灏濊瘯浠庡皝鍖呬腑寰楀埌鎸囧畾鐨勫窘绔犳椂鏁堜俊鎭紙娲诲姩閫斿緞鑾峰彇鐨勫窘绔�,瀹氬埗寰界珷锛� + // 鑾峰緱寰界珷璁板綍淇℃伅淇℃伅锛堟椿鍔ㄩ�斿緞鑾峰彇鐨勫窘绔�,瀹氬埗寰界珷锛夛紝value1鏄窘绔營D锛寁alue2鏄窘绔犲埌鏈熸椂闂� private bool TryGetfamilyAction(int emblemId, out HA513_tagMCFamilyActionInfo.tagMCFamilyAction familyAction) { familyAction = new HA513_tagMCFamilyActionInfo.tagMCFamilyAction(); @@ -297,8 +289,6 @@ public bool TryGetEffectID(int emblemId, out int effectID) { effectID = 0; - if (!FamilyEmblemConfig.HasKey(emblemId)) - return false; FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemId); if (!EffectConfig.HasKey(config.EffectID)) return false; @@ -308,15 +298,3 @@ } - -public class EmblemModel -{ - public int emblemID { get; private set; } - public int emblemUIEffectID { get; private set; } - - public EmblemModel(int emblemID, int emblemUIEffectID) - { - this.emblemID = emblemID; - this.emblemUIEffectID = emblemUIEffectID; - } -} \ No newline at end of file -- Gitblit v1.8.0