private void CheckShip(IGameLogger logger, int accountId, VaultView vault, Ship ship) { // check ship if (!vault.Ships.Contains(ship.ID)) { throw logger.LogError(new Exception($"Check for player {accountId} on hangar with ship {ship.ID} resulted in a assigned ship which is not even owned!")); } // check amount of items packed into the ship if (Weapons.Count > ship.WeaponSlots) { Weapons = Weapons.Take(ship.WeaponSlots).ToList(); } if (Generators.Count + Shields.Count > ship.GeneratorSlots) { int diff = Math.Abs((Generators.Count + Shields.Count) - ship.GeneratorSlots); int generatorsToRemove = Math.Min(diff, Generators.Count); int shieldsToRemove = Math.Min(diff - generatorsToRemove, Shields.Count); Generators = Generators.Take(Generators.Count - generatorsToRemove).ToList(); Shields = Shields.Take(Shields.Count - shieldsToRemove).ToList(); if (diff != 0) { logger.LogWarning($"Check for player {accountId} on hangar with ship {ship.ID} resulted with a problematic difference of {diff}"); } } }
private void CheckAvailableGenerators(IGameLogger logger, int accountId, VaultView vault, Ship ship) { if (Generators == null) { Generators = new List <int>(); } var tempGeneratorsGroup = Generators.GroupBy(x => x).ToList(); foreach (var grouping in tempGeneratorsGroup) { if (!vault.Generators.ContainsKey(grouping.Key)) { logger.LogWarning($"Check for player {accountId} on hangar with ship {ship.ID} resulted with equipped generators id:{grouping.Key} which are not owned!"); Generators.RemoveAll(x => x == grouping.Key); } else if (grouping.Count() > vault.Generators[grouping.Key]) { int diff = grouping.Count() - vault.Generators[grouping.Key]; Generators.RemoveAll(x => x == grouping.Key && diff-- > 0); if (diff != 0) { logger.LogWarning($"Check for player {accountId} on hangar with ship {ship.ID} resulted with a problematic difference of {diff} (generator check)"); } } } }
public void Check(IGameLogger logger, int accountId, VaultView vault, Ship ship) { CheckShip(logger, accountId, vault, ship); CheckDrones(logger, accountId, vault, ship); CheckAvailableWeapons(logger, accountId, vault, ship); CheckAvailableShields(logger, accountId, vault, ship); CheckAvailableGenerators(logger, accountId, vault, ship); }
public PolicyConnectionHandler(Socket socket) { _logger = GameContext.Logger ?? throw new ArgumentNullException("invalid logger!"); _socket = socket ?? throw _logger.LogError(new ArgumentNullException(nameof(socket))); _stream = new NetworkStream(_socket); Process(); }
public GameOverScene(Game game, ISceneManager sceneManager, IGraphicsSystem graphicsSystem, IGameSettings gameSettings, IGameLogger logger, IGameKeys gameKeys, IGamePoints gamePoints) : base(game, sceneManager, graphicsSystem, gameSettings, logger, gameKeys) { _gamePoints = gamePoints ?? throw new ArgumentNullException(nameof(gamePoints)); _spriteBatch = new SpriteBatch(game.GraphicsDevice); }
public SnakeEntity(IGameLogger logger, IGameFieldEntity gameField, IGameSettings gameSettings) { _logger = logger; _gameField = gameField; _gameSettings = gameSettings; Initialize(); }
public SnakeGameComponent(ISnakeEntity snake, IGraphics2DComponent graphicsComponent, ISnakeMovementComponent snakeMovement, IGameLogger logger) { _snake = snake ?? throw new ArgumentNullException(nameof(snake)); _graphicsComponent = graphicsComponent ?? throw new ArgumentNullException(nameof(graphicsComponent)); _snakeMovementComponent = snakeMovement ?? throw new ArgumentNullException(nameof(snakeMovement)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); Enabled = true; }
internal static ICommand CreateInstance(Type type, IGameLogger logger) { try { return(type.CreateInstance() as ICommand); } catch (Exception e) { logger?.LogError(e); } return(null); }
protected BaseScene(Game game, ISceneManager sceneManager, IGraphicsSystem graphicsSystem, IGameSettings gameSettings, IGameLogger logger, IGameKeys gameKeys) { Game = game ?? throw new ArgumentNullException(nameof(game)); SceneManager = sceneManager ?? throw new ArgumentNullException(nameof(sceneManager)); GraphicsSystem = graphicsSystem ?? throw new ArgumentNullException(nameof(graphicsSystem)); GameSettings = gameSettings ?? throw new ArgumentNullException(nameof(gameSettings)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); GameKeys = gameKeys ?? throw new ArgumentNullException(nameof(gameKeys)); }
public void Start() { transform.position = Position; transform.localScale = Body.Dimensions; logger = new ProxyLogger(); xAxis = 1f; zAxis = 0f; }
public EntityControllerBase(int id, string username, Faction faction) { _logger = GameContext.Logger ?? throw new ArgumentNullException("invalid logger!"); ID = id; Username = username; Faction = faction; CurrentClock = new OffsetStopwatch(TimeSpan.FromSeconds(10)); }
public Game( IGameLogger logger, IGameRegion gameRegion) { this.logger = logger; this.categorySelector = gameRegion.CategorySelector; this.board = gameRegion.Board; var questionFactory = gameRegion.QuestionFactory; allQuestions = questionFactory.GenerateQuestionsForCategories(); }
public FoodManager(Game game, IGameFieldEntity field, IGameSettings gameSettings, IGraphicsSystem graphicsSystem, IGameLogger logger, ISnakeEntity snake) { _game = game ?? throw new ArgumentNullException(nameof(game)); _gameField = field ?? throw new ArgumentNullException(nameof(field)); _gameSettings = gameSettings ?? throw new ArgumentNullException(nameof(gameSettings)); _graphicsSystem = graphicsSystem ?? throw new ArgumentNullException(nameof(graphicsSystem)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _snake = snake ?? throw new ArgumentNullException(nameof(snake)); _foods = new List <IFoodGameComponent>(); }
public GameConnectionHandler(Socket socket) { _logger = GameContext.Logger ?? throw new ArgumentNullException("invalid logger!"); _socket = socket ?? throw _logger.LogError(new ArgumentNullException(nameof(socket))); _stream = new NetworkStream(_socket); _handlerLookup = GameContext.LookupBuilder.BuildHandlerLookup(_logger); _commandLookup = GameContext.LookupBuilder.BuildCommandLookup(_logger); Process(); }
public Game( IGameLogger logger, ICategorySelector categorySelector, IQuestionFactory questionFactory) { this.logger = logger; this.categorySelector = categorySelector; popQuestions = questionFactory.GenerateQuestionsForCategory(QuestionCategory.Pop); scienceQuestions = questionFactory.GenerateQuestionsForCategory(QuestionCategory.Science); sportsQuestions = questionFactory.GenerateQuestionsForCategory(QuestionCategory.Sports); rockQuestions = questionFactory.GenerateQuestionsForCategory(QuestionCategory.Rock); }
public ChatDebugConnectionHandler(Socket socket) { _logger = GameContext.Logger ?? throw new ArgumentNullException("invalid logger!"); _socket = socket ?? throw _logger.LogError(new ArgumentNullException(nameof(socket))); _stream = new NetworkStream(_socket); _client = new TcpClient(); _client.Connect("eps.optimist.darkorbit.infinicast.io", 7771); Process("Client_0", _stream); Process("Server_0", _client.GetStream()); }
public void Start() { logger = new ProxyLogger(); transform.position = Position; transform.localScale = Body.Dimensions; this.pacmanVisitor = new PacmanVisitor(this); var edibleGameObjects = GameObject.FindGameObjectsWithTag("Edible"); this.edibles = edibleGameObjects.Select(e => e.GetComponent <EdibleDot>()).ToList(); var ghostGameObjects = GameObject.FindGameObjectsWithTag("Ghost"); this.ghosts = ghostGameObjects.Select(e => e.GetComponent <GhostComponent>()).ToList(); }
public ICommandLookup BuildCommandLookup(IGameLogger logger) { if (_commandLookup == null) { _commandLookup = new CommandLookup(logger); int loaded = _commandLookup.LoadCommands <NettyLookupBuilder>("10.0.6435"); if (loaded < 0) { throw logger.LogError(new InvalidOperationException("Failed to fill commandLookup!")); } logger.LogInformation($"CommandLookup loaded with {loaded} commands!"); } return(_commandLookup); }
public IHandlerLookup BuildHandlerLookup(IGameLogger logger) { if (_handlerLookup == null) { _handlerLookup = new HandlerLookup(logger); int loaded = _handlerLookup.LoadHandlers <NettyLookupBuilder>("10.0.6435"); if (loaded < 0) { throw logger.LogError(new InvalidOperationException("Failed to fill handlerLookup!")); } logger.LogInformation($"HandlerLookup loaded with {loaded} handlers!"); } return(_handlerLookup); }
public SnakeGame() { ReadSettings(); _logger = new NLogFileLogger(_gameSettings); _graphics = new GraphicsDeviceManager(this) { GraphicsProfile = GraphicsProfile.HiDef }; ApplyScreenChanges(); IsMouseVisible = true; Content.RootDirectory = "Content"; }
public GameManager(IGameLogger logger, IFoodManager foodManager, ISnakeGameComponent snake, IGameFieldEntity gameField, IGameSettings gameSettings, IGamePoints gamePoints, ISnakeEntity snakeEntity, ISceneManager sceneManager, Game game, IGraphicsSystem graphicsSystem, IGameKeys gameKeys) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _foodManager = foodManager ?? throw new ArgumentNullException(nameof(foodManager)); _snakeComponent = snake ?? throw new ArgumentNullException(nameof(snake)); _gameField = gameField ?? throw new ArgumentNullException(nameof(gameField)); _gameSettings = gameSettings ?? throw new ArgumentNullException(nameof(gameSettings)); _gamePoints = gamePoints ?? throw new ArgumentNullException(nameof(gamePoints)); _snakeEntity = snakeEntity ?? throw new ArgumentNullException(nameof(snakeEntity)); _sceneManager = sceneManager ?? throw new ArgumentNullException(nameof(sceneManager)); _game = game ?? throw new ArgumentNullException(nameof(game)); _graphicsSystem = graphicsSystem ?? throw new ArgumentNullException(nameof(graphicsSystem)); _gameKeys = gameKeys ?? throw new ArgumentNullException(nameof(gameKeys)); Initialize(); }
public static void Initialize(IGameLogger logger, string connectionString, string database, IPEndPoint gameServerConfiguration, IPEndPoint policyServerConfiguration, IPEndPoint chatServerConfiguration) { lock (_lock) { if (_initialized || !(_initialized = true)) { return; } _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _database = new DatabaseContext(connectionString, database); _lookupBuilder = new NettyLookupBuilder(); _gameServer = new GameServer(gameServerConfiguration); _policyServer = new PolicyServer(policyServerConfiguration); _chatServer = new ChatServer(chatServerConfiguration); } }
private void CheckAvailableShields(IGameLogger logger, int accountId, VaultView vault, Ship ship) { if (Shields == null) { Shields = new List <int>(); } var tempShieldsGroup = Shields.Union(Drones.SelectMany(x => x.ShieldItems)).GroupBy(x => x).ToList(); foreach (var grouping in tempShieldsGroup) { if (!vault.Shields.ContainsKey(grouping.Key)) { logger.LogWarning($"Check for player {accountId} on hangar with ship {ship.ID} resulted with equipped shields id:{grouping.Key} which are not owned!"); Shields.RemoveAll(x => x == grouping.Key); } else if (grouping.Count() > vault.Shields[grouping.Key]) { int diff = grouping.Count() - vault.Shields[grouping.Key]; Shields.RemoveAll(x => x == grouping.Key && diff-- > 0); foreach (var drone in Drones) { if (diff <= 0) { break; } drone.ShieldItems.RemoveAll(x => x == grouping.Key && diff-- > 0); } if (diff != 0) { logger.LogWarning($"Check for player {accountId} on hangar with ship {ship.ID} resulted with a problematic difference of {diff} (shield check)"); } } } }
// public IEnumerable<RaceState> Play(RaceState initialState, RaceSolution solution) // { // var race = initialState.MakeCopy(); // var i = 0; // while (!race.IsFinished && i < solution.Accelerations.Length) // { // var command = solution.Accelerations[i++]; // race.FirstCar.NextCommand = command; // race.Tick(); // yield return race.MakeCopy(); // } // } public RaceState Play(RaceState initialState, ISolver <RaceState, RaceSolution> solver, IGameLogger <RaceTrack, RaceState> logger, int aiTimeoutPerTickMs = timeoutPerTick) { var race = initialState.MakeCopy(); logger?.LogStart(race.Track); while (!race.IsFinished) { var variants = solver.GetSolutions(race.MakeCopy(), aiTimeoutPerTickMs).ToList(); var aiLogger = logger?.GetAiLogger(0); LogAiVariants(race, aiLogger, variants); var variant = variants.Last(); var(firstCommand, secondCommand) = variant.CarCommands[0]; race.FirstCar.NextCommand = firstCommand; race.SecondCar.NextCommand = secondCommand; logger?.LogTick(race); race.Tick(); } logger?.LogEnd(race); return(race); }
public void Start() { logger = new ProxyLogger(); }
public GameScene(Game game, ISceneManager sceneManager, IGraphicsSystem graphicsSystem, IGameSettings gameSettings, IGameLogger logger, IGameKeys gameKeys) : base( game, sceneManager, graphicsSystem, gameSettings, logger, gameKeys) { _spriteBatch = new SpriteBatch(Game.GraphicsDevice); _debugBatch = new SpriteBatch(Game.GraphicsDevice); _uiBatch = new SpriteBatch(Game.GraphicsDevice); }
public CommandLookup(IGameLogger logger) { _logger = logger; _lookup = new Dictionary <short, Type>(); }
public GameStatusLogger(IGameLogger logger) { _logger = logger; }
public LoggerProvider(IGameLogger logger) { _logger = logger; }
public LoadingScene(Game game, ISceneManager sceneManager, IGraphicsSystem graphicsSystem, IGameSettings gameSettings, IGameLogger logger, IGameKeys gameKeys) : base(game, sceneManager, graphicsSystem, gameSettings, logger, gameKeys) { IsLoaded = false; _uiBatch = new SpriteBatch(Game.GraphicsDevice); }