Example #1
0
    public GameObject CreateTurret(Vector3 pos)
    {
        GameObject newTurret = null;

        int price = TurretInfo.GetTurretInfo(selectableTurrets[selectedTurret]).price[0];

        if (stageController.gold >= price)
        {
            newTurret = Instantiate(selectablePrefabs[selectedTurret]);

            TurretScript ts = newTurret.GetComponent <TurretScript>();
            ts.SetPosition(pos);

            list_turret.Add(ts);

            if (ts.turretID == TurretInfo.TURRET_MINORIKO)
            {
                MinorikoScript ms = newTurret.GetComponent <MinorikoScript>();
                if (ms != null)
                {
                    list_minoriko.Add(ms);
                }
            }

            stageController.gold -= price;
        }

        return(newTurret);
    }
Example #2
0
    public void DeleteEnemy(EnemyScript es)
    {
        //金币奖励
        mapController.gameObject.GetComponent <StageController>().gold += es.reward;
        TextEffectManager.instance.ShowTextAtPosition("+" + es.reward, enemyGoldColor, 25, es.transform.position + new Vector3(0, 0.5f), 0.3f);

        int     id  = es.ID;
        Vector3 pos = es.transform.position;
        //有复活标记并且是被打死的才能复活
        bool rs = es.resurrect && es.hp <= 0 && !es.cursed;

        //秋穰子收获

        for (int i = 0; i < turretController.list_minoriko.Count; i++)
        {
            MinorikoScript ms = turretController.list_minoriko[i];
            if (ms.InFireRange(es.transform))
            {
                float rate;
                if (ms.level == 0)
                {
                    rate = 0.6f;
                }
                else
                {
                    rate = 1f;
                }
                ms.Gain(rate * (float)es.reward);
            }
        }

        //结算蕾蒂的冰爆效果
        if (PlayerInfo.instance.assist == Utils.ASSIST_LETTY)
        {
            if (es.HasDebuff(21))
            {
                foreach (EnemyScript enemy in enemyList)
                {
                    if (enemy != es && Vector3.Distance(es.transform.position, enemy.transform.position) <= 2)
                    {
                        enemy.HitBy(es.maxHp / 10, 0, 21, 1);
                    }
                }
            }
        }

        enemyList.Remove(es);
        Destroy(es.gameObject);

        //如果能复活
        if (rs)
        {
            EnemyScript newes = CreateEnemy(id, pos).GetComponent <EnemyScript>();
            newes.resurrect = false;
            newes.SetHP(es.maxHp * es.resurrectRatio, es.maxHp * es.resurrectRatio);

            ParticleEffectManager.ShowResurrectEffect(pos + new Vector3(0, -0.5f), newes.transform);
        }
    }
Example #3
0
    public void DeleteTurret(TurretScript ts)
    {
        if (ts.turretID == TurretInfo.TURRET_MINORIKO)
        {
            MinorikoScript ms = ts.gameObject.GetComponent <MinorikoScript>();
            if (ms != null && list_minoriko.Contains(ms))
            {
                list_minoriko.Remove(ms);
            }
        }


        if (list_turret.Contains(ts))
        {
            Destroy(ts.gameObject);
            list_turret.Remove(ts);
        }
    }