Ejemplo n.º 1
0
 //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
 }
Ejemplo n.º 2
0
    // 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;
        }
    }