Exemple #1
0
    public GameObject GetEnemy(Transform parent, EnemySO enemyData)
    {
        GameObject g;

        if (enemyPoolList.Count == 0)
        {
            //Create
            g = Instantiate(ghostPrefab, Vector3.one * 9999, Quaternion.identity) as GameObject;
        }
        else
        {
            //Get the first and remove it
            g = enemyPoolList[0];
            enemyPoolList.Remove(g);
        }

        g.transform.SetParent(parent);
        g.SetActive(true);

        if (enemyGivenCounter == 0)
        {
            GameManager.Instance.BlockPlayerDoors();
        }

        g.GetComponent <Enemy>().SetUpEnemyVariables(enemyData);
        enemyGivenCounter++;

        return(g);
    }
Exemple #2
0
 public void SetEnemyType(EnemySO so)
 {
     enemySO = so;
     GetComponentInChildren <SetSpriteColour>().SetColour(enemySO.tint);
     GetComponent <IMoveVelocity>().SetMoveSpeed(enemySO.moveSpeed);
     GetComponent <DropItems>().SetDropTable(enemySO.dropTable);
 }
    private void SpawnEnemy(EnemySO enemy)
    {
        EnemyScript enemyScript = Instantiate(enemy.enemyPrefab, spawnPoint.position, spawnPoint.rotation, enemiesHolder).GetComponent <EnemyScript>();

        enemyScript.uiManager = uiManager;
        enemyScript.mEnemySO  = enemy;
    }
    public virtual void SetUpEnemyVariables(EnemySO enemyData)
    {
        speed                    = enemyData.speed;
        rotationSpeed            = enemyData.rotationSpeed;
        oscilationSpeed          = enemyData.oscilationSpeed;
        speedFactorWhenLightened = enemyData.speedFactorWhenLightened;
        oscilationsPerSecond     = enemyData.oscilationsPerSecond;
        oscilationAmplitude      = enemyData.oscilationAmplitude;
        immediateFacing          = enemyData.immediateFacing;
        oscillationMovement      = enemyData.oscillationMovement;

        initialHp  = enemyData.initialHp;
        timeStuned = enemyData.timeStuned;

        ghostDamage  = enemyData.ghostDamage;
        attackRadius = enemyData.attackRadius;
        attackDelay  = enemyData.attackDelay;

        itemToDrop = enemyData.itemToDrop;

        //Start variables
        initialSpeed      = speed;
        currentHp         = initialHp;
        oscilatorLifeTime = -0.75f;
        target            = GameManager.Instance.GetPlayer();
    }
Exemple #5
0
    public override void SetUpEnemyVariables(EnemySO enemyData)
    {
        base.SetUpEnemyVariables(enemyData);

        if (currentState != null)
        {
            ChangeState(new AwakeState_N());
        }
    }
Exemple #6
0
 public Enemy(EnemySO enemy)
 {
     Name        = enemy.Name;
     HP          = enemy.HP;
     DamageMin   = enemy.DamageMin;
     DamageMax   = enemy.DamageMax;
     XP          = enemy.XP;
     ItemArray   = Array.ConvertAll(enemy.ItemArray, new Converter <ItemSO, Item>(ItemSoToItem));
     ItemChances = enemy.ItemChances;
 }
    private void ShowDescription(EnemySO enemyData)
    {
        _levelSelectionUi.PlayClickSfx();

        enemyImage.enabled      = true;
        enemyImageShade.enabled = true;

        enemyImage.sprite      = enemyData.enemyIcon;
        enemyImageShade.sprite = enemyData.enemyIcon;
        enemyDescription.text  = enemyData.enemyDescription;
        enemyName.text         = enemyData.enemyName;
    }
Exemple #8
0
    private void ShowEnemyDescription(EnemySO enemy)
    {
        if (towerPanel.activeSelf)
        {
            CloseTowerPanel();
        }

        _selectedEnemy.SelectEnemy();

        enemyImage.sprite      = enemy.enemyIcon;
        shadeEnemyImage.sprite = enemy.enemyIcon;
        enemyDescription.text  = enemy.enemyDescriptionShort;

        enemyPanel.SetActive(true);
    }
