Esempio n. 1
0
    protected virtual void Shot(EnemyScr enemy)
    {
        float     tmpz = Stvol.rotation.eulerAngles.y * Mathf.Deg2Rad;
        BulletScr bull = Instantiate(Resources.Load("Object/GAME/Towers/Bullet") as GameObject, Stvol.GetChild(0).position, new Quaternion()).GetComponent <BulletScr>();

        bull.Target     = enemy;
        bull.TempTarget = enemy.transform.position;
        bull.Damage     = Damage;
    }
Esempio n. 2
0
    private void Awake()
    {
        GM = FindObjectOfType <GameManager>();

        AM    = FindObjectOfType <AudioManager>();
        level = GM.slainEnemies;

        if (GM.onFinalLevel1)
        {
            //Enemy = EnemyTypes[PlayerPrefs.GetInt("statusPref_survivor", 1)];
            setAllyFinal();
            getAllyFinal();
            Enemy.name = "Enemy";
            Heavy      = Instantiate(AIH, posAIH.position, Quaternion.identity);
            AIHS       = Heavy.GetComponent <EnemyScr>();

            Middle = Instantiate(AIM, posAIL.position, Quaternion.identity);
            AIMS   = Middle.GetComponent <EnemyScr>();

            Light = Instantiate(AIL, posAIM.position, Quaternion.identity);
            AILS  = Light.GetComponent <EnemyScr>();
        }

        //else if (GM.onFinalLevel2)
        //{
        //    //Enemy = EnemyTypes[PlayerPrefs.GetInt("statusPref_survivor", 1)];

        //    Enemy.name = "Enemy";

        //}


        //ES = Enemy.GetComponent<EnemyScr>();



        else if (level == 2 && GM.statusE[ES.ID] == false)
        {
            Heavy = Instantiate(AIH, posAIH.position, Quaternion.identity);
            Heavy.transform.Rotate(new Vector3(0, 0, 180));
            AIHS = Heavy.GetComponent <EnemyScr>();
        }

        else if (level == 5 && GM.statusE[ES.ID] == false)
        {
            Middle = Instantiate(AIM, posAIL.position, Quaternion.identity);
            AIMS   = Middle.GetComponent <EnemyScr>();

            Light = Instantiate(AIL, posAIM.position, Quaternion.identity);
            AILS  = Light.GetComponent <EnemyScr>();
            Debug.Log(AIMS);
            Debug.Log(AILS);
        }
    }
Esempio n. 3
0
 private void OnTriggerEnter(Collider other)
 {
     Debug.Log(other.gameObject.name);
     if (other.gameObject.tag == "Enemy")
     {
         enemy = other.transform.parent.GetComponent <EnemyScr>();
         enemy.enemyLp--;
         myBody.velocity = Vector3.zero;
         Debug.Log("Hit");
         Destroy(this.gameObject);
     }
 }
Esempio n. 4
0
 protected override void Shot(EnemyScr enemy)
 {
     if (Time.time - SpeedShotStartTime >= 1f / SpeedShot)
     {
         MageBullet bull = Instantiate(Resources.Load("Object/GAME/Towers/FrostMage/BulletMage") as GameObject, new Vector3(X, 2f, Y), new Quaternion()).GetComponent <MageBullet>();
         bull.Target        = enemy;
         bull.Damage        = Damage;
         bull.TempTarget    = enemy.transform.position;
         bull.SlowDown      = SlowEffect;
         bull.RangeDamage   = RangeDamage;
         SpeedShotStartTime = Time.time;
     }
 }
Esempio n. 5
0
    protected virtual void Turn(EnemyScr target)
    {
        Vector3 diff = target.transform.position - Stvol.position;

        diff.Normalize();
        float rot_z = Mathf.Atan2(diff.x, diff.z) * Mathf.Rad2Deg;

        if (rot_z < 0)
        {
            rot_z += 360;
        }

        if (Mathf.Abs(Stvol.rotation.eulerAngles.y - rot_z) <= RotationSpeed * del)
        {
            Stvol.rotation = Quaternion.Euler(-90f, rot_z, 0);
            if (Time.time - SpeedShotStartTime >= 1f / SpeedShot)
            {
                Shot(target);
                SpeedShotStartTime = Time.time;
            }
        }
        else
        {
            float tmpz = Stvol.rotation.eulerAngles.y;
            if (tmpz < rot_z)
            {
                tmpz += 360;
            }

            if (tmpz - rot_z > 180)
            {
                Stvol.rotation = Quaternion.Euler(-90f, Stvol.rotation.eulerAngles.y + RotationSpeed * del, 0f);
            }
            else
            {
                Stvol.rotation = Quaternion.Euler(-90f, Stvol.rotation.eulerAngles.y - RotationSpeed * del, 0f);
            }
        }
        TurnStartTime = Time.time;
    }
