//private Enemy defaultEnemy; //Start function sets enemytype for the script so that the right variables are changed void Start() { if (enemyName == "Kamikaze") { flyingKam = new KamikazeEnemy(kamikazeMaxHP, (int)kamikazeMovementSpeed, kamikazeDefense, gameObject, (int)kamikazeIQ); Enemy.enemyList.Add(flyingKam); type = EnemyType.FlyingKamikaze; defaultEnemy = flyingKam; defaultBroken = brokenKamikaze; Debug.Log("Instantiated flying kamikaze"); } else if (enemyName == "Golem") { golem = new Golem(golemMaxHp, (int)golemMovementSpeed, golemDefense, gameObject, golemProjectileSpeed, golemChargeSpeed, golemKnockbackDmg, golemGroundPoundDmg, golemProjectileDmg); Enemy.enemyList.Add(golem); type = EnemyType.Brawler; defaultEnemy = golem; defaultBroken = brokenGolem; Debug.Log("Instantiated golem"); } else if (enemyName == "IRTower") { IREnemy = new IrradiatedEnemies(IRMaxHp, (int)IRMovementSpeed, IRDefense, gameObject, IRRadiusAffect, IRSpeedBuff, IRMaxHpBuff, IRAttackBuff, IRPlayerAttackDebuff, IRPlayerSpeedDebuff); Enemy.enemyList.Add(IREnemy); type = EnemyType.IrradiatedEnemy; defaultEnemy = IREnemy; defaultBroken = null; Debug.Log("Instantiated IR enemy"); } else if (enemyName == "Shly") { shly = new ShlyEnemy(shlyMaxHp, (int)shlyMovementSpeed, shlyDefense, (int)aggregateNumberofShlies, bullChargeSpeed, speedDebuffProportion, this.gameObject, pelletDamage, bullChargeDamage); Enemy.enemyList.Add(shly); ShlyEnemy.shlyList.Add(shly); type = EnemyType.Shly; defaultEnemy = shly; defaultBroken = brokenShly; Debug.Log("Instantiated shly object"); } else if (enemyName == "Shrab") { shrab = new Shrab(shrabMaxHp, (int)shrabMovementSpeed, shrabDefense, gameObject, shrabPincerDmg, shrabEruptionRadius, aggregateNumberofShrabs); Enemy.enemyList.Add(shrab); Shrab.shrabList.Add(shrab); type = EnemyType.Shrab; defaultEnemy = shrab; defaultBroken = brokenShrab; Debug.Log("Instantiated shrab object"); } else if (enemyName == "Starship") { ship = new Starship(starshipMaxHp, (int)starshipMovementSpeed, starshipDefense, gameObject, IRHealthSpawnStart, bombDamage, bombRadius, rayDamage, rayWidth, turretDamage); Enemy.enemyList.Add(ship); type = EnemyType.Starship; defaultEnemy = ship; defaultBroken = null; } //Change values in Enemy Behavior scripts to align with these values }
void SpawnEnemy(int i) { GameObject newEnemy = Instantiate(EnemyPrefab, EnemySpawnPoints[i].position, Quaternion.identity) as GameObject; KamikazeEnemy script = newEnemy.GetComponent <KamikazeEnemy>(); int randomIndex = rand.Next(Destinations.Length); script.Init(Destinations[randomIndex].position); //AggroableEnemy character = Enemies[i].GetComponent<AggroableEnemy>(); //character.OnDied += () => { StartCoroutine(RespawnEnemy(i)); }; //character.OnCharacterSaved += AddStudent; //character.OnCharacterSaved += UpdateHudStudents; }