Exemplo n.º 1
0
 public IGameRules?TryGetRules(ApiGameType gameType)
 {
     return(gameType switch
     {
         ApiGameType.AttackDefense => new DefaultAttackDefenseGameRules(ThreadLocalRandom.Instance),
         _ when tutorials.TryGetValue(gameType, out var level) => level.CreateRules(),
         _ => null
     });
Exemplo n.º 2
0
 public TutorialGameRules(
     ApiGameType gameType,
     int maxTickCount,
     bool finishOnAttackerDeath,
     int?planetRadius,
     int?planetSafeRadius,
     ApiShip[] initialAttackerShips,
     ApiShip[] initialDefenderShips)
 {
     GameType                   = gameType;
     this.maxTickCount          = maxTickCount;
     this.finishOnAttackerDeath = finishOnAttackerDeath;
     this.initialAttackerShips  = initialAttackerShips;
     this.initialDefenderShips  = initialDefenderShips;
     planet = planetRadius == null ? null : new Planet(planetRadius.Value, planetSafeRadius ?? throw new InvalidOperationException());
 }