Esempio n. 6
0
 void getAllyFinal()
 {
     Debug.Log("ID");
     Debug.Log(PlayerPrefs.GetInt("statusPref_survivor"));
     Debug.Log("ID");
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 1)
     {
         ES = Enemy.GetComponent <EnemyDesertScr>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 2)
     {
         ES = Enemy.GetComponent <EnemyRainForestScr>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 3)
     {
         ES = Enemy.GetComponent <EnemyScrUnderground>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 4)
     {
         ES = Enemy.GetComponent <EnemyManufactureScr>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 5)
     {
         ES = Enemy.GetComponent <EnemyScrArena>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 6)
     {
         ES = Enemy.GetComponent <EnemyAirArenaScr>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 7)
     {
         ES = Enemy.GetComponent <EnemyScr>();//.enabled = false;
     }
     if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 8)
     {
         ES = Enemy.GetComponent <EnemyBridgeScr>();//.enabled = false;
     }
 }
Esempio n. 7
0
    // Start is called before the first frame update
    void Start()
    {
        PS    = Player.GetComponent <PlayerScr>();
        PS.ES = ES;
        if (GM.onFinalLevel1)
        {
            getAllyFinal();


            ES.tag              = "Player";
            ES.ally             = true;
            ES.gameObject.layer = 15;
            foreach (Transform child in ES.transform)
            {
                if (child.gameObject.tag == "Enemy")
                {
                    child.gameObject.tag = "Player";
                }
                if (child.gameObject.layer == 11)
                {
                    child.gameObject.layer = 15;
                }
            }
            ES.AIList.Add(Light);
            ES.AIList.Add(Middle);
            ES.AIList.Add(Heavy);
        }

        else if (level == 2 && GM.statusE[ES.ID] == false)
        {
            ES = Enemy.GetComponent <EnemyScr>();


            ES.currentHP = 0;
            ES.tag       = "wall";

            foreach (Transform child in ES.transform)
            {
                if (child.gameObject.tag == "Enemy")
                {
                    child.gameObject.tag = "wall";
                }
            }
        }
        else if (level == 5 && GM.statusE[ES.ID] == false)
        {
            ES = Enemy.GetComponent <EnemyScr>();


            ES.tag              = "Player";
            ES.ally             = true;
            ES.gameObject.layer = 15;
            foreach (Transform child in ES.transform)
            {
                if (child.gameObject.tag == "Enemy")
                {
                    child.gameObject.tag = "Player";
                }
                if (child.gameObject.layer == 11)
                {
                    child.gameObject.layer = 15;
                }
            }
            ES.AIList.Add(Light);
            ES.AIList.Add(Middle);
        }
        else
        {
            ES = Enemy.GetComponent <EnemyScr>();
        }


        if (image == null)
        {
            Debug.LogError("Error: No image on " + name);
        }


        if (level > 2 && level < 5)
        {
            startQ = startQM;
            midQ   = midQM;
            lowQ   = lowQM;
            deathQ = deathQM;
        }
        else if (level > 5 && level < 8)
        {
            startQ = startQL;
            midQ   = midQL;
            lowQ   = lowQL;
            deathQ = deathQL;
        }
    }
Esempio n. 8
0
    void Update()
    {
        del = Time.time - TurnStartTime;
        if (SearchEnemy)
        {
            int  BeginX = Mathf.CeilToInt((X - Range < 0)  ? 0  : X - Range);
            int  BeginY = Mathf.CeilToInt((Y - Range < 0)  ? 0  : Y - Range);
            int  EndX   = Mathf.CeilToInt((X + Range > GlobalData.LevelSize) ? GlobalData.LevelSize : X + Range);
            int  EndY   = Mathf.CeilToInt((Y + Range > GlobalData.LevelSize) ? GlobalData.LevelSize : Y + Range);
            bool flag   = false;
            for (int i = BeginX; i < EndX; i++)
            {
                for (int j = BeginY; j < EndY; j++)
                {
                    foreach (EnemyScr enemy in GlobalData.EnemyMatrix[j, i])
                    {
                        if (enemy != null && Vector3.Magnitude(enemy.transform.position - transform.position) <= Range)
                        {
                            if (flag == false)
                            {
                                TempTarget = enemy;
                                flag       = true;
                            }

                            if (TargetPriority == 1)
                            {
                                if (enemy.Health > TempTarget.Health)
                                {
                                    TempTarget = enemy;
                                }
                            }
                            else if (TargetPriority == 2)
                            {
                                if (enemy.Health < TempTarget.Health)
                                {
                                    TempTarget = enemy;
                                }
                            }
                        }
                    }
                }
            }
            if (TempTarget != null)
            {
                SearchEnemy = false;
            }
        }
        else
        {
            if (TempTarget != null && Vector3.Magnitude(TempTarget.transform.position - transform.position) <= Range)
            {
                Turn(TempTarget);
            }
            else
            {
                SearchEnemy = true;
                TempTarget  = null;
            }
        }
        TurnStartTime = Time.time;
    }