80 lines
1.9 KiB
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|
|
} |