|
|
|
@ -2,9 +2,11 @@ using System; |
|
|
|
using System.Collections; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Text.RegularExpressions; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using UnityEngine; |
|
|
|
using static UnityEngine.Rendering.DebugUI; |
|
|
|
|
|
|
|
public class CardManager : Singleton<CardManager> |
|
|
|
{ |
|
|
|
@ -33,6 +35,52 @@ public class CardManager : Singleton<CardManager> |
|
|
|
string newCardId=AddElementToDictionary(CardOriginalDataList.Instance.existCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); |
|
|
|
return newCardId; |
|
|
|
} |
|
|
|
|
|
|
|
public string switchColorAndAllCondition(string orginalCardId, CardOriginalData cardOriginalData, string newColor) |
|
|
|
{ |
|
|
|
//CardOriginalData newCardOriginalData=cardOriginalData;
|
|
|
|
CardOriginalData newCardOriginalData = JsonConvert.DeserializeObject<CardOriginalData>(JsonConvert.SerializeObject(cardOriginalData)); |
|
|
|
for (int i=0;i<cardOriginalData.conditionAndFunctionVal.Count;i++) |
|
|
|
{ |
|
|
|
string condition = newCardOriginalData.conditionAndFunctionVal.ElementAt(i).Key; |
|
|
|
string pattern = @"(\w+)([><=])(\d+)"; |
|
|
|
string[] conditions=condition.Split("_"); |
|
|
|
StringBuilder sb = new StringBuilder(); |
|
|
|
for (int j = 0; j < conditions.Length; j++) |
|
|
|
{ |
|
|
|
newCardOriginalData.originFunctionVal.Clear(); |
|
|
|
Match match = Regex.Match(conditions[j], pattern); |
|
|
|
if (match.Success) |
|
|
|
{ |
|
|
|
string beforecolor = match.Groups[1].Value; // 颜色部分
|
|
|
|
string op = match.Groups[2].Value; // 运算符部分
|
|
|
|
string number = match.Groups[3].Value; // 数值部分
|
|
|
|
|
|
|
|
string newCon = newColor + op + number; |
|
|
|
if (j != 0) |
|
|
|
{ |
|
|
|
sb.Append("_"); |
|
|
|
} |
|
|
|
sb.Append(newCon); |
|
|
|
} |
|
|
|
} |
|
|
|
Tuple<string, string> value = newCardOriginalData.conditionAndFunctionVal[condition]; |
|
|
|
newCardOriginalData.conditionAndFunctionVal.Remove(condition); |
|
|
|
newCardOriginalData.conditionAndFunctionVal.Add(sb.ToString(), value); |
|
|
|
} |
|
|
|
for (int i = 0; i < newCardOriginalData.nodesColor.Length; i++) |
|
|
|
{ |
|
|
|
if (!newCardOriginalData.nodesColor[i].Equals(Name.none)) |
|
|
|
{ |
|
|
|
newCardOriginalData.nodesColor[i] = newColor; |
|
|
|
} |
|
|
|
} |
|
|
|
string newCardImgPath = "CardIcon/" + cardOriginalData.EffectRange + newColor; |
|
|
|
newCardOriginalData.ImgPath = newCardImgPath; |
|
|
|
|
|
|
|
string newCardId = AddElementToDictionary(CardOriginalDataList.Instance.existCardOriginalDataList, cardOriginalData.CardId, newCardOriginalData); |
|
|
|
return newCardId; |
|
|
|
} |
|
|
|
public List<string> splitStringIntoComponents(string input) |
|
|
|
{ |
|
|
|
// 使用正则表达式将颜色、符号和数字分离出来,并支持其他符号如减号
|
|
|
|
@ -109,7 +157,10 @@ public class CardManager : Singleton<CardManager> |
|
|
|
CardOriginalData newCardOriginalData = JsonConvert.DeserializeObject<CardOriginalData>(JsonConvert.SerializeObject(cardOriginalData)); |
|
|
|
for (int i = 0; i < newCardOriginalData.nodesColor.Length; i++) |
|
|
|
{ |
|
|
|
newCardOriginalData.nodesColor[i] = newColor; |
|
|
|
if (!newCardOriginalData.nodesColor[i].Equals(Name.none)) |
|
|
|
{ |
|
|
|
newCardOriginalData.nodesColor[i] = newColor; |
|
|
|
} |
|
|
|
} |
|
|
|
string newCardImgPath = "CardIcon/" + cardOriginalData.EffectRange + newColor; |
|
|
|
newCardOriginalData.ImgPath = newCardImgPath; |
|
|
|
|