public Sprite GetEdgeSprite(int index) { if (index >= cardData.edges.Length) { return(null); } CardManager.CardEdge edge = cardData.edges[index]; return(CardManager.GetSpriteByEdge(edge)); }
public static Dictionary <CardManager.CardId, CardManager.CardData> GetCardData() { TextAsset textFile = (TextAsset)Resources.Load("cardlist"); string txt = textFile.text; Dictionary <string, CardManager.CardId> cardIds = new Dictionary <string, CardManager.CardId>(); Dictionary <string, CardManager.CardFamily> cardFamilies = new Dictionary <string, CardManager.CardFamily>(); Dictionary <string, CardManager.CardEdge> cardEdges = new Dictionary <string, CardManager.CardEdge>(); for (int i = 0; i < (int)CardManager.CardId.COUNT; i++) { CardManager.CardId id = (CardManager.CardId)i; cardIds[id.ToString()] = id; } for (int i = 0; i < (int)CardManager.CardFamily.COUNT; i++) { CardManager.CardFamily family = (CardManager.CardFamily)i; cardFamilies[family.ToString()] = family; } for (int i = 0; i < (int)CardManager.CardFamily.COUNT; i++) { CardManager.CardEdge edge = (CardManager.CardEdge)i; cardEdges[edge.ToString()] = edge; } Dictionary <CardManager.CardId, CardManager.CardData> cardDict = new Dictionary <CardManager.CardId, CardManager.CardData>(); foreach (string line in txt.Split('\n')) { string[] parts = line.Split(','); CardManager.CardData data = new CardManager.CardData { id = cardIds[parts[0].Trim()], name = parts[1].Trim(), family = cardFamilies[parts[2].Trim()], baseScore = int.Parse(parts[3].Trim()), edges = new CardManager.CardEdge[] { cardEdges[parts[4].Trim()], cardEdges[parts[5].Trim()], cardEdges[parts[6].Trim()], cardEdges[parts[7].Trim()] } }; cardDict.Add(cardIds[parts[0].Trim()], data); } return(cardDict); }
public int GetCardScore(bool updateColors = true) { int score = activeCard.card.GetScore(); if (updateColors) { ResetEdgeAndNeighborsColor(); } for (int i = 0; i < 4; i++) { CardManager.CardEdge edge = activeCard.card.cardData.edges[(i + 4 - activeCard.rotation) % 4]; CardGrid otherCard = GetAdjacentCard(i); if (!IsNextToEdge(i) && otherCard == null) { continue; } CardManager.CardEdge otherEdge = CardManager.CardEdge.NONE; if (otherCard != null) { otherEdge = otherCard.card.cardData.edges[(i + 6 - otherCard.rotation) % 4]; } if (edge == otherEdge && edge != CardManager.CardEdge.NONE) { if (edge == CardManager.CardEdge.QUESTION) { score += -2; if (updateColors) { SetEdgeColorPenalty(i); } } else if (edge != CardManager.CardEdge.ENERGY_HIGH && edge != CardManager.CardEdge.ENERGY_LOW) { score += 2; if (updateColors) { SetEdgeColorBonus(i); } } } if (edge != otherEdge) { if (edge == CardManager.CardEdge.INFO && otherEdge == CardManager.CardEdge.QUESTION) { score += 2; if (updateColors) { SetEdgeColorBonus(i); } } else if ( !(edge == CardManager.CardEdge.INFO && otherEdge == CardManager.CardEdge.NONE) && !(edge == CardManager.CardEdge.NONE && otherEdge == CardManager.CardEdge.INFO) ) { score += -2; if (updateColors) { SetEdgeColorPenalty(i); } } } } return(score); }