Exemplo n.º 1
0
        public GameRuleBase CreateGameRule(RoomCreationOptions roomCreationOptions)
        {
            var type = GetGameRuleType(roomCreationOptions);

            return(type != null
                ? (GameRuleBase)_serviceProvider.GetRequiredService(type)
                : null);
        }
Exemplo n.º 2
0
        private Type GetGameRuleType(RoomCreationOptions roomCreationOptions)
        {
            if (!_gameRules.TryGetValue(roomCreationOptions.MatchKey.GameRule, out var entries))
            {
                return(null);
            }

            foreach (var entry in entries.OrderByDescending(x => x.Priority))
            {
                var type = entry.Func(roomCreationOptions);
                if (type != null)
                {
                    return(type);
                }
            }

            return(null);
        }
Exemplo n.º 3
0
 public bool HasGameRule(RoomCreationOptions roomCreationOptions)
 {
     return(GetGameRuleType(roomCreationOptions) != null);
 }
 public RoomCreateHookEventArgs(RoomManager roomManager, RoomCreationOptions options)
 {
     RoomManager = roomManager;
     Options     = options;
     Error       = RoomCreateError.OK;
 }