private void OnRoomTraversedEvent(RoomTraversedEventArgs args) { if (args.CurrentRoom.gameObject != gameObject) { return; } _ending = true; SceneFaderBehaviour.Instance.FadeInto("EndingCutscene"); }
private void OnRoomTraversedEvent(RoomTraversedEventArgs args) { if (args.CurrentRoom.gameObject != transform.parent.gameObject) { return; } int targetHealth = _playerHealthBehaviour.MaxHealth - IncreaseValue; if (_playerHealthBehaviour.Value != targetHealth) { _playerHealthBehaviour.Value = targetHealth; } }
/// <summary> /// Updates the minimap when the player traverses between rooms, this /// is called by the EventManager when RoomTraversedEventArgs is /// emitted. /// </summary> private void OnRoomTraversed(RoomTraversedEventArgs eventArgs) { RoomConnectionBehaviour roomConnectionBehaviour = eventArgs.CurrentRoom; GameObject roomNode = HasRoomNode(roomConnectionBehaviour) ? GetRoomNode(roomConnectionBehaviour) : AddRoomNode(roomConnectionBehaviour); foreach (DoorConnectionBehaviour doorConnectionBehaviour in eventArgs.CurrentRoom.Doors) { RoomConnectionBehaviour connectingRoomConnectionBehaviour = doorConnectionBehaviour.ConnectingDoor.GetComponentsInParent <RoomConnectionBehaviour>(true)[0]; // add connecting room node if (!HasRoomNode(connectingRoomConnectionBehaviour)) { AddRoomNode(connectingRoomConnectionBehaviour); } // add line between room node and connecting room node if (!HasLineNode(roomConnectionBehaviour, connectingRoomConnectionBehaviour)) { AddLineNode(roomConnectionBehaviour, connectingRoomConnectionBehaviour); } } // update room node colors if (_currentRoomNode != null) { bool startingRoom = _currentRoomNode.transform.localPosition == Vector3.zero; _currentRoomNode.GetComponent <SpriteRenderer>().color = startingRoom ? StartingRoomColor : ExploredRoomColor; } _currentRoomNode = roomNode; _currentRoomNode.GetComponent <SpriteRenderer>().color = CurrentRoomColor; // update minimap target position _targetOffset.Value = new Vector3 { x = -eventArgs.CurrentRoom.Position.x * _roomOffset.localScale.x * _spacing, y = -eventArgs.CurrentRoom.Position.y * _roomOffset.localScale.y * _spacing, z = _roomOffset.position.z, }; }
private void OnRoomTraversed(RoomTraversedEventArgs eventArgs) { bool onceShut = false; RoomClearBehaviour roomClearBehaviour = eventArgs.CurrentRoom.GetComponent <RoomClearBehaviour>(); if (roomClearBehaviour._enemyCount == 0) { return; } foreach (DoorConnectionBehaviour doorConnectionBehaviour in roomClearBehaviour._doorConnectionBehaviours) { if (doorConnectionBehaviour.IsOpen) { doorConnectionBehaviour.Close(); if (!onceShut) { AudioManager.Play(DoorLock, AudioCategory.Effect); onceShut = true; } } } }
private void OnRoomTraversed(RoomTraversedEventArgs eventArgs) { int id = eventArgs.CurrentRoom.gameObject.GetInstanceID(); _visitedRooms.Add(id); }