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); } }
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); } }
public void OnEventRaised(ConstGameCtrl.PlanetSurprize ps, int value) { prizeName = System.Enum.GetName(typeof(ConstGameCtrl.PlanetSurprize), (int)ps); prizeCount = value; response.Invoke(prizeName, prizeCount); }
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); }
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(); } }