Files
Cielonos/Assets/Scripts/MainGame/Characters/Player/Items/Base/MainWeaponBase.cs
SoulliesOfficial 8ad26129b2 Feel滚
2026-04-29 06:16:07 -04:00

158 lines
3.3 KiB
C#

using System.Collections.Generic;
using Cielonos.MainGame.Characters;
using Cielonos.MainGame.UI;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Cielonos.MainGame.Characters.Inventory
{
public abstract partial class MainWeaponBase : ItemBase
{
[TitleGroup("Data")]
public BaseAnimationGroup baseAnimationGroup;
[TitleGroup("Data")]
public AttributeData activeAttributeData;
}
public partial class MainWeaponBase
{
[TitleGroup("Submodules")]
public AttributeSubmodule activeAttributeSm;
}
public partial class MainWeaponBase
{
[TitleGroup("UI")]
public GameObject extraUIContainerPrefab;
[TitleGroup("UI")]
protected MainWeaponUIArea mainWeaponUIArea => PlayerCanvas.Instance.mainWeaponUIArea;
[TitleGroup("UI")]
protected MainWeaponExtraUIContainer extraUIContainer;
}
public partial class MainWeaponBase
{
public override void Initialize()
{
base.Initialize();
if (activeAttributeData != null) activeAttributeSm = new AttributeSubmodule(this, activeAttributeData);
}
public virtual void OnEquipped()
{
baseAnimationGroup.SetUp(animationSc);
activeAttributeSm?.RefreshAllModifiedAttributes();
SpawnViewObjects();
}
public virtual void OnUnequipped()
{
RemoveAllRegisteredFunctions();
activeAttributeSm?.RefreshAllModifiedAttributes();
DespawnViewObjects();
}
}
public partial class MainWeaponBase
{
protected override void Update()
{
if (player.inventorySc.equipmentSm.currentMainWeapon == this)
{
base.Update();
}
}
}
public partial class MainWeaponBase
{
[TitleGroup("Input Settings")]
public bool disablePrimaryPreinput;
public bool disableSecondaryPreinput;
public bool disableSpecialAPreinput;
public bool disableSpecialBPreinput;
public bool disableSpecialCPreinput;
public virtual void OnPrimaryPress()
{
}
public virtual void OnPrimaryHold()
{
}
public virtual void OnPrimaryRelease()
{
}
public virtual void OnSecondaryPress()
{
}
public virtual void OnSecondaryHold()
{
}
public virtual void OnSecondaryRelease()
{
}
public virtual void OnSpecialAPress()
{
}
public virtual void OnSpecialAHold()
{
}
public virtual void OnSpecialARelease()
{
}
public virtual void OnSpecialBPress()
{
}
public virtual void OnSpecialBHold()
{
}
public virtual void OnSpecialBRelease()
{
}
public virtual void OnSpecialCPress()
{
}
public virtual void OnSpecialCHold()
{
}
public virtual void OnSpecialCRelease()
{
}
}
public partial class MainWeaponBase
{
}
}