void Start()
 {
     m_player = GameObject.FindGameObjectWithTag("Player");
     m_stats = m_player.GetComponent<Stats>();
     m_arrowBehavior = this.GetComponentInParent<ArrowBehavior>();
     m_playerState = m_player.GetComponent<ChangePlayerState>();
 }
Beispiel #2
0
 public void OnEndDrag(PointerEventData eventData)
 {
     sides = new List <int>();
     sides.Add(lftArrow);
     sides.Add(rghtArrow);
     ah = this.transform.Find("ArrowHolder").gameObject;
     ab = ah.GetComponent <ArrowBehavior>();
     ab.Nullify(sides);
 }
    private void ShootArrow()
    {
        // Spawn a new arrow and shoot it with the current drawstrength
        ArrowBehavior spawnedArrow = Instantiate(arrowTemplate);

        spawnedArrow.gameObject.SetActive(true);
        spawnedArrow.Shoot(drawManager.DrawStrength);
        drawManager.DrawStrength = 0f;
    }
Beispiel #4
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (!debounce && (other.tag != "Enemy" && other.isTrigger == false) || other.tag == "Player")
     {
         ArrowBehavior exp = Instantiate(explosion, transform);
         exp.SetBehavior(0, transform.position, 0, 0);
         debounce = true;
         Destroy(gameObject);
     }
 }
Beispiel #5
0
    public void activate(GameObject sender, GameObject target, float damage)
    {
        GameObject createdActionObject = Instantiate(actionObject, gameObject.transform.position, Quaternion.identity);
        //arrow.transform.parent = gameObject.transform;
        ArrowBehavior unitArrowBehavior = createdActionObject.transform.gameObject.GetComponent <ArrowBehavior>();

        unitArrowBehavior.sender = sender;
        unitArrowBehavior.target = target;
        unitArrowBehavior.damage = damage;
    }
 void Passive()
 {
     shotTarget = passiveTimer;
     if (shotTimer > shotTarget && shotTarget > 0)
     {
         target = new Vector2(transform.position.x + 1 * -(transform.right.normalized.x), transform.position.y + 1);
         ArrowBehavior arroz = Instantiate(arrow);
         arroz.SetBehavior(damage, transform.position, target, target - new Vector2(transform.position.x, transform.position.y), arrowSpeed);
         shotTimer = 0;
     }
 }
Beispiel #7
0
    void Shoot()
    {
        audio.Play();
        _shootCoolDown = Time.time + shootCooldown;
        GameObject newBullet = Instantiate(arrowPrefab, spawnpoint.position, spawnpoint.rotation) as GameObject;

        newBullet.transform.parent = GameObject.FindGameObjectWithTag("Bullets").transform;
        ArrowBehavior newBulletScript = newBullet.GetComponent <ArrowBehavior>();

        newBulletScript.SetDamage(attackDamage);
        newBulletScript.SetTarget(_enemyScripts[0].thisTransform);

        /*
         * animator.SetTrigger("shoot");
         * audio.clip = sounds[1];
         * audio.Play(); */
    }
Beispiel #8
0
    public void Attack(string name)
    {
        ah = this.transform.Find("ArrowHolder").gameObject;

        ab = ah.GetComponent <ArrowBehavior>();
        switch (name)
        {
        case "rghtArrow":

            ab.DoDamage(1, rghttarrowdmg);
            break;

        case "lftArrow":
            ab.DoDamage(5, lftarrowdmg);
            break;

        case "upArrow":
            ab.DoDamage(7, uparrowdmg);
            break;

        case "dwnArrow":
            ab.DoDamage(3, dwnarrowdmg);
            break;

        case "cuplftArrow":
            ab.DoDamage(4, cuplftarrowdmg);
            break;

        case "cuprghtArrow":
            ab.DoDamage(2, cuprghtarrowdmg);
            break;

        case "cdwnlftArrow":
            ab.DoDamage(6, cdwnleftarrowdmg);
            break;

        case "cdwnrghtArrow":
            ab.DoDamage(8, cdwnrghtarrowdmg);
            break;
        }
    }
    void Aggressive()
    {
        shotTarget = aggroTimer;
        if (shotTimer > shotTarget && shotTarget > 0)          //shoot at the player every two seconds

        //determine player position
        {
            float playerX = GetPlayer().transform.position.x;
            float playerY = GetPlayer().transform.position.y;

            //make target mean something
            GenerateTarget(playerX, playerY);
            //raycast to target; if open air, shoot
            RaycastHit2D line = Physics2D.Linecast(transform.position, target, mask);
            if (!line)
            {
                ArrowBehavior arroz = Instantiate(arrow);
                arroz.SetBehavior(damage, transform.position, target, target - new Vector2(transform.position.x, transform.position.y), arrowSpeed);
                shotTimer = 0;
            }
        }
    }
    void Start()
    {
        GM = GameManager.Instance;
        //Bow Start Config
        bowStringRenderer = bowString.GetComponent <LineRenderer>();
        //bowStringRenderer.material.color = Color.gray;
        bowStringRenderer.sortingLayerName = "Weapons";
        bowStringRenderer.sortingOrder     = 1;
        stringStartPosition = bowStringRenderer.GetPosition(1);

        //Arrow Start Config
        arrowBehavior      = transform.GetChild(0).GetComponent <ArrowBehavior>();
        arrowStartPosition = new Vector3(
            this.transform.position.x - 0.5f,
            this.transform.position.y + 0.08f,
            this.transform.position.z);
        arrow                   = Instantiate(arrow, arrowStartPosition, Quaternion.identity);
        arrowRigidBody          = arrow.GetComponent <Rigidbody2D>();
        arrow.transform.parent  = transform;
        arrowStartLocalPosition = arrow.transform.localPosition;

        CameraController.ObjectToFollow = arrow.transform;
    }
    void ShootArrow(float angle)
    {
        ArrowBehavior currentShot = Instantiate(shot);

        currentShot.SetBehavior(30, transform.position, angle, 5f);
    }
Beispiel #12
0
    public void Nullify(List <int> sides)
    {
        Grandpa  = this.transform.parent.parent;
        sibIndex = Grandpa.GetSiblingIndex();
        ArrowBehavior arrowBehavior = this;

        if (sibIndex % 4 == 0)
        {
            foreach (int side in sides)
            {
                switch (side)
                {
                case 3:
                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = false;
                    break;

                case 4:
                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = false;
                    break;

                case 5:

                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = false;
                    break;

                default:

                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = true;
                    break;
                }
            }
        }

        else if ((sibIndex + 1) % 4 == 0 || sibIndex == 19)
        {
            foreach (int side in sides)
            {
                switch (side)
                {
                case 1:

                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = false;
                    break;

                case 2:
                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = false;
                    break;

                case 8:
                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = false;
                    break;

                default:
                    arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = true;
                    break;
                }
            }
        }
        else
        {
            foreach (int side in sides)
            {
                arrowBehavior.transform.Find("" + side).GetComponent <Button>().interactable = true;
            }
        }
    }