Ejemplo n.º 1
0
 public Game()
 {
     GameYear = 1935;
     GameSeason = Seasons.Pregame;
     Tiles = new TileDeck();
     Events = new EventDeck();
     Purges = new PurgeDeck();
     Players = new PlayerRegistry();
     HasChanged = true;
 }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
    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));
        }
Ejemplo n.º 5
0
    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);
        }
    }
Ejemplo n.º 6
0
 public LobbyController(PlayerRegistry playerRegistry, IHubContext <LobbyHub, ILobbyClient> _lobbyHubContext)
 {
     this.playerRegistry = playerRegistry ?? throw new ArgumentNullException(nameof(playerRegistry));
     lobbyHubContext     = _lobbyHubContext ?? throw new ArgumentNullException(nameof(_lobbyHubContext));
 }
Ejemplo n.º 7
0
 public void Construct(PlayerRegistry registry, UnassignedItems unassigned)
 {
     _registry   = registry;
     _unassigned = unassigned;
     PreInitialize();
 }
Ejemplo n.º 8
0
 public PlayerDamageTracker(PlayerRegistry registry, [Inject(Id = Identifiers.HUD)] FloatingText.Factory floatingTextFactory)
 {
     _registry            = registry;
     _floatingTextFactory = floatingTextFactory;
 }
Ejemplo n.º 9
0
 public HealthTracker([Inject(Id = Identifiers.Health)] TextMeshProUGUI text, Settings settings, PlayerRegistry registry)
 {
     _text     = text;
     _settings = settings;
     _registry = registry;
     PreInitialize();
 }
Ejemplo n.º 10
0
 public override void OnEvent(TeamChangeEvent evnt)
 {
     lobby.SetPlayerTeam(PlayerRegistry.GetUserNameFromConnection(evnt.RaisedBy), evnt.NewTeam);
 }
Ejemplo n.º 11
0
 public override void Disconnected(BoltConnection connection)
 {
     lobby.RemovePlayer(PlayerRegistry.GetUserNameFromConnection(connection));
     PlayerRegistry.Remove(connection);
 }
Ejemplo n.º 12
0
 public override void Connected(BoltConnection connection)
 {
     PlayerRegistry.CreatePlayer(connection);
 }
Ejemplo n.º 13
0
        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);*/
        }
Ejemplo n.º 14
0
 private void SendUpdateEvent()
 {
     PlayerRegistry.GetPlayerRef(OwnerId).OnUpdateBag(EncodeBag());
 }
Ejemplo n.º 15
0
 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);
        }
Ejemplo n.º 17
0
    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"));
        }
    }
Ejemplo n.º 18
0
 public override void Disconnected(BoltConnection connection)
 {
     PlayerRegistry.RemovePlayer(connection);
 }
Ejemplo n.º 19
0
 public PlayerRegistryTracker(IRespawnable <CharacterSpawnParameters> respawnable, PlayerRegistry registry, CharacterFacade facade)
 {
     _respawnable = respawnable;
     _registry    = registry;
     _facade      = facade;
     PreInitialize();
 }
Ejemplo n.º 20
0
 public override void OnServerReceive(ToggleMessage message)
 {
     PlayerRegistry.GetPlayer(message.AboutId).IsReady = message.ToggleValue;
     PlayerState.LocalInstance.Send();
 }