Ropasci-Forest/Assets/Scripts/Hand/HandManager.cs
Gerard Gascón fca6784fe7 init
2025-04-24 17:02:43 +02:00

267 lines
9.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HandManager : MonoBehaviour {
public bool canCut;
[Space]
[SerializeField] HandManager attackHand = default;
[System.Serializable] public enum FingerTypes { Default, Wood, Meat }
public bool open1 = false;
public bool finger1 = true;
public FingerTypes finger1Type = FingerTypes.Default;
public bool open2 = false;
public bool finger2 = true;
public FingerTypes finger2Type = FingerTypes.Default;
public bool open3 = false;
public bool finger3 = true;
public FingerTypes finger3Type = FingerTypes.Default;
public bool open4 = false;
public bool finger4 = true;
public FingerTypes finger4Type = FingerTypes.Default;
public bool open5 = false;
public bool finger5 = true;
public FingerTypes finger5Type = FingerTypes.Default;
[Space]
[SerializeField] GameObject finger1Cutted = default;
[SerializeField] GameObject finger2Cutted = default;
[SerializeField] GameObject finger3Cutted = default;
[SerializeField] GameObject finger4Cutted = default;
[SerializeField] GameObject finger5Cutted = default;
[Space]
[SerializeField] Image finger1Image = default;
[SerializeField] Image finger2Image = default;
[SerializeField] Image finger3Image = default;
[SerializeField] Image finger4Image = default;
[SerializeField] Image finger5Image = default;
[Space]
[SerializeField] Sprite[] finger1DefaultSprite = default;
[SerializeField] Sprite[] finger1MeatSprite = default;
[SerializeField] Sprite[] finger1WoodSprite = default;
[SerializeField] Sprite[] finger2DefaultSprite = default;
[SerializeField] Sprite[] finger2MeatSprite = default;
[SerializeField] Sprite[] finger2WoodSprite = default;
[SerializeField] Sprite[] finger3DefaultSprite = default;
[SerializeField] Sprite[] finger3MeatSprite = default;
[SerializeField] Sprite[] finger3WoodSprite = default;
[SerializeField] Sprite[] finger4DefaultSprite = default;
[SerializeField] Sprite[] finger4MeatSprite = default;
[SerializeField] Sprite[] finger4WoodSprite = default;
[SerializeField] Sprite[] finger5DefaultSprite = default;
[SerializeField] Sprite[] finger5MeatSprite = default;
[SerializeField] Sprite[] finger5WoodSprite = default;
void Start(){
if (GameMaster.instance == null)
return;
finger1 = GameMaster.instance.finger1;
finger2 = GameMaster.instance.finger2;
finger3 = GameMaster.instance.finger3;
finger4 = GameMaster.instance.finger4;
finger5 = GameMaster.instance.finger5;
}
void Update(){
if(finger1Cutted != null){
finger1Cutted.SetActive(!finger1);
finger2Cutted.SetActive(!finger2);
finger3Cutted.SetActive(!finger3);
finger4Cutted.SetActive(!finger4);
finger5Cutted.SetActive(!finger5);
}
if (finger1){
finger1Image.enabled = true;
if (finger1Type == FingerTypes.Default){
finger1Image.sprite = open1 ? finger1DefaultSprite[0] : finger1DefaultSprite[1];
}else if (finger1Type == FingerTypes.Wood){
finger1Image.sprite = open1 ? finger1WoodSprite[0] : finger1WoodSprite[1];
}else{
finger1Image.sprite = open1 ? finger1MeatSprite[0] : finger1MeatSprite[1];
}
}else{
finger1Image.enabled = false;
}
if (finger2){
finger2Image.enabled = true;
if (finger2Type == FingerTypes.Default){
finger2Image.sprite = open2 ? finger2DefaultSprite[0] : finger2DefaultSprite[1];
}else if (finger2Type == FingerTypes.Wood){
finger2Image.sprite = open2 ? finger2WoodSprite[0] : finger2WoodSprite[1];
}else{
finger2Image.sprite = open2 ? finger2MeatSprite[0] : finger2MeatSprite[1];
}
}else{
finger2Image.enabled = false;
}
if (finger3){
finger3Image.enabled = true;
if (finger3Type == FingerTypes.Default){
finger3Image.sprite = open3 ? finger3DefaultSprite[0] : finger3DefaultSprite[1];
}else if (finger3Type == FingerTypes.Wood){
finger3Image.sprite = open3 ? finger3WoodSprite[0] : finger3WoodSprite[1];
}else{
finger3Image.sprite = open3 ? finger3MeatSprite[0] : finger3MeatSprite[1];
}
}else{
finger3Image.enabled = false;
}
if (finger4){
finger4Image.enabled = true;
if (finger4Type == FingerTypes.Default){
finger4Image.sprite = open4 ? finger4DefaultSprite[0] : finger4DefaultSprite[1];
}else if (finger4Type == FingerTypes.Wood){
finger4Image.sprite = open4 ? finger4WoodSprite[0] : finger4WoodSprite[1];
}else{
finger4Image.sprite = open4 ? finger4MeatSprite[0] : finger4MeatSprite[1];
}
}else{
finger4Image.enabled = false;
}
if (finger5){
finger5Image.enabled = true;
if (finger5Type == FingerTypes.Default){
finger5Image.sprite = open5 ? finger5DefaultSprite[0] : finger5DefaultSprite[1];
}else if (finger5Type == FingerTypes.Wood){
finger5Image.sprite = open5 ? finger5WoodSprite[0] : finger5WoodSprite[1];
}else{
finger5Image.sprite = open5 ? finger5MeatSprite[0] : finger5MeatSprite[1];
}
}else{
finger5Image.enabled = false;
}
UpdateOtherHand();
}
void UpdateOtherHand(){
if (attackHand == null)
return;
attackHand.finger1Type = finger1Type;
attackHand.finger2Type = finger2Type;
attackHand.finger3Type = finger3Type;
attackHand.finger4Type = finger4Type;
attackHand.finger5Type = finger5Type;
attackHand.finger1 = finger1;
attackHand.finger2 = finger2;
attackHand.finger3 = finger3;
attackHand.finger4 = finger4;
attackHand.finger5 = finger5;
}
public void StartGame(){
if (finger1){
finger1Image.enabled = true;
if (finger1Type == FingerTypes.Default){
finger1Image.sprite = open1 ? finger1DefaultSprite[0] : finger1DefaultSprite[1];
}else if (finger1Type == FingerTypes.Wood){
finger1Image.sprite = open1 ? finger1WoodSprite[0] : finger1WoodSprite[1];
}else{
finger1Image.sprite = open1 ? finger1MeatSprite[0] : finger1MeatSprite[1];
}
}else{
finger1Image.enabled = false;
}
if (finger2){
finger2Image.enabled = true;
if (finger2Type == FingerTypes.Default){
finger2Image.sprite = open2 ? finger2DefaultSprite[0] : finger2DefaultSprite[1];
}else if (finger2Type == FingerTypes.Wood){
finger2Image.sprite = open2 ? finger2WoodSprite[0] : finger2WoodSprite[1];
}else{
finger2Image.sprite = open2 ? finger2MeatSprite[0] : finger2MeatSprite[1];
}
}else{
finger2Image.enabled = false;
}
if (finger3){
finger3Image.enabled = true;
if (finger3Type == FingerTypes.Default){
finger3Image.sprite = open3 ? finger3DefaultSprite[0] : finger3DefaultSprite[1];
}else if (finger3Type == FingerTypes.Wood){
finger3Image.sprite = open3 ? finger3WoodSprite[0] : finger3WoodSprite[1];
}else{
finger3Image.sprite = open3 ? finger3MeatSprite[0] : finger3MeatSprite[1];
}
}else{
finger3Image.enabled = false;
}
if (finger4){
finger4Image.enabled = true;
if (finger4Type == FingerTypes.Default){
finger4Image.sprite = open4 ? finger4DefaultSprite[0] : finger4DefaultSprite[1];
}else if (finger4Type == FingerTypes.Wood){
finger4Image.sprite = open4 ? finger4WoodSprite[0] : finger4WoodSprite[1];
}else{
finger4Image.sprite = open4 ? finger4MeatSprite[0] : finger4MeatSprite[1];
}
}else{
finger4Image.enabled = false;
}
if (finger5){
finger5Image.enabled = true;
if (finger5Type == FingerTypes.Default){
finger5Image.sprite = open5 ? finger5DefaultSprite[0] : finger5DefaultSprite[1];
}else if (finger5Type == FingerTypes.Wood){
finger5Image.sprite = open5 ? finger5WoodSprite[0] : finger5WoodSprite[1];
}else{
finger5Image.sprite = open5 ? finger5MeatSprite[0] : finger5MeatSprite[1];
}
}else{
finger5Image.enabled = false;
}
}
public void Cut(int index){
if (!canCut)
return;
switch (index){
case 1:
finger1 = false;
GameMaster.instance.finger1 = false;
break;
case 2:
finger2 = false;
GameMaster.instance.finger2 = false;
break;
case 3:
finger3 = false;
GameMaster.instance.finger3 = false;
break;
case 4:
finger4 = false;
GameMaster.instance.finger4 = false;
break;
case 5:
finger5 = false;
GameMaster.instance.finger5 = false;
break;
}
GameMaster.instance.CompleteGrid(GameMaster.instance.currentGrid);
canCut = false;
}
}