Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Condition System/simpleFireWeaponsConditionSystem.cs
Robii Aragon fd87a6ffd5 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

139 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class simpleFireWeaponsConditionSystem : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool conditionCheckEnabled;
public bool checkIfCurrentWeapon;
[Space]
public bool checkIfAimingWeapon;
public bool checkIfThirdPersonActive;
public bool checkIfFirstPersonActive;
public bool checkIfFullBodyAwarenessActive;
[Space]
public bool conditionResultCompleteIfAnyConditionTrue;
[Space]
[Header ("Events Settings")]
[Space]
public UnityEvent eventOnConditionComplete;
public UnityEvent eventOnConditionNotComplete;
[Space]
[Header ("Debug")]
[Space]
public bool showDebugPrint;
[Space]
[Header ("Components")]
[Space]
public IKWeaponSystem mainIKWeaponSystem;
public void checkIfConditionComplete ()
{
if (!conditionCheckEnabled) {
return;
}
bool conditionResult = checkConditionResult ();
setConditionResult (conditionResult);
}
bool checkConditionResult ()
{
bool conditionResult = false;
bool currentConditionState = true;
if (conditionResultCompleteIfAnyConditionTrue) {
currentConditionState = false;
if (checkIfAimingWeapon) {
if (mainIKWeaponSystem.isAimingWeapon ()) {
currentConditionState = true;
}
}
if (checkIfThirdPersonActive) {
if (!mainIKWeaponSystem.isPlayerCameraFirstPersonActive ()) {
currentConditionState = true;
}
}
if (checkIfFirstPersonActive) {
if (mainIKWeaponSystem.isPlayerCameraFirstPersonActive ()) {
currentConditionState = true;
}
}
if (checkIfFullBodyAwarenessActive) {
if (mainIKWeaponSystem.isFullBodyAwarenessActive ()) {
currentConditionState = true;
}
}
} else {
if (checkIfAimingWeapon) {
if (!mainIKWeaponSystem.isAimingWeapon ()) {
currentConditionState = false;
}
}
if (checkIfThirdPersonActive) {
if (mainIKWeaponSystem.isPlayerCameraFirstPersonActive ()) {
currentConditionState = false;
}
}
if (checkIfFirstPersonActive) {
if (!mainIKWeaponSystem.isPlayerCameraFirstPersonActive ()) {
currentConditionState = false;
}
}
if (checkIfFullBodyAwarenessActive) {
if (!mainIKWeaponSystem.isFullBodyAwarenessActive ()) {
currentConditionState = false;
}
}
}
if (checkIfCurrentWeapon) {
if (!mainIKWeaponSystem.isCurrentWeapon ()) {
currentConditionState = false;
}
}
conditionResult = currentConditionState;
return conditionResult;
}
public void setConditionResult (bool state)
{
if (showDebugPrint) {
print ("Condition result: " + state);
}
if (state) {
eventOnConditionComplete.Invoke ();
} else {
eventOnConditionNotComplete.Invoke ();
}
}
}