Example #1
0
        protected virtual void TakeDamage(int damage, Turret.DamageType dt)
        {
            if (currentHealth < 0 || Mathf.Approximately(currentHealth, 0))
            {
                return;
            }
            resistance.TryGetValue(dt, out var resis);
            var actualDamage = (int)(damage * resis);

            TakeDamage(actualDamage);
        }
Example #2
0
    public void Damage(int damage, Turret.DamageType damageType, Turret.TurretSize turretSize)
    {
        int totalDamage = damage;

        // calculate damage
        if (parent == Parent.Ship)
        {
            if (damageType == Turret.DamageType.energy)
            {
                if (armorEnergyResist > 0)
                {
                    totalDamage -= damage / 100 * armorEnergyResist;
                }
            }
            else if (damageType == Turret.DamageType.kinetic)
            {
                if (armorKineticResist > 0)
                {
                    totalDamage -= damage / 100 * armorKineticResist;
                }
            }

            if (turretSize == Turret.TurretSize.small)
            {
                if (armorLightResist > 0)
                {
                    totalDamage -= damage / 100 * armorLightResist;
                }
            }
            else if (turretSize == Turret.TurretSize.medium)
            {
                if (armorMedResist > 0)
                {
                    totalDamage -= damage / 100 * armorMedResist;
                }
            }
            else if (turretSize == Turret.TurretSize.big)
            {
                if (armorHeavyResist > 0)
                {
                    totalDamage -= damage / 100 * armorHeavyResist;
                }
            }
        }

        totalArmor -= totalDamage;

        if (totalArmor <= 0)
        {
            DestroyObject();
        }
    }
Example #3
0
 public virtual void TakeDamage(int damage, Turret.DamageType dt, bool ignoreResistance)
 {
     if (ignoreResistance)
     {
         TakeDamage(damage, dt);
         return;
     }
     else
     {
         TakeDamage(damage);
         return;
     }
 }
Example #4
0
 public ExplosiveEffect(ExplosiveEffect ee) : base(ee)
 {
     radius     = ee.radius;
     damageType = ee.damageType;
     damage     = ee.damage;
 }
Example #5
0
    public void SpawnRocket(Transform prefab, Transform gun, int damage, float speed1, Turret.DamageType damageType, Turret.TurretSize turretSize)
    {
        var rocketShotTransform = Instantiate(prefab) as Transform;

        RocketScript rocketShot = rocketShotTransform.gameObject.GetComponent <RocketScript>();

        rocketShot.damageType = damageType;
        rocketShot.turretSize = turretSize;
        rocketShot.speed      = speed1;
        rocketShot.damage     = damage;
        rocketShot.parentGuid = guid;
        // rocketShot.target = target;
        rocketShot.isGuided = false;
        if (rocketShot != null)
        {
            rocketShot.transform.position = gun.position;
            rocketShot.transform.rotation = gun.rotation;
        }
    }
Example #6
0
    private void SpawnBullet(Transform prefab, Transform gun, int damage, float speed1, Turret.DamageType damageType, Turret.TurretSize turretSize)
    {
        var bulletShotTransform = Instantiate(prefab) as Transform;

        bulletShotTransform.position = gun.position;

        BulletScript bulletShot = bulletShotTransform.gameObject.GetComponent <BulletScript>();

        if (bulletShot != null)
        {
            bulletShot.damageType         = damageType;
            bulletShot.turretSize         = turretSize;
            bulletShot.speed              = speed1;
            bulletShot.damage             = damage;
            bulletShot.parentGuid         = guid;
            bulletShot.transform.rotation = gun.rotation;
        }
    }
 public ContinuousDamage(ContinuousDamage cd) : base(cd)
 {
     damagePerSecond = cd.damagePerSecond;
     damageType      = cd.damageType;
 }