public static void updateModifiersInHUDFromArray(Text[] modifierTexts, CardEffect.Condition condition) { foreach (Text t in modifierTexts) { t.text = "+0"; } foreach (CardEffect ce in Player.cardEffects) { if (ce.condition == condition && ce.effect != CardEffect.Effect.DICE_MOD) { int arrayIndex = ce.conditionNumber; double modValue = ce.effectNumber;//double.Parse(modifierTexts[arrayIndex].text) + ce.effectNumber; modifierTexts[arrayIndex].text = "+" + NumberStringConverter.convert(modValue); Color textColor = (modValue == 0) ? Color.white : (condition == CardEffect.Condition.FIRST) ? Color.green : Color.blue; modifierTexts[arrayIndex].color = textColor; } } }
public static string[] getHighlightedChars(CardEffect.Condition condition, int conditionNumber, string[] charColors) { int numberLength = (conditionNumber + "").Length; switch (condition) { case CardEffect.Condition.FIRST: for (int i = 0; i < numberLength; i++) { charColors[i] = "#00ff00ff"; } break; case CardEffect.Condition.LAST: int lastPosition = charColors.Length - 1; for (int i = 0; i < numberLength; i++) { charColors[lastPosition - i] = "#0000ffff"; } break; } return(charColors); }
public void TestUpdateModifiersInHUDFromArray() { Player.cardEffects = new List <CardEffect>(); Text[] modifierTexts = new Text[9]; for (int i = 0; i < modifierTexts.Length; i++) { modifierTexts[i] = (new GameObject()).AddComponent <Text>(); } CardEffect.Condition condition = CardEffect.Condition.FIRST; // No card effects BattleManager.updateModifiersInHUDFromArray(modifierTexts, condition); foreach (Text t in modifierTexts) { Assert.AreEqual("+0", t.text); } // Some card effects CardEffect ce1 = new CardEffect(0, CardEffect.Condition.FIRST, 4, CardEffect.Effect.HEALTH, 3); CardEffect ce2 = new CardEffect(0, CardEffect.Condition.FIRST, 7, CardEffect.Effect.HEALTH, 2); Player.addCardEffect(ce1); Player.addCardEffect(ce2); BattleManager.updateModifiersInHUDFromArray(modifierTexts, condition); for (int i = 0; i < modifierTexts.Length; i++) { Text t = modifierTexts[i]; if (i == 4) { Assert.AreEqual("+3", t.text); } else if (i == 7) { Assert.AreEqual("+2", t.text); } else { Assert.AreEqual("+0", t.text); } } // Repeated card effects CardEffect ce3 = new CardEffect(0, CardEffect.Condition.FIRST, 4, CardEffect.Effect.HEALTH, 6); CardEffect ce4 = new CardEffect(0, CardEffect.Condition.FIRST, 4, CardEffect.Effect.HEALTH, 3); CardEffect ce5 = new CardEffect(0, CardEffect.Condition.FIRST, 1, CardEffect.Effect.HEALTH, 5); Player.addCardEffect(ce3); Player.addCardEffect(ce4); Player.addCardEffect(ce5); BattleManager.updateModifiersInHUDFromArray(modifierTexts, condition); for (int i = 0; i < modifierTexts.Length; i++) { Text t = modifierTexts[i]; if (i == 1) { Assert.AreEqual("+5", t.text); } else if (i == 4) { Assert.AreEqual("+12", t.text); } else if (i == 7) { Assert.AreEqual("+2", t.text); } else { Assert.AreEqual("+0", t.text); } } // No "last" card effects modifierTexts = new Text[10]; for (int i = 0; i < modifierTexts.Length; i++) { modifierTexts[i] = (new GameObject()).AddComponent <Text>(); } condition = CardEffect.Condition.LAST; BattleManager.updateModifiersInHUDFromArray(modifierTexts, condition); foreach (Text t in modifierTexts) { Assert.AreEqual("+0", t.text); } CardEffect ce6 = new CardEffect(0, CardEffect.Condition.LAST, 8, CardEffect.Effect.HEALTH, 7); CardEffect ce7 = new CardEffect(0, CardEffect.Condition.LAST, 4, CardEffect.Effect.HEALTH, 1); CardEffect ce8 = new CardEffect(0, CardEffect.Condition.LAST, 8, CardEffect.Effect.HEALTH, 15); Player.addCardEffect(ce6); Player.addCardEffect(ce7); Player.addCardEffect(ce8); BattleManager.updateModifiersInHUDFromArray(modifierTexts, condition); for (int i = 0; i < modifierTexts.Length; i++) { Text t = modifierTexts[i]; if (i == 4) { Assert.AreEqual("+1", t.text); } else if (i == 8) { Assert.AreEqual("+22", t.text); } else { Assert.AreEqual("+0", t.text); } } }
public void highlightDice(CardEffect.Condition condition, int conditionNumber) { charColors = getHighlightedChars(condition, conditionNumber, charColors); applyTextColor(); }