Esempio n. 1
0
    public void OnPlanetTreasure()
    {
        if (gameObject.tag == "Planet")
        {
            List <float> probabs = possiblePrizes.GetProbabilitiesByLevel(currSceneLevel);
            //float prob = CSP.GetRandomFloat();
            float prob = 0.75f;
            ConstGameCtrl.PlanetSurprize prize = possiblePrizes.GetNameByProbability(currSceneLevel, prob);

            int prizeNum = (int)prize;
            Debug.Log("Prize num: " + prizeNum);

            if (prizeNum == 0) // Gold
            {
                ResourceControl RC = Instantiate(moneyPrefab);
                RC.SetParams("Money");
                RC.transform.SetParent(gameObject.transform);
                RC.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                RC.myCollider.enabled      = false;
                RC.StartMove(myRadii / 2);
            }

            if (prizeNum == 1) // Health
            {
                ResourceControl RC = Instantiate(healthPrefab);
                RC.SetParams("Health");
                RC.transform.SetParent(gameObject.transform);
                RC.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                RC.myCollider.enabled      = false;
                RC.StartMove(myRadii / 2);
            }

            if (prizeNum == 2) // Shield
            {
                ResourceControl RC = Instantiate(shieldPrefab);
                RC.SetParams("Shield");
                RC.transform.SetParent(gameObject.transform);
                RC.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                RC.myCollider.enabled      = false;
                RC.StartMove(myRadii / 2);
            }

            if (prizeNum == 3) // Fuel
            {
                ResourceControl RC = Instantiate(fuelPrefab);
                RC.SetParams("Fuel");
                RC.transform.SetParent(gameObject.transform);
                RC.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                RC.myCollider.enabled      = false;
                RC.StartMove(myRadii / 2);
            }

            if (prizeNum > 3) // Minerals
            {
                TresureControl TC = Instantiate(planetTreasurePrefab);
                TC.SetMineralParams(ConstGameCtrl.instance.GetPrizeParams(prizeNum - 4).prizeMaterial, ConstGameCtrl.instance.GetPrizeParams(prizeNum - 4).prizeMesh, ConstGameCtrl.instance.GetPrizeParams(prizeNum - 4).prizeName, System.Enum.GetName(typeof(ConstGameCtrl.PlanetSurprize), prizeNum));
                TC.transform.SetParent(gameObject.transform);
                TC.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                TC.myCollider.enabled      = false;
                TC.StartMove(myRadii / 2);
            }
        }

        if (gameObject.tag == "Comet")
        {
            List <float> probabs = possiblePrizes.GetProbabilitiesByLevel(currSceneLevel);
            //float prob = CSP.GetRandomFloat();
            float prob = 0.95f;
            ConstGameCtrl.PlanetSurprize prize = possiblePrizes.GetNameByProbability(currSceneLevel, prob);

            int prizeNum = (int)prize;
            //Debug.Log("Prize num: " + prizeNum);

            ResourceControl RC;
            TresureControl  TC;

            if (prizeNum == 0) // Gold
            {
                RC = Instantiate(moneyPrefab);
                RC.SetParams("Money");
                RC.transform.position = gameObject.transform.position;
                RC.myCollider.enabled = true;
            }

            if (prizeNum == 1) // Health
            {
                RC = Instantiate(healthPrefab);
                RC.SetParams("Health");
                RC.transform.position = gameObject.transform.position;
                RC.myCollider.enabled = true;
            }

            if (prizeNum == 2) // Shield
            {
                RC = Instantiate(shieldPrefab);
                RC.SetParams("Shield");
                RC.transform.position = gameObject.transform.position;
                RC.myCollider.enabled = true;
            }

            if (prizeNum == 3) // Fuel
            {
                RC = Instantiate(fuelPrefab);
                RC.SetParams("Fuel");
                RC.transform.position = gameObject.transform.position;
                RC.myCollider.enabled = true;
            }

            if (prizeNum > 3) // Minerals
            {
                TC = Instantiate(planetTreasurePrefab);
                TC.SetMineralParams(ConstGameCtrl.instance.GetPrizeParams(prizeNum - 4).prizeMaterial, ConstGameCtrl.instance.GetPrizeParams(prizeNum - 4).prizeMesh, ConstGameCtrl.instance.GetPrizeParams(prizeNum - 4).prizeName, System.Enum.GetName(typeof(ConstGameCtrl.PlanetSurprize), prizeNum));
                TC.transform.position = gameObject.transform.position;
                TC.myCollider.enabled = true;
            }

            Collider myColl = GetComponent <Collider>();
            myColl.enabled = false;

            Invoke("OnRealDeath", 3f);
            cometTail.Stop();
            anim.SetTrigger("OnDeath");
            cometExplode.Play();
        }
    }
