using System; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEditor.VersionControl; using UnityEngine; using UnityEngine.Analytics; using WebSocketSharp; namespace DCGO.Tools.Repair { public class MatchClassNames : MonoBehaviour { [MenuItem("Window/DCGO/Repair/MatchClassNames")] static void FixEntityCardIndex() { Dictionary classNameDictionary = new Dictionary(); string path = "Assets/CardBaseEntity/"; if (Selection.assetGUIDs.Length != 0) path = AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]); List List = GetAsset.LoadAll(path).ToList(); List normalArts = List.Filter(x => !x.name.Contains("_P")); List alternateArts = List.Filter(x => x.name.Contains("_P")); string assetName = ""; int mismatchCount = 0; //Locate All mismatched classNames foreach (CEntity_Base card in normalArts) { assetName = card.CardEffectClassName; List matchingCards = alternateArts.Filter(x => x.CardID == card.CardID); foreach(CEntity_Base matchingCard in matchingCards) { if(matchingCard.CardEffectClassName != assetName) { Debug.Log($"Mismatch Found: {matchingCard.name}"); mismatchCount++; matchingCard.CardEffectClassName = assetName; EditorUtility.SetDirty(matchingCard); } } } Debug.Log($"DONE: mismatches found: {mismatchCount}"); return; } } }