Example #1
0
 public void Awake()
 {
     if (onTargetHit == null)
     {
         onTargetHit = new OnTargetHit();
     }
     if (onTargetShoot == null)
     {
         onTargetShoot = new OnTargetShoot();
     }
     if (onTargetDestroy == null)
     {
         onTargetDestroy = new OnTargetDestroy();
     }
 }
Example #2
0
 public void CallOnTargetHit(EventData ob = null) => OnTargetHit?.Invoke(ob);
Example #3
0
 public void TargetHit()
 {
     OnTargetHit.Invoke(score);
 }
Example #4
0
    void shoot()
    {
        amountOfBullets--;
        RaycastHit hit;

        if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
        {
            Target target = hit.transform.GetComponentInParent <Target>();
            if (target != null)
            {
                target.takeAShot();
                Hit hitfeedBack = new Hit();
                switch (hit.transform.name)
                {
                case "InnerCircle":
                    hitfeedBack.score    = 100 * target.multiplier;
                    hitfeedBack.feedback = HitFeedback.Perfect;
                    hitfeedBack.text     = "Perfect ";
                    if (hitfeedBack.score > 0)
                    {
                        hitfeedBack.text += "+";
                    }
                    hitfeedBack.text += hitfeedBack.score;
                    hitfeedBack.color = Color.yellow;
                    break;

                case "FirstCircle":
                    hitfeedBack.score    = 80 * target.multiplier;
                    hitfeedBack.feedback = HitFeedback.VeryGood;
                    hitfeedBack.text     = "Very Good ";
                    if (hitfeedBack.score > 0)
                    {
                        hitfeedBack.text += "+";
                    }
                    hitfeedBack.text += hitfeedBack.score;
                    hitfeedBack.color = Color.magenta;
                    break;

                case "SecondCircle":
                    hitfeedBack.score    = 60 * target.multiplier;
                    hitfeedBack.feedback = HitFeedback.Good;
                    hitfeedBack.text     = "Good ";
                    if (hitfeedBack.score > 0)
                    {
                        hitfeedBack.text += "+";
                    }
                    hitfeedBack.text += hitfeedBack.score;
                    hitfeedBack.color = Color.red;
                    break;

                case "OuterCircle":
                    hitfeedBack.score    = 40 * target.multiplier;
                    hitfeedBack.feedback = HitFeedback.Ok;
                    hitfeedBack.text     = "Ok ";
                    if (hitfeedBack.score > 0)
                    {
                        hitfeedBack.text += "+";
                    }
                    hitfeedBack.text += hitfeedBack.score;
                    hitfeedBack.color = Color.cyan;
                    break;

                default:
                    break;
                }
                shotFeedback.text  = hitfeedBack.text;
                shotFeedback.color = hitfeedBack.color;
                OnTargetHit?.Invoke(hitfeedBack, hit.transform);
            }
            DestructibleObstacle destructibleObstacle = hit.transform.GetComponentInParent <DestructibleObstacle>();
            if (destructibleObstacle != null)
            {
                destructibleObstacle.takeAShot();
            }
        }
    }
Example #5
0
 private void OnTargetHit(OnTargetHit obj)
 {
     CheckQuests(obj);
 }
Example #6
0
 private void HitTarget()
 {
     Invoke(nameof(Disable), 2f);
     OnTargetHit?.Invoke(target);
     target = null;
 }