using System.Collections; using System.Collections.Generic; using UnityEngine; public class AttackManager : MonoBehaviour{ [SerializeField] HandManager hand = default; public float maxHeight, minHeight; public float selectSmoothTime = .1f; [System.Serializable] public class Fingers{ public bool finger1; public bool finger2; public bool finger3; public bool finger4; public bool finger5; } public Fingers[] minimumForPaper = default; public Fingers[] minimumForScisors = default; [HideInInspector] public Fingers selectedScisor; [HideInInspector] public Fingers selectedPaper; public bool CanScisorAttack(){ bool temp = true; foreach(Fingers f in minimumForScisors){ temp = true; for (int i = 0; i < 5; i++){ switch (i){ case 0: if (!hand.finger1 && f.finger1) temp = false; break; case 1: if (!hand.finger2 && f.finger2) temp = false; break; case 2: if (!hand.finger3 && f.finger3) temp = false; break; case 3: if (!hand.finger4 && f.finger4) temp = false; break; case 4: if (!hand.finger5 && f.finger5) temp = false; break; } } if (temp){ selectedScisor = f; break; } } return temp; } public bool CanPaperAttack(){ bool temp = true; foreach (Fingers f in minimumForPaper){ temp = true; for (int i = 0; i < 5; i++){ switch (i){ case 0: if (!hand.finger1 && f.finger1) temp = false; break; case 1: if (!hand.finger2 && f.finger2) temp = false; break; case 2: if (!hand.finger3 && f.finger3) temp = false; break; case 3: if (!hand.finger4 && f.finger4) temp = false; break; case 4: if (!hand.finger5 && f.finger5) temp = false; break; } } if (temp){ selectedPaper = f; break; } } return temp; } public bool AttackingWithMeat(bool scisor, bool paper){ if (scisor){ for (int i = 0; i < 5; i++){ switch (i){ case 0: if (selectedScisor.finger1 && hand.finger1Type == HandManager.FingerTypes.Meat) return true; break; case 1: if (selectedScisor.finger2 && hand.finger2Type == HandManager.FingerTypes.Meat) return true; break; case 2: if (selectedScisor.finger3 && hand.finger3Type == HandManager.FingerTypes.Meat) return true; break; case 3: if (selectedScisor.finger4 && hand.finger4Type == HandManager.FingerTypes.Meat) return true; break; case 4: if (selectedScisor.finger5 && hand.finger5Type == HandManager.FingerTypes.Meat) return true; break; } } }else if (paper){ for (int i = 0; i < 5; i++){ switch (i){ case 0: if (selectedPaper.finger1 && hand.finger1Type == HandManager.FingerTypes.Meat) return true; break; case 1: if (selectedPaper.finger2 && hand.finger2Type == HandManager.FingerTypes.Meat) return true; break; case 2: if (selectedPaper.finger3 && hand.finger3Type == HandManager.FingerTypes.Meat) return true; break; case 3: if (selectedPaper.finger4 && hand.finger4Type == HandManager.FingerTypes.Meat) return true; break; case 4: if (selectedPaper.finger5 && hand.finger5Type == HandManager.FingerTypes.Meat) return true; break; } } } return false; } public bool AttackingWithWood(bool scisor, bool paper){ if (scisor){ for (int i = 0; i < 5; i++){ switch (i){ case 0: if (selectedScisor.finger1 && hand.finger1Type == HandManager.FingerTypes.Wood) return true; break; case 1: if (selectedScisor.finger2 && hand.finger2Type == HandManager.FingerTypes.Wood) return true; break; case 2: if (selectedScisor.finger3 && hand.finger3Type == HandManager.FingerTypes.Wood) return true; break; case 3: if (selectedScisor.finger4 && hand.finger4Type == HandManager.FingerTypes.Wood) return true; break; case 4: if (selectedScisor.finger5 && hand.finger5Type == HandManager.FingerTypes.Wood) return true; break; } } }else if (paper){ for (int i = 0; i < 5; i++){ switch (i){ case 0: if (selectedPaper.finger1 && hand.finger1Type == HandManager.FingerTypes.Wood) return true; break; case 1: if (selectedPaper.finger2 && hand.finger2Type == HandManager.FingerTypes.Wood) return true; break; case 2: if (selectedPaper.finger3 && hand.finger3Type == HandManager.FingerTypes.Wood) return true; break; case 3: if (selectedPaper.finger4 && hand.finger4Type == HandManager.FingerTypes.Wood) return true; break; case 4: if (selectedPaper.finger5 && hand.finger5Type == HandManager.FingerTypes.Wood) return true; break; } } } return false; } }