Example #1
0
 public void ReleaseButton()
 {
     if (TakenLetter != null)
     {
         //sets upper position to unoccupied occupied
         this.IsTaken = false;
         TakenLetter  = null;
     }
 }
Example #2
0
    public void PlaceButton(LetterButtonScript button)
    {
        //sets the position to occupied
        this.IsTaken = true;
        //set the taken letter
        this.TakenLetter = button;

        //place button physically
        button.GetComponent <RectTransform>().position = this.GetComponent <RectTransform>().position;
        //adjust attributes
        button.LowerBox = !button.LowerBox;
        button.transform.SetParent(this.transform);
    }
Example #3
0
    //activates on click on button and set button in upperbox and place position of button to next free target
    public void LetterButtonGetsClicked(LetterButtonScript currentLetterButton)
    {
        var startHolderButton = _startHolderList.Find(script => script.TakenLetter == currentLetterButton);

        //if the clicked button is in the lower box
        if (currentLetterButton.LowerBox)
        {
            //check to see if there are any free button holder; does this list has any item which is not taken?
            if (_targetHolderList.Any(holder => !holder.IsTaken))
            {
                //there are some free ones

                //? ##create a local variable (only allowed in this function). in the _targetHolderList (=all button holder gameobjects (=that can store and hold button letters) in upper box) get the first gameobject/script that is not taken and if there is one, set it as the value of the new variable firstFreeTarget
                var firstFreeTargetButton = _targetHolderList.FirstOrDefault(letter => !letter.IsTaken);
                startHolderButton.ReleaseButton();
                firstFreeTargetButton.PlaceButton(currentLetterButton);
            }
            else
            {
                //there are no free ones
                Debug.Log("no space in target for the clicked button ... what to do? ;)");
            }
        }

        //check if upper box is full, if so set check interactable
        if (_targetHolderList.Last <LetterHolderScript> ().IsTaken)
        {
            _checkButtonScript.SetInteractable(true);
            //sets all letter buttons to not interactable
            _letterList.ForEach(letter => letter.SetInteractable(false));
        }

        if (_targetHolderList.First <LetterHolderScript> ().IsTaken)
        {
            _releaseButtonScript.SetInteractableRelease(true);
        }
    }