private void OnDrawGizmos()
 {
     Gizmos.DrawWireCube(new Vector2(gameObject.transform.position.x + MyBodyCollision.GetComponent <BoxCollider2D>().offset.x, gameObject.transform.position.y + MyBodyCollision.GetComponent <BoxCollider2D>().offset.y), new Vector3(1, 1, 0));
 }
 override public void Update()
 {
     if (ActivateBoss == false)
     {
         if (MyCamera.Instance.CurrentRoom == myRoom && MyCamera.Instance.m_IsUpdatingPosition == false)
         {
             if (InitiatedDialog == false)
             {
                 DialogManager.OnSpeak(startDialog);
                 InitiatedDialog = true;
             }
             if (!DialogBox.IsVisible())
             {
                 AudioManager.ChangeBGM(RoomManager.Instance.bossTheme);
                 ActivateBoss = true;
             }
         }
     }
     if (ActivateBoss == true)
     {
         if (UIBossHealthBar.MyInstance.HealthModel == null)
         {
             UIBossHealthBar.MyInstance.HealthModel = GetComponentInChildren <AttackableEnemy>();
             UIBossHealthBar.MyInstance.RevealImage();
         }
         if (!m_MovementModel.CanAttack()) //this likely wont be here later on
         {
             return;
         }
         UpdateDirection();
         if (m_IsCharacterInRange != null)
         {
             Vector2 myPosition    = new Vector2(gameObject.transform.position.x + MyBodyCollision.GetComponent <BoxCollider2D>().offset.x, gameObject.transform.position.y + MyBodyCollision.GetComponent <BoxCollider2D>().offset.y);
             Vector2 otherPosition = new Vector2(m_IsCharacterInRange.transform.position.x + m_IsCharacterInRange.GetComponent <BoxCollider2D>().offset.x, m_IsCharacterInRange.transform.position.y + m_IsCharacterInRange.GetComponent <BoxCollider2D>().offset.y);
             // Debug.Log(Vector2.Distance(otherPosition, myPosition));
             Vector3 direction = m_MovementModel.GetFacingDirection();
             if (direction.x == 0 & direction.y == 0)
             {
                 return; //this makes it so that the character cant shoot something without moving first
             }
             if (Vector2.Distance(otherPosition, myPosition) <= 1.3)
             {
                 if (Attack == true)
                 {
                     closeRangeAttack.OnAttackByEnemy();
                     Attack = false;
                     StartCoroutine(WaitUntilAbleToAttack(1));
                 }
             }
             if (Vector2.Distance(otherPosition, myPosition) >= 1.3 & Vector2.Distance(otherPosition, myPosition) <= 3)
             {
                 if (Attack == true)
                 {
                 }
             }
             if (Vector2.Distance(otherPosition, myPosition) >= 3)
             {
                 if (Attack == true)
                 {
                     Debug.Log(gameObject.name + " is making a long range attack");
                     longRangeAttack.OnAttackByEnemy();
                     Attack = false;
                     StartCoroutine(WaitUntilAbleToAttack(2));
                 }
             }
         }
     }
 }