using System; using UnityEngine; namespace Cielonos.MainGame.Characters { public partial class PlayerOperationSubcontroller : SubcontrollerBase, IPlayerSubcontroller { public Player player => owner; public bool isOverridingMainWeaponPress; public override void Initialize() { base.Initialize(); isOverridingMainWeaponPress = false; } } public partial class PlayerOperationSubcontroller { public event Action OnInteract; public event Action OnDash; public event Action OnDodge; public event Action OnLockOnTarget; public event Action OnWalkPress; public event Action OnWalkRelease; public event Action OnMainWeaponPrimaryPress; public event Action OnMainWeaponPrimaryHold; public event Action OnMainWeaponPrimaryRelease; public event Action OnMainWeaponSecondaryPress; public event Action OnMainWeaponSecondaryHold; public event Action OnMainWeaponSecondaryRelease; public event Action OnMainWeaponTertiaryPress; public event Action OnMainWeaponTertiaryHold; public event Action OnMainWeaponTertiaryRelease; public event Action OnMainWeaponQuaternaryPress; public event Action OnMainWeaponQuaternaryHold; public event Action OnMainWeaponQuaternaryRelease; public event Action OnSwitchMainWeapon; public event Action OnOpenMainWeaponRoulette; public event Action OnCloseMainWeaponRoulette; public event Action OnFastSwitchMainWeapon; public event Action OnReload; public event Action OnUseConsumableItem; public event Action OnSupportEquipment0Press; public event Action OnSupportEquipment0Release; public event Action OnSupportEquipment1Press; public event Action OnSupportEquipment1Release; public event Action OnSupportEquipment2Press; public event Action OnSupportEquipment2Release; public event Action OnSupportEquipment3Press; public event Action OnSupportEquipment3Release; } public partial class PlayerOperationSubcontroller { public void Interact() => OnInteract?.Invoke(); public void Dash(Vector3 direction) => OnDash?.Invoke(direction); public void Dodge() => OnDodge?.Invoke(); public void LockOnTarget() => OnLockOnTarget?.Invoke(); public void WalkPress() => OnWalkPress?.Invoke(); public void WalkRelease() => OnWalkRelease?.Invoke(); public void MainWeaponPrimaryPress() => OnMainWeaponPrimaryPress?.Invoke(); public void MainWeaponPrimaryRelease() => OnMainWeaponPrimaryRelease?.Invoke(); public void MainWeaponSecondaryPress() => OnMainWeaponSecondaryPress?.Invoke(); public void MainWeaponSecondaryRelease() => OnMainWeaponSecondaryRelease?.Invoke(); public void MainWeaponSpecialAPress() => OnMainWeaponTertiaryPress?.Invoke(); public void MainWeaponSpecialARelease() => OnMainWeaponTertiaryRelease?.Invoke(); public void MainWeaponSpecialBPress() => OnMainWeaponQuaternaryPress?.Invoke(); public void MainWeaponSpecialBRelease() => OnMainWeaponQuaternaryRelease?.Invoke(); public void SwitchMainWeapon(int direction) => OnSwitchMainWeapon?.Invoke(direction); public void OpenMainWeaponRoulette() => OnOpenMainWeaponRoulette?.Invoke(); public void CloseMainWeaponRoulette() => OnCloseMainWeaponRoulette?.Invoke(); public void FastSwitchMainWeapon() => OnFastSwitchMainWeapon?.Invoke(); public void Reload() => OnReload?.Invoke(); public void UseConsumableItem() => OnUseConsumableItem?.Invoke(); public void SupportEquipment0Press() => OnSupportEquipment0Press?.Invoke(); public void SupportEquipment0Release() => OnSupportEquipment0Release?.Invoke(); public void SupportEquipment1Press() => OnSupportEquipment1Press?.Invoke(); public void SupportEquipment1Release() => OnSupportEquipment1Release?.Invoke(); public void SupportEquipment2Press() => OnSupportEquipment2Press?.Invoke(); public void SupportEquipment2Release() => OnSupportEquipment2Release?.Invoke(); public void SupportEquipment3Press() => OnSupportEquipment3Press?.Invoke(); public void SupportEquipment3Release() => OnSupportEquipment3Release?.Invoke(); } }