Exemplo n.º 1
0
 void Awake()
 {
     sr       = GetComponent <SpriteRenderer>();
     enemy    = GetComponentInParent <EnemyDefaults>();
     health   = gameObject.transform;
     barRatio = transform.localScale.x / enemy.Enemy.maxHP;
 }
Exemplo n.º 2
0
    // Start is called before the first frame update
    void Start()
    {
        enemyDefaults = GetComponent <EnemyDefaults>();
        anim          = GetComponent <Animator>();

        anim.SetInteger("Stage", 1);
    }
Exemplo n.º 3
0
    // Reduce DamagePlayer speed
    void OnTriggerEnter2D(Collider2D other)
    {
        // Slow damage player objects such as projectiles
        if (other.tag == "DamagePlayer")
        {
            DamagePlayerDefaults dmgPlayer = other.GetComponent <DamagePlayerDefaults>();
            if (dmgPlayer != null)
            {
                dmgPlayer.RestoreMoveSpeedTime = Time.time + restoreProjectileSpeedDelay;
                dmgPlayer.Speed = dmgPlayer.DmgPlayer.baseSpeed * projectileSlowMultiplier;
            }
        }

        // Slow enemies
        if (other.tag == "Enemy")
        {
            EnemyDefaults enemy = other.GetComponent <EnemyDefaults>();
            if (enemy != null)
            {
                enemy.RestoreMoveSpeedTime = Time.time + restoreEnemySpeedDelay;

                // Apply slow while also taking into consideration the move speed multiplier of enemy
                enemy.MoveSpeed = (enemy.Enemy.baseMoveSpeed * ((enemy.MoveSpeedMultiplier - 1) + enemySlowMultiplier));
            }
        }
    }
Exemplo n.º 4
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        animator.applyRootMotion = true;
        boss          = animator.gameObject.transform;
        enemyDefaults = boss.GetComponent <EnemyDefaults>();

        nextX = rightX;
    }
Exemplo n.º 5
0
    void Awake()
    {
        gravity       = -1f * gravityScale;
        collisionMask = LayerMask.GetMask("Ground");

        enemyDefaults = GetComponent <EnemyDefaults>();
        nextPos       = posB;
    }
Exemplo n.º 6
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        player        = GameObject.FindGameObjectWithTag("Player");
        boss          = animator.gameObject.transform;
        enemyDefaults = boss.GetComponent <EnemyDefaults>();

        nextAttack = Time.time + delay;
    }
Exemplo n.º 7
0
    void Awake()
    {
        player        = GameObject.FindGameObjectWithTag("Player").transform;
        enemyDefaults = GetComponent <EnemyDefaults>();

        // Set starting position and move from there
        nextPos = startPos;
    }
Exemplo n.º 8
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        boss          = animator.gameObject.transform;
        enemyDefaults = boss.GetComponent <EnemyDefaults>();
        startX        = boss.transform.position.x;

        reachedTarget = false;
    }
Exemplo n.º 9
0
    void Start()
    {
        enemyDefaults = GetComponent <EnemyDefaults>();

        // Set starting position and move from there
        nextPos            = startPos;
        transform.position = pos[nextPos].position;
    }
Exemplo n.º 10
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        animator.applyRootMotion = true;
        boss          = animator.gameObject.transform;
        enemyDefaults = boss.GetComponent <EnemyDefaults>();

        // Move to position based on current facing direction
        nextX = boss.transform.localScale.x > 0 ? -x : x;
    }
Exemplo n.º 11
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        animator.applyRootMotion = true;
        boss          = animator.gameObject.transform;
        enemyDefaults = boss.GetComponent <EnemyDefaults>();

        // Set facing direction to opposite of where enemy is
        boss.transform.localScale = new Vector2((Mathf.Abs(rightX - boss.transform.position.x) <= 0.1f ? 1 : -1)
                                                , boss.transform.localScale.y);
    }
