49 lines
1.3 KiB
C#
49 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
public class RoomDoor : RoomItem
|
|
{
|
|
public float AssignWeight = 1;
|
|
public RoomDoor Match;
|
|
public bool Disabled;
|
|
public string[] Tags;
|
|
public TagWeight[] AllowedMatches;
|
|
|
|
private PlayerController player;
|
|
private SpriteRenderer sr;
|
|
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
player = FindObjectOfType<PlayerController>();
|
|
sr = GetComponentInChildren<SpriteRenderer>();
|
|
}
|
|
|
|
protected override void Update()
|
|
{
|
|
base.Update();
|
|
if (!Application.isPlaying) Awake();
|
|
|
|
if (sr != null)
|
|
{
|
|
if (Disabled) sr.color = Color.black;
|
|
else sr.color = Color.white;
|
|
}
|
|
}
|
|
|
|
private void OnCollisionEnter2D(Collision2D collision)
|
|
{
|
|
if (collision.gameObject == player.gameObject)
|
|
{
|
|
if (Disabled || TransitionManager.Instance.Transitioning) return;
|
|
player.Active = false;
|
|
TransitionManager.Instance.Transition(() =>
|
|
{
|
|
DungeonGenerator.Instance.UpdateActiveRoom(Match.ParentRoom);
|
|
player.Room = Match.ParentRoom;
|
|
player.transform.position = Match.transform.position + Match.transform.up * 1.5f;
|
|
player.Active = true;
|
|
});
|
|
}
|
|
}
|
|
}
|