public override void DoubleClicked() { bool advance = connectedSwitch == null || connectedSwitch.ValidateSwitchState(enableOnlyForSwitchState); if (advance) { StartCoroutine(PersistentEngine.player.LeaveRoomImmediate(this)); } }
public override IEnumerator ProcessArrivedAt() { float time0 = Time.time; if (connectedSwitch != null && !connectedSwitch.ValidateSwitchState(enableOnlyForSwitchState)) { yield return(null); } else if (allowsDirect) { if (setProgresToZero) { progressCounter = 0; } PersistentEngine.player.TurnTowards(base.interactiveItem); PersistentEngine.player.ChangeState(actionAnimation); while (progressCounter == 0) { yield return(new WaitForSeconds(0.05f)); if (Time.time - time0 > PersistentEngine.maxCharacterAnimationLength) { Debug.Log("Warning: ProcessArrivedAt interrupted, Time.time-time0 > maxCharacterAnimationLength"); break; } } ShowPuzzle(); while (progressCounter == 1) { yield return(new WaitForSeconds(0.05f)); if (Time.time - time0 > PersistentEngine.maxCharacterAnimationLength) { Debug.Log("Warning: ProcessArrivedAt interrupted, Time.time-time0 > maxCharacterAnimationLength"); break; } } PersistentEngine.player.ChangeState(endState); } yield return(null); }
public override IEnumerator ProcessArrivedAt() { if (connectedSwitch != null && !connectedSwitch.ValidateSwitchState(enableOnlyForSwitchState)) { yield return(null); } else { if (onlyOnce && usedFlag) { } else { PersistentEngine.player.StopWalking(); PersistentEngine.player.StopTalking(); PersistentEngine.player.ChangeState(Player.State.IdleDiagonalFront); PersistentEngine.player.TurnTowards(interactiveItem); PersistentEngine.player.conversationPartner = GetComponent <CharacterHead>(); usedFlag = true; SaveState(); yield return(StartCoroutine(RunConversation())); } } }
public override IEnumerator ProcessArrivedAt() { if (connectedSwitch != null && !connectedSwitch.ValidateSwitchState(enableOnlyForSwitchState)) { yield return(null); } else if ((interactiveItem.heldItem == null || combiningItem != null || interactiveItem.heldItem != combiningItem) && string.IsNullOrEmpty(comment)) { yield return(null); } else if (interactiveItem.heldItem != null) { yield return(null); } else { if (onlyOnce && usedFlag) { } else { usedFlag = true; SaveState(); if (!isInventoryItem || (isInventoryItem && !PersistentEngine.player.IsWalking())) { if (overrideActionObject != null && !string.IsNullOrEmpty(overrideAction)) { overrideActionObject.SendMessage(overrideAction, SendMessageOptions.DontRequireReceiver); } else { switch (talkDirection) { case TalkDirection.TalkDiagonalFrontLeft: PersistentEngine.player.ChangeTalkDirection(Player.TalkDirection.Diagonal); PersistentEngine.player.ChangeDirection(-1); break; case TalkDirection.TalkDiagonalFrontRight: PersistentEngine.player.ChangeTalkDirection(Player.TalkDirection.Diagonal); PersistentEngine.player.ChangeDirection(1); break; case TalkDirection.TalkDiagonalBackLeft: PersistentEngine.player.ChangeTalkDirection(Player.TalkDirection.DiagonalBack); PersistentEngine.player.ChangeDirection(-1); break; case TalkDirection.TalkDiagonalBackRight: PersistentEngine.player.ChangeTalkDirection(Player.TalkDirection.DiagonalBack); PersistentEngine.player.ChangeDirection(1); break; case TalkDirection.TalkFront: PersistentEngine.player.ChangeTalkDirection(Player.TalkDirection.Front); break; case TalkDirection.None: break; } if (interactiveItem.heldItem != null && combiningItem != null && interactiveItem.heldItem == combiningItem) { if (commentWhenCombine.Length > 1) { yield return(StartCoroutine(PersistentEngine.player.SpeakProcedure(commentWhenCombine))); } } else { yield return(StartCoroutine(PersistentEngine.player.SpeakProcedure(comment))); if (multipleComments.Length > 0) { comment = multipleComments[currentComment]; yield return(null); currentComment++; currentComment = currentComment % multipleComments.Length; } } } } } } }