Exemplo n.º 12
0
    bool playerInView;             // Must be in camera view and within distance to be in view (InView and InDistance)

    void Awake()
    {
        player   = GameObject.FindGameObjectWithTag("Player");
        playerHP = player.GetComponent <PlayerHP>();
        view     = player.GetComponent <PlayerInView>();

        nextPos       = posB;
        enemyDefaults = GetComponent <EnemyDefaults>();
        anim          = GetComponent <Animator>();
        rb            = GetComponent <Rigidbody2D>();
    }
Exemplo n.º 13
0
    void Awake()
    {
        bossStage     = GetComponent <BossStages>();
        enemyDefaults = GetComponent <EnemyDefaults>();

        phaseTwo  = GetComponent <MeleePhaseTwo>();
        barObject = transform.GetChild(0).gameObject;   // barObject MUST BE FIRST CHILD OF OBJECT THIS SCRIPT IS ATTACHED TO

        originalMoveDelay = phaseTwo.MoveDelay;
        barOrigPos        = barObject.transform.localPosition;
    }
Exemplo n.º 14
0
    void Awake()
    {
        gravity       = -1f * gravityScale;
        collisionMask = LayerMask.GetMask("Ground");

        enemyDefaults = GetComponent <EnemyDefaults>();
        anim          = GetComponent <Animator>();

        player   = GameObject.FindGameObjectWithTag("Player");
        playerHP = player.GetComponent <PlayerHP>();
        view     = player.GetComponent <PlayerInView>();
    }
Exemplo n.º 15
0
    void Awake()
    {
        collisionMask = LayerMask.GetMask("Ground");

        player       = GameObject.FindGameObjectWithTag("Player");
        playerHP     = player.GetComponent <PlayerHP>();
        playerInView = player.GetComponent <PlayerInView>();

        enemyDefaults = GetComponent <EnemyDefaults>();
        anim          = GetComponent <Animator>();

        nextPos = posB;
    }
Exemplo n.º 16
0
    // Slow enemy move speed
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Enemy")
        {
            EnemyDefaults enemy = other.GetComponent <EnemyDefaults>();
            if (enemy != null)
            {
                enemy.RestoreMoveSpeedTime = Time.time + restoreEnemySpeedDelay;

                // Apply slow while also taking into consideration the move speed multiplier of enemy
                enemy.MoveSpeed = (enemy.Enemy.baseMoveSpeed * ((enemy.MoveSpeedMultiplier - 1) + enemySlowMultiplier));
            }
        }
    }
Exemplo n.º 17
0
    float resetRestoreRate = .2f; // Rate at which restoreHPTime should be reset

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Enemy")
        {
            EnemyDefaults enemy = other.GetComponent <EnemyDefaults>();
            if (enemy != null)
            {
                if (Time.time > enemy.RestoreHPTime)
                {
                    enemy.RestoreHPTime = Time.time + restoreHPDelay;

                    // Take max hp of enemy and half it
                    int halvedMaxHP = enemy.Enemy.maxHP / 2;

                    // If enemy's current hp is more than the halved max health, set current hp to the halved max
                    if (enemy.HP > halvedMaxHP)
                    {
                        // The difference between enemy's hp and halved hp is the amount to be restored after restoreHPDelay expires
                        enemy.RestoreHPAmount = enemy.HP - halvedMaxHP;
                        enemy.DisplayDmgNum(enemy.RestoreHPAmount);

                        enemy.SpriteRender.material = demiEffect;   // Apply different material on enemy to indicate is affected by demi
                        enemy.HP = halvedMaxHP;
                        enemy.OnDamaged.Invoke();
                        enemy.StartColorChange();
                    }
                    else
                    {
                        enemy.DisplayDmgNum(0);

                        enemy.SpriteRender.material = demiEffect;   // Apply different material on enemy to indicate is affected by demi
                        enemy.OnDamaged.Invoke();
                        enemy.StartColorChange();
                    }
                }
                else if ((enemy.RestoreHPTime - Time.time) < (restoreHPDelay - resetRestoreRate))
                {
                    // Reset restore timer
                    enemy.RestoreHPTime = Time.time + restoreHPDelay;

                    enemy.DisplayDmgNum(0);
                    enemy.OnDamaged.Invoke();
                    enemy.StartColorChange();
                }
            }
        }
    }
