Files
Cielonos/Assets/Scripts/MainGame/Items/Base/SupportEquipmentBase.cs
SoulliesOfficial 649b7a5ddc 更新
2026-05-23 08:27:50 -04:00

80 lines
1.9 KiB
C#

using System.Linq;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Cielonos.MainGame.Inventory
{
public abstract partial class SupportEquipmentBase : ItemBase
{
[TitleGroup("Data")]
public AttributeData activeAttributeData;
}
public partial class SupportEquipmentBase
{
[TitleGroup("Submodules")]
public AttributeSubmodule activeAttributeSm;
}
public partial class SupportEquipmentBase
{
public virtual void OnEquipped()
{
SpawnViewObjects();
}
public virtual void OnUnequipped()
{
RemoveAllRegisteredFunctions();
DespawnViewObjects();
}
public override void OnObtained()
{
base.OnObtained();
// 如果玩家当前装备的支援装备栏有空位,则自动装备
int index = -1;
index = player.inventorySc.equipmentSm.currentSupportEquipments.FindIndex(x => x is null);
if (index >= 0)
{
player.inventorySc.equipmentSm.currentSupportEquipments[index] = this;
player.inventorySc.equipmentSm.EquipSupportEquipment(this, index);
}
else
{
Debug.LogWarning($"[SupportEquipmentBase] No empty slot to equip {name}.");
}
}
}
public partial class SupportEquipmentBase
{
protected override void Update()
{
if (player.inventorySc.equipmentSm.currentSupportEquipments.Contains(this))
{
base.Update();
}
}
}
public partial class SupportEquipmentBase
{
public virtual void OnPress()
{
}
public virtual void OnHold()
{
}
public virtual void OnRelease()
{
}
}
}