public static bool RaiseRank( Rank rank ) {
if( rank == null ) throw new ArgumentNullException( "rank" );
if( rank == Ranks.First() ) {
return false;
}
Rank nextRankUp = Ranks[rank.Index - 1];
Ranks[rank.Index - 1] = rank;
Ranks[rank.Index] = nextRankUp;
RebuildIndex();
return true;
}