Exemple #1
0
        public void FishingEnd(bool success)
        {
            foreach (Fish f in Fishes)
            {
                f.FishingEnd();
            }

            areaCollider.enabled = true;

            FishingControls?.Disable();
            FishingControls?.Dispose();
            FishingControls = null;

            Debug.Log("Stopped fishing.");

            if (_fishingBehaviourScript == null)
            {
                return;
            }

            if (success)
            {
                ActiveFish.ForceStopAI();
                Debug.Log("Fish Caught!");
            }
            else
            {
                OnFail?.Invoke();
                Debug.Log("Fish Got Away...");
            }

            Destroy(_fishingBehaviourScript.gameObject);
        }
    private void OnMouseDown()
    {
        Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        mousePos.z = 0;

        float distanceToFish = Vector3.Distance(fishStock.transform.position, mousePos);

        if (activeFishes.Count > 0 &&
            distanceToFish <= 0.5f)
        {
            activeFishes[0].StartDrag();
            currentlyDraggedFish = activeFishes[0];
            activeFishes.RemoveAt(0);
        }

        foreach (var activeCrew in activeCrews)
        {
            float distance = Vector3.Distance(activeCrew.transform.position, mousePos);
            if (activeCrew.gameObject.activeInHierarchy && distance <= 0.1f)
            {
                gameDirector.OnCrewClick(activeCrew);
            }
        }
    }
    public void AddFish()
    {
        var   fish          = Instantiate(usableFishPrefab, fishStock);
        float fishRandomPos = 0.25f;

        fish.transform.localPosition = new Vector3(UnityEngine.Random.Range(-fishRandomPos, fishRandomPos),
                                                   UnityEngine.Random.Range(-fishRandomPos, fishRandomPos), 0);

        ActiveFish fishComponent = fish.GetComponent <ActiveFish>();

        fishComponent.OnReset = OnFishReset;
        activeFishes.Add(fishComponent);
    }
 private void OnFishReset(ActiveFish activeFish)
 {
     activeFishes.Add(activeFish);
     currentlyDraggedFish = null;
 }