Esempio n. 2
0
    public void OnTriggerEnter(Collider other)
    {
        //Debug.Log("Collision was");

        if (other.gameObject.tag == "Planet" || other.gameObject.tag == "Sun" || other.gameObject.tag == "Enemy" || other.gameObject.tag == "Comet" || other.gameObject.tag == "Asteroid")
        {
            //Debug.Log("Hard object reached");

            myDamagable.TakeUltimateDamage();
        }

        if (other.gameObject.tag == "Prize")
        {
            //Debug.Log("Treasure reached");

            TresureControl TC           = other.gameObject.GetComponent <TresureControl>();
            string         prizeName    = TC.ReturnTreasureName();
            string         prizeNameSec = TC.ReturnTreasureSecondName();
            //Debug.Log("prizeNameSec " + prizeNameSec);
            ConstGameCtrl.instance.OnChangeHabar(prizeName, 1); // Maybe prizeNameSec!!!
            //ConstGameCtrl.instance.AddMineralToInventory(prizeName);
            TC.SelfDisable();
            PlayerResourceValueScript.Create(1, prnt);
        }

        if (other.gameObject.tag == "Resource")
        {
            //Debug.Log("Resource reached");
            int    value   = 0;
            string resName = other.gameObject.GetComponent <ResourceControl>().myName;
            //Debug.Log("Res name: " + resName);
            //ControlPanelCanvasScript CPCS = FindObjectOfType<ControlPanelCanvasScript>();

            if (resName == "Health")
            {
                int value_0 = (int)myDamagable.currentHealth;
                myDamagable.RestoreHealth();
                value = (int)myDamagable.currentHealth;
                //CPCS.UpdateHealth(myDamagable.currentHealth);
                PlayerResourceValueScript.Create(value - value_0, prnt);
            }

            if (resName == "Shield")
            {
                //Debug.Log("Shield reached");
                int value_0 = (int)myDamagable.currentShield;
                myDamagable.RestoreShield();
                value = (int)myDamagable.currentShield;
                //CPCS.UpdateShield(myDamagable.currentShield);
                PlayerResourceValueScript.Create(value - value_0, prnt);
            }

            if (resName == "Fuel")
            {
                int maxFuel = ConstGameCtrl.instance.GetMaxPlayerParam(ConstGameCtrl.PlayerShipUpgrades.fuel);
                value = maxFuel / 5;
                CommonSceneParams CSP = FindObjectOfType <CommonSceneParams>();
                CSP.AddFuel(value);
                value = (int)CSP.pFV;
                PlayerResourceValueScript.Create(value, prnt);
            }

            if (resName == "Money")
            {
                // Отправляем в ConstGameCtrl
                int rnd      = Random.Range(0, 6);
                int upgrader = 1;
                int lev      = ConstGameCtrl.instance.CurrentLevel;
                if (lev <= 19)
                {
                    upgrader = 4;
                }
                if (lev <= 13)
                {
                    upgrader = 3;
                }
                if (lev <= 8)
                {
                    upgrader = 2;
                }
                if (lev <= 3)
                {
                    upgrader = 1;
                }
                value = (50 + 10 * rnd) * upgrader;
                PlayerResourceValueScript.Create(value, prnt);
                resName = "Gold";
            }

            ConstGameCtrl.instance.OnChangeHabar(resName, value);

            other.gameObject.GetComponent <ResourceControl>().SelfDisable();
        }
    }