Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Abilities System/simpleStrafeAndAimState.cs

197 lines
5.0 KiB
C#
Raw Normal View History

2026-03-29 23:03:14 -07:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class simpleStrafeAndAimState : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool simpleStrafeAndAimEnabled = true;
[Space]
[Header ("Movement Settings")]
[Space]
public bool useStrafeMode;
public int strafeIDUsed;
public bool setPreviousStrafeModeOnDisableSystem;
public bool activateStrafeModeOnLockOnTargetActive;
public bool toggleStrafeModeIfRunningActive;
public bool setNewCrouchID;
public int crouchIDUsed;
[Space]
[Header ("Aim Settings")]
[Space]
public bool setAimStateEnabled;
[Space]
[Header ("Third Person Camera State Settings")]
[Space]
public bool setNewCameraStateOnThirdPerson;
public string newCameraStateOnThirdPerson;
[Space]
[Header ("Debug")]
[Space]
public bool simpleStrafeAndAimActive;
public bool previousStrafeMode;
public int previousStrafeID = -1;
[Space]
[Header ("Components")]
[Space]
public playerController mainPlayerController;
public playerCamera mainPlayerCamera;
string previousCameraState;
public void setSimpleStrafeAndAimState (bool state)
{
if (!simpleStrafeAndAimEnabled) {
return;
}
if (simpleStrafeAndAimActive == state) {
return;
}
if (mainPlayerCamera.isFullBodyAwarenessActive ()) {
return;
}
simpleStrafeAndAimActive = state;
if (simpleStrafeAndAimActive) {
activateState ();
} else {
deactivateState ();
}
}
public void activateState ()
{
previousStrafeMode = mainPlayerController.isStrafeModeActive ();
if (previousStrafeID == -1) {
previousStrafeID = mainPlayerController.getCurrentStrafeIDValue ();
}
if (useStrafeMode) {
mainPlayerController.activateOrDeactivateStrafeMode (true);
mainPlayerController.setLookOnlyIfMovingState (false);
} else {
previousStrafeMode = false;
previousStrafeID = -1;
mainPlayerController.activateOrDeactivateStrafeMode (false);
}
if (toggleStrafeModeIfRunningActive) {
mainPlayerController.setDisableStrafeModeExternallyIfIncreaseWalkSpeedActiveState (true);
}
mainPlayerController.setCurrentStrafeIDValue (strafeIDUsed);
if (setNewCrouchID) {
mainPlayerController.setCurrentCrouchIDValue (crouchIDUsed);
}
if (setAimStateEnabled) {
mainPlayerCamera.setManualAimStateOnLockedCamera (true);
}
}
public void deactivateState ()
{
if (setPreviousStrafeModeOnDisableSystem) {
mainPlayerController.activateOrDeactivateStrafeMode (previousStrafeMode);
} else {
mainPlayerController.setOriginalLookAlwaysInCameraDirectionState ();
}
mainPlayerController.setOriginalLookOnlyIfMovingState ();
if (previousStrafeID != -1) {
mainPlayerController.setCurrentStrafeIDValue (previousStrafeID);
}
if (toggleStrafeModeIfRunningActive) {
mainPlayerController.setDisableStrafeModeExternallyIfIncreaseWalkSpeedActiveState (false);
}
previousStrafeMode = false;
previousStrafeID = -1;
if (setNewCrouchID) {
mainPlayerController.setCurrentCrouchIDValue (0);
}
if (setAimStateEnabled) {
mainPlayerCamera.setManualAimStateOnLockedCamera (false);
}
}
public void checkLookAtTargetActiveState ()
{
if (simpleStrafeAndAimActive) {
bool lookingAtTarget = mainPlayerController.isPlayerLookingAtTarget ();
if (lookingAtTarget) {
if (activateStrafeModeOnLockOnTargetActive) {
mainPlayerController.activateOrDeactivateStrafeMode (true);
}
} else {
if (activateStrafeModeOnLockOnTargetActive) {
mainPlayerController.activateOrDeactivateStrafeMode (false);
}
}
}
}
public void checkLookAtTargetDeactivateState ()
{
if (simpleStrafeAndAimActive && activateStrafeModeOnLockOnTargetActive) {
mainPlayerController.activateOrDeactivateStrafeMode (false);
}
}
void checkCameraState (bool state)
{
if (setNewCameraStateOnThirdPerson) {
if (state) {
previousCameraState = mainPlayerCamera.getCurrentStateName ();
mainPlayerCamera.setCameraStateOnlyOnThirdPerson (newCameraStateOnThirdPerson);
} else {
if (previousCameraState != "") {
if (previousCameraState != newCameraStateOnThirdPerson) {
mainPlayerCamera.setCameraStateOnlyOnThirdPerson (previousCameraState);
}
previousCameraState = "";
}
}
}
}
}