206 lines
7.6 KiB
C#
206 lines
7.6 KiB
C#
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;
|
|
}
|
|
}
|