コード例 #1
0
    private void Shoot()
    {
        int numberOfBullets = AC.GlobalVariables.GetIntegerValue (5);
        if (numberOfBullets > 0 && AC.GlobalVariables.GetBooleanValue (52)) {
            this.renderer.sprite = shoot;
            AC.GlobalVariables.SetIntegerValue (5, numberOfBullets - 1);
            TargetMovement t = GameObject.FindObjectOfType<TargetMovement> ();
            Collider2D hitCollider = Physics2D.OverlapCircle (t.transform.position, t.GetComponent<CircleCollider2D> ().radius, 1 << LayerMask.NameToLayer ("Body Part"));

            //if (hitCollider == null || !enemy.IsStanding ()) {
            if (hitCollider == null) {
                //GameObject.Find ("Missed").GetComponent <AC.Cutscene> ().Interact ();
                MonoBehaviour.print ("miss");
            } else {
                BodyPart part = hitCollider.gameObject.GetComponent<BodyPart> ();
                enemy = part.GetComponentInParent<NPCController> ();
                enemy.GetBarkTrigger ().TryBark (this.transform);
                //GameObject.Find ("BeltHit").GetComponent <AC.Cutscene> ().Interact ();
                //Debug.Log (part.gameObject.name + " shot. You did " + part.damage + " damage");
                Shootable npc = hitCollider.gameObject.GetComponentInParent<Shootable> ();
                npc.DecreaseHP (part.damage);
                //npc.GetComponent<NPCController> ().ForceToggle ();
            }

        } else {
            Destroy (FindObjectOfType<TargetMovement> ().gameObject);
            AC.GlobalVariables.SetBooleanValue (52, false);
        }
    }