Example #1
0
 public void GetDamage(Transform enemy_push, bool realDamage = true)
 {
     Set_Enemy_Pushback(enemy_push);
     noNeedInvulnerable           = !realDamage;
     current_state                = Player_States.PUSHBACK_PLAYER;
     fader_scr.Fade_image.enabled = true;
     fader_scr.FadeOut(false, true);
     if (realDamage)
     {
         live_manager_scr.DetectedDamage();
     }
 }
    override public BT_Status UpdateAction()
    {
        if (collider == null)
        {
            Debug.Log("No collider there! _Action_MeleeAttack");
            return(BT_Status.RUNNING);
        }

        //need to know the animation timing
        timer_to_attack += Time.deltaTime;

        if (timer_to_attack > time_to_attack)
        {
            Collider2D col_temp = Physics2D.OverlapBox(collider.transform.position, collider.size, 0.0f, player_layer);

            if (col_temp != null)
            {
                Debug.Log("Player damaged!");
                fader_scr.Fade_image.enabled = true;
                fader_scr.FadeOut(false, true);

                Transform parent = col_temp.transform.parent;
                if (parent != null)
                {
                    Player_Manager player_manager = parent.GetComponent <Player_Manager>();
                    player_manager.current_state = Player_Manager.Player_States.PUSHBACK_PLAYER;
                    player_manager.Set_Enemy_Pushback(transform);
                    live_manager_scr = parent.GetComponent <Live_Manager>();
                    if (live_manager_scr != null)
                    {
                        live_manager_scr.DetectedDamage();
                    }
                    else
                    {
                        Debug.Log("Live Manager not found _Action_MeleeAttack");
                    }
                }
                else
                {
                    Debug.Log("Parent not found _Action_MeleeAttack");
                }
            }
            col_temp        = null;
            timer_to_attack = 0;
        }

        return(BT_Status.RUNNING);
    }