public virtual void NotifyDie(GameObject enemy, bool killedByPlayer) { BasicEnnemy e = enemy.GetComponent <BasicEnnemy>(); e.Died = true; soundManager.Play("DeathEnemy", false); if (e == cm.lockEnemy) { cm.lockEnemy = null; } // GOLD if (killedByPlayer) { Vector3 randomPos = new Vector3(); GameObject c; float delay; for (int i = 1; i <= (e.NbrGold / 5); i++) { randomPos = UnityEngine.Random.insideUnitCircle * 7; c = Instantiate(FloatingCoins, enemy.transform.position + randomPos, Quaternion.identity); delay = (float)i / 10.0f; c.GetComponent <CoinAnimation> ().Play(delay); } } if (WaveManager) { WaveManager.EnemyDie(enemy); } }
protected void checkComboBoss() { bool isUsed = false; foreach (GameObject genemy in gm.EnemiesOnScreen) { BasicEnnemy enemy = genemy.GetComponent <BasicEnnemy>(); Result res = checkCombination(enemy); if (res == Result.Complete) { clearCombination(); isUsed = true; break; } else if (res == Result.Partial) { isUsed = true; } } if (!isUsed) { gm.Combination.Reset(); gm.ResetComboPoint(); } }
// Get the type of button pressed and update the Combination Handler public void ButtonPressed(CombinationHandler.Button button) { #if UNITY_EDITOR if (button != CombinationHandler.Button.POWER_UP) { Combination.AddButtonToCombination(button); } else { foreach (GameObject g in EnemiesOnScreen) { BasicEnnemy e = g.GetComponent <BasicEnnemy>(); e.DecreaseLifePoint(1); if (e.Died) { ComboCount += 1; } } // You can change this if you don t like this behaviour or for testing abilities. Debug.Log("I changed the ability behaviour in Unity editor. You press the ability to kill every enemy (better for debugging). - Victor -"); } #else if (button != CombinationHandler.Button.POWER_UP) { Combination.AddButtonToCombination(button); } else if (AbilityEnabled && powerUp) { powerUp.activate(); SetAbilityActive(false); } #endif }
protected void checkComboBoss() { bool isUsed = false; foreach (GameObject genemy in gm.EnemiesOnScreen) { BasicEnnemy enemy = genemy.GetComponent <BasicEnnemy>(); Result res = checkCombination(enemy); if (res == Result.Complete) { clearCombination(); isUsed = true; break; } else if (res == Result.Partial) { isUsed = true; } } if (!isUsed) { soundManager.Play("WrongCombo", false); if (immunity && error != 0) { error -= 1; gm.Combination.PopButton(); } else { error = 1; gm.Combination.Reset(); gm.ResetComboPoint(); } } }
protected void failCombination(BasicEnnemy enemy) { if (!immunity || error == 0) { enemy.FeedBackCombination(gm.Combination, true); } }
protected void clearCombination() { foreach (GameObject genemy in gm.EnemiesOnScreen) { BasicEnnemy enemy = genemy.GetComponent <BasicEnnemy>(); enemy.FeedBackCombination(gm.Combination, true); } }
protected void successCombination(BasicEnnemy enemy) { enemy.DecreaseLifePoint(1); gm.AddScore(10, Vector3.zero); //? gm.AddComboPoint(1, Vector3.zero); //? gm.Combination.Reset(); enemy.FeedBackCombination(gm.Combination, true); }
void Summon() { // The wave continue if (EnemiesForCurrentWave.Count >= 1) { Transform BasicEnemy = EnemiesForCurrentWave [0].prefab.transform; int randomIndex = Random.Range(0, SpawnerPositionList.Count - 1); randomIndex = AdjustSpawn(randomIndex, BasicEnemy.gameObject); // Summon a BOSS if (EnemiesForCurrentWave [0].t == ConfigurationEnemy.Type.Boss) { GameManager.instance.isBoss = true; randomIndex = SpawnerPositionList.Count / 2 - ((SpawnerPositionList.Count % 2 == 0) ? 1 : 0); SoundManager.instance.PlayerMusic("MusicBossInGame"); } else { GameManager.instance.isBoss = false; } // Instanciate a basic enemy Vector3 pos = SpawnerPositionList [randomIndex]; float ysize = BasicEnemy.GetComponent <BoxCollider> ().size.y; float ycenter = BasicEnemy.GetComponent <BoxCollider> ().center.y; float yscale = BasicEnemy.GetComponent <Transform> ().localScale.y; pos.y -= (ysize * (yscale / 2)) + (ycenter * yscale); BasicEnnemy enemy = Instantiate(BasicEnemy.gameObject, pos, Quaternion.identity).GetComponent <BasicEnnemy> (); SpawnLineInfo [randomIndex] = enemy.gameObject; if (!enemy) { Debug.LogError("[WaveManager]Can't instanciate the enemy !"); } // SETUP the new enemy enemy.UpdateWithConfig(EnemiesForCurrentWave [0]); combinationGenerator.FixedSize = enemy.CombinationSize; enemy.Combination = combinationGenerator.GetListButton(); enemy.Setup(); NbrEnemiesOnScreen++; GameManager.instance.EnemiesOnScreen.Add(enemy.gameObject); if (EnemiesForCurrentWave.Count >= 2) { TimeLeft = EnemiesForCurrentWave [0].SpawnCoolDown; } EnemiesForCurrentWave.RemoveAt(0); } }
protected IEnumerator desactivate(float delay) { yield return(gm.WaitFor(delay)); foreach (GameObject g in gm.EnemiesOnScreen) { BasicEnnemy e = g.GetComponent <BasicEnnemy>(); e.slow = 1; } }
public BasicEnnemy getNearestEnnemy() { BasicEnnemy Ennemy = gm.EnemiesOnScreen[0].GetComponent <BasicEnnemy>(); foreach (GameObject e in gm.EnemiesOnScreen) { if (Ennemy.transform.position.y > e.transform.position.y) { Ennemy = e.GetComponent <BasicEnnemy>(); } } return(Ennemy); }
protected IEnumerator desactivate(float delay) { yield return(gm.WaitFor(delay)); foreach (GameObject g in gm.EnemiesOnScreen) { BasicEnnemy e = g.GetComponent <BasicEnnemy>(); e.IsMoving = true; if (Level >= 4) { e.slow *= 0.75f; } } }
override public void activate() { /* if (Charge < ChargeMax) * { * Debug.Log("Not full"); * return; * }*/ Charge = 0; foreach (GameObject g in gm.EnemiesOnScreen) { BasicEnnemy e = g.GetComponent <BasicEnnemy>(); e.DecreaseLifePoint(Level > 1 ? 3 : 1); if (e.Died) { gm.ComboCount += 1; } } }
protected void checkComboNormal() { if (lockEnemy == null) { lockEnemy = gm.EnemiesOnScreen[0].GetComponent <BasicEnnemy>(); foreach (GameObject enemy in gm.EnemiesOnScreen) { if (lockEnemy.transform.position.y > enemy.transform.position.y) { lockEnemy = enemy.GetComponent <BasicEnnemy>(); } } } if (checkCombination(lockEnemy) == Result.Failed) { gm.Combination.Reset(); gm.ResetComboPoint(); } }
protected void successCombination(BasicEnnemy enemy) { enemy.DecreaseLifePoint(1); error = 1; soundManager.Play("RightCombo", false); // Add score float y = enemy.gameObject.GetComponent <BoxCollider>().size.y *enemy.gameObject.transform.localScale.y; Vector3 enemyTopPosition = enemy.gameObject.transform.position; enemyTopPosition.y += (y / 2); gm.AddScore(10, enemyTopPosition); gm.AddComboPoint(1, enemy.transform.position); gm.Combination.Reset(); enemy.FeedBackCombination(gm.Combination, true); if (gm.powerUp) { gm.powerUp.ChargePowerUp(ChargeByCombo); } }
void MakeBoss() { string PathToEnemiesPrefab = "Prefabs/Enemies/"; string type = "BlackPawn"; GameObject BasicEnemy = Resources.Load <GameObject>(PathToEnemiesPrefab + type); if (!BasicEnemy) { Debug.LogError("Impossible to instantiate " + type + " (Path: " + PathToEnemiesPrefab + type + ")"); } int randomIndex = SpawnerPositionList.Count / 2 - ((SpawnerPositionList.Count % 2 == 0) ? 1 : 0); RectTransform TopPos = GameObject.Find("Canvas/TopBackground").GetComponent <RectTransform>(); Vector3 pos = SpawnerPositionList[randomIndex]; pos.y = TopPos.position.y; float ysize = BasicEnemy.GetComponent <BoxCollider>().size.y; float ycenter = BasicEnemy.GetComponent <BoxCollider>().center.y; float yscale = BasicEnemy.GetComponent <Transform>().localScale.y; pos.y -= (ysize * (yscale / 2)) + (ycenter * yscale); BasicEnnemy enemy = Instantiate(BasicEnemy.gameObject, pos, Quaternion.identity).GetComponent <BasicEnnemy>(); enemy.GetComponent <BasicEnnemy>().Init(Random.Range(2, 5), 1, Random.Range(1, 4)); if (!enemy) { Debug.LogError("[WaveManager]Can't instanciate the enemy !"); } combinationGenerator.FixedSize = enemy.CombinationSize; enemy.Combination = combinationGenerator.GetListButton(); enemy.Setup(); NbrEnemiesOnScreen++; GameManager.instance.EnemiesOnScreen.Add(enemy.gameObject); }
protected void checkComboNormal() { if (lockEnemy == null) { lockEnemy = getNearestEnnemy(); } if (checkCombination(lockEnemy) == Result.Failed) { soundManager.Play("WrongCombo", false); if (immunity && error != 0) { error -= 1; gm.Combination.PopButton(); } else { error = 1; gm.Combination.Reset(); gm.ResetComboPoint(); } } }
public override void NotifyDie(GameObject enemy, bool killedByPlayer) { BasicEnnemy e = enemy.GetComponent <BasicEnnemy>(); e.Died = true; soundManager.Play("DeathEnemy", false); if (e == cm.lockEnemy) { cm.lockEnemy = null; } // GOLD if (killedByPlayer) { Vector3 randomPos = new Vector3(); GameObject c; float delay; for (int i = 1; i <= (e.NbrGold / 5); i++) { randomPos = Random.insideUnitCircle * 7; c = Instantiate(FloatingCoins, enemy.transform.position + randomPos, Quaternion.identity); delay = (float)i / 10.0f; c.GetComponent <CoinAnimation>().Play(delay); } } NbrEnemiesOnScreen--; NumberOfEnemiesDestroyed++; if (NumberOfEnemiesDestroyed % 8 == 0) { Debug.Log("Add difficulty"); DifficultyLevel++; } }
protected Result checkCombination(BasicEnnemy enemy) { Result ret = Result.Failed; if (gm.Combination.CompareCombination(enemy.getCombination())) { if (gm.Combination.isSameCombination(enemy.getCombination())) { successCombination(enemy); ret = Result.Complete; } else { incompleteCombination(enemy); ret = Result.Partial; } } else { failCombination(enemy); ret = Result.Failed; } return(ret); }
override public void activate() { if (Charge < ChargeMax) { Debug.Log("Not full"); return; } Debug.Log("Activate"); Charge = 0; foreach (GameObject g in gm.EnemiesOnScreen) { BasicEnnemy e = g.GetComponent <BasicEnnemy>(); if (Level >= 4) { e.reverse = true; } e.slow *= Level >= 2 ? 0.3f : 0.6f; } if (Level >= 4) { StartCoroutine(desactivateReverse(2)); } StartCoroutine(desactivate(5)); }
protected void incompleteCombination(BasicEnnemy enemy) { enemy.FeedBackCombination(gm.Combination); }
void MakeEnemy() { // Instanciate a basic enemy if (!CheckBoss) { // Find a random kind of enemy string PathToEnemiesPrefab = "Prefabs/UnlimitedEnemies/"; string type = "Robot01"; switch (Random.Range(0, 3)) { case 0: type = "Robot01"; break; case 1: type = "Robot02"; break; case 2: type = "Robot03"; break; default: break; } // Get enemy prefab GameObject BasicEnemy = Resources.Load <GameObject>(PathToEnemiesPrefab + type); if (!BasicEnemy) { Debug.LogError("Impossible to instantiate " + type + " (Path: " + PathToEnemiesPrefab + type + ")"); } // Get enemy spawn position (random) int randomIndex = Random.Range(0, SpawnerPositionList.Count - 1); randomIndex = AdjustSpawn(randomIndex, BasicEnemy.gameObject); RectTransform TopPos = GameObject.Find("Canvas/TopBackground").GetComponent <RectTransform>(); Vector3 pos = SpawnerPositionList[randomIndex]; pos.y = TopPos.position.y; float ysize = BasicEnemy.GetComponent <BoxCollider>().size.y; float ycenter = BasicEnemy.GetComponent <BoxCollider>().center.y; float yscale = BasicEnemy.GetComponent <Transform>().localScale.y; pos.y -= (ysize * (yscale / 2)) + (ycenter * yscale); // Instanciate the enemy BasicEnnemy enemy = Instantiate(BasicEnemy.gameObject, pos, Quaternion.identity).GetComponent <BasicEnnemy>(); SpawnLineInfo [randomIndex] = enemy.gameObject; // Set up enemy data (random) int nbGold = Random.Range(0, 2) * 5; int nbLife; int nbButton; if (DifficultyLevel == 1) { nbLife = Random.Range(1, 3); nbButton = Random.Range(2, 4); } else if (DifficultyLevel == 2) { nbLife = Random.Range(2, 4); nbButton = 3; } else if (DifficultyLevel == 3) { nbLife = Random.Range(2, 4); nbButton = Random.Range(3, 5); } else if (DifficultyLevel == 4) { nbLife = Random.Range(3, 5); nbButton = 4; } else { nbLife = Random.Range(3, 5); nbButton = Random.Range(4, 6); } enemy.Init(nbLife, nbGold, nbButton); if (!enemy) { Debug.LogError("[WaveManager]Can't instanciate the enemy !"); } combinationGenerator.FixedSize = enemy.CombinationSize; enemy.Combination = combinationGenerator.GetListButton(); enemy.Speed = 0.3f; enemy.Setup(); NbrEnemiesOnScreen++; GameManager.instance.EnemiesOnScreen.Add(enemy.gameObject); // Update BOSS "timer" CheckBossEnergy += 0; if (CheckBossEnergy >= 100) { CheckBoss = true; } } // Instanciate a boss else { if (NbrEnemiesOnScreen == 0) { MakeBoss(); CheckBossEnergy = 0; } } }
protected void failCombination(BasicEnnemy enemy) { enemy.FeedBackCombination(gm.Combination, true); }