Exemple #9
0
    EnemyData Initialize(EnemySO enemySO)
    {
        EnemyData newEnemy;

        newEnemy.itemGenerationPercentage = enemySO.itemGenerationPercentage;
        newEnemy.minWaitTime = enemySO.minWaitTime;
        newEnemy.maxWaitTime = enemySO.maxWaitTime;
        newEnemy.type        = enemySO.type;
        newEnemy.prefab      = enemySO.prefab;

        newEnemy.height = newEnemy.prefab.GetComponent <SpriteRenderer>().size.y / 2f;
        newEnemy.width  = newEnemy.prefab.GetComponent <SpriteRenderer>().size.x / 2f;

        return(newEnemy);
    }
Exemple #10
0
    public virtual void SetStartingValues(ScriptableObject SO)
    {
        config = (EnemySO)SO;
        health = config.maxHealth;

        stamina = config.maxStamina;

        agent          = this.GetComponent <AIPath>();
        agent.maxSpeed = config.speed;

        anim = GetComponentInChildren <Animator>();
        if (anim == null)
        {
            anim = GetComponent <Animator>();
        }
        anim.Play("Idle");
    }
Exemple #11
0
    IEnumerator EnemySpawn()
    {
        yield return(new WaitForSeconds(currentWave.timeBetweenSpawns));

        enemiesRemainingToSpawn--;

        RoadTile randomWaypoint = spawnTiles[Random.Range(0, spawnTiles.Length)];

        EnemySO enemyData    = currentEnemySet.enemyData;
        Enemy   spawnedEnemy = Instantiate(enemyData.enemyModel, randomWaypoint.transform.position,
                                           Quaternion.identity).GetComponent <Enemy>();

        spawnedEnemy.Init(enemyData, randomWaypoint);
        spawnedEnemy.OnDeath += OnEnemyDeath;

        _canSpawn = true;
    }
Exemple #12
0
 public EnemyRaw(GameObject gameObject, Transform transform, Enemy enemy, EnemySO enemySo,
                 EnemyHealthBar healthBar, EnemySpawnController.OnDie onRespawn)
     : base(enemySo.Health, enemySo.Health, enemySo.MoveSpeed)
 {
     index              = nextIndex++;
     GameObject         = gameObject;
     Transform          = transform;
     Enemy              = enemy;
     this.enemySo       = enemySo;
     this.healthBar     = healthBar;
     damage             = enemySo.Damage;
     attackDistance     = enemySo.AttackDistance;
     chasingDistance    = enemySo.ChasingDistance;
     endAttackDistance  = enemySo.EndAttackDistance;
     endChasingDistance = enemySo.EndChasingDistance;
     enemies.Add(this);
     OnRespawn = onRespawn;
 }
Exemple #13
0
    /// <summary>
    /// spawns the enemy at the beginning of the set,
    /// adds it to the current level
    /// </summary>
    private void SpawnEnemy()
    {
        EnemySO eso =
            (EnemySO)
            ((ICollectionManager <EnemyType>)DefendState.Instance.enemyManager)
            .Get(enemySet[0].enemy);

        GameObject prefab = eso.prefab;

        HostileAgent ho = Instantiate(
            prefab,
            transform.position,
            Quaternion.identity,
            DefendState.Instance.enemyParent)
                          .GetComponent <HostileAgent>();

        // assign enemy path
        ((OrganicAgent)ho).AssignPath(pathToGoal);

        DefendState.CurrentLevel.AddEnemy(ho); // To Do: lots of casting bad
    }
    public void Init(EnemySO enemyData, RoadTile startTile)
    {
        enemySo        = enemyData;
        characterState = CharacterState.ALIVE;

        _enemyName = enemyData.enemyName;
        maxHealth  = enemyData.health;
        health     = maxHealth;

        _armour          = enemyData.armour;
        _magicResistance = enemyData.magicResistance;

        movementSpeed       = enemyData.speed;
        _navMeshAgent.speed = movementSpeed * _speedMultiplier;

        _bounty      = enemyData.bounty;
        _currentTile = startTile;

        Vector2 rp = Random.insideUnitCircle * (_stopDistance - 1);

        _destination  = startTile.transform.position + new Vector3(rp.x, startTile.transform.position.y, rp.y);
        _stopDistance = 3;
    }
Exemple #15
0
 public Enemy Assignment(EnemySO enemySO)
 {
     return(new Enemy(enemySO));
 }
Exemple #16
0
 private void Start()
 {
     defaultEnemyType = enemyType;
 }
Exemple #17
0
 public void SetEnemyType(EnemySO _enemyType)
 {
     enemyType = _enemyType;
 }