IEnumerator OnTriggerEnter2D(Collider2D player) { if (!hasTriggered) { hasTriggered = true; System.DateTime dt = System.DateTime.Now; PlayMov.StopMoving(); // If player came at the correct time if (hasInteracted) { foreach (string message in incorrectTimeMessages) { UIManager.Inst.StartMessage(message); } UIManager.Inst.StartMessage("You have already claimed this reward!"); } else if ((dt.DayOfWeek == dayOfWeek) && (dt.Hour == hour)) { foreach (string message in correctTimeMessages) { UIManager.Inst.StartMessage(message); } foreach (ItemClass item in itemsWithAmounts) { GameManager.Inst.AddItem(item, item.numberOfItem); } // Later: save interaction hasInteracted = true; } else { foreach (string message in incorrectTimeMessages) { UIManager.Inst.StartMessage(message); } } // Wait until all messages are completed yield return(new WaitWhile(() => UIManager.Inst.isMessageToDisplay)); PlayMov.Move(2); yield return(new WaitForSeconds(0.1f)); PlayMov.StopMoving(true); PlayMov.ResumeMoving(); } }
// Check if world movement should be altered public void Move(int dir) { if (isAllowedToMove) { if (sceneName != "Shasta") { playerMovement.Move(dir); } else { // If I want to invert, add 2 and mod 4 if (DrunkShastaWalk) { playerMovement.Move(Random.Range(0, 4)); } else { playerMovement.Move(dir); } DrunkShastaWalk = !DrunkShastaWalk; } } }