private ArenaPartyCreation TryCreateBalancedTeam(ArenaParty party, ref List <ArenaParty> p2, ref List <Character> characters) { var i = 0; var searchedRank = -1; ArenaPartyCreation creation; while (p2.Count > i && !this.CanBeBalanced(party, p2[i], ref searchedRank)) { ++i; } if (i < p2.Count) { var character = characters.FirstOrDefault(entry => Math.Abs(entry.Record.HiddenArenaRank - searchedRank) < 150); if (character == null) { creation = null; } else { creation = new ArenaPartyCreation(p2[i], character); p2.Remove(p2[i]); characters.Remove(character); } } else { creation = null; } return(creation); }
// CONSTRUCTORS public ArenaInvitation(ArenaPartyCreation redTeam, ArenaPartyCreation blueTeam) { this.m_acceptedIds = new List <int>(); this.RedTeam = redTeam; this.BlueTeam = blueTeam; //this.ForEach(new System.Action<ArenaPartyCreation>((ArenaPartyCreation entry) => entry.SendFightProposition(this))); Task.Factory.StartNewDelayed(ArenaInvitationDuration * 1000, this.TimerElapsed); }