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

137 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
public class arrowManager : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool useArrowsEnabled = true;
public string currentArrowInventoryObjectName = "Regular Arrow";
[Space]
[Header ("Events Settings")]
[Space]
public UnityEvent eventOnArrowsFoundOnInventory;
public UnityEvent eventOnArrowsNotFoundOnInventory;
[Space]
[Header ("Components")]
[Space]
public GameObject arrowInfoPanel;
public Text arrowAmountText;
public RawImage arrowTypeIcon;
public GameObject infiniteArrowsIcon;
public inventoryManager mainInventoryManager;
int currentArrowAmount;
void Start ()
{
if (useArrowsEnabled) {
updateArrowAmountText ();
} else {
enableOrDisableArrowInfoPanel (false);
}
}
public void enableOrDisableArrowInfoPanel (bool state)
{
if (useArrowsEnabled) {
if (arrowInfoPanel != null) {
if (arrowInfoPanel.activeSelf != state) {
arrowInfoPanel.SetActive (state);
}
}
}
}
public void checkIfArrowsFoundOnInventory ()
{
if (!useArrowsEnabled) {
return;
}
currentArrowAmount = mainInventoryManager.getInventoryObjectAmountByName (currentArrowInventoryObjectName);
if (currentArrowAmount > 0) {
eventOnArrowsFoundOnInventory.Invoke ();
} else {
eventOnArrowsNotFoundOnInventory.Invoke ();
}
}
public void useArrowFromInventory (int amountToUse)
{
checkIfArrowsFoundOnInventory ();
if (currentArrowAmount > 0) {
mainInventoryManager.removeObjectAmountFromInventoryByName (currentArrowInventoryObjectName, amountToUse);
}
updateArrowAmountText ();
}
public void updateArrowAmountText ()
{
if (!useArrowsEnabled) {
return;
}
currentArrowAmount = mainInventoryManager.getInventoryObjectAmountByName (currentArrowInventoryObjectName);
if (arrowAmountText != null) {
if (currentArrowAmount < 0) {
currentArrowAmount = 0;
}
arrowAmountText.text = currentArrowAmount.ToString ();
}
}
public void setCurrentArrowInventoryObjectName (string newName)
{
currentArrowInventoryObjectName = newName;
}
public void setArrowTypeIcon (Texture newIcon, bool useInfiniteArrows)
{
if (!useArrowsEnabled) {
return;
}
if (arrowTypeIcon != null) {
if (newIcon == null) {
arrowTypeIcon.enabled = false;
} else {
arrowTypeIcon.enabled = true;
arrowTypeIcon.texture = newIcon;
}
if (infiniteArrowsIcon != null) {
if (infiniteArrowsIcon.activeSelf != useInfiniteArrows) {
infiniteArrowsIcon.SetActive (useInfiniteArrows);
}
}
if (arrowAmountText.gameObject.activeSelf != !useInfiniteArrows) {
arrowAmountText.gameObject.SetActive (!useInfiniteArrows);
}
}
}
}