Пример #1
0
        public PlayerClient(CreateObjectPacket createPacket) :
            base(createPacket, Constants.PlayerModel)
        {
            FlameThrower = new FlameThrowerParticleSystem(Tool.Thrower.ConeAngle * 10f, 40.0f, 15.0f, Tool.Thrower.Range / 2.0f, 1.0f, Tool.Thrower.Range, 1.0f);
            LeafBlower   = new LeafBlowerParticleSystem();
            Suction      = new InverseParticleSystem(Constants.WindTexture, Vector3.Zero, -Vector3.UnitX * SUCTION_SPEED, true);
            GraphicsManager.ParticleSystems.Add(FlameThrower);
            GraphicsManager.ParticleSystems.Add(LeafBlower);
            GraphicsManager.ParticleSystems.Add(Suction);
            FlameThrower.EnableGeneration(false);
            LeafBlower.EnableGeneration(false);
            Suction.EnableGeneration(false);

            _audioFootstep = AudioManager.GetNewSource();
            _audioFlame    = AudioManager.GetNewSource();
            _audioWind     = AudioManager.GetNewSource();
            _audioSuction  = AudioManager.GetNewSource();
            _audioVoice    = AudioManager.GetNewSource();

            // Create new animations
            float scale     = .07f;
            float timeScale = 3f;

            _animWalkBlower  = AnimationManager.AddAnimation(Constants.PlayerWalkBlowerAnim, new Vector3(scale), timeScale);
            _animWalkThrower = AnimationManager.AddAnimation(Constants.PlayerWalkThrowerAnim, new Vector3(scale), timeScale);
            _animIdle        = AnimationManager.AddAnimation(Constants.PlayerIdleAnim, new Vector3(scale), timeScale);
            _animVictory     = AnimationManager.AddAnimation(Constants.PlayerVictoryAnim, new Vector3(scale), timeScale);
            _animLose        = AnimationManager.AddAnimation(Constants.PlayerDefeatAnim, new Vector3(scale), timeScale);

            // set to idle animation by default
            SwitchAnimation(_animIdle);
            nicknameUI = new UINickname(this, Name);

            Burnable = true;
        }
        /// <summary>
        /// Constructs a new local GameObject with a model at the specified path and a specified position.
        /// </summary>
        /// <param name="createPacket">Initial packet for this object.</param>
        /// <param name="modelPath">Path to this gameobject's model.</param>
        public NetworkedGameObjectClient(CreateObjectPacket createPacket, string modelPath) : base(modelPath)
        {
            Id = createPacket.ObjData.IdData.ObjectId;
            Transform.Position.X = createPacket.ObjData.PositionX;
            Transform.Position.Y = createPacket.ObjData.PositionY;
            Transform.Position.Z = createPacket.ObjData.PositionZ;

            Transform.Rotation.Y = createPacket.ObjData.Rotation;
        }
Пример #3
0
        /// <summary>
        /// Creates the activeplayer object and hooks up the input so that the
        /// player moves
        /// </summary>
        /// <param name="createPacket">The createPacket that holds info
        /// on intitial pos, etc</param>
        /// <returns>the created player</returns>
        private GameObject InitializeUserPlayerAndMovement(
            CreateObjectPacket createPacket
            )
        {
            // Create a new player with the specified packet info.
            ActivePlayer = new PlayerClient(createPacket);

            // Set the active plyer in the graphics manager.
            GraphicsManager.ActivePlayer = ActivePlayer;

            // Add the player to networked game objects.
            NetworkedGameObjects.Add(ActivePlayer.Id, ActivePlayer);

            // Set up the input manager.
            SetupInputManager(ActivePlayer);

            CreateMap();

            return(ActivePlayer);
        }
Пример #4
0
        /// <summary>
        /// Creates a new object from a given packet, whether that be a leaf
        /// or a player.
        /// </summary>
        /// <param name="createPacket"></param>
        /// <returns>The object which was created</returns>
        public GameObject CreateObjectFromPacket(CreateObjectPacket createPacket)
        {
            int objId = createPacket.ObjData.IdData.ObjectId;

            // Create a new packet depending on it's type.
            switch (createPacket.ObjectType)
            {
            // Create an active player
            case (ObjectType.ACTIVE_PLAYER):
                var newPlayer = InitializeUserPlayerAndMovement(createPacket) as PlayerClient;
                playerClients.Add(newPlayer);
                newPlayer.Name = GraphicsRenderer.nicknameTextbox.Text;
                return(newPlayer);

            // Create an other player
            case (ObjectType.PLAYER):
                NetworkedGameObjectClient player = new PlayerClient(createPacket);
                playerClients.Add((PlayerClient)player);
                NetworkedGameObjects.Add(objId, player);
                return(player);

            // Create a leaf.
            case (ObjectType.LEAF):
                NetworkedGameObjectClient leaf = new LeafClient(createPacket);
                NetworkedGameObjects.Add(objId, leaf);
                return(leaf);

            case (ObjectType.TREE):
                Transform startTransform = new Transform();
                float     initX          = createPacket.ObjData.PositionX;
                float     initY          = createPacket.ObjData.PositionY;
                float     initZ          = createPacket.ObjData.PositionZ;
                startTransform.Position = new Vector3(initX, initY, initZ);
                NetworkedGameObjectClient tree = new TreeClient(createPacket);
                NetworkedGameObjects.Add(objId, tree);
                return(tree);
            }
            return(null);
        }
Пример #5
0
 public LeafClient(CreateObjectPacket createPacket) : base(createPacket, Constants.LeafModel)
 {
     _audioBurning = -1;
     _audioMoving  = -1;
     Burnable      = true;
 }
Пример #6
0
 /// <summary>
 /// Create a new tree, based on a packet sent from the server.
 /// </summary>
 /// <param name="createPacket">Packet of a tree being created.</param>
 public TreeClient(CreateObjectPacket createPacket) : base(createPacket, Constants.TreeModel)
 {
     // Scale the tree to make it slightly bigger.
     Transform.Scale = new Vector3(1.5f, 1.5f, 1.5f);
 }