Example #1
0
        static bool Prefix(ref List <TournamentParticipant> ____participants, TournamentParticipant participant, bool firstTime, TournamentMatch __instance)
        {
            if (!__instance.IsPlayerParticipating())
            {
                return(true);
            }

            var teams          = __instance.Teams.CastList <MBTournamentTeam>();
            var playerTeam     = GetPlayerTeamFrom(teams);
            var nonPlayerTeams = teams;

            nonPlayerTeams.Remove(playerTeam);

            MBTournamentParticipant wrappedParticipant = participant;

            ____participants.Add(participant);

            if (playerTeam.IsParticipantRequired() &&
                (participant.IsPlayer || participant.IsPlayerCompanion() || participant.IsMarriedToPlayer() || participant.IsPlayerTroop()))
            {
                playerTeam.AddParticipant(participant);

                return(false);
            }

            if ((firstTime && participant.TryPlaceInNewOrSameTeam(teams.CastList <TournamentTeam>())) || participant.TryPlaceInAnyTeam(teams.CastList <TournamentTeam>()))
            {
                return(false);
            }

            return(false);
        }
 public virtual void AddParticipant(MBTournamentParticipant participant) => UnwrappedObject.AddParticipant(participant);