public Game() { GameYear = 1935; GameSeason = Seasons.Pregame; Tiles = new TileDeck(); Events = new EventDeck(); Purges = new PurgeDeck(); Players = new PlayerRegistry(); HasChanged = true; }
public void OnHurt(int dmg) { BoltLog.Warn($"player {playerId} get hurt for {dmg}"); health -= dmg; var dmgEvent = OnDamaged.Create(entity, EntityTargets.OnlyController); dmgEvent.TargetID = Convert.ToInt32(playerId); dmgEvent.Dmg = dmg; dmgEvent.Send(); if (health > 0) { return; } OnPlayerDeath.Post(GlobalTargets.AllClients, playerId); PlayerRegistry.RemovePlayer(Convert.ToUInt32(playerId)); }
public override void OnEvent(DeathEvent evnt) { //update scores if (ServerConnectionEventListener.IndexMap.ContainsPlayer(evnt.Killer)) { GameStats.SetIntegerStat(evnt.Killer, "Kills", GameStats.GetIntegerStat(evnt.Killer, "Kills") + 1); } if (ServerConnectionEventListener.IndexMap.ContainsPlayer(evnt.Player)) { GameStats.SetIntegerStat(evnt.Player, "Deaths", GameStats.GetIntegerStat(evnt.Player, "Deaths") + 1); } //because of the Owner/ProxyPlayer abstraction, this line will either just move the server's player, or //send an MovePlayerEvent to the propper player! GameManager.instance.gameMode.MovePlayerToSpawnPoint(PlayerRegistry.GetIPlayerForUserName(evnt.Player)); GameManager.instance.CheckForGameOver(); }
public override void OnReceiveRemote(WorldObjectMessage message) { if (!QSBSceneManager.IsInUniverse) { return; } var sector = WorldRegistry.GetObject <QSBSector>(message.ObjectId); if (sector == null) { DebugLog.ToConsole($"Sector with order id {message.ObjectId} not found!", MessageType.Warning); return; } var transformSync = PlayerRegistry.GetSyncObject <TransformSync>(message.AboutId); QSB.Helper.Events.Unity.RunWhen(() => transformSync.SyncedTransform != null, () => transformSync.SetReferenceSector(sector)); }
public override void Attached() { if (entity.isOwner) { GameObject prefab = Instantiate(OwnerPrefab); state.Transform.SetTransforms(prefab.transform); prefabTransform = prefab.transform; if (BoltNetwork.isServer) { entity.TakeControl(); } else { entity.AssignControl(BoltNetwork.server); } } else { GameObject prefab = Instantiate(ProxyPrefab); state.Transform.SetTransforms(prefab.transform); prefabTransform = prefab.transform; } prefabTransform.parent = this.transform; prefabTransform.localPosition = Vector3.zero; prefabTransform.localRotation = Quaternion.identity; Player = prefabTransform.GetComponent <IPlayer>(); ((AbstractPlayer)Player).SetState(this); if (entity.isOwner) { state.Name = GameManager.instance.CurrentUserName; } //if this is the server's player we have to do some special stuff if (BoltNetwork.isServer && entity.isOwner) { PlayerRegistry.SetPlayer(Player); } }
public LobbyController(PlayerRegistry playerRegistry, IHubContext <LobbyHub, ILobbyClient> _lobbyHubContext) { this.playerRegistry = playerRegistry ?? throw new ArgumentNullException(nameof(playerRegistry)); lobbyHubContext = _lobbyHubContext ?? throw new ArgumentNullException(nameof(_lobbyHubContext)); }
public void Construct(PlayerRegistry registry, UnassignedItems unassigned) { _registry = registry; _unassigned = unassigned; PreInitialize(); }
public PlayerDamageTracker(PlayerRegistry registry, [Inject(Id = Identifiers.HUD)] FloatingText.Factory floatingTextFactory) { _registry = registry; _floatingTextFactory = floatingTextFactory; }
public HealthTracker([Inject(Id = Identifiers.Health)] TextMeshProUGUI text, Settings settings, PlayerRegistry registry) { _text = text; _settings = settings; _registry = registry; PreInitialize(); }
public override void OnEvent(TeamChangeEvent evnt) { lobby.SetPlayerTeam(PlayerRegistry.GetUserNameFromConnection(evnt.RaisedBy), evnt.NewTeam); }
public override void Disconnected(BoltConnection connection) { lobby.RemovePlayer(PlayerRegistry.GetUserNameFromConnection(connection)); PlayerRegistry.Remove(connection); }
public override void Connected(BoltConnection connection) { PlayerRegistry.CreatePlayer(connection); }
private void canvas_CreateResources(ICanvasAnimatedControl sender, CanvasCreateResourcesEventArgs args) { //Initialize image loader with canvas //TODO: The image manager may fail for multiple pages ImageManager.Initialize(sender); //Initialize random number generator randomNumbers = new Random(); //Initialize game systems drawIndex = new DrawableIndex(); collisions = new CollisionManager(); gameObjects = new GameObjectIndex(drawIndex, collisions); inputManager = new InputManager(); players = new PlayerRegistry(randomNumbers); //Load the required images ImageManager.LoadImages(PacmanImagePaths.Images); //Register key event listeners Window.Current.CoreWindow.KeyDown += canvas_KeyDown; Window.Current.CoreWindow.KeyUp += canvas_KeyUp; //Add background image DrawableImage background = new DrawableImage(ImageManager.getImageByName("background1"), Vector2.Zero, false); drawIndex.AddDrawable(background); //Create players player = new PlayerGameObject(new Vector2(200, 300), gameObjects, players, inputManager, KeyboardFormat.WASD); gameObjects.registerGameObject(player); player2 = new PlayerGameObject(new Vector2(250, 300), gameObjects, players, inputManager, KeyboardFormat.ARROWS); gameObjects.registerGameObject(player2); //Create a dummy game object //DummyGameObject testingObject = new DummyGameObject(new Vector2(100, 100), new Vector2(45, 45), gameObjects); //Register the new object in the game object index //gameObjects.registerGameObject(testingObject); //Register the new object as an input listener //Disable debug drawing drawIndex.SetDebugDrawing(false); //Add walls WallGameObject wall = new WallGameObject(new Vector2(0, 0), new Vector2(40, 500)); gameObjects.registerGameObject(wall); WallGameObject wall2 = new WallGameObject(new Vector2(0, 0), new Vector2(850, 20)); gameObjects.registerGameObject(wall2); WallGameObject wall3 = new WallGameObject(new Vector2(830, 0), new Vector2(850, 500)); gameObjects.registerGameObject(wall3); WallGameObject wall4 = new WallGameObject(new Vector2(0, 480), new Vector2(850, 500)); gameObjects.registerGameObject(wall4); WallGameObject wall5 = new WallGameObject(new Vector2(185, 165), new Vector2(200, 330)); gameObjects.registerGameObject(wall5); WallGameObject wall6 = new WallGameObject(new Vector2(185, 165), new Vector2(685, 180)); gameObjects.registerGameObject(wall6); WallGameObject wall7 = new WallGameObject(new Vector2(670, 165), new Vector2(685, 500)); gameObjects.registerGameObject(wall7); WallGameObject wall8 = new WallGameObject(new Vector2(345, 320), new Vector2(525, 330)); gameObjects.registerGameObject(wall8); //Add an enemy object /*EnemyGameObject enemy = new EnemyGameObject(new Vector2(700, 120), gameObjects, new Random()); * enemy.Target = player; * gameObjects.registerGameObject(enemy); * * * EnemyGameObject enemy1 = new EnemyGameObject(new Vector2(400, 200), gameObjects, new Random()); * enemy1.Target = player; * gameObjects.registerGameObject(enemy1); * * EnemyGameObject enemy2 = new EnemyGameObject(new Vector2(250, 300), gameObjects, new Random()); * enemy2.Target = player; * gameObjects.registerGameObject(enemy2); * * EnemyGameObject enemy3 = new EnemyGameObject(new Vector2(100, 350), gameObjects, new Random()); * enemy3.Target = player; * gameObjects.registerGameObject(enemy3); * * EnemyGameObject enemy4 = new EnemyGameObject(new Vector2(750, 400), gameObjects, new Random()); * enemy4.Target = player; * gameObjects.registerGameObject(enemy4);*/ }
private void SendUpdateEvent() { PlayerRegistry.GetPlayerRef(OwnerId).OnUpdateBag(EncodeBag()); }
public UnassignedItems(PlayerRegistry registry) { _registry = registry; PreInitialize(); }
public override void OnReceiveRemote(ToggleMessage message) { var player = PlayerRegistry.GetPlayer(message.AboutId); player?.UpdateState(State.Suit, message.ToggleValue); }
private void KickAllNonCompliantPlayers() { //linq! // select all connections whose associated username is not contained within the list of all usernames in the controlledPlayers list var playersToKick = PlayerRegistry.Connections.Where(c => !controlledPlayers.Select(x => x.Username).Contains(PlayerRegistry.GetUserNameFromConnection(c))); //playersToKick contains all players who are not in the controlledPlayers list foreach (BoltConnection c in playersToKick) { c.Disconnect(new DisconnectReason("AntiCheat Violation", "Did not surrender control to server in time")); } }
public override void Disconnected(BoltConnection connection) { PlayerRegistry.RemovePlayer(connection); }
public PlayerRegistryTracker(IRespawnable <CharacterSpawnParameters> respawnable, PlayerRegistry registry, CharacterFacade facade) { _respawnable = respawnable; _registry = registry; _facade = facade; PreInitialize(); }
public override void OnServerReceive(ToggleMessage message) { PlayerRegistry.GetPlayer(message.AboutId).IsReady = message.ToggleValue; PlayerState.LocalInstance.Send(); }