public void RPC_SubmitCard(Card card, int playerID)//master client에게 승부를 가를 카드를 1개씩 제출(자신을 구별할수 있게 id도 제출) { if (submittedInfos == null) { submittedInfos = new SubmittedInfo[GameStaticVariable.maxPlayer];//만약 초기화 안되었을시 유저들이 제출한 카드를 저장할 배열초기화 } submittedInfos[currentSubmittedNum++] = new SubmittedInfo(card, playerID); }
public bool Brawl(out SubmittedInfo winner)//승패가 정해지면 true,아니면 false { if (currentSubmittedNum == 0) { Debug.LogError("Tried to divide by 0"); } for (int i = 0; i < currentSubmittedNum; i++) { int winCount = 0; for (int j = 0; j < currentSubmittedNum; j++) { if (i == j) { continue;//같은카드는 검사하지 않는다 } FightResult result = submittedInfos[i].GetCard().Fight(submittedInfos[j].GetCard()); if (result == FightResult.Win) { winCount++; if (winCount == currentSubmittedNum - 1)//모든놈 다이김 { winner = submittedInfos[i]; return(true); //i가 이김 } continue;//모두를 이겼는지 확인해야하므로 다음상대와 검사 } else { break;//이미 이길수가 없으므로 다음카드부터 검사 } } } winner = null; return(false);//아무도 이기지 못함 }