Server.Guilds.Guild.CalculateGuildmaster C# (CSharp) Méthode

CalculateGuildmaster() public méthode

public CalculateGuildmaster ( ) : void
Résultat void
		public void CalculateGuildmaster()
		{
			Dictionary<Mobile, int> votes = new Dictionary<Mobile, int>();

			int votingMembers = 0;

			for ( int i = 0; m_Members != null && i < m_Members.Count; ++i )
			{
				Mobile memb = m_Members[i];

				if ( !CanVote( memb ) )
					continue;

				Mobile m = memb.GuildFealty;

				if( !CanBeVotedFor( m ) )
				{
					if ( m_Leader != null && !m_Leader.Deleted && m_Leader.Guild == this )
						m = m_Leader;
					else 
						m = memb;
				}

				if ( m == null )
					continue;

				int v;

				if( !votes.TryGetValue( m, out v ) )
					votes[m] = 1;
				else
					votes[m] = v + 1;
				
				votingMembers++;
			}

			Mobile winner = null;
			int highVotes = 0;

			foreach ( KeyValuePair<Mobile, int> kvp in votes )
			{
				Mobile m = (Mobile)kvp.Key;
				int val = (int)kvp.Value;

				if ( winner == null || val > highVotes )
				{
					winner = m;
					highVotes = val;
				}
			}

			if ( m_Leader != winner && winner != null )
				GuildMessage( 1018015, true, winner.Name ); // Guild Message: Guildmaster changed to:

			Leader = winner;
			m_LastFealty = DateTime.Now;
		}