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; }
/// <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; }
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); }
/// <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)); }
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; }
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; }
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; }
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; }
//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); }
public static void EnemyDamaged(float Damage, Enemy enemy, Projectile.Type projectile) { enemy.hitPoints -= GameManager.DamageCalculator(Damage, enemy, projectile); }
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); }