public void doVote(Vote vote, int maxThreshold, bool lSort, bool sortBy) { if (vote != null && !hasVotes) { hasVotes = true; } Player playerTarget = null; try { Player playerVoting = null; Player playerVotingFromVote = vote.PlayerVoting; foreach (Player player in playersInVoteCount) { if (player.Name.Equals(playerVotingFromVote.Name)) { playerVoting = player; break; } } if (playerVoting == null) { Debug.Log("Couldn't find player for post number: " + vote.PostNumber); return; } //Debug.Log ("VOTE NUMBER: " + vote.PostNumber + " PLAYER VOTING NAME:|" + playerVoting.Name + "|WHERE VOTE IS AT:|" + ((playerVoting.PlayerCurrentlyVoting == null) ? "NULL" : playerVoting.PlayerCurrentlyVoting.Name) + "|"); Player playerTargetFromVote = vote.PlayerVoted; if (playerTargetFromVote != null) { foreach (Player player in playersInVoteCount) { if (player.Name.Equals(playerTargetFromVote.Name)) { playerTarget = player; break; } } } Wagon currentWagon = null; Wagon newWagon = null; //Player is already voting there. if ((playerVoting.PlayerCurrentlyVoting != null) && ((playerTarget != null) && (playerVoting.PlayerCurrentlyVoting.Name.Equals(playerTarget.Name)))) { //Debug.Log("ALREADY VOTING THERE."); return; } else { //Debug.Log("HI"); //Unvote required if ((playerTarget == null) || (playerTarget.Name.ContainsIgnoreCase("Unvote"))) { currentWagon = getWagonByTarget(playerVoting.PlayerCurrentlyVoting); if (currentWagon != null) { //currentWagon.removeVote (playerVoting); currentWagon.removeVote(vote); //addPlayerNotVoting (playerVoting); playerVoting.PlayerCurrentlyVoting = null; playerVoting.PostNumberOfVote = vote.PostNumber; return; } playerVoting.PlayerCurrentlyVoting = null; playerVoting.PostNumberOfVote = vote.PostNumber; return; } //This is a swap of vote. if (playerVoting.PlayerCurrentlyVoting != null) { //Debug.Log ("PLAYER VOTING NAME:|" + playerVoting.Name + "| VOTE PLAYER VOTING NAME:|" + vote.PlayerVoting.Name + "|"); //Debug.Log("SWAP OF VOTE: "); currentWagon = getWagonByTarget(playerVoting.PlayerCurrentlyVoting); if (currentWagon != null) { //currentWagon.removeVote (playerVoting); currentWagon.removeVote(vote); playerVoting.PlayerCurrentlyVoting = null; playerVoting.PostNumberOfVote = vote.PostNumber; //addPlayerNotVoting (playerVoting); } } //Debug.Log("ADD THAT VOTE"); //Add that vote newWagon = getWagonByTarget(playerTarget); if (newWagon == null) { if (playerTarget != null && playerTarget.IsAlive) { Wagon createdWagon = new Wagon(maxThreshold, lSort, sortBy); createdWagon.addVote(vote); playerVoting.PlayerCurrentlyVoting = vote.PlayerVoted; playerVoting.PostNumberOfVote = vote.PostNumber; wagons.Add(createdWagon); } else if (playerTarget == null) { System.Console.WriteLine("Wagon creation error. Check your hammer votes for vote:[color][u][b] is the proper order. " + vote.PostNumber); throw new Exception("PLAYER TARGET WAS NULL!!!!!!! " + vote.buildDebugOutput()); } } else if (playerTarget.IsAlive) { //newWagon.addVote (playerVoting); newWagon.addVote(vote); playerVoting.PlayerCurrentlyVoting = vote.PlayerVoted; playerVoting.PostNumberOfVote = vote.PostNumber; //removePlayerNotVoting (playerVoting); isHammered = newWagon.IsHammered; if (isHammered && playerTarget != Wagon.NO_LYNCH_PLAYER) { days[vote.DayNumber - 1].killLynchedPlayer(playerTarget); if (playerTarget != null) { foreach (Player aPlayer in playersInVoteCount) { if (playerTarget.Name.Equals(aPlayer.Name)) { aPlayer.IsDead = true; playerTarget.IsDead = true; } } } System.Console.WriteLine("Player " + playerTarget.Name + " was hammered in post " + vote.PostNumber + "."); } } } } catch (NullReferenceException e) { System.Console.WriteLine(vote.buildDebugOutput() + "Player Target:|" + (playerTarget != null ? playerTarget.Name : "<null>") + "|"); System.Console.WriteLine(e.ToString()); System.Console.WriteLine("A player was missing from post " + vote.PostNumber + ". Please check your replacements. Debug String: " + vote.buildDebugOutput()); } catch (Exception e) { System.Console.WriteLine(e.ToString()); System.Console.WriteLine("An unknown error occurred in post number" + vote.PostNumber + ". Please check formatting of file."); } }