fix in autoweapon draw/ hide, bLock, bMeleeCombat and Input

This commit is contained in:
2025-06-06 12:23:52 +02:00
parent 342f85335a
commit 27d5c63751
7 changed files with 983 additions and 589 deletions

View File

@@ -65,6 +65,27 @@ namespace Beyond
BindWeaponDrawEffectsOnEquipped();
HideWeapons(true);
GameStateManager.Instance.m_OnStateChanged.AddListener(OnGameStateChanged);
}
private void OnGameStateChanged(GameStateManager.State arg0)
{
if (weaponsHided && arg0 == GameStateManager.State.NORMAL)
{
if (debugMode)
{
Debug.Log("Returning to normal state, drawing weapons");
}
HideWeapons(true);
}
else if (!weaponsHided && arg0 == GameStateManager.State.COMBAT)
{
if (debugMode)
{
Debug.Log("Entering combat state, hiding weapons");
}
DrawWeapons(true);
}
}
private void OnDestroy()
@@ -78,6 +99,10 @@ namespace Beyond
itemManager.onEquipItem.RemoveListener(PlayWeaponHideEffect);
itemManager.onFinishEquipItem.RemoveListener(BindNewlyEquippedWeaponDrawHideEffects);
}
if (GameStateManager.Instance != null)
{
GameStateManager.Instance.m_OnStateChanged.RemoveListener(OnGameStateChanged);
}
}
private void BindWeaponDrawEffectsOnEquipped()
@@ -256,7 +281,7 @@ namespace Beyond
protected virtual bool CanHideWeapons()
{
return melee && melee.meleeManager && (forceHide || (!melee.isAttacking && !melee.isBlocking && (melee.meleeManager.rightWeapon || melee.meleeManager.leftWeapon)));
return melee && melee.meleeManager && (forceHide || (!melee.isAttacking && !melee.isBlocking && (GameStateManager.Instance.CurrentState != GameStateManager.State.COMBAT) && (melee.meleeManager.rightWeapon || melee.meleeManager.leftWeapon)));
}
protected virtual bool CanDrawWeapons()