Exemplo n.º 1
0
    public void Fire(Vector3 target)
    {
        rigid.gravityScale = 0;
        Vector2 diriection = (target - transform.position).normalized;

        rigid.AddForce(diriection * speed, ForceMode2D.Impulse);
        projectileType = ProjectileTypeEnum.PROJECTILE;
    }
Exemplo n.º 2
0
        /// <summary>
        /// Creates a weapon, basing on provided arguments.
        /// </summary>
        /// <param name="gloveType">Type of the weapon (what is the weapon doing).</param>
        /// <param name="projectileType">Type of projectiles for the weapon (energy/physical/etc.).</param>
        /// <param name="parentTransform">Transform of the parent object. Can be null.</param>
        /// <returns></returns>
        public IWeapon CreateWeapon(GloveType gloveType, ProjectileTypeEnum projectileType, Transform parentTransform)
        {
            switch (gloveType)
            {
            case GloveType.Glove:
                return(CreateToolGlove(projectileType, parentTransform));
            }

            throw new Exception($"Weapon of type {gloveType} with projectiles of type {projectileType} is unknown.");
        }
        /// <summary>
        /// Erstellt ein Projektil
        /// </summary>
        /// <param name="position">Position</param>
        /// <param name="flightDirection">Flugrichtung</param>
        /// <param name="projectileType">Art des Projektils</param>
        /// <param name="hitpoints">Lebenspunkte</param>
        /// <param name="velocity">maximale Geschwindigkeit</param>
        /// <param name="damage">Schaden, der anderen zugefügt wird</param>
        public Projectile(Vector2 position, Vector2 flightDirection, ProjectileTypeEnum projectileType, int hitpoints, Vector2 velocity, int damage)
            : base(position, velocity, hitpoints, damage)
        {
            this.ProjectileType  = projectileType;
            this.FlightDirection = flightDirection;
            this.FlightDirection.Normalize();

            if (Projectile.Created != null)
            {
                Projectile.Created(this, EventArgs.Empty);
            }
        }
Exemplo n.º 4
0
        //
        //Sie können beim Verfassen Ihrer Tests die folgenden zusätzlichen Attribute verwenden:
        //
        //Mit ClassInitialize führen Sie Code aus, bevor Sie den ersten Test in der Klasse ausführen.
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Mit ClassCleanup führen Sie Code aus, nachdem alle Tests in einer Klasse ausgeführt wurden.
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Mit TestInitialize können Sie vor jedem einzelnen Test Code ausführen.
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Mit TestCleanup können Sie nach jedem einzelnen Test Code ausführen.
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        private Projectile CreateProjectile()
        {
            Vector2            position        = new Vector2(0.0f, CoordinateConstants.TopBorder * 2.0f - 1.0f); // Position knapp unter der oberen Grenze
            Vector2            flightDirection = CoordinateConstants.Up;                                         // Bewegungsrichtung
            ProjectileTypeEnum projectileType  = ProjectileTypeEnum.PlayerNormalProjectile;                      // Projektiltyp
            int     hitpoints = GameItemConstants.PlayerNormalProjectileHitpoints;                               // Lebenspunkte
            Vector2 velocity  = GameItemConstants.PlayerNormalProjectileVelocity;                                // Geschwindigkeit
            int     damage    = GameItemConstants.PlayerNormalProjectileDamage;                                  // Schaden
            // Prijektil erzeugen
            Projectile target = new Projectile(position, flightDirection, projectileType, hitpoints, velocity, damage);

            return(target);
        }
Exemplo n.º 5
0
    public void Launch(Vector3 target)
    {
        helper = new GameObject("Bounce Helper");
        helper.AddComponent <CircleCollider2D>().radius = circleCollider.radius;
        helper.layer = LayerMask.NameToLayer("FirstBounce");
        helper.transform.SetParent(transform, false);

        rigid.gravityScale = 1;
        rigid.AddTorque(-3, ForceMode2D.Impulse);
        Vector3 velocity = CalculateThrowVelocity(transform.position, target);

        rigid.AddForce(velocity, ForceMode2D.Impulse);
        projectileType = ProjectileTypeEnum.BOUNCE;
    }
Exemplo n.º 6
0
        /// <summary>
        /// Changes color of the beam, accordingly to new equipped glove.
        /// </summary>
        /// <param name="newSetGlove"></param>
        public void SwitchColor(ProjectileTypeEnum newSetGlove)
        {
            switch (newSetGlove)
            {
            case ProjectileTypeEnum.Physical:
                _beamRenderer.startColor = _beamStartColorPhysic;
                break;

            case ProjectileTypeEnum.Energy:
                _beamRenderer.startColor = _beamStartColorEnergy;
                break;
            }

            _currentSelectedColor = _beamRenderer.startColor;
        }
Exemplo n.º 7
0
        /// <summary>
        /// Creates a tool glove - weapon that is capable of hooking objects of the same projectile type and allows
        /// for influence of their movement.
        /// </summary>
        /// <param name="projectileType">Type of glove (electric/physics).</param>
        /// <param name="parentTransform">Transform of parent object. Can be null.</param>
        /// <returns></returns>
        private IWeapon CreateToolGlove(ProjectileTypeEnum projectileType, Transform parentTransform)
        {
            IWeapon glove = null;

            switch (projectileType)
            {
            case ProjectileTypeEnum.Physical:
                glove = Instantiate(_physicsGlovePrefab, parentTransform).GetComponent <IWeapon>();
                break;

            case ProjectileTypeEnum.Energy:
                glove = Instantiate(_energyGlovePrefab, parentTransform).GetComponent <IWeapon>();
                break;
            }

            if (glove == null)
            {
                throw new Exception($"Tool glove with projectiles of type {projectileType} is unknown.");
            }

            glove.SetStrength(_gloveStrength);
            return(glove);
        }
Exemplo n.º 8
0
 /// <summary>
 /// Checks if type of object is the same as type of the glove that tried to hook it.
 /// </summary>
 /// <param name="projectileType">Type of hooking glove.</param>
 /// <returns>True if types match, false otherwise.</returns>
 public override bool ChkGloveType(ProjectileTypeEnum projectileType)
 {
     return(projectileType == ObjectType);
 }
Exemplo n.º 9
0
 /// <summary>
 /// Prompts the 3D pointer to change its color, accordingly to new glove equipped by the player.
 /// </summary>
 /// <param name="newSetGlove"></param>
 public void Switch3DPointerColor(ProjectileTypeEnum newSetGlove)
 {
     _sceneObjectsPointer.SwitchColor(newSetGlove);
 }
Exemplo n.º 10
0
 public abstract bool ChkGloveType(ProjectileTypeEnum projectileType);