Exemplo n.º 1
0
 public void Raise(ConstGameCtrl.PlanetSurprize ps, int value)
 {
     //Debug.Log("Listeners count: " + listeners.Count.ToString());
     for (int i = listeners.Count - 1; i >= 0; i--)
     {
         listeners[i].OnEventRaised(ps, value);
     }
 }
Exemplo n.º 2
0
 public void GetParameterUpdate(string prize, int value)
 {
     //Debug.Log("GetParametersUpdate was raised");
     //Debug.Log("I`ll get " + prize + " in value of " + value.ToString());
     if (prize == "Health") // ConstGameCtrl.PlanetSurprize.Health)
     {
         UpdateHealth(value);
         string message = " Восстановлено здоровья до " + value.ToString() + " HP";
         UpdateHistory(message);
     }
     else if (prize == "Shield") // ConstGameCtrl.PlanetSurprize.Shield)
     {
         UpdateShield((float)value);
         string message = " Восстановлено брони до " + value.ToString() + " SP";
         UpdateHistory(message);
     }
     else if (prize == "Fuel") // ConstGameCtrl.PlanetSurprize.Fuel)
     {
         UpdateFuel((float)value);
         string message = " Дополучено топлива до " + value.ToString() + " FP";
         UpdateHistory(message);
     }
     else if (prize == "Gold") // ConstGameCtrl.PlanetSurprize.Gold)
     {
         UpdateMoney(value);
         string message = " Получена валюта. Дебет: " + value.ToString() + " $";
         UpdateHistory(message);
     }
     else
     {
         ConstGameCtrl.PlanetSurprize ps = (ConstGameCtrl.PlanetSurprize)System.Enum.Parse(typeof(ConstGameCtrl.PlanetSurprize), prize);
         string mineral = ConstGameCtrl.instance.allPrizes[(int)ps - 4].prizeName;
         string message = " Собран минерал:\n " + mineral;
         UpdateHistory(message);
     }
 }
Exemplo n.º 3
0
 public void OnEventRaised(ConstGameCtrl.PlanetSurprize ps, int value)
 {
     prizeName  = System.Enum.GetName(typeof(ConstGameCtrl.PlanetSurprize), (int)ps);
     prizeCount = value;
     response.Invoke(prizeName, prizeCount);
 }
Exemplo n.º 4
0
    public ConstGameCtrl.PlanetSurprize GetNameByProbability(int level, float probability)
    {
        //Debug.Log("Level: " + level.ToString() + "  Probability: " + probability.ToString());

        ConstGameCtrl.PlanetSurprize name = allPlanetPrizes[0].nameOfPrize;

        List <float> cummulProbList = new List <float>();
        List <ConstGameCtrl.PlanetSurprize> specNames = new List <ConstGameCtrl.PlanetSurprize>();

        int cnt = 0;

        while ((cnt < allPlanetPrizes[0].acceptableLevels.Count) && (level >= allPlanetPrizes[0].acceptableLevels[cnt]))
        {
            cnt++;
        }
        cnt--;

        //Debug.Log("Cnt: " + cnt.ToString());

        int firstPrize = 0;

        for (int i = 0; i < allPlanetPrizes.Count; ++i)
        {
            if (allPlanetPrizes[i].probabilityByLevel[cnt] > 0)
            {
                firstPrize = i;
                break;
            }
        }

        //Debug.Log("firstPrize: " + firstPrize.ToString());

        cummulProbList.Add(allPlanetPrizes[firstPrize].probabilityByLevel[cnt]); // насчет нуля нельзя быть уверенным!!!
        //Debug.Log("First list add");
        specNames.Add(allPlanetPrizes[firstPrize].nameOfPrize);
        //Debug.Log("Second list add");
        float prevVal = cummulProbList[0];

        //Debug.Log("prevVal: " + prevVal.ToString());
        Debug.Log("Cummul: " + prevVal.ToString() + "  " + allPlanetPrizes[firstPrize].nameOfPrize);

        for (int i = firstPrize + 1; i < allPlanetPrizes.Count; ++i)
        {
            if (allPlanetPrizes[i].probabilityByLevel[cnt] > 0)
            {
                prevVal += allPlanetPrizes[i].probabilityByLevel[cnt];
                cummulProbList.Add(prevVal);
                specNames.Add(allPlanetPrizes[i].nameOfPrize);
                Debug.Log("Cummul: " + prevVal.ToString() + "  " + allPlanetPrizes[i].nameOfPrize);
            }
        }

        //Debug.Log("Probability: " + probability);

        for (int i = 0; i < cummulProbList.Count; ++i)
        {
            if (probability <= cummulProbList[i])
            {
                //Debug.Log("i: " + i);
                name = specNames[i];
                break;
            }
        }

        //Debug.Log("Returned name: " + name);

        return(name);
    }
Exemplo n.º 5
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();
        }
    }