Example #1
0
 private void DamageBase()
 {
     // Decrease player health
     playerHealth.DecreasePlayerHealth();
     // Destroy enemy and play friendly explosion
     enemyDamage.DestroyEnemy(this.gameObject, friendlyDeath);
 }
Example #2
0
    IEnumerator FollowPath(List <Waypoint> path)
    {
        var pathLength = path.Count;
        var iteration  = 0;

        foreach (Waypoint block in path)
        {
            iteration += 1;
            if (iteration == pathLength)
            {
                transform.position = block.transform.position;
                GetComponent <AudioSource>().PlayOneShot(baseDamageSFX);
                yield return(new WaitForSeconds(1f));

                friendlyBase.DamageBase();
                enemyDamage.DestroyEnemy();
                healthDisplay.UpdateHealth();
            }
            else
            {
                transform.position = block.transform.position;
                yield return(new WaitForSeconds(1f));
            }
        }
    }
Example #3
0
    private void Laser()
    {
        //slow
        targetEnemy.SlowEnemy(slowPercent);

        //damage
        //TODO Change the DMG
        targetEnemyForDMG.health = targetEnemyForDMG.health * (1f - 0.2f * damageOverTime * Time.deltaTime);
        print(targetEnemyForDMG.health + "health");
        print(damageOverTime * Time.deltaTime);

        if (targetEnemyForDMG.health <= 0)
        {
            targetEnemyForDMG.DestroyEnemy();
        }

        //graphics
        if (!lineRenderer.enabled)
        {
            lineRenderer.enabled = true;
            impactEffect.Play();
            impactLight.enabled = true;
        }

        Vector3 dirFromEnemyToTower = firePoint.transform.position - target.position;

        impactEffect.transform.position = target.position + dirFromEnemyToTower.normalized * 0.5f;
        impactEffect.transform.rotation = Quaternion.LookRotation(dirFromEnemyToTower);

        //seting the fire point
        lineRenderer.SetPosition(0, firePoint.transform.position);
        //setting the target
        lineRenderer.SetPosition(1, target.position);
    }