Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Inventory/Inventory Pickups Behaviour/objectOnInventory.cs
Robii Aragon 779f2c8b20 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

331 lines
8.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class objectOnInventory : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public inventoryObject mainInventoryObject;
public bool useOnlyAmountNeeded;
public bool closeInventoryOnObjectUsed;
[Space]
[Header ("Condition Settings")]
[Space]
public bool checkConditionsToUseObjectEnabled;
public bool playerOnGroundToUseObject;
public bool actionSystemNotPlayingAnimations;
public bool useCustomMessageOnConditionFailed;
[TextArea (3, 10)] public string customMessageOnConditionFailed;
[Space]
[Header ("Remote Events Settings")]
[Space]
public bool useRemoteEvent;
[Space]
public List<string> remoteEventList = new List<string> ();
[Space]
[Header ("Remote Events On Use Object Settings")]
[Space]
public bool useRemoteEventOnUseObject;
[Space]
public List<string> remoteEventListOnUseObject = new List<string> ();
[Space]
[Header ("Remote Events On Equip Object Settings")]
[Space]
public bool useRemoteEventOnEquipObject;
[Space]
public List<string> remoteEventListOnEquipObject = new List<string> ();
[Space]
[Space]
public bool useRemoteEventOnUnequipObject;
[Space]
public List<string> remoteEventListOnUnquipObject = new List<string> ();
[Space]
[Header ("Enable Abilities on Equip Inventory Object Settings")]
[Space]
public bool useAbilitiesListToEnableOnEquipInventoryObject;
[Space]
public List<string> abilitiesListToEnableOnEquipInventoryObject = new List<string> ();
[Space]
[Header ("Enable Abilities on Use Inventory Object Settings")]
[Space]
public bool useAbilitiesListToEnableOnUseInventoryObject;
[Space]
public List<string> abilitiesListToEnableOnUseInventoryObject = new List<string> ();
[Space]
[Header ("Activate Abilities on Use Inventory Object Settings")]
[Space]
public bool activateAbilityOnUseInventoryObject;
[Space]
public string abilityNameToActiveOnUseInventoryObject;
public bool abilityIsTemporallyActivated;
public bool checkIfAbilityIsNotActiveOrOnCoolDown;
[Space]
[Header ("Stats To Increase Settings")]
[Space]
public bool increaseStatsValues;
public List<objectExperienceSystem.statInfo> statsToIncreaseInfoList = new List<objectExperienceSystem.statInfo> ();
[Space]
[Header ("Crafting Settings")]
[Space]
public bool getCraftingRecipes;
public List<string> craftingRecipesList = new List<string> ();
public virtual void activateUseObjectActionOnInventory (GameObject currentPlayer, int amountToUse)
{
}
public virtual void activateUseObjectActionOnInventoryWithExternalCharacter (GameObject currentPlayer, GameObject currentExternalCharacterForInventoryUsage, int amountToUse)
{
}
public virtual void activateCombineObjectActionOnInventory (GameObject currentPlayer, inventoryInfo inventoryInfoToUse)
{
}
public virtual void carryPhysicalObjectFromInventory (GameObject currentPlayer)
{
}
public virtual void eventOnPickObject (GameObject currentPlayer)
{
}
public virtual void eventOnDropObject (GameObject currentPlayer)
{
}
public virtual void checkRemoteEvents (GameObject currentPlayer)
{
if (useRemoteEvent) {
if (remoteEventList.Count == 0) {
return;
}
playerComponentsManager currentPlayerComponetsManager = currentPlayer.GetComponent<playerComponentsManager> ();
if (currentPlayerComponetsManager != null) {
remoteEventSystem currentRemoteEventSystem = currentPlayerComponetsManager.getRemoteEventSystem ();
if (currentRemoteEventSystem != null) {
for (int i = 0; i < remoteEventList.Count; i++) {
currentRemoteEventSystem.callRemoteEvent (remoteEventList [i]);
}
}
}
}
}
public virtual void checkRemoteEventsOnUseObject (GameObject currentPlayer)
{
if (useRemoteEventOnUseObject) {
if (remoteEventListOnUseObject.Count == 0) {
return;
}
playerComponentsManager currentPlayerComponetsManager = currentPlayer.GetComponent<playerComponentsManager> ();
if (currentPlayerComponetsManager != null) {
remoteEventSystem currentRemoteEventSystem = currentPlayerComponetsManager.getRemoteEventSystem ();
if (currentRemoteEventSystem != null) {
for (int i = 0; i < remoteEventListOnUseObject.Count; i++) {
currentRemoteEventSystem.callRemoteEvent (remoteEventListOnUseObject [i]);
}
}
}
}
}
public virtual void checkRemoteEventsOnSetObjectEquipState (GameObject currentPlayer, bool state)
{
bool checkEvents = false;
if (useRemoteEventOnEquipObject && state) {
if (remoteEventListOnEquipObject.Count > 0) {
checkEvents = true;
}
}
if (useRemoteEventOnUnequipObject && !state) {
if (remoteEventListOnUnquipObject.Count > 0) {
checkEvents = true;
}
}
if (checkEvents) {
playerComponentsManager currentPlayerComponetsManager = currentPlayer.GetComponent<playerComponentsManager> ();
if (currentPlayerComponetsManager != null) {
remoteEventSystem currentRemoteEventSystem = currentPlayerComponetsManager.getRemoteEventSystem ();
if (currentRemoteEventSystem != null) {
if (state) {
if (useRemoteEventOnEquipObject) {
for (int i = 0; i < remoteEventListOnEquipObject.Count; i++) {
currentRemoteEventSystem.callRemoteEvent (remoteEventListOnEquipObject [i]);
}
}
} else {
if (useRemoteEventOnUnequipObject) {
for (int i = 0; i < remoteEventListOnUnquipObject.Count; i++) {
currentRemoteEventSystem.callRemoteEvent (remoteEventListOnUnquipObject [i]);
}
}
}
}
}
}
}
public virtual bool setObjectEquippedStateOnInventory (GameObject currentPlayer, bool state)
{
return false;
}
// public virtual bool isObjectEquipped ()
// {
//
// return false;
// }
//
// public virtual void updateObjectState ()
// {
//
// }
public virtual void checkIfEnableAbilitiesOnEquipInventoryObject (GameObject currentPlayer, bool state)
{
if (useAbilitiesListToEnableOnEquipInventoryObject && currentPlayer != null) {
GKC_Utils.enableOrDisableAbilityGroupByName (currentPlayer.transform, state, abilitiesListToEnableOnEquipInventoryObject);
}
}
public virtual void checkIfEnableAbilitiesOnUseInventoryObject (GameObject currentPlayer)
{
if (useAbilitiesListToEnableOnUseInventoryObject && currentPlayer != null) {
GKC_Utils.enableOrDisableAbilityGroupByName (currentPlayer.transform, true, abilitiesListToEnableOnUseInventoryObject);
}
}
public virtual void checkIfActivateAbilitiesOnUseInventoryObject (GameObject currentPlayer)
{
if (activateAbilityOnUseInventoryObject && currentPlayer != null) {
GKC_Utils.activateAbilityByName (currentPlayer.transform, abilityNameToActiveOnUseInventoryObject, abilityIsTemporallyActivated, true);
}
}
public virtual bool checkIfAbilitiesOnUseOrCooldown (GameObject currentPlayer)
{
if (activateAbilityOnUseInventoryObject && currentPlayer != null) {
return GKC_Utils.checkIfAbilitiesOnUseOrCooldown (currentPlayer.transform, abilityNameToActiveOnUseInventoryObject);
}
return false;
}
public virtual void checkIfIncreaseStatsOnUseInventoryObject (GameObject currentPlayer)
{
if (increaseStatsValues && currentPlayer != null) {
GKC_Utils.increaseStatsByList (currentPlayer.transform, true, statsToIncreaseInfoList);
}
}
public virtual void checkIfaddNewBlueprintsUnlockedList (GameObject currentPlayer)
{
if (getCraftingRecipes && currentPlayer != null) {
GKC_Utils.addNewBlueprintsUnlockedList (currentPlayer, craftingRecipesList);
}
}
public bool checkConditions (GameObject currentPlayer)
{
if (checkConditionsToUseObjectEnabled) {
playerController currentPlayerController = currentPlayer.GetComponent<playerController> ();
if (currentPlayerController != null) {
if (playerOnGroundToUseObject) {
if (!currentPlayerController.isPlayerOnGround ()) {
return false;
}
}
if (actionSystemNotPlayingAnimations) {
if (currentPlayerController.isActionActive ()) {
return false;
}
}
}
}
return true;
}
public void checkExternalElementsOnUseInventoryObject (GameObject currentPlayer)
{
checkIfEnableAbilitiesOnUseInventoryObject (currentPlayer);
checkIfActivateAbilitiesOnUseInventoryObject (currentPlayer);
checkIfIncreaseStatsOnUseInventoryObject (currentPlayer);
checkIfaddNewBlueprintsUnlockedList (currentPlayer);
checkRemoteEvents (currentPlayer);
checkRemoteEventsOnUseObject (currentPlayer);
}
}