private void InitializeNewStep() { // lock all triggers and reset trigger state to incorrect foreach (GameObject trigger in triggers) { R_TriggerScript t = trigger.GetComponent <R_TriggerScript>(); t.IsLocked = true; if (index == 1 && t.State != ETriggerState.correct) { t.State = ETriggerState.incorrect; } } if (isCompleted) { Completed(); return; } trigger1 = triggers[index - 1]; trigger2 = triggers[index]; trigger1script = trigger1.GetComponent <R_TriggerScript>(); trigger2script = trigger2.GetComponent <R_TriggerScript>(); box1 = boxes[index - 1]; box2 = boxes[index]; box1script = box1.GetComponent <R_BoxScript>(); box2script = box2.GetComponent <R_BoxScript>(); trigger1script.IsLocked = false; trigger2script.IsLocked = false; boxesChecked = false; }
public void InitializeStep(int index = 1) { trigger1 = triggers[index - 1]; trigger2 = triggers[index]; trigger1script = trigger1.GetComponent <R_TriggerScript>(); trigger2script = trigger2.GetComponent <R_TriggerScript>(); box1 = currentState[index - 1]; box2 = currentState[index]; box1script = box1.GetComponent <R_BoxScript>(); box2script = box2.GetComponent <R_BoxScript>(); int count = 0; foreach (GameObject trigger in triggers) { trigger.GetComponent <R_TriggerScript>().IsLocked = true; if (count > iteration) { triggers[count].GetComponent <R_TriggerScript>().State = ETriggerState.inactive; } count++; } trigger1script.IsLocked = false; trigger2script.IsLocked = false; trigger2script.State = ETriggerState.pivot; boxesChecked = false; hasSwapInStep = false; if (box1script.Value > box2script.Value) { hasSwapInStep = true; } Debug.Log("hasSwapInStep: " + hasSwapInStep); }
public void InitializeStep() { if (!hasPivot) { PivotStep(); return; } if (leftIndex <= right) { leftTrigger = triggers[leftIndex]; leftTriggerScript = leftTrigger.GetComponent <R_TriggerScript>(); leftBox = boxes[leftIndex]; leftBoxScript = leftBox.GetComponent <R_BoxScript>(); } rightTrigger = triggers[rightIndex]; pivotTrigger = triggers[pivotIndex]; rightTriggerScript = rightTrigger.GetComponent <R_TriggerScript>(); pivotTriggerScript = pivotTrigger.GetComponent <R_TriggerScript>(); rightBox = boxes[rightIndex]; pivotBox = boxes[pivotIndex]; rightBoxScript = rightBox.GetComponent <R_BoxScript>(); pivotBoxScript = pivotBox.GetComponent <R_BoxScript>(); SetTriggersInactive(); if (!leftSideFound && !(leftIndex > right)) { leftTriggerScript.IsLocked = false; pivotTriggerScript.IsLocked = false; leftTriggerScript.State = ETriggerState.incorrect; pivotTriggerScript.State = ETriggerState.pivot; } else if (leftSideFound && rightSideFound) { pivotTriggerScript.IsLocked = true; leftTriggerScript.IsLocked = false; rightTriggerScript.IsLocked = false; pivotTriggerScript.State = ETriggerState.pivot; leftTriggerScript.State = ETriggerState.intermediate; rightTriggerScript.State = ETriggerState.intermediate; } else { rightTriggerScript.IsLocked = false; pivotTriggerScript.IsLocked = false; if (leftIndex <= right) { leftTriggerScript.State = ETriggerState.intermediate; } pivotTriggerScript.State = ETriggerState.pivot; rightTriggerScript.State = ETriggerState.incorrect; } boxesChecked = false; }
private void Completed() { foreach (GameObject trigger in triggers) { R_TriggerScript t = trigger.GetComponent <R_TriggerScript>(); t.IsLocked = true; t.State = ETriggerState.correct; t.SetHasTriggerColour(true); } foreach (GameObject box in boxes) { box.GetComponent <R_BoxScript>().Visibility = EVisibilityOptions.AlwaysVisible; } }