using UnityEngine; using System.Collections; public class EnemyController : InteractableObject { public int health; private GameObject player; private Rigidbody2D playerRigid; public GameObject bullet; public float shotCoolDown = 0.5f; public float initShotWait = 0.0f; protected float lastShotTime = 0.0f; public GameObject healthDisp; // Use this for initialization protected virtual void Start () { lastShotTime = Time.time + initShotWait; player = GameObject.FindGameObjectWithTag("Player"); playerRigid = player.GetComponent(); healthDisp.SetActive(true); } // Update is called once per frame void FixedUpdate () { if (Time.time - lastShotTime >= shotCoolDown) { lastShotTime = Time.time; shoot(Vector2.up); shoot(Vector2.down); shoot(Vector2.left); shoot(Vector2.right); } } protected void shoot(Vector2 startVelocity) { GameObject bulletClone = (GameObject)Instantiate(bullet, transform.position, transform.rotation); MissileController bulletScript = bulletClone.GetComponent(); bulletScript.startVelocity = startVelocity; if (player != null) bulletScript.targetPos = player.transform.position; bulletScript.target = player; bulletScript.targetRigid = playerRigid; bulletScript.ignoreList = GetComponentsInChildren(); bulletScript.spawningObject = this; bulletScript.enabled = true; } public override void shot() { health--; //Debug.Log("I got hit, health: " + health); if (health <= 0) { GameMemory.control.enemyDeath(); Destroy(gameObject); } Vector3 newScale = new Vector3(health / 10f, health / 10f, health / 10f); //Debug.Log("new scale = " + newScale); if (healthDisp != null) { healthDisp.transform.localScale = newScale; } transform.localScale = newScale; } }