private Carriage CreateCarriage(CarriageDefinition def) { Carriage carriage = Instantiate(m_carriagePrefab, Vector3.zero, Quaternion.identity); carriage.Init(def); return(carriage); }
/// <summary> /// Creates the hand /// </summary> public void Generate(List <CarriageDefinition> exclude = null) { m_hand.Clear(); List <CarriageDefinition> filteredDeck = new List <CarriageDefinition>(); if (exclude == null) { filteredDeck = m_deck; } else { for (int i = 0; i < m_deck.Count; i++) { CarriageDefinition c = m_deck[i]; if (!exclude.Contains(c)) { filteredDeck.Add(c); } } } for (int i = 0; i < m_handSize; ++i) { CarriageDefinition c = GetRandomCarriage(filteredDeck); m_hand.Add(c); } Shuffle(); }
private CarriageDefinition GetRandomCarriage(List <CarriageDefinition> deck) { int index = UnityEngine.Random.Range(0, deck.Count); CarriageDefinition def = deck[index]; m_deck.Remove(def); return(def); }
public void Init(CarriageDefinition c, State state = State.Selectable) { m_carriageDefinition = c; Debug.Log(CarriageDefinition.ToString()); m_carriageImage.Init(c); m_carriageImage.SetVisibleState(state); m_button.enabled = state == State.Selectable; if (state == State.Selectable) { m_button.onClick.AddListener(() => Select(this)); } }
public Color GetDominantColor() { //if (CarriageCount < GameConstants.MAX_CARRIAGE_CAPACITY) //{ // Debug.LogError(string.Format("Beetle {0} did not return a dominant color — Hand size is not complete", this.name)); //} Dictionary <Color, int> m_colorsFound = new Dictionary <Color, int>(); foreach (Carriage carriage in m_carriageList) { CarriageDefinition cs = carriage.CarriageDefinition; Color col = cs.GetColor(); // Dictionary does not contain colour value if (!m_colorsFound.ContainsKey(col)) { m_colorsFound.Add(col, 1); } else { m_colorsFound[col]++; } } Color dominantColor = Color.None; int dominantNum = 0; foreach (var c in m_colorsFound) { if (c.Value > dominantNum) { dominantNum = c.Value; dominantColor = c.Key; } else if (c.Value == dominantNum) { dominantColor = Color.None; } } Debug.Log(string.Format("Beetle {0} returned dominant color: {1}", this.name, dominantColor)); //Debug.Log(string.Format("Beetle {0} does not have a dominant color", this.name)); return(dominantColor); }
public void AddCarriage(Color carriageColor) { if (CarriageCount >= GameConstants.MAX_CARRIAGE_CAPACITY) { Debug.LogWarning(string.Format("Beetle {0} carriage count is maxed out", this.name)); return; } Debug.Log(string.Format("Beetle {0} added carriage color {1}", this.name, carriageColor)); CarriageDefinition newDef = new CarriageDefinition(carriageColor, CarriageDefinition.Ability.None); Carriage newCarriage = Instantiate(carriagePrefab, Vector3.zero, Quaternion.identity); newCarriage.transform.SetParent(m_layoutGroup.transform, false); newCarriage.Init(newDef, Carriage.State.Attached); m_carriageList.Add(newCarriage); Color color = GetDominantColor(); Debug.Log("dominant color: " + color); Transform beetleImage = null; foreach (Transform child in transform) { if (child.name == "Beetle" + m_playerNumber) { beetleImage = child; break; } } foreach (Transform child in beetleImage) { if (child.name == color.ToString()) { child.gameObject.SetActive(true); } else { child.gameObject.SetActive(false); } } }
public void Init(CarriageDefinition definition) { switch (definition.GetColor()) { case CarriageDefinition.Color.Red: { m_baseImage.sprite = CarriageImageDatabase.Instance.CarriageBaseRed; m_attachedImage.sprite = CarriageImageDatabase.Instance.CarriageAttachedRed; } break; case CarriageDefinition.Color.Green: { m_baseImage.sprite = CarriageImageDatabase.Instance.CarriageBaseGreen; m_attachedImage.sprite = CarriageImageDatabase.Instance.CarriageAttachedGreen; } break; case CarriageDefinition.Color.Blue: { m_baseImage.sprite = CarriageImageDatabase.Instance.CarriageBaseBlue; m_attachedImage.sprite = CarriageImageDatabase.Instance.CarriageAttachedBlue; } break; case CarriageDefinition.Color.Wild: { m_baseImage.sprite = CarriageImageDatabase.Instance.CarriageBaseWild; } break; case CarriageDefinition.Color.None: { m_baseImage.sprite = CarriageImageDatabase.Instance.CarriageBaseCopy; } break; } switch (definition.GetAbility()) { case CarriageDefinition.Ability.None: { m_coatImage.sprite = CarriageImageDatabase.Instance.CarriageCoatNone; } break; case CarriageDefinition.Ability.Copy: { m_coatImage.sprite = CarriageImageDatabase.Instance.CarriageCoatNone; } break; case CarriageDefinition.Ability.DoubleDip: { m_coatImage.sprite = CarriageImageDatabase.Instance.CarriageCoatDoubleDip; } break; case CarriageDefinition.Ability.Send: { m_coatImage.sprite = CarriageImageDatabase.Instance.CarriageCoatSend; } break; case CarriageDefinition.Ability.Shuffle: { m_coatImage.sprite = CarriageImageDatabase.Instance.CarriageCoatShuffle; } break; case CarriageDefinition.Ability.Swap: { m_coatImage.sprite = CarriageImageDatabase.Instance.CarriageCoatSwap; } break; } }