2025-04-25 16:41:29 +02:00
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using Cirno.Scripts.Controllers;
|
2025-04-24 16:40:51 +02:00
|
|
|
|
|
|
|
|
|
|
namespace Cirno.Scripts.Interactables;
|
|
|
|
|
|
|
|
|
|
|
|
public partial class RogueliteDoorLock : Switch
|
|
|
|
|
|
{
|
|
|
|
|
|
public RoomConnection Connection { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public override bool Activate(ActivationType activationType = ActivationType.Toggle)
|
|
|
|
|
|
{
|
|
|
|
|
|
base.Activate(activationType);
|
|
|
|
|
|
|
|
|
|
|
|
if (!MeetsRequirements()) return false;
|
|
|
|
|
|
|
|
|
|
|
|
Connection.FromDoor.Activate(activationType);
|
|
|
|
|
|
Connection.ToDoor.Activate(activationType);
|
|
|
|
|
|
|
2025-04-25 16:41:29 +02:00
|
|
|
|
foreach (var requirement in Requirements)
|
|
|
|
|
|
{
|
|
|
|
|
|
InventoryManager.Instance.RemoveItem(requirement.ItemKey, 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-04-24 16:40:51 +02:00
|
|
|
|
|
|
|
|
|
|
this.QueueFree();
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|