This commit is contained in:
Gerard Gascón 2025-04-24 17:02:43 +02:00
commit fca6784fe7
571 changed files with 84105 additions and 0 deletions

View file

@ -0,0 +1,84 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class FakeFingerManager : MonoBehaviour, IPointerDownHandler, IBeginDragHandler, IEndDragHandler, IDragHandler, IDropHandler{
public HandManager.FingerTypes fingerType = HandManager.FingerTypes.Default;
[SerializeField] Canvas canvas = default;
RectTransform rectTransform;
CanvasGroup canvasGroup;
Vector2 defaultPos;
[SerializeField] float smoothTime = .5f;
[HideInInspector] public bool dragging;
[HideInInspector] public Vector2 posToGo;
Vector2 position;
[HideInInspector] public bool setPos;
[HideInInspector] public int index;
void Awake(){
rectTransform = GetComponent<RectTransform>();
canvasGroup = GetComponent<CanvasGroup>();
defaultPos = posToGo = rectTransform.anchoredPosition;
}
public void OnBeginDrag(PointerEventData eventData){
canvasGroup.blocksRaycasts = false;
canvasGroup.alpha = .6f;
dragging = true;
setPos = false;
}
public void OnDrag(PointerEventData eventData){
rectTransform.anchoredPosition += eventData.delta / canvas.scaleFactor;
}
public void OnEndDrag(PointerEventData eventData){
StartCoroutine(ResetToDefaultPos());
canvasGroup.blocksRaycasts = true;
canvasGroup.alpha = 1f;
}
public void OnPointerDown(PointerEventData eventData){
}
public void OnDrop(PointerEventData eventData){
}
void Update(){
if(!dragging)
rectTransform.anchoredPosition = Vector2.SmoothDamp(rectTransform.anchoredPosition, posToGo, ref position, smoothTime);
}
IEnumerator ResetToDefaultPos(){
yield return new WaitForSeconds(.1f);
if (!setPos){
/*switch(index){
case 1:
hand.finger1 = false;
break;
case 2:
hand.finger2 = false;
break;
case 3:
hand.finger3 = false;
break;
case 4:
hand.finger4 = false;
break;
case 5:
hand.finger5 = false;
break;
}*/
posToGo = defaultPos;
dragging = false;
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6f368aced5d00294f89e49eae6378ce0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,34 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Finger : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler{
[SerializeField, Range(1, 5)] int fingerIndex = 1;
bool selected;
HandManager hand;
void Awake(){
hand = GetComponentInParent<HandManager>();
}
public void OnPointerEnter(PointerEventData eventData){
selected = true;
}
public void OnPointerExit(PointerEventData eventData){
selected = false;
}
// Update is called once per frame
void Update(){
if (selected){
if (Input.GetMouseButtonDown(0)){
hand.Cut(fingerIndex);
//gameObject.SetActive(false);
}
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ca8887ba4171ad84580e941e7a059cd5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,42 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class FingerHandManager : MonoBehaviour, IDropHandler{
[SerializeField, Range(1, 5)] int fingerIndex = 1;
public void OnDrop(PointerEventData eventData){
if(eventData.pointerDrag != null){
FakeFingerManager finger = eventData.pointerDrag.GetComponent<FakeFingerManager>();
finger.setPos = true;
//finger.posToGo = GetComponent<RectTransform>().anchoredPosition;
finger.dragging = false;
finger.index = fingerIndex;
HandManager hand = GetComponentInParent<HandManager>();
switch (fingerIndex){
case 1:
hand.finger1 = true;
hand.finger1Type = finger.fingerType;
break;
case 2:
hand.finger2 = true;
hand.finger2Type = finger.fingerType;
break;
case 3:
hand.finger3 = true;
hand.finger3Type = finger.fingerType;
break;
case 4:
hand.finger4 = true;
hand.finger4Type = finger.fingerType;
break;
case 5:
hand.finger5 = true;
hand.finger5Type = finger.fingerType;
break;
}
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 149d3a055efe85349bf8c2b9b0d34330
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,267 @@
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;
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 02bd556b826f8bf4494da3d1d28ad7b7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: