Пример #1
0
    void OnCollisionStay(Collision cl)
    {
        if (stats.areaDamage == false)
        {
            if (cl.gameObject.tag == enemyBuildingTag)
            {
                stats.attackTimer += Time.deltaTime;

                if (stats.attackTimer >= (stats.rateOf))
                {
                    stats.attackTimer -= stats.rateOf;

                    enemyBuildingStats         = cl.gameObject.GetComponent(typeof(BuildingsStats)) as BuildingsStats;
                    enemyBuildingStats.health -= stats.attack;
                }
            }
            else if (cl.gameObject.tag == enemyUnitTag)
            {
                stats.attackTimer += Time.deltaTime;

                if (stats.attackTimer >= (stats.rateOf))
                {
                    stats.attackTimer -= stats.rateOf;

                    enemyUnitStats         = cl.gameObject.GetComponent(typeof(UnitStats)) as UnitStats;
                    enemyUnitStats.health -= stats.attack;
                }
            }
        }
        else
        {
            stats.attackTimer += Time.deltaTime;

            if (stats.attackTimer >= (stats.rateOf))
            {
                stats.attackTimer -= stats.rateOf;
                Collider[] units = Physics.OverlapSphere(itsOwnTrasform.position, stats.area);
                foreach (Collider col in units)
                {
                    if (col.attachedRigidbody != null && (col.gameObject.tag == enemyUnitTag || col.gameObject.tag == enemyBuildingTag))
                    {
                        col.attachedRigidbody.AddExplosionForce(3000.0f, itsOwnTrasform.position, stats.area, 3.0f);
                        if (col.gameObject.tag == enemyUnitTag)
                        {
                            enemyUnitStats         = col.gameObject.GetComponent(typeof(UnitStats)) as UnitStats;
                            enemyUnitStats.health -= stats.attack;
                        }
                    }
                }
            }
        }
    }
Пример #2
0
    void Update()
    {
        if (b == false)
        {
            GameObject[] RedUnitList;
            RedUnitList = GameObject.FindGameObjectsWithTag("RedUnit");
            GameObject[] BlueUnitList;
            BlueUnitList = GameObject.FindGameObjectsWithTag("BlueUnit");
            GameObject[] RedBuildingList;
            RedBuildingList = GameObject.FindGameObjectsWithTag("RedBuilding");
            GameObject[] BlueBuildingList;
            BlueBuildingList = GameObject.FindGameObjectsWithTag("BlueBuilding");

            foreach (GameObject o in RedUnitList)
            {
                UnitStats stat = o.GetComponent(typeof(UnitStats)) as UnitStats;
                stat.active = false;
            }
            foreach (GameObject o in BlueUnitList)
            {
                UnitStats stat = o.GetComponent(typeof(UnitStats)) as UnitStats;
                stat.active = false;
            }
            foreach (GameObject o in RedBuildingList)
            {
                BuildingsStats stat = o.GetComponent(typeof(BuildingsStats)) as BuildingsStats;
                stat.active = false;
            }
            foreach (GameObject o in BlueBuildingList)
            {
                BuildingsStats stat = o.GetComponent(typeof(BuildingsStats)) as BuildingsStats;
                stat.active = false;
            }
        }
        else
        {
            GameObject[] RedUnitList;
            RedUnitList = GameObject.FindGameObjectsWithTag("RedUnit");
            GameObject[] BlueUnitList;
            BlueUnitList = GameObject.FindGameObjectsWithTag("BlueUnit");
            GameObject[] RedBuildingList;
            RedBuildingList = GameObject.FindGameObjectsWithTag("RedBuilding");
            GameObject[] BlueBuildingList;
            BlueBuildingList = GameObject.FindGameObjectsWithTag("BlueBuilding");

            foreach (GameObject o in RedUnitList)
            {
                UnitStats stat = o.GetComponent(typeof(UnitStats)) as UnitStats;
                stat.active = true;
            }
            foreach (GameObject o in BlueUnitList)
            {
                UnitStats stat = o.GetComponent(typeof(UnitStats)) as UnitStats;
                stat.active = true;
            }
            foreach (GameObject o in RedBuildingList)
            {
                BuildingsStats stat = o.GetComponent(typeof(BuildingsStats)) as BuildingsStats;
                stat.active = true;
            }
            foreach (GameObject o in BlueBuildingList)
            {
                BuildingsStats stat = o.GetComponent(typeof(BuildingsStats)) as BuildingsStats;
                stat.active = true;
            }
        }

        if (bb == true)
        {
            SceneManager.LoadScene("Main");
            bb = false;
        }
    }
Пример #3
0
    public void setStats(GameObject newUnit, char type, string unitClass, int level)
    {
        UnitStats      unitS     = newUnit.GetComponent(typeof(UnitStats)) as UnitStats;
        BuildingsStats buildingS = newUnit.GetComponent(typeof(BuildingsStats)) as BuildingsStats;

        if (type == 'u')
        {
            switch (unitClass)
            {
            case "warrior":
                unitS.category = "warrior";
                unitS.active   = true;
                unitS.health   = 10;
                unitS.attack   = 3;
                unitS.rateOf   = 0.3;
                unitS.speed    = 650;
                break;

            case "giant":
                unitS.category   = "giant";
                unitS.active     = true;
                unitS.health     = 180;
                unitS.attack     = 4;
                unitS.rateOf     = 3;
                unitS.speed      = 300;
                unitS.areaDamage = true;
                unitS.area       = 6.0f;
                break;

            case "archer":
                unitS.category        = "archer";
                unitS.active          = true;
                unitS.health          = 2;
                unitS.attack          = 2;
                unitS.rateOf          = 0.7;
                unitS.speed           = 500;
                unitS.ranged          = true;
                unitS.range           = 4000.0f;
                unitS.projectile      = projectile;
                unitS.attackBuildings = false;
                break;
            }
        }
        if (type == 'b')
        {
            switch (unitClass)
            {
            case "barrack":
                buildingS.category = "Spawner";
                buildingS.unit     = "warrior";
                buildingS.health   = 50;
                buildingS.active   = true;
                buildingS.attack   = 0;
                buildingS.rateOf   = 0.7;
                break;

            case "giantBarrack":
                buildingS.category = "Spawner";
                buildingS.unit     = "giant";
                buildingS.health   = 120;
                buildingS.active   = true;
                buildingS.attack   = 0;
                buildingS.rateOf   = 5.0;
                break;

            case "archerBarrack":
                buildingS.category = "Spawner";
                buildingS.unit     = "archer";
                buildingS.health   = 40;
                buildingS.active   = true;
                buildingS.attack   = 0;
                buildingS.rateOf   = 1.3;
                break;
            }
        }
    }