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 { } }