//comprueba las dos primeras prioridades, sala sin info con sospechoso sin info o sala sin info con gente private DeckManager.DeckElements[] checkOptions(Player p) { DeckManager.DeckElements[] sol = new DeckManager.DeckElements[2]; bool[] rooms = p.GetSuspectList().getRooms(); int index = 0; foreach (bool r in rooms) { if (!r) { List <Sospechoso> l = GameManager.instance.IsSomeoneInMyPlace((GameManager.Place)index); sol[0] = (DeckManager.DeckElements)index; sol[1] = (DeckManager.DeckElements)index; bool[] sospechosos = p.GetSuspectList().getSuspetcs(); foreach (Sospechoso s in l) { if (!sospechosos[s.getType()]) { sol[1] = (DeckManager.DeckElements)s.getType() + (int)DeckManager.DeckElements.Terraza + 1; return(sol); } } } index++; } //si llega aqui, significa que no hay habitaciones que no tenga con sospechosos que tampoco tenga return(sol); }
//crea la sugerencia public void makeAccusation(DeckManager.DeckElements e, int index) { this.acc[index] = e; this.acc[0] = (DeckManager.DeckElements) this.getPlayerActive().getActualCas().getType(); /*print("....."); * foreach (DeckManager.DeckElements a in this.acc) * { * print(a); * } * print(".....");*/ if (this.acc[1] >= DeckManager.DeckElements.Sra_Amapola && this.acc[1] <= DeckManager.DeckElements.Cnel_Rubio && this.acc[2] >= DeckManager.DeckElements.Candelabro) //acusacion valida { accuseButton.gameObject.SetActive(true); ColorBlock colors = accuseButton.colors; colors.normalColor = Color.green; colors.highlightedColor = Color.green; colors.pressedColor = Color.green; accuseButton.colors = colors; this.accuseText.text = "Suggest"; accuseButton.onClick.RemoveAllListeners(); accuseButton.onClick.AddListener(confEvSuggest.Invoke); } }
//se mueve a una casilla libre de una sala concreta private void moveTo(Player p, DeckManager.DeckElements room) { List <Casilla> lst = GameManager.instance.tablero.getCasillasOfType((int)room); foreach (Casilla cas in lst) { if (!cas.getOcupada()) { p.Move(cas.getPosition()); return; } } }
//COMPROBAMOS SI TENEMOS UN ELEMENTOS public int[] checkElement(DeckManager.DeckElements d) { //RETURN INT[TIPO/ELEMENTO] if ((int)d < difElem_[0]) { rooms[(int)d] = true; return(new int[] { 0, (int)d }); } else if ((int)d < difElem_[0] + difElem_[1]) { suspetcs[(int)d - (int)difElem_[0]] = true; return(new int[] { 1, (int)d - (int)difElem_[0] }); } else { weapons[(int)d - (int)difElem_[0] - (int)difElem_[1]] = true; return(new int[] { 2, (int)d - (int)difElem_[0] - (int)difElem_[1] }); } }
//anyade una carta a la baraja, actualiza la tabla public void addCard(DeckManager.DeckElements d) { print("ADD" + " " + d); myCards.Add(d); GameManager.instance.table.CheckElem(GetComponent <SuspectList> ().checkElement(d), order); }