Files

163 lines
3.5 KiB
C#
Raw Permalink Normal View History

2025-12-23 19:47:06 -05:00
using System.Collections.Generic;
2025-11-25 08:19:33 -05:00
using Cielonos.MainGame.Characters;
2026-03-20 12:07:44 -04:00
using Cielonos.MainGame.UI;
2026-01-03 18:19:39 -05:00
using Sirenix.OdinInspector;
2026-05-10 11:47:55 -04:00
using SLSUtilities.FunctionalAnimation;
2025-11-25 08:19:33 -05:00
using UnityEngine;
2026-05-23 08:27:50 -04:00
namespace Cielonos.MainGame.Inventory
2025-11-25 08:19:33 -05:00
{
public abstract partial class MainWeaponBase : ItemBase
{
2026-01-03 18:19:39 -05:00
[TitleGroup("Data")]
2025-11-25 08:19:33 -05:00
public BaseAnimationGroup baseAnimationGroup;
2026-01-03 18:19:39 -05:00
[TitleGroup("Data")]
public AttributeData activeAttributeData;
2025-11-25 08:19:33 -05:00
}
public partial class MainWeaponBase
{
2026-05-23 08:27:50 -04:00
[HideInEditorMode]
2026-01-03 18:19:39 -05:00
[TitleGroup("Submodules")]
public AttributeSubmodule activeAttributeSm;
}
2026-03-20 12:07:44 -04:00
public partial class MainWeaponBase
{
[TitleGroup("UI")]
public GameObject extraUIContainerPrefab;
[TitleGroup("UI")]
protected MainWeaponExtraUIContainer extraUIContainer;
}
2026-01-03 18:19:39 -05:00
public partial class MainWeaponBase
{
public override void Initialize()
{
base.Initialize();
if (activeAttributeData != null) activeAttributeSm = new AttributeSubmodule(this, activeAttributeData);
}
2025-11-25 08:19:33 -05:00
public virtual void OnEquipped()
{
2026-05-10 11:47:55 -04:00
RegisterFuncAnims();
// Stop 和批处理生命周期已由 EquipMainWeapon 统一管理
2025-11-25 08:19:33 -05:00
baseAnimationGroup.SetUp(animationSc);
2026-05-10 11:47:55 -04:00
// 提交 RegisterFuncAnims + SetUp 积压的全部 clip 替换(仅 1 次 Rebind + 强制求值)
animationSc.FlushOverrideBatch();
2026-01-03 18:19:39 -05:00
activeAttributeSm?.RefreshAllModifiedAttributes();
SpawnViewObjects();
2025-11-25 08:19:33 -05:00
}
public virtual void OnUnequipped()
{
RemoveAllRegisteredFunctions();
2026-01-03 18:19:39 -05:00
activeAttributeSm?.RefreshAllModifiedAttributes();
DespawnViewObjects();
2025-11-25 08:19:33 -05:00
}
}
public partial class MainWeaponBase
{
2025-12-23 19:47:06 -05:00
protected override void Update()
{
if (player.inventorySc.equipmentSm.currentMainWeapon == this)
{
2026-04-18 13:57:19 -04:00
base.Update();
2025-12-23 19:47:06 -05:00
}
}
2025-11-25 08:19:33 -05:00
}
public partial class MainWeaponBase
{
2026-01-03 18:19:39 -05:00
[TitleGroup("Input Settings")]
2025-11-25 08:19:33 -05:00
public bool disablePrimaryPreinput;
public bool disableSecondaryPreinput;
2025-12-08 05:27:53 -05:00
public bool disableSpecialAPreinput;
public bool disableSpecialBPreinput;
2026-02-13 09:22:11 -05:00
public bool disableSpecialCPreinput;
2025-11-25 08:19:33 -05:00
public virtual void OnPrimaryPress()
{
}
public virtual void OnPrimaryHold()
{
}
public virtual void OnPrimaryRelease()
{
}
public virtual void OnSecondaryPress()
{
}
public virtual void OnSecondaryHold()
{
}
public virtual void OnSecondaryRelease()
{
}
2025-12-08 05:27:53 -05:00
public virtual void OnSpecialAPress()
2025-11-25 08:19:33 -05:00
{
}
2025-12-08 05:27:53 -05:00
public virtual void OnSpecialAHold()
2025-11-25 08:19:33 -05:00
{
}
2025-12-08 05:27:53 -05:00
public virtual void OnSpecialARelease()
2025-11-25 08:19:33 -05:00
{
}
2025-12-08 05:27:53 -05:00
public virtual void OnSpecialBPress()
2025-11-25 08:19:33 -05:00
{
}
2025-12-08 05:27:53 -05:00
public virtual void OnSpecialBHold()
2025-11-25 08:19:33 -05:00
{
}
2025-12-08 05:27:53 -05:00
public virtual void OnSpecialBRelease()
2025-11-25 08:19:33 -05:00
{
}
2026-02-13 09:22:11 -05:00
public virtual void OnSpecialCPress()
{
}
public virtual void OnSpecialCHold()
{
}
public virtual void OnSpecialCRelease()
{
}
2025-11-25 08:19:33 -05:00
}
public partial class MainWeaponBase
{
2025-12-22 18:36:29 -05:00
2025-11-25 08:19:33 -05:00
}
}