public bool add(CardS card) { //Debug.Log(card.name); if (card == null) { return(false); } cards.Add(card); card.player = this; card.scale = transform.localScale.x; card.default_x = transform.position.x; card.y = transform.position.y; card.default_y = transform.position.y; card.getCV().flush(); for (int i = 0; i < cards.Count; i++) { cards[i].position = i; /*cards[i].SetLayer(-i); * Vector3 p = cards[i].transform.GetChild(0).transform.position; * cards[i].transform.GetChild(0).transform.position = * new Vector3(p.x, p.y, cards[i].transform.position.z-0.5f);/**/ cards[i].SetPosition(); } return(true); }
public CardS removeTemp() { CardS t = temp; temp = null; sort(); return(t); }
public void insertTemp(bool visible) { if (temp != null) { temp.setVisible(visible); insert(temp); temp = null; } }
public CardS getRandom() { if (list.Count == 0) { return(null); } int index = Random.Range(0, list.Count); CardS card = (CardS)list[index]; list.RemoveAt(index); return(card); }
public void add(CardS card) { if (card == null) { return; } list.Add(card); card.player = null; card.position = 0; card.scale = 0f; card.default_x = 0f; card.y = 0f; card.default_y = 0f; card.SetLayer(0f); card.setVisible(false); card.x = transform.position.x; card.getCV().flush(); }
public int[] getLimits(int index, bool targetColor) { int[] limits = { 0, 14 }; if (index > 0) { for (int i = index - 1; i >= 0; i--) { CardS t = getCard(i); if (t.getVisible()) { if (t.getColor() == targetColor) { limits[0] = t.getValue() + 1; } else { limits[0] = t.getValue(); } break; } } } if (index < cards.Count - 1) { for (int i = index + 1; i < cards.Count; i++) { CardS t = getCard(i); if (t.getVisible()) { if (t.getColor() == targetColor) { limits[1] = t.getValue(); } else { limits[1] = t.getValue() + 1; } break; } } } return(limits); }
public void draw(CardS card) { if (card == null) { return; } temp = card; card.player = this; card.getCV().flush(); card.default_x = transform.position.x; card.y = transform.position.y; card.default_y = transform.position.y; card.position = cards.Count + 1; card.moveForTemp(); card.scale = transform.localScale.x; for (int i = 0; i < cards.Count; i++) { cards[i].moveForTemp(); } }
public void addCard(CardS newCard, string line) { switch(line) { case "top": while(top[i].value != 0) i++; top[i] = newCard; break; case "mid": while (mid[i].value != 0) i++; mid[i] = newCard; break; case "low": while (low[i].value != 0) i++; low[i] = newCard; break; } i = 0; }
// Use this for initialization void Start() { parent = transform.parent.gameObject.GetComponent <CardS>(); }
public void insert(CardS card) { cards.Add(card); sort(); }
public IEnumerator MouseEvent() { if (player.hasTemp() || (Count() == 0 && aPool.Count() == 0)) { game.play(true); if (isWhite) { if (DaVinciS.keyCard != null && !DaVinciS.keyCard.getVisible()) { bool result = game.judge(player, true); yield return(new WaitForSeconds(1)); if (!result) { game.turn(); } else { DaVinciS.info.text = "轮到玩家猜牌"; } } } else { if (DaVinciS.keyCard != null && !DaVinciS.keyCard.getVisible()) { game.judge(player, false); yield return(new WaitForSeconds(1)); game.turn(); } } } else { game.play(false); CardS c = getRandom(); if (c != null) { c.scale = player.transform.localScale.x; c.getCV().flush(); Camera camera = Camera.main; if (camera) { //转换对象到当前屏幕位置 Vector3 screenPosition = camera.WorldToScreenPoint(c.transform.position); //鼠标屏幕坐标 Vector3 mScreenPosition; //若鼠标左键一直按着则循环继续 while (Input.GetMouseButton(0)) { //鼠标屏幕上新位置 mScreenPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z); // 对象新坐标 c.Drag(camera.ScreenToWorldPoint(mScreenPosition)); //协同,等待下一帧继续 yield return(new WaitForFixedUpdate()); } c.StopDraging(); if (c.transform.position.y >= 0) { add(c); c.Drag(transform.position); c.scale = 0f; } else { player.draw(c); } } } } }
public IEnumerator move() { int cnt = 0; while (game.isPlaying()) { if (!game.inGame(i)) { takeTurn(); if (!game.inGame(i)) { StartCoroutine(game.gameOver()); yield break; } cnt++; if (cnt >= role.Length - 1) { break; } } bool isWhite = decideColor(i, o); if (pool[isWhite?0:1].Count() == 0) { isWhite = !isWhite; } if (pool[isWhite?0:1].Count() != 0) { role[i].draw(pool[isWhite?0:1].getRandom()); } DaVinciS.info.text = "轮到" + role[i].name + "猜牌"; yield return(new WaitForSeconds(1f)); int p = decidePlayer(i, o, isWhite) ? 0 : o, cindex = decideTarget(p, isWhite); if (cindex < 0) { isWhite = !isWhite; p = decidePlayer(i, o, isWhite) ? 0 : o; cindex = decideTarget(p, isWhite); } CardS c = role[p].getCard(cindex); DaVinciS.setKeyCard(c); int gs = decideGuess(p, cindex, isWhite); c.setI(gs); DaVinciS.info.text = role[i].name + "目标" + role[p].name + ",猜测值:" + gs; yield return(new WaitForSeconds(2f)); if (!game.judge(role[i], true)) { takeTurn(); if (!game.inGame(i)) { if (game.inGame(0)) { game.turn(); } else { StartCoroutine(game.gameOver()); } yield break; } cnt++; if (cnt >= role.Length - 1) { yield return(new WaitForSeconds(1)); break; } } else if (!game.isPlaying()) { StartCoroutine(game.gameOver()); yield break; } yield return(new WaitForSeconds(1)); } game.turn(); }