Beispiel #1
0
 void Start()
 {
     //Get all boxes and belongings
     belongings = FindObjectsOfType <Belonging>();
     boxes      = FindObjectsOfType <BoxToFill>();
     hidden     = FindObjectOfType <HiddenObject>();
 }
Beispiel #2
0
 private void UpdateVisibility(VisionState nvs)
 {
     if (VisionState != nvs)
     {
         VisionState = nvs;
         if (VisibleObject)
         {
             VisibleObject.SetActive(nvs == VisionState.VISIBLE);
         }
         if (HiddenObject)
         {
             HiddenObject.SetActive(nvs == VisionState.HIDDEN);
         }
         if (SeenObject)
         {
             SeenObject.SetActive(nvs == VisionState.SEEN);
         }
         UpdateParticleSystems(nvs);
         //foreach (var r in GetComponentsInChildren<Renderer>()) r.enabled = (nvs != VisionState.HIDDEN);
         foreach (var obj in mapObjects.Values)
         {
             ApplyVisibilityToObject(obj);
         }
     }
 }
Beispiel #3
0
 // Return objects to normal
 private void OnTriggerExit(Collider other)
 {
     if (other.GetComponent <HiddenObject>())
     {
         HiddenObject hide = other.GetComponent <HiddenObject>();
         hide.colliders[0].enabled = false;
     }
 }
Beispiel #4
0
    protected override void OnDamageableDestroyed()
    {
        base.OnDamageableDestroyed();
        ReadOnlyCollection <HiddenObject> targetObjects = hiddenObjectSpawner.TargetObjects;

        int          highlightedObjectIndex = Random.Range(0, targetObjects.Count);
        HiddenObject highlightedObject      = targetObjects[highlightedObjectIndex];

        highlightedObject.HighlightObject();
    }
    public HiddenObject GetRandomObject(HiddenObject.ObjectDifficulty diffculty)
    {
        if (objectsAvailable == 0) return null;

        foreach(HiddenObject hiddenObject in hiddenObjects)
            if (hiddenObject.selected == false && hiddenObject.difficulty == diffculty)
            {
                hiddenObject.SetCollider(true);
                hiddenObject.selected = true;
                objectsAvailable--;

                return hiddenObject;
            }
        return null;
    }
Beispiel #6
0
    private void Update()
    {
        while (_visibleObjects.Count < _objectsVisible)
        {
            int          newObjectIndex;
            HiddenObject newObject;
            do
            {
                newObjectIndex = Random.Range(0, _hiddenObjectPrefabs.Length);
                newObject      = _hiddenObjectPrefabs[newObjectIndex];
            } while (_visibleObjects.Contains(newObject));

            float horizontalPosition = Random.Range(-horizontalRange, horizontalRange);
            float verticalPosition   = Random.Range(-verticalRange, verticalRange);
            newObject.transform.position =
                new Vector3(horizontalPosition, verticalPosition, newObject.transform.position.z);

            if (_targetObjects.Count < minimumTargetObjects || Random.Range(0f, 1f) < targetObjectPercentage)
            {
                newObject.isTargetItem = true;
                _targetObjects.Add(newObject);

                if (_visibleObjects.Count > 0)
                {
                    for (int currAlteredObject = 0; currAlteredObject < objectsToAlter; currAlteredObject++)
                    {
                        float        horizontalAlteredPosition = Random.Range(-horizontalRange, horizontalRange);
                        float        verticalAlteredPosition   = Random.Range(-verticalRange, verticalRange);
                        int          objectToAlterIndex        = Random.Range(0, _visibleObjects.Count);
                        HiddenObject objectToAlter             = _visibleObjects[objectToAlterIndex];
                        objectToAlter.transform.position =
                            new Vector3(horizontalAlteredPosition, verticalAlteredPosition, objectToAlter.transform.position.z);
                    }
                }
            }
            else
            {
                newObject.isTargetItem = false;
            }

            _visibleObjects.Add(newObject);
            newObject.gameObject.SetActive(true);
        }
    }
Beispiel #7
0
    // Get an exact same object as this one.
    public override Component Clone()
    {
        BoxDescription boxDescription = BoxFactory.GetBoxDescription(Description.BackImage, Description.Size);
        HiddenObject   hiddenObject   = new HiddenObject {
            Image = HiddenObject.Image
        };
        BoxState boxState = new BoxState {
            State = State.State
        };
        ImageBinder imageBinder = new ImageBinder();
        BoxFactory  boxFactory  = BoxFactory.GetInstance();
        string      image       = (string)CurrentImage.Clone();

        return(new Box {
            Description = boxDescription, HiddenObject = hiddenObject,
            State = boxState, ImageBinder = imageBinder,
            BoxFactory = boxFactory, CurrentImage = image, Position = this.Position,
            IsEnabled = this.IsEnabled
        });
    }
 public void SetObject(HiddenObject newObject)
 {
     hiddenObject = newObject;
 }
Beispiel #9
0
 public void RemoveHiddenObject(HiddenObject hiddenObject)
 {
     hiddenObject.gameObject.SetActive(false);
     _visibleObjects.Remove(hiddenObject);
     _targetObjects.Remove(hiddenObject);
 }