Esempio n. 1
0
        public Tank(Vector2 position)
            : base(position)
        {
            Size = Settings.TankSize;
            ani = new Animation(new Rectangle(0, (int)(Size.Y * 2), (int)Size.X, (int)Size.Y), 10);
            ani.Delay = (int)(17 / Settings.TankSpeed) * 3;
            Direction = new Vector2(1, 0);
            TurretDirection = new Vector2(1, 0);
            TurretSourceRectangle = new Rectangle(0, (int)(Size.Y * 3), (int)Size.X, (int)Size.Y);

            BulletType = Projectile.Type.REGULAR;
            bulletTimer = 0;
            ReloadTime = Settings.BulletReloadTime;
            Color = Color.White;
            Speed = Settings.TankSpeed;
            ammo = 500;

            //Effects
            SmokePuffPuff = new ParticleEffect();
            SmokePuffPuff.Texture = Settings.TextureParticle;
            SmokePuffPuff.Color = Color.Black;
            SmokePuffPuff.Size = 20;
            SmokePuffPuff.NumberOfParticles = 15;
            SmokePuffPuff.SpeedGenerator = new Vector2(.1f,.5f);
            BurnBabyBurn = new ParticleEffect();
            BurnBabyBurn.Texture = Settings.TextureParticle;
            BurnBabyBurn.Color = Color.OrangeRed;
            BurnBabyBurn.Size = SmokePuffPuff.Size*.5f;
            BurnBabyBurn.NumberOfParticles = 5;
            BurnBabyBurn.SpeedGenerator = SmokePuffPuff.SpeedGenerator*.5f;
        }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Weapon"/> class.
 /// </summary>
 /// <param name="projectileType">Type of the projectile.</param>
 /// <param name="ammo">The ammo.</param>
 /// <param name="infinite">if set to <c>true</c> [infinite].</param>
 /// <param name="immovable">if set to <c>true</c> [immovable].</param>
 public Weapon(Projectile.Type projectileType, int ammo, bool infinite = false, bool immovable = false)
 {
     ProjectileType = projectileType;
     Ammo           = ammo;
     Infinite       = infinite;
     Immovable      = immovable;
 }
Esempio n. 3
0
    public static void SpawnProjectile(GameObject user, Vector2 target, Projectile.Type projectileType)
    {
        GameObject projectile = Instantiate(Globals.PROJECTILE, user.transform.position, Quaternion.identity);

        projectile.transform.SetParent(ObjectContainer.instance.projectiles.transform);
        projectile.GetComponent <PointFollower>().target   = target;
        projectile.GetComponent <PointFollower>().panSpeed = 3;
        projectile.GetComponent <Projectile>().Initialize(1, projectileType, user);
    }
Esempio n. 4
0
 /// <summary>
 /// @Pre: player's hitbox has intersected a powerup projectile drop.
 /// @Post: Players ammo for the weapon is increased
 /// @Return: None
 /// </summary>
 /// <param name="projectileType">Type of the projectile.</param>
 /// <param name="ammo">The ammo.</param>
 /// <param name="immovable">if set to <c>true</c> [immovable].</param>
 internal void IncreaseAmmo(Projectile.Type projectileType, int ammo, bool immovable = false)
 {
     for (int i = 0; i < Weapons.Count; i++)
     {
         if (Weapons[i].ProjectileType == projectileType)
         {
             Weapons[i].IncreaseAmmo(ammo);
             return;
         }
     }
     Weapons.Add(new Weapon(projectileType, ammo, false, immovable));
 }
Esempio n. 5
0
    void MakeNewProjectile(string name, Vector2 position, float speed, float rotation, int damage, Projectile.Type type)
    {
        Projectile newProjectile = Instantiate(projectile);

        newProjectile.transform.parent   = transform;
        newProjectile.gameObject.name    = name;
        newProjectile.transform.position = position;
        newProjectile.speed      = speed;
        newProjectile.direction  = Vector2.up.Rotate(rotation);
        newProjectile.teamNumber = 0;
        newProjectile.damage     = damage;
        newProjectile.type       = type;
    }
Esempio n. 6
0
 public void Weapon(Projectile.Type bulletType)
 {
     TurretSourceRectangle = new Rectangle((int)(Size.X * (int)bulletType), (int)(Size.Y * 3), (int)Size.X, (int)Size.Y);
     this.BulletType = bulletType;
 }
Esempio n. 7
0
 public static void EnemyDamaged(int Damage, Enemy enemy, Projectile.Type projectile)
 {
     //Damage calcualtions should be put here. Not sure on the best way to handle this, could get very large with if's
     enemy.hitPoints -= Damage;
 }
Esempio n. 8
0
 public static void TowerDamaged(float Damage, Tower tower, Projectile.Type projectile)
 {
     //Damage calcualtions should be put here. Not sure on the best way to handle this, could get very large with if's
     tower.Health -= (int)Damage;
 }
