public void SpawnCoin(CoinDrop coinPrefab) { CoinDrop coin = Instantiate(coinPrefab, transform.position, Quaternion.identity) as CoinDrop; coin.transform.SetParent(gameCanvas.transform, false); coin.transform.position = new Vector2(enemyUnit.transform.position.x, transform.parent.position.y); }
// Start is called before the first frame update void Start() { player = Player.instance; coinDrop = CoinDrop.instance; clicker = Clicker.instance; upgradeHandler = UpgradeHandler.instance; }
void Awake() { enemyPoolList = GameObject.Find("EnemyPool").GetComponent <EnemyPool> ().enemyList; showScore = GameObject.Find("ScoreText").GetComponent <ShowScore> (); _spawnController = GameObject.Find("SpawnController").GetComponent <SpawnController> (); coinPool = GameObject.Find("CoinPool").GetComponent <CoinPool> (); coinDrop = GetComponent <CoinDrop> (); }
// Start is called before the first frame update void Start() { player = Player.instance; clicker = Clicker.instance; multi = Multiplier.instance; platinum = DiamondUpgrades.instance; drop = CoinDrop.instance; upgradeHandler = UpgradeHandler.instance; tierHandler = TierHandler.instance; }
public void Awake() { Instance = this; }
private void Awake() { instance = this; }
private void PossibleCoin() { coins = ListManager.current.coins; frequence = Mathf.Clamp01 (frequence); // On choisit au maximum 5 pièces autour de la valeur moyenne des drops souhaités // Exemple : mediumValue = 7, pièce directement en dessous 5, on prend 1, 2, 5, 10, 20 int mediane = coins.Length - 1; // Au pire si on ne trouve rien dans la boucle, on sait que la médiane sera sur la dernière pièce int tabSize = 3; // Au pire si on ne trouve rien dans la boucle, on sait que le tableau des pièces possibles fera 3 int firstElement = 0; // Premier élément du tableau de "coins" à mettre dans "possibleCoins" for (int i = 0; i < coins.Length; i++) { // Si la différence entre la valeur souhaitée et la valeur de la pièce est négative (strictement), on doit retenir la valeur précédente comme pièce médiane if (mediumValue - coins [i].pointToAdd < 0) { mediane = i == 0 ? 0 : (i - 1); // S'assurer qu'on prenne au pire la première pièce tabSize = mediane > 1 ? 5 : (mediane + 3); if (mediane == coins.Length - 2) // On modifie juste la valeur si on tombe sur l'avant-dernier élément tabSize = 4; break; } } // Calcul de la position du premier élément dans la liste totale des pièces if (mediane > 2) firstElement = mediane - 2; else firstElement = 0; // On créé le tableau des pièces utilisables possibleCoins = new CoinDrop[tabSize]; for (int i = 0; i < tabSize; i++) { // On calcule les valeurs 'moyennes' entre les valeurs exactes des pièces // Ceci permet d'utiliser la loi de Poisson pour le calcul de probabilité d'apparition des pièces // Exemple : entre 5 et 10, on trouve la valeur 7 qui correspond aux proba cumulées de faire apparaître un 5 // On calculera donc la loi de Poisson pour un 7 à la place du 5 (solution la plus "fiable") int poissonValue; if (i < tabSize - 1) { poissonValue = Mathf.FloorToInt ((coins [firstElement + i].pointToAdd + coins [firstElement + i + 1].pointToAdd) / 2f); } else { poissonValue = 0; } // On initialise chaque élément du tableau possibleCoins [i] = new CoinDrop (coins [firstElement + i], poissonValue, mediumValue); } mediumSum = mediumValue; // La première valeur souhaitée est celle de la valeur moyenne }