From 2336d5e71a6ed9c00f9a86c29d7aa33b9a1e38d5 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 23 七月 2025 10:44:27 +0800
Subject: [PATCH] 122 子 【武将】武将系统 / 【武将】武将系统-客户端 - 武将变化

---
 Main/Component/UI/Common/ItemBaseEffect.cs |  238 ++++++++++++++++++++++++++---------------------------------
 1 files changed, 105 insertions(+), 133 deletions(-)

diff --git a/Main/Component/UI/Common/ItemBaseEffect.cs b/Main/Component/UI/Common/ItemBaseEffect.cs
index 442d2c4..c8cb129 100644
--- a/Main/Component/UI/Common/ItemBaseEffect.cs
+++ b/Main/Component/UI/Common/ItemBaseEffect.cs
@@ -1,153 +1,125 @@
 锘縰sing System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
-    public class ItemBaseEffect : MonoBehaviour
+public class ItemBaseEffect : MonoBehaviour
+{
+    [SerializeField] EffectPlayer m_SuitEffect;
+    
+    int itemId = 0;
+
+    private void OnEnable()
     {
-        [SerializeField] UIEffect m_SuitEffect;
-        
-        int itemId = 0;
+        Display(itemId);
+    }
 
-        private void OnEnable()
+    public void Display(int itemId, bool dirty = false)
+    {
+        this.itemId = itemId;
+        var curItem = ItemConfig.Get(this.itemId);
+        bool isPlay = true;
+        if (curItem == null)
         {
-            Display(itemId);
+            isPlay = false;
+            return;
         }
 
-        public void Display(int itemId, bool dirty = false)
+        int effectId = 0;
+        switch (curItem.ItemColor)
         {
-            this.itemId = itemId;
-            var curItem = ItemConfig.Get(this.itemId);
-            bool isPlay = true;
-            if (curItem == null)
-            {
-                isPlay = false;
-                return;
-            }
-
-            int effectId = 0;
-            switch (curItem.ItemColor)
-            {
-                case 4:
-                    effectId = 7119;
-                    break;
-                case 5:
-                    effectId = 7120;
-                    break;
-                case 6:
-                case 7:
-                case 8:
-                    effectId = 7121;
-                    break;
-            }
-
-            if (curItem.BaseEffectID != 0)
-            {
-                effectId = curItem.BaseEffectID;
-            }
-
-            if (m_SuitEffect.effect != effectId)
-            {
-                //鍚屼竴涓綅缃浛鎹㈢壒鏁堥渶瑕佸厛閲婃斁
-                m_SuitEffect.StopImediatly();
-            }
-            m_SuitEffect.effect = effectId;
-
-            if (m_SuitEffect.effect == 0)
-            {
-                isPlay = false;
-            }
-            if (isPlay)
-            {
-                m_SuitEffect.Play();
-            }
-            else
-            {
-                m_SuitEffect.StopImediatly();
-            }
-
-            // if (dirty)
-            // {
-            //     SnxxzGame.Instance.StartCoroutine(Co_SetOrder(this, transform as RectTransform));
-            // }
+            case 4:
+                effectId = 7119;
+                break;
+            case 5:
+                effectId = 7120;
+                break;
+            case 6:
+            case 7:
+            case 8:
+                effectId = 7121;
+                break;
         }
 
-        public static ItemBaseEffect Create(RectTransform transform)
+        if (curItem.BaseEffectID != 0)
         {
-            var go = UIUtility.CreateWidget("ItemBaseEffect", "ItemBaseEffect");
-            var behaviour = go.GetComponent<ItemBaseEffect>();
-
-            // SnxxzGame.Instance.StartCoroutine(Co_SetOrder(behaviour, transform));
-
-            var scale = 1f;
-            var itemBasic = transform.GetComponentInParent<CommonItemBaisc>();
-            if (itemBasic == null)
-                itemBasic = transform.GetComponentInParent<ItemCell>();
-            if (itemBasic != null)
-            {
-                scale = GetEffectScale(itemBasic.format);
-            }
-            // else
-            // {
-            //     var itemBehaviour = transform.GetComponentInParent<ItemBehaviour>();
-            //     if (itemBehaviour != null)
-            //     {
-            //         if (itemBehaviour.backGround != null)
-            //         {
-            //             var size = itemBehaviour.backGround.rectTransform.rect.width;
-            //             scale = size / 84;
-            //         }
-            //     }
-            //     else
-            //     {
-            //         var findPreciousItemBehaviour = transform.GetComponentInParent<FindPreciousItemBehaviour>();
-            //         if (findPreciousItemBehaviour != null)
-            //         {
-            //             scale = 0.86f;  //鏆備笖鍐欐
-            //         }
-            //     }
-            // }
-
-            var rect = go.transform as RectTransform;
-            go.transform.SetParentEx(transform, Vector3.zero, Quaternion.identity, Vector3.one);
-            rect.MatchWhith(transform);
-            go.transform.localScale = Vector3.one * scale;
-            go.transform.SetAsLastSibling();
-
-            return behaviour;
+            effectId = curItem.BaseEffectID;
         }
 
-        static IEnumerator Co_SetOrder(ItemBaseEffect behaviour, RectTransform transform)
+        if (m_SuitEffect.effectId != effectId)
         {
-            yield return null;
-
-            if (transform == null || behaviour == null)
-            {
-                yield break;
-            }
-
-            Canvas canva = transform.GetComponentInParent<Canvas>();
-            if (canva != null)
-            {
-                behaviour.m_SuitEffect.ResetOrder(canva.sortingOrder + 1);
-            }
-
-            if (behaviour.m_SuitEffect.maskArea == null)
-            {
-                behaviour.m_SuitEffect.SetMask();
-            }
+            //鍚屼竴涓綅缃浛鎹㈢壒鏁堥渶瑕佸厛閲婃斁
+            m_SuitEffect.Stop();
         }
+        m_SuitEffect.effectId = effectId;
 
-        static float GetEffectScale(ItemCellformat format)
+        if (m_SuitEffect.effectId == 0)
         {
-            switch (format)
-            {
-                case ItemCellformat.Format_80x80:
-                    return 0.95f;
-                case ItemCellformat.Format_70x70:
-                    return 0.83f;
-                case ItemCellformat.Format_64x64:
-                    return 0.76f;
-                default:
-                    return 1f;
-            }
+            isPlay = false;
+        }
+        if (isPlay)
+        {
+            m_SuitEffect.SetActive(true);
+        }
+        else
+        {
+            m_SuitEffect.SetActive(false);
         }
     }
+
+    public static ItemBaseEffect Create(RectTransform transform)
+    {
+        var go = UIUtility.CreateWidget("ItemBaseEffect", "ItemBaseEffect");
+        var behaviour = go.GetComponent<ItemBaseEffect>();
+
+        var scale = 1f;
+        var itemBasic = transform.GetComponentInParent<CommonItemBaisc>();
+        if (itemBasic == null)
+            itemBasic = transform.GetComponentInParent<ItemCell>();
+        if (itemBasic != null)
+        {
+            scale = GetEffectScale(itemBasic.format);
+        }
+        else
+        {
+            var itemBehaviour = transform.GetComponentInParent<ItemBehaviour>();
+            if (itemBehaviour != null)
+            {
+                if (itemBehaviour.backGround != null)
+                {
+                    var size = itemBehaviour.backGround.rectTransform.rect.width;
+                    scale = size / 84;
+                }
+            }
+
+        }
+
+        var rect = go.transform as RectTransform;
+        go.transform.SetParentEx(transform, Vector3.zero, Quaternion.identity, Vector3.one);
+        rect.MatchWhith(transform);
+        go.transform.localScale = Vector3.one * scale;
+        go.transform.SetAsLastSibling();
+
+        return behaviour;
+    }
+
+
+    static float GetEffectScale(ItemCellformat format)
+    {
+        switch (format)
+        {
+            case ItemCellformat.Format_120x120:
+                return 1.2f;
+            case ItemCellformat.Format_100x100:
+                return 1.1f;
+            case ItemCellformat.Format_84x84:
+                return 1f;
+            case ItemCellformat.Format_80x80:
+                return 0.95f;
+            case ItemCellformat.Format_70x70:
+                return 0.83f;
+            case ItemCellformat.Format_64x64:
+                return 0.76f;
+            default:
+                return 1f;
+        }
+    }
+}

--
Gitblit v1.8.0