void Awake()
        {
            string characterName = "";

            characterMovement = GetComponent <CharacterMovement>();
            characterMovement.SetRigidBody2D(GetComponent <Rigidbody2D>());
            characterMovement.SetCharacterAnimationController(GetComponentInChildren <CharacterAnimationController>());
            characterName  = gameObject.name;
            DBConn         = new EnemyDatabaseConn(characterName);
            characterStats = new CharacterStats(DBConn);
            summonCooldown = new AbilitiesDatabaseConn("Summon").GETAbilityCooldown();
            nextSummon     = Time.time + 2 * summonCooldown;
            healthBar.SetMaxHealth(characterStats.GETHealth());
            isDead = false;

            enemyAttackController = GetComponentInChildren <EnemyAttackController>();
            enemyAttackController.SetAttackRange(characterStats.GETAttackRange());
            enemyAttackController.SetBasicAttackDamage(characterStats.GETAttackDamage());

            target = GameObject.Find("PlayerCharacter").GetComponent <Transform>();
            seeker = GetComponent <Seeker>();

            deathGhost.GetComponent <EnemyController>().aggroRange = aggroRange;

            InvokeRepeating("UpdatePath", 0f, 0.5f);
        }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     healthPoints = startHP;
     anim         = GetComponent <Animator>();
     head.SetActive(true);
     attContlr = middle.GetComponent <EnemyAttackController>();
 }
 new void Start()
 {
     base.Start();
     objectEnemyHealthMap.Add(gameObject, this);
     EnemyManager.enemiesOnScene.Add(this);
     if (!attackController)
     {
         attackController = GetComponent <EnemyAttackController>();
     }
 }
    protected virtual void Start()
    {
        rigid            = GetComponent <Rigidbody2D>();
        enemyAnim        = GetComponent <Animator>();
        animationTrigger = GetComponent <EnemyAnimationTrigger>();
        statsController  = GetComponent <EnemyStatsController>();
        attackController = GetComponent <EnemyAttackController>();

        facingDirection = 1;
        statsController.OnAttackedEvent.AddListener(HandleOnAttackedEvent);
        statsController.OnDeathEvent.AddListener(HandleOnDeathEvent);
        attackController.OnAttackedDirectionEvent.AddListener(HandleOnAttackedDirectionEvent);
    }
Пример #5
0
    public override void TriggerAttack()
    {
        base.TriggerAttack();

        Collider2D[] hittedEnemies = Physics2D.OverlapCircleAll(playerData.attack1Position.position, playerController.meleeAttack1.radiusRange, playerData.whatIsEnemy);
        foreach (Collider2D enemy in hittedEnemies)
        {
            EnemyStatsController  enemyStatsController = enemy.gameObject.GetComponent <EnemyStatsController>();
            EnemyAttackController enemyAttackHandler   = enemy.gameObject.GetComponent <EnemyAttackController>();

            if (enemyAttackHandler != null && enemyStatsController != null)
            {
                Attack attack = playerController.meleeAttack1.PlayerCreateAttack(playerController.statsController, enemyStatsController, playerController.meleeAttack1.hitBackForce);
                enemyAttackHandler.OnAttacked(playerController.gameObject, attack);
            }
        }
    }
    protected void Start()
    {
        gameObject.tag = "Enemy";

        enemyClass = GetComponent <PlayerClass>();

        // Set up NavMesh
        agent       = GetComponent <NavMeshAgent>();
        agent.speed = 5f;
        path        = new NavMeshPath();

        // Add health bar
        GameObject hpBar    = Instantiate(healthBar, transform);
        Vector3    barScale = hpBar.GetComponent <RectTransform>().localScale;

        hpBar.GetComponent <RectTransform>().localScale = new Vector3(
            (1.0f / transform.localScale.x) * barScale.x,
            (1.0f / transform.localScale.y) * barScale.y,
            (1.0f / transform.localScale.z) * barScale.z
            );

        // Set up attack controller
        attackController = GetComponent <EnemyAttackController>();
        attack           = true;

        inCoroutine = false;
        isAlive     = true;

        player      = GameObject.FindWithTag("Player");
        targetPos   = Vector3.zero;
        targetFound = false;

        // Get enemy perk
        int level = GameObject.Find("Generator").GetComponent <GenerateIsland>().islandStorage.level;

        level    = ((level) > 1 ? (level) : 1);
        expValue = Random.Range(35, 45) * (1 + (0.248f - ((0.002f * level) < 0.124f ? (0.002f * level) : 0.124f)) * (level < 62 ? level : 62));
        enemyClass.TakePerk(initialStats, false);
        enemyClass.onLevelUp = onLevelUpPerk;
        for (int i = 0; i < level; ++i)
        {
            enemyClass.LevelUp();
        }

        maxTimes = 100;
    }
Пример #7
0
    public override void TriggerAttack()
    {
        base.TriggerAttack();

        Collider2D[] hittedEnemies = Physics2D.OverlapBoxAll(playerData.attack2Position.position,
                                                             new Vector2(playerController.meleeAttack2.rangeX, playerController.meleeAttack2.rangeX), 0, playerData.whatIsEnemy);

        foreach (Collider2D enemy in hittedEnemies)
        {
            EnemyStatsController  enemyStatsController  = enemy.gameObject.GetComponent <EnemyStatsController>();
            EnemyAttackController enemyAttackController = enemy.gameObject.GetComponent <EnemyAttackController>();

            if (enemyAttackController != null && enemyStatsController != null)
            {
                Attack attack = playerController.meleeAttack2.PlayerCreateAttack(playerController.statsController, enemyStatsController, playerController.meleeAttack2.hitBackForce);
                enemyAttackController.OnAttacked(playerController.gameObject, attack);
            }

            //Attack attack = playerController.meleeAttack2.CreateAttack(playerController.statsController,
            //    enemy.gameObject.GetComponent<CharacterStatsController>(), playerController.meleeAttack2.hitBackForce);
            //enemy.gameObject.GetComponent<AttackHandler>().OnAttacked(playerController.gameObject, attack);
        }
    }
Пример #8
0
 public override void OnStateEnter()
 {
     attackController = stateMachine.gameObject.GetComponent <EnemyAttackController>();
 }
 private void Awake()
 {
     enemyAttackController = new EnemyAttackController();
 }