//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 }
// Update is called once per frame void Update() { player = RandomEnemySpawn.getClosestPlayer(transform, RandomEnemySpawn.playerCenterList).gameObject; float disToPlayer = Vector3.Distance(transform.position, player.transform.position); transform.rotation = Quaternion.LookRotation(rb.velocity); //Debug.Log("Player position is " + player.transform.position); if (disToPlayer <= idleBehaviorRadius && disToPlayer > attackRadius) { neutralMovement(); } else if (disToPlayer <= attackRadius) { //center = player.GetComponent<SkinnedMeshRenderer>().bounds.center; //speed = GetComponent<StatManager>().shly.enemyStats.getSpeed(); speed = GetComponent <StatManager>().shly.enemyStats.getSpeed(); bullChargeSpeed = GetComponent <StatManager>().shly.getBullChargeSpeed(); //transform.LookAt(player.transform); if (shly == null) { shly = GetComponent <StatManager>().shly; } if (shly.getAggregateNum() > 1) { if (!shly.sprainActive) { bullCharge(player.transform.position); } } else { if (!shly.sprainActive) { PelletDrop(); } } shly.sprain(sprainEffectRadius); } else { rb.velocity = Vector3.zero; } }