public static remote.GameDefinition ToRemote(this remote.GameDefinition rm, metagame.GameDefinition o)
 {
     rm.Name        = o.Name;
     rm.RoundsCount = o.RoundsCount;
     rm.MinPlayers  = o.MinPlayers;
     rm.MaxPlayers  = o.MaxPlayers;
     rm.BetStructure.AddRange(o.BetStructure);
     rm.BlindStructure.AddRange(o.BlindStructure);
     rm.PrivateCardsCount.AddRange(o.PrivateCardsCount);
     rm.PublicCardsCount.AddRange(o.PublicCardsCount);
     rm.SharedCardsCount.AddRange(o.SharedCardsCount);
     rm.BetsCountLimits.AddRange(o.BetsCountLimits);
     rm.FirstActor.AddRange(o.FirstActor);
     rm.FirstActorHeadsUp.AddRange(o.FirstActorHeadsUp);
     rm.LimitKind      = (remote.LimitKind)o.LimitKind;
     rm.DeckDescriptor = (new remote.DeckDescriptor()).ToRemote(o.DeckDescr);
     return(rm);
 }
 public static metagame.GameDefinition FromRemote(this remote.GameDefinition rm)
 {
     metagame.GameDefinition o = new metagame.GameDefinition();
     o.Name              = rm.Name;
     o.RoundsCount       = rm.RoundsCount;
     o.MinPlayers        = rm.MinPlayers;
     o.MaxPlayers        = rm.MaxPlayers;
     o.BetStructure      = rm.BetStructure.ToArray();
     o.BlindStructure    = rm.BlindStructure.ToArray();
     o.PrivateCardsCount = rm.PrivateCardsCount.ToArray();
     o.PublicCardsCount  = rm.PublicCardsCount.ToArray();
     o.SharedCardsCount  = rm.SharedCardsCount.ToArray();
     o.BetsCountLimits   = rm.BetsCountLimits.ToArray();
     o.FirstActor        = rm.FirstActor.ToArray();
     o.FirstActorHeadsUp = rm.FirstActorHeadsUp.ToArray();
     o.LimitKind         = (metagame.LimitKind)rm.LimitKind;
     o.DeckDescr         = rm.DeckDescriptor.FromRemote();
     return(o);
 }