Esempio n. 9
0
        //damage stuffs
        public static float DamageCalculator(float Damage, Enemy enemy, Projectile.Type projectile)
        {
            float totalDamage = 0f;
            float resistedDamage;
            float baseDmg = Damage;

            Projectile.Type proj      = projectile;
            string          enemyType = enemy.EnemyType;

            Color  textColour = Color.Black;
            string popUpText  = "";

            resistedDamage = Resist(enemy);


            if (enemyType == "Soldier")
            {
                if (projectile == Projectile.Type.Gun)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) * 2;
                    popUpText   = PopUpTextManager.Effective + ":" + totalDamage.ToString();
                }

                else if (projectile == Projectile.Type.Tesla)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, 0, enemy, ref popUpText, ref textColour);
                    popUpText   = PopUpTextManager.Neutral + ":" + totalDamage.ToString();
                }

                else
                {
                    textColour  = Color.Yellow;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) / 2;
                    popUpText   = PopUpTextManager.Resist + ":" + totalDamage.ToString();
                }
            }

            else if (enemyType == "Tank")
            {
                if (projectile == Projectile.Type.Rocket)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) * 2;
                    popUpText   = PopUpTextManager.Effective + ":" + totalDamage.ToString();
                }

                else if (projectile == Projectile.Type.Tesla)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, 0, enemy, ref popUpText, ref textColour);
                    popUpText   = PopUpTextManager.Neutral + ":" + totalDamage.ToString();
                }

                else
                {
                    textColour  = Color.Yellow;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) / 4;
                    popUpText   = PopUpTextManager.Resist + ":" + totalDamage.ToString();
                }
            }

            else if (enemyType == "Helicopter")
            {
                if (projectile == Projectile.Type.SAM)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) * 2;
                    popUpText   = PopUpTextManager.Effective + ":" + totalDamage.ToString();
                }

                else if (projectile == Projectile.Type.Tesla)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, 0, enemy, ref popUpText, ref textColour);
                    popUpText   = PopUpTextManager.Neutral + ":" + totalDamage.ToString();
                }

                else
                {
                    textColour  = Color.Yellow;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) / 2;
                    popUpText   = PopUpTextManager.Resist + ":" + totalDamage.ToString();
                }
            }

            else if (enemyType == "Jeep")
            {
                if (projectile == Projectile.Type.Rocket)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) * 4;
                    popUpText   = PopUpTextManager.Effective + ":" + totalDamage.ToString();
                }

                else if (projectile == Projectile.Type.Tesla)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, 0, enemy, ref popUpText, ref textColour);
                    popUpText   = PopUpTextManager.Neutral + ":" + totalDamage.ToString();
                }

                else
                {
                    textColour  = Color.Yellow;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) / 2;
                    popUpText   = PopUpTextManager.Resist + ":" + totalDamage.ToString();
                }
            }

            else if (enemyType == "Transport")
            {
                if (projectile == Projectile.Type.Rocket)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) * 3;
                    popUpText   = PopUpTextManager.Effective + ":" + totalDamage.ToString();
                }

                else if (projectile == Projectile.Type.Tesla)
                {
                    textColour  = Color.DarkKhaki;
                    totalDamage = TotalDamageCrunch(baseDmg, 0, enemy, ref popUpText, ref textColour);
                    popUpText   = PopUpTextManager.Neutral + ":" + totalDamage.ToString();
                }

                else
                {
                    textColour  = Color.Yellow;
                    totalDamage = TotalDamageCrunch(baseDmg, resistedDamage, enemy, ref popUpText, ref textColour) / 3;
                    popUpText   = PopUpTextManager.Resist + ":" + totalDamage.ToString();
                }
            }



            PopUpTextManager.Add(new PopUpText(popUpText, enemy.ScreenPos, textColour));

            return(totalDamage);
        }
Esempio n. 10
0
 public static void EnemyDamaged(float Damage, Enemy enemy, Projectile.Type projectile)
 {
     enemy.hitPoints -= GameManager.DamageCalculator(Damage, enemy, projectile);
 }
Esempio n. 11
0
    public Projectile MakeNewProjectile(string name, Vector2 offset, float speed, float rotation, int damage, Projectile.Type type)
    {
        Projectile newProjectile = Instantiate(projectilePrefab);

        newProjectile.transform.parent   = projectiles.transform;
        newProjectile.gameObject.name    = teamNumber + name;
        newProjectile.transform.position = transform.position;
        newProjectile.transform.Translate(offset);
        newProjectile.speed      = speed;
        newProjectile.direction  = facingDirection.Rotate(rotation);
        newProjectile.teamNumber = teamNumber;
        newProjectile.damage     = damage;
        newProjectile.type       = type;
        return(newProjectile);
    }