public override void RestoreWith(State state) { LeverState leverState = (LeverState)state; leverState.RebuildCompoundTypes(); startRotation = leverState.prevStartRotation; EndRotation = leverState.prevEndRotation; OriginalStartRotation = leverState.originalStartRotation; OriginalEndRotation = leverState.originalEndRotation; MovementDirection = leverState.movementDirection; HasSwitchedRotation = leverState.hasSwitchedRotation; IsRotating = leverState.isRotating; hasInitialised = true; if (IsRotating) { toResumeRotation = true; } if (HasSwitchedRotation) { SwitchRotation(); } }
public void ResetOne() { if (reset_on_dead) { state = start_state; } }
//*******************************// // MonoBehaviour Functions // //*******************************// private void Awake() { m_state = new LeverState(); m_interactable = GetComponent <Interactable>(); m_anim = GetComponent <Animator>(); m_animParamPulled = Animator.StringToHash("Pulled"); }
private IEnumerator SwithLever(LeverState state) { if ((dungeonGate.gateState != DungeonGateController.GateState.Closing && dungeonGate.gateState != DungeonGateController.GateState.Opening)) { switch (state) { case LeverState.Up: leverAnim.Play("lever_up", PlayMode.StopAll); break; case LeverState.Down: leverAnim.Play("lever_down", PlayMode.StopAll); break; } while (leverAnim.isPlaying) { yield return(new WaitForEndOfFrame()); } leverState = state; if (state == LeverState.Down) { dungeonGate.ChangeState(DungeonGateController.GateState.Opening); } else { dungeonGate.ChangeState(DungeonGateController.GateState.Closing); } } }
public void SetState(LeverState _state) { m_state = _state; if (m_state.used) { m_interactable.SimulateInteraction(); } }
void Update() { timer += Time.deltaTime; if (state != prev_state) { ChangeSprite(); prev_state = state; } }
public LeverState state = LeverState.OFF; //public for testing purposes. public void pressLever() { //TODO cue animation here if (state == LeverState.OFF) { state = LeverState.ON; transform.Rotate(direction); } else { state = LeverState.OFF; transform.Rotate(-direction); } }
public void TurnLever() { if (currentLeverState == LeverState.Left && isSingleUse) { if (OnLeverTurnRight != null) { OnLeverTurnRight(LeverID); } //Debug.Log("Lever " + LeverID + " turned Right and broke!"); // Animation animator.SetTrigger(turnLeverRightTriggerHash); Destroy(this); } else if (currentLeverState == LeverState.Left) { if (OnLeverTurnRight != null) { OnLeverTurnRight(LeverID); } currentLeverState = LeverState.Right; // Animation animator.SetTrigger(turnLeverRightTriggerHash); //Debug.Log("Lever " + LeverID + " turned Right!"); } else { if (OnLeverTurnLeft != null) { OnLeverTurnLeft(LeverID); } currentLeverState = LeverState.Left; // Animation animator.SetTrigger(turnLeverLeftTriggerHash); //Debug.Log("Lever " + LeverID + " turned Left!"); } // Audio audioSrc.pitch = Random.Range(0.8f, 1.2f); audioSrc.PlayOneShot(leverTurnAudio); }
public void Activate() { //Can't activate twice very fast if (timer < 0f) { return; } if (!no_return || state == start_state) { timer = -0.8f; //Change state if (state == LeverState.left) { state = (can_be_center) ? LeverState.center : LeverState.right; } else if (state == LeverState.center) { state = LeverState.right; } else if (state == LeverState.right) { state = LeverState.left; } //Audio GetComponent <AudioSource>().Play(); //Trigger if (OnTriggerLever != null) { OnTriggerLever.Invoke(); } } }
public void Activate() { //Can't activate twice very fast if (timer < 0f) { return; } if (!no_return || state == start_state) { timer = -0.8f; //Change state if (state == LeverState.left) { state = (can_be_center) ? LeverState.center : LeverState.right; } else if (state == LeverState.center) { state = LeverState.right; } else if (state == LeverState.right) { state = LeverState.left; } //Audio TheAudio.Play("lever", activate_sound, 0.5f); //Trigger if (OnTriggerLever != null) { OnTriggerLever.Invoke(); } } }
public void Interact() { if (CurrentState == LeverState.ON) { CurrentState = LeverState.Middle; onandoff = false; } else if (CurrentState == LeverState.OFF) { CurrentState = LeverState.Middle; onandoff = true; } else { if (onandoff == true) { CurrentState = LeverState.ON; } else { CurrentState = LeverState.OFF; } } }
void Start() { start_state = state; prev_state = state; ChangeSprite(); }
public string stateToString(LeverState state) { switch (state) { case LeverState.State1: return Dictionary.LEVER_STATE1_TEXT; case LeverState.State2: return Dictionary.LEVER_STATE2_TEXT; } return ""; }
public void OnUpdate() { // Режим в эдиторе #if UNITY_EDITOR OnStart(); #endif int directionValue = direction == AnimationDirection.DirectionPositive ? 1 : -1; switch (state) { case LeverState.State1: animator.update(this.gameObject, state1Angles, directionValue, speed); if (turnLever && animator.isComplete(this.gameObject, state1Angles, directionValue, speed)) { door.openDoor(); turnLever = false; } break; case LeverState.State2: animator.update(this.gameObject, state2Angles, directionValue, speed); if (turnLever && animator.isComplete(this.gameObject, state2Angles, directionValue, speed)) { door.closeDoor(); turnLever = false; } break; } if (prevState != state) turnLever = true; prevState = state; }
public void leverState2() { if (state == LeverState.State2 || !mayBeState1ToState2) return; prevState = state; state = LeverState.State2; #if UNITY_EDITOR if (audioSource == null) return; #endif audioSource.clip = sound.leverState2Sound(); audioSource.Play(); }