private void CheckGameState() { if (gameBoard.GameOver()) { GamePause(); mainWindowControl.btnStartStop.BackgroundImage = Image.FromFile(Application.StartupPath + @"\pause1.png"); mainWindowControl.btnStartStop.Enabled = false; mainWindowControl.pnGameOver.Visible = true; PlayerEntities playerEntity = new PlayerEntities(); Player player1 = new Player(); var pl = (from player in playerEntity.Players where player.P_State == true select player).SingleOrDefault(); if (pl != null) { if (pl.P_Score < (int)gameBoard.GetScore) { pl.P_Score = (int)gameBoard.GetScore; playerEntity.SaveChanges(); MessageBox.Show("Congrat " + pl.P_Username + ".New Record: " + gameBoard.GetScore); } } //Kiem tra username trong database //gameBoard.GetScore.ToString() } }
public override void EntityAdded(EntityWrapper entityWrapper) { if (entityWrapper.HasComponent <Player>()) { PlayerEntities.Add(entityWrapper); } }
private List <Task> BroadcastAsyncHere(IEnumerable <IPacket> packets, IBroadcastRule rule) { return(PlayerEntities.Select(s => Task.Run(() => rule == null || rule.Match(s.Value) ? s.Value.Session.SendPacketsAsync(packets) : Task.CompletedTask)).ToList()); }
// Эти методы не особо нужны. Они создавались только для поддержки серверной сущности. public void AddPlayerEntity(PlayerEntity playerEntity) { var coincidence = PlayerEntities.FirstOrDefault(x => x == playerEntity); // Он не был зарегестрирован. if (coincidence == null) { PlayerEntities.Add(playerEntity); OnPlayerEntityAdd(playerEntity); } }
public void RemovePlayerEntity(PlayerEntity playerEntity) { var coincidence = PlayerEntities.FirstOrDefault(x => x == playerEntity); // Он был зарегестрирован. if (coincidence != null) { PlayerEntities.Remove(playerEntity); OnPlayerEntityRemove(playerEntity); } }
public void RegisterEntity <T>(T entity) where T : ISubstantialEntity { switch (entity) { case null: return; case IPlayerEntity playerEntity: PlayerEntities.Add(playerEntity.Id, playerEntity); SubstantialEntities.Add(entity.Id, entity); break; default: SubstantialEntities.Add(entity.Id, entity); break; } }
private List <Task> BroadcastEventAsyncHere(ILogicEvent logicEvent, IBroadcastEventRule rule, bool onlyPlayers) { if (onlyPlayers) { return(PlayerEntities.Select(s => Task.Run(() => rule == null || rule.Match(s.Value) ? s.Value.EmitEventAsync(logicEvent) : Task.CompletedTask)).ToList()); } return(SubstantialEntities.Select(s => Task.Run(() => rule == null || rule.Match(s.Value) ? s.Value.EmitEventAsync(logicEvent) : Task.CompletedTask)).ToList()); }
public void UnregisterEntity <T>(T entity) where T : IEntity { switch (entity) { case null: return; case IPlayerEntity playerEntity: PlayerEntities.Remove(playerEntity.Id); Entities.Remove(playerEntity.Id); break; default: Entities.Remove(entity.Id); break; } }
public IEnumerable <Entity> GetEntitiesAtPosition(int x, int y) { if (!IsInBounds(x, y)) { return(null); } var position = new IntVector2(x, y); var entities = new List <Entity>(); if (StaticEntities.Contains(position)) { entities.Add(StaticEntities[position]); } entities.AddRange(DynamicEntities.Where(e => e.Position == position)); entities.AddRange(PlayerEntities.Where(e => e.Position == position)); return(entities); }
public void SetPlayers(Dictionary <int, PlayerPacket> playerPackets) { for (int i = 0; i < PlayerEntities.Count; i++) { int id = PlayerEntities.ElementAt(i).Key; if (playerPackets.ContainsKey(id) == false) { PlayerEntities[id].Destroy(); PlayerEntities.Remove(id); _mapInstance.RemoveMapPlayer(i); i--; } } for (int i = 0; i < playerPackets.Count; i++) { PlayerPacket packet = playerPackets.ElementAt(i).Value; if (packet.PlayerID == RpgClientConnection.Instance.GetLocalPlayerID()) { _localPlayerPacket = packet; } if (PlayerEntities.ContainsKey(packet.PlayerID)) { Entity clientEntity = PlayerEntities[packet.PlayerID]; PlayerComponent playerComponent = (PlayerComponent)clientEntity.FindComponent <PlayerComponent>(); playerComponent.SetPlayerPacket(packet); } else { Entity clientEntity = Entity.CreateInstance(this.Parent.GetManager()); clientEntity.GetTransform().Parent = this.Parent.GetTransform(); MapPlayer mapPlayer = new MapPlayer(packet, null); _mapInstance.AddMapPlayer(mapPlayer); new PlayerComponent(clientEntity, mapPlayer); PlayerEntities.Add(packet.PlayerID, clientEntity); if (_localPlayerPacket == packet) { _localMapPlayer = mapPlayer; } } } }
public void UnregisterEntity <T>(T entity) where T : ISubstantialEntity { switch (entity) { case null: break; case IPlayerEntity playerEntity: PlayerEntities.Remove(playerEntity.Id); SubstantialEntities.Remove(playerEntity.Id); break; default: SubstantialEntities.Remove(entity.Id); break; } if (SubstantialEntities.Count == 0) { Dispose(); } }
// Use this for initialization void Start() { systems = new List <ISystemInterface>(); entities = new PlayerEntities(); enemyEntities = new EnemyEntities(); entities.Init(entityCount); enemyEntities.Init(enemyEntityCount); // System addition order matters, they will run in the same order systems.Add(new GravitySystem()); systems.Add(new ForceSystem()); systems.Add(new InputSystem()); systems.Add(new MoveSystem()); systems.Add(new CollisionSystem()); systems.Add(new WorldBoundsSystem()); systems.Add(new RenderingSystem()); foreach (var system in systems) { system.Start(this); } }
public override void EntityRemoved(EntityWrapper entityWrapper) { PlayerEntities.Remove(entityWrapper); }
private PlayerEntity TryGetPlayerEntity(MatchInfo.Player player) => player != null && PlayerEntities.TryGetValue(player.Id, out var playerEntity) ? playerEntity : null;
public Task BroadcastAsync(IEnumerable <IPacket> packets, IBroadcastRule rule) { return(Task.WhenAll(PlayerEntities.Select(s => Task.Run(() => rule == null || rule.Match(s.Value) ? s.Value.Session.SendPacketsAsync(packets) : Task.CompletedTask)))); }
public Task BroadcastAsync <T>(T packet, IBroadcastRule rule) where T : IPacket { return(Task.WhenAll(PlayerEntities.Select(s => Task.Run(() => rule == null || rule.Match(s.Value) ? s.Value.Session.SendPacketAsync(packet) : Task.CompletedTask)))); }