Exemplo n.º 18
0
    void Awake()
    {
        // Shoot behaviour must either be in main enemy object which this script is attached to or in child object
        shootBehaviourScript = GetComponentInChildren <ShootBehaviour>();
        // Do not shoot until aggro'd
        if (shootBehaviourScript != null)
        {
            shootBehaviourScript.enabled = false;
        }

        player   = GameObject.FindGameObjectWithTag("Player");
        playerHP = player.GetComponent <PlayerHP>();
        view     = player.GetComponent <PlayerInView>();

        enemyDefaults = GetComponent <EnemyDefaults>();
        anim          = GetComponent <Animator>();

        nextPos = posB;
    }
Exemplo n.º 19
0
    //If collides with anything that damages player, take damage
    void OnTriggerEnter2D(Collider2D other)
    {
        EnemyDefaults        enemyDmg  = other.GetComponent <EnemyDefaults>();
        DamagePlayerDefaults dmgPlayer = other.GetComponent <DamagePlayerDefaults>();

        bool isEnemy = enemyDmg != null ? true : false;

        if ((enemyDmg != null || dmgPlayer != null) && Time.time > damagedTime && !dead)
        {
            int dmg = isEnemy ? enemyDmg.Dmg : dmgPlayer.Dmg;

            // If dmg is 0 or less, do nothing and return
            if (dmg <= 0)
            {
                return;
            }

            // Disable other object if DamagePlayer property is true
            if (dmgPlayer != null && dmgPlayer.DmgPlayer.disableOnPlayer)
            {
                other.gameObject.SetActive(false);
            }

            DisplayDmgNum(dmg); //Show damage number
            currentHP -= dmg;   //Calculate HP
            if (currentHP < 0)  //Do not go below 0 hp
            {
                currentHP = 0;
            }

            OnHealthChange.Invoke();                // OnHealthChanged event
            damagedTime = Time.time + damagedDelay; //Take damage rate
            //Damaged response
            PlaySound();
            StartCoroutine(Knockback(other.gameObject));
            StartCoroutine(FlashRed());
        }
    }
Exemplo n.º 20
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        player = GameObject.FindGameObjectWithTag("Player");

        animator.applyRootMotion = true;
        boss          = animator.gameObject.transform;
        enemyDefaults = boss.GetComponent <EnemyDefaults>();

        // Choose closest x position to player
        float closest   = int.MaxValue;
        float playerPos = player.transform.position.x;

        for (int i = 0; i < targetsX.Length; i++)
        {
            if (Mathf.Abs(targetsX[i] - playerPos) < Mathf.Abs(closest - playerPos))
            {
                closest = targetsX[i];
            }
        }
        chosenX = closest;

        // Set boss to the chosen x position
        boss.transform.position = new Vector2(chosenX, boss.transform.position.y);
    }
Exemplo n.º 21
0
 void Awake()
 {
     barObject = transform.GetChild(0).gameObject;   // barObject MUST BE FIRST CHILD OF OBJECT THIS SCRIPT IS ATTACHED TO
     enemy     = GetComponent <EnemyDefaults>();
 }
Exemplo n.º 22
0
 void Awake()
 {
     enemyDefaults       = GetComponent <EnemyDefaults>();
     targetReachedEffect = Instantiate(targetReachedEffectPrefab, transform.position, Quaternion.identity);
     targetReachedEffect.SetActive(false);
 }
Exemplo n.º 23
0
 void Start()
 {
     enemyDefaults = GetComponent <EnemyDefaults>();
 }
Exemplo n.º 24
0
 void Awake()
 {
     enemyDefaults = GetComponent <EnemyDefaults>();
 }
Exemplo n.º 25
0
 // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     boss          = animator.gameObject.transform;
     enemyDefaults = boss.GetComponent <EnemyDefaults>();
     animator.SetBool("Dashing", false);
 }