init
This commit is contained in:
commit
fca6784fe7
571 changed files with 84105 additions and 0 deletions
8
Assets/Scripts/Combat.meta
Normal file
8
Assets/Scripts/Combat.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: aebfa4df6398159479244a82e7d43f98
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
206
Assets/Scripts/Combat/AttackManager.cs
Normal file
206
Assets/Scripts/Combat/AttackManager.cs
Normal file
|
@ -0,0 +1,206 @@
|
|||
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;
|
||||
}
|
||||
}
|
11
Assets/Scripts/Combat/AttackManager.cs.meta
Normal file
11
Assets/Scripts/Combat/AttackManager.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: efb19c3a65cf3f346a476b80172fe683
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
89
Assets/Scripts/Combat/AttackSelectorUI.cs
Normal file
89
Assets/Scripts/Combat/AttackSelectorUI.cs
Normal file
|
@ -0,0 +1,89 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
public class AttackSelectorUI : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler{
|
||||
|
||||
EnemyController enemy;
|
||||
|
||||
[System.Serializable] enum AttackType { Rock, Paper, Scisors}
|
||||
[SerializeField] AttackType attackType = default;
|
||||
|
||||
AttackManager attack;
|
||||
bool selected;
|
||||
RectTransform rect;
|
||||
|
||||
float velocity;
|
||||
|
||||
[SerializeField] PlayerAttack playerAttack = default;
|
||||
|
||||
void Awake(){
|
||||
attack = GetComponentInParent<AttackManager>();
|
||||
rect = GetComponent<RectTransform>();
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData){
|
||||
selected = true;
|
||||
switch (CombatManager.instance.enemyType){
|
||||
case CombatManager.EnemyType.Bear:
|
||||
enemy = CombatManager.instance.bear;
|
||||
break;
|
||||
case CombatManager.EnemyType.Driada:
|
||||
enemy = CombatManager.instance.driada;
|
||||
break;
|
||||
case CombatManager.EnemyType.Loca:
|
||||
enemy = CombatManager.instance.loca;
|
||||
break;
|
||||
case CombatManager.EnemyType.Boss:
|
||||
enemy = CombatManager.instance.boss;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData){
|
||||
selected = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update(){
|
||||
if (selected){
|
||||
if (attackType == AttackType.Paper){
|
||||
if (attack.CanPaperAttack()){
|
||||
rect.anchoredPosition = new Vector2(rect.anchoredPosition.x, Mathf.SmoothDamp(rect.anchoredPosition.y, attack.maxHeight, ref velocity, attack.selectSmoothTime));
|
||||
if (Input.GetMouseButtonUp(0)){
|
||||
playerAttack.open1 = attack.selectedPaper.finger1;
|
||||
playerAttack.open2 = attack.selectedPaper.finger2;
|
||||
playerAttack.open3 = attack.selectedPaper.finger3;
|
||||
playerAttack.open4 = attack.selectedPaper.finger4;
|
||||
playerAttack.open5 = attack.selectedPaper.finger5;
|
||||
enemy.Attack(attack.AttackingWithMeat(false, true), attack.AttackingWithWood(false, true), 2);
|
||||
playerAttack.Attack();
|
||||
}
|
||||
}
|
||||
}else if (attackType == AttackType.Scisors){
|
||||
if (attack.CanScisorAttack()){
|
||||
rect.anchoredPosition = new Vector2(rect.anchoredPosition.x, Mathf.SmoothDamp(rect.anchoredPosition.y, attack.maxHeight, ref velocity, attack.selectSmoothTime));
|
||||
if (Input.GetMouseButtonUp(0)){
|
||||
playerAttack.open1 = attack.selectedScisor.finger1;
|
||||
playerAttack.open2 = attack.selectedScisor.finger2;
|
||||
playerAttack.open3 = attack.selectedScisor.finger3;
|
||||
playerAttack.open4 = attack.selectedScisor.finger4;
|
||||
playerAttack.open5 = attack.selectedScisor.finger5;
|
||||
enemy.Attack(attack.AttackingWithMeat(true, false), attack.AttackingWithWood(true, false), 3);
|
||||
playerAttack.Attack();
|
||||
}
|
||||
}
|
||||
}else{
|
||||
rect.anchoredPosition = new Vector2(rect.anchoredPosition.x, Mathf.SmoothDamp(rect.anchoredPosition.y, attack.maxHeight, ref velocity, attack.selectSmoothTime));
|
||||
if (Input.GetMouseButtonUp(0)){
|
||||
playerAttack.open1 = playerAttack.open2 = playerAttack.open3 = playerAttack.open4 = playerAttack.open5 = false;
|
||||
enemy.Attack(attack.AttackingWithMeat(false, false), attack.AttackingWithWood(false, false), 1);
|
||||
playerAttack.Attack();
|
||||
}
|
||||
}
|
||||
}else{
|
||||
rect.anchoredPosition = new Vector2(rect.anchoredPosition.x, Mathf.SmoothDamp(rect.anchoredPosition.y, attack.minHeight, ref velocity, attack.selectSmoothTime));
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Combat/AttackSelectorUI.cs.meta
Normal file
11
Assets/Scripts/Combat/AttackSelectorUI.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c45a1a30895ff4146b692d91d2bb69e2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
194
Assets/Scripts/Combat/CombatManager.cs
Normal file
194
Assets/Scripts/Combat/CombatManager.cs
Normal file
|
@ -0,0 +1,194 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
|
||||
public class CombatManager : MonoBehaviour{
|
||||
|
||||
public enum EnemyType { Bear, Driada, Loca, Boss }
|
||||
public EnemyType enemyType = default;
|
||||
|
||||
[Space]
|
||||
public EnemyController bear = default;
|
||||
public EnemyController driada = default;
|
||||
public EnemyController loca = default;
|
||||
public EnemyController boss = default;
|
||||
|
||||
[Space]
|
||||
public GameObject bearHand = default;
|
||||
public GameObject driadaHand = default;
|
||||
public GameObject locaHand = default;
|
||||
public GameObject bossHand = default;
|
||||
|
||||
[Space]
|
||||
[SerializeField] GameObject bearBackground = default;
|
||||
[SerializeField] GameObject driadaBackground = default;
|
||||
[SerializeField] GameObject locaBackground = default;
|
||||
[SerializeField] GameObject bossBackground = default;
|
||||
|
||||
[Space]
|
||||
[SerializeField] Animator anim = default;
|
||||
[SerializeField] CustomTMP_Animated dialogue = default;
|
||||
[SerializeField] Dialogue bearDialogue = default;
|
||||
[SerializeField] Dialogue driadaDialogue = default;
|
||||
[SerializeField] Dialogue locaDialogue = default;
|
||||
[SerializeField] Dialogue bossDialogue = default;
|
||||
|
||||
[Space]
|
||||
[SerializeField] Animator bearHandAnim = default;
|
||||
[SerializeField] Animator driadaHandAnim = default;
|
||||
[SerializeField] Animator locaHandAnim = default;
|
||||
[SerializeField] Animator bossHandAnim = default;
|
||||
[SerializeField] Animator playerHandAnim = default;
|
||||
|
||||
int dialogueIndex;
|
||||
bool dialogueStarted;
|
||||
|
||||
public static CombatManager instance;
|
||||
void Awake(){
|
||||
instance = this;
|
||||
}
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start(){
|
||||
if(GameMaster.instance != null)
|
||||
enemyType = (EnemyType)GameMaster.instance.enemyType[GameMaster.instance.currentGrid];
|
||||
|
||||
AudioManager.instance.StopAll();
|
||||
AudioManager.instance.Play("FightNoBrass");
|
||||
switch (enemyType){
|
||||
case EnemyType.Bear:
|
||||
driada.gameObject.SetActive(false);
|
||||
loca.gameObject.SetActive(false);
|
||||
driadaHand.SetActive(false);
|
||||
locaHand.SetActive(false);
|
||||
boss.gameObject.SetActive(false);
|
||||
bossHand.SetActive(false);
|
||||
|
||||
driadaBackground.SetActive(false);
|
||||
locaBackground.SetActive(false);
|
||||
bossBackground.SetActive(false);
|
||||
break;
|
||||
case EnemyType.Driada:
|
||||
bear.gameObject.SetActive(false);
|
||||
loca.gameObject.SetActive(false);
|
||||
bearHand.SetActive(false);
|
||||
locaHand.SetActive(false);
|
||||
boss.gameObject.SetActive(false);
|
||||
bossHand.SetActive(false);
|
||||
|
||||
bearBackground.SetActive(false);
|
||||
locaBackground.SetActive(false);
|
||||
bossBackground.SetActive(false);
|
||||
break;
|
||||
case EnemyType.Loca:
|
||||
driada.gameObject.SetActive(false);
|
||||
bear.gameObject.SetActive(false);
|
||||
driadaHand.SetActive(false);
|
||||
bearHand.SetActive(false);
|
||||
boss.gameObject.SetActive(false);
|
||||
bossHand.SetActive(false);
|
||||
|
||||
driadaBackground.SetActive(false);
|
||||
bearBackground.SetActive(false);
|
||||
bossBackground.SetActive(false);
|
||||
break;
|
||||
case EnemyType.Boss:
|
||||
AudioManager.instance.Stop("FightNoBrass");
|
||||
AudioManager.instance.Play("fightFull");
|
||||
driada.gameObject.SetActive(false);
|
||||
bear.gameObject.SetActive(false);
|
||||
loca.gameObject.SetActive(false);
|
||||
locaHand.SetActive(false);
|
||||
driadaHand.SetActive(false);
|
||||
bearHand.SetActive(false);
|
||||
|
||||
driadaBackground.SetActive(false);
|
||||
bearBackground.SetActive(false);
|
||||
bearBackground.SetActive(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnStartDialogue(){
|
||||
switch (enemyType){
|
||||
case EnemyType.Bear:
|
||||
dialogue.ReadText(bearDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
case EnemyType.Driada:
|
||||
dialogue.ReadText(driadaDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
case EnemyType.Loca:
|
||||
dialogue.ReadText(locaDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
case EnemyType.Boss:
|
||||
dialogue.ReadText(bossDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
}
|
||||
anim.SetTrigger("Enter");
|
||||
dialogueStarted = true;
|
||||
dialogueIndex++;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update(){
|
||||
if (dialogueStarted){
|
||||
if (Input.anyKeyDown){
|
||||
switch (enemyType){
|
||||
case EnemyType.Bear:
|
||||
if (dialogueIndex == bearDialogue.sentences.Length){
|
||||
StartGame(EnemyType.Bear);
|
||||
break;
|
||||
}
|
||||
dialogue.ReadText(bearDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
case EnemyType.Driada:
|
||||
if (dialogueIndex == driadaDialogue.sentences.Length){
|
||||
StartGame(EnemyType.Driada);
|
||||
break;
|
||||
}
|
||||
dialogue.ReadText(driadaDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
case EnemyType.Loca:
|
||||
if (dialogueIndex == locaDialogue.sentences.Length){
|
||||
StartGame(EnemyType.Loca);
|
||||
break;
|
||||
}
|
||||
dialogue.ReadText(locaDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
case EnemyType.Boss:
|
||||
if (dialogueIndex == bossDialogue.sentences.Length){
|
||||
StartGame(EnemyType.Boss);
|
||||
break;
|
||||
}
|
||||
dialogue.ReadText(bossDialogue.sentences[dialogueIndex]);
|
||||
break;
|
||||
}
|
||||
dialogueIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StartGame(EnemyType enemy){
|
||||
switch (enemy){
|
||||
case EnemyType.Bear:
|
||||
bearHandAnim.SetTrigger("Enter");
|
||||
AudioManager.instance.Play("oso_risa");
|
||||
break;
|
||||
case EnemyType.Boss:
|
||||
bossHandAnim.SetTrigger("Enter");
|
||||
break;
|
||||
case EnemyType.Driada:
|
||||
driadaHandAnim.SetTrigger("Enter");
|
||||
AudioManager.instance.Play("driada_risa");
|
||||
break;
|
||||
case EnemyType.Loca:
|
||||
locaHandAnim.SetTrigger("Enter");
|
||||
AudioManager.instance.Play("loca_risa");
|
||||
break;
|
||||
}
|
||||
dialogueStarted = false;
|
||||
anim.SetTrigger("Exit");
|
||||
playerHandAnim.SetTrigger("Enter");
|
||||
}
|
||||
}
|
11
Assets/Scripts/Combat/CombatManager.cs.meta
Normal file
11
Assets/Scripts/Combat/CombatManager.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7fdfbd71643fc6a4094f985ef0698b9c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
165
Assets/Scripts/Combat/EnemyController.cs
Normal file
165
Assets/Scripts/Combat/EnemyController.cs
Normal file
|
@ -0,0 +1,165 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class EnemyController : MonoBehaviour{
|
||||
|
||||
[SerializeField] Dialogue loseDialogue = default;
|
||||
[SerializeField] HandManager playerHand = default;
|
||||
[SerializeField] CustomTMP_Animated text = default;
|
||||
[SerializeField] Animator textAnim = default;
|
||||
|
||||
[SerializeField, Range(0, 100)] int percentageWood = 0;
|
||||
[SerializeField, Range(0, 100)] int percentageMeat = 0;
|
||||
|
||||
[Space]
|
||||
[SerializeField] Sprite rock = default;
|
||||
[SerializeField] Sprite paper = default;
|
||||
[SerializeField] Sprite scisors = default;
|
||||
[SerializeField] Sprite deathSprite = default;
|
||||
|
||||
[SerializeField] Animator playerAnim = default;
|
||||
[SerializeField] Animator anim = default;
|
||||
[SerializeField] Image image = default;
|
||||
|
||||
[SerializeField] GameObject[] heart = default;
|
||||
int life = 3;
|
||||
[SerializeField] GameObject[] playerHeart = default;
|
||||
int playerLife = 3;
|
||||
|
||||
int enemyAttack;
|
||||
int playerAttack;
|
||||
bool lost;
|
||||
|
||||
public void Attack(bool attackingWithMeat, bool attackingWithWood, int attack){
|
||||
float randomNumber = Random.Range(0f, 100f);
|
||||
if(randomNumber > percentageWood && attackingWithWood){
|
||||
Debug.Log("Wait, that's illegal");
|
||||
}
|
||||
if(randomNumber > percentageMeat && attackingWithMeat){
|
||||
Debug.Log("Wait, that's illegal");
|
||||
}
|
||||
enemyAttack = Mathf.RoundToInt(Random.Range(100f, 300f) / 100f);
|
||||
playerAttack = attack;
|
||||
switch (enemyAttack){
|
||||
case 1:
|
||||
//Rock
|
||||
if(playerAttack == 2){
|
||||
anim.SetTrigger("Die");
|
||||
}else if(playerAttack == 3){
|
||||
playerAnim.SetTrigger("Die");
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
//Paper
|
||||
if (playerAttack == 3){
|
||||
anim.SetTrigger("Die");
|
||||
}else if (playerAttack == 1){
|
||||
playerAnim.SetTrigger("Die");
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
//Scisors
|
||||
if (playerAttack == 1){
|
||||
anim.SetTrigger("Die");
|
||||
}else if (playerAttack == 2){
|
||||
playerAnim.SetTrigger("Die");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int count;
|
||||
|
||||
void Update(){
|
||||
if(lost && count == 0){
|
||||
if (Input.anyKeyDown){
|
||||
textAnim.SetTrigger("Exit");
|
||||
count = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowArm(){
|
||||
switch (enemyAttack){
|
||||
case 1:
|
||||
//Rock
|
||||
image.sprite = rock;
|
||||
if (playerAttack == 2){
|
||||
heart[life - 1].SetActive(false);
|
||||
life--;
|
||||
if (life == 0){
|
||||
OnDie();
|
||||
}
|
||||
}else if (playerAttack == 3){
|
||||
playerHeart[playerLife - 1].SetActive(false);
|
||||
playerLife--;
|
||||
if (playerLife == 0){
|
||||
Lose();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
//Paper
|
||||
image.sprite = paper;
|
||||
if (playerAttack == 3){
|
||||
heart[life - 1].SetActive(false);
|
||||
life--;
|
||||
if (life == 0){
|
||||
OnDie();
|
||||
}
|
||||
}else if (playerAttack == 1){
|
||||
playerHeart[playerLife - 1].SetActive(false);
|
||||
playerLife--;
|
||||
if (playerLife == 0){
|
||||
Lose();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
//Scisors
|
||||
image.sprite = scisors;
|
||||
if (playerAttack == 1){
|
||||
heart[life - 1].SetActive(false);
|
||||
life--;
|
||||
if (life == 0){
|
||||
OnDie();
|
||||
}
|
||||
}else if (playerAttack == 2){
|
||||
playerHeart[playerLife - 1].SetActive(false);
|
||||
playerLife--;
|
||||
if (playerLife == 0){
|
||||
Lose();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Lose(){
|
||||
text.ReadText(loseDialogue.sentences[0]);
|
||||
lost = true;
|
||||
playerHand.canCut = true;
|
||||
textAnim.SetTrigger("Enter");
|
||||
playerHand.GetComponentInParent<Animator>().SetTrigger("EnterDeath");
|
||||
}
|
||||
|
||||
public void Shake(){
|
||||
image.sprite = rock;
|
||||
}
|
||||
|
||||
void OnDie(){
|
||||
if (!gameObject.activeSelf)
|
||||
return;
|
||||
|
||||
GetComponent<Image>().sprite = deathSprite;
|
||||
StartCoroutine(Die());
|
||||
}
|
||||
|
||||
IEnumerator Die(){
|
||||
yield return new WaitForSeconds(.5f);
|
||||
GameMaster.instance.CompleteGrid(GameMaster.instance.currentGrid);
|
||||
}
|
||||
}
|
11
Assets/Scripts/Combat/EnemyController.cs.meta
Normal file
11
Assets/Scripts/Combat/EnemyController.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e76180f282bb56649b20576f3ed39797
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
51
Assets/Scripts/Combat/GameMaster.cs
Normal file
51
Assets/Scripts/Combat/GameMaster.cs
Normal file
|
@ -0,0 +1,51 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class GameMaster : MonoBehaviour{
|
||||
|
||||
[HideInInspector] public int gridLength;
|
||||
[HideInInspector] public int currentGrid;
|
||||
[HideInInspector] public Dictionary<int, bool> grids;
|
||||
[HideInInspector] public Dictionary<int, int> enemyType;
|
||||
|
||||
public static GameMaster instance;
|
||||
|
||||
public bool finger1;
|
||||
public bool finger2;
|
||||
public bool finger3;
|
||||
public bool finger4;
|
||||
public bool finger5;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Awake(){
|
||||
if(instance == null){
|
||||
instance = this;
|
||||
}else{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
DontDestroyOnLoad(gameObject);
|
||||
}
|
||||
|
||||
public void LoadGrid(int grid){
|
||||
currentGrid = grid;
|
||||
Loader.Load(2);
|
||||
}
|
||||
public void LoadBoss(int grid){
|
||||
currentGrid = grid;
|
||||
enemyType[grid] = 3;
|
||||
Loader.Load(2);
|
||||
}
|
||||
|
||||
public void CompleteGrid(int grid){
|
||||
grids[grid] = true;
|
||||
Loader.Load(1);
|
||||
}
|
||||
|
||||
public void DestroyGameMaster(){
|
||||
instance = null;
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
11
Assets/Scripts/Combat/GameMaster.cs.meta
Normal file
11
Assets/Scripts/Combat/GameMaster.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 13ae5f80b6f0e1b4dbfedb0066e4198b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
56
Assets/Scripts/Combat/PlayerAttack.cs
Normal file
56
Assets/Scripts/Combat/PlayerAttack.cs
Normal file
|
@ -0,0 +1,56 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerAttack : MonoBehaviour{
|
||||
|
||||
[SerializeField] Animator attack = default;
|
||||
[SerializeField] Animator[] enemyAnim = default;
|
||||
[SerializeField] Animator flash = default;
|
||||
|
||||
[SerializeField] EnemyController[] enemy = default;
|
||||
[SerializeField] HandManager hand = default;
|
||||
|
||||
[Space]
|
||||
public bool open1;
|
||||
public bool open2;
|
||||
public bool open3;
|
||||
public bool open4;
|
||||
public bool open5;
|
||||
|
||||
public void Attack(){
|
||||
hand.open1 = false;
|
||||
hand.open2 = false;
|
||||
hand.open3 = false;
|
||||
hand.open4 = false;
|
||||
hand.open5 = false;
|
||||
|
||||
attack.SetTrigger("Attack");
|
||||
foreach(Animator anim in enemyAnim){
|
||||
anim.SetTrigger("Attack");
|
||||
}
|
||||
foreach(EnemyController e in enemy){
|
||||
e.Shake();
|
||||
}
|
||||
}
|
||||
|
||||
public void CountdownSound(){
|
||||
AudioManager.instance.PlayOneShot("cuentaAtras");
|
||||
}
|
||||
|
||||
public void ShowArms(){
|
||||
hand.open1 = open1;
|
||||
hand.open2 = open2;
|
||||
hand.open3 = open3;
|
||||
hand.open4 = open4;
|
||||
hand.open5 = open5;
|
||||
|
||||
GetComponent<HandManager>().enabled = true;
|
||||
flash.SetTrigger("Flash");
|
||||
AudioManager.instance.Play("lanzar");
|
||||
|
||||
foreach (EnemyController e in enemy){
|
||||
e.ShowArm();
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Combat/PlayerAttack.cs.meta
Normal file
11
Assets/Scripts/Combat/PlayerAttack.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2badca1062c58c64eb25b351a4c62c10
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
72
Assets/Scripts/CustomTMP_Animated.cs
Normal file
72
Assets/Scripts/CustomTMP_Animated.cs
Normal file
|
@ -0,0 +1,72 @@
|
|||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace TMPro{
|
||||
[System.Serializable] public class CTextRevealEvent : UnityEvent<char> { }
|
||||
[System.Serializable] public class CDialogueEvent : UnityEvent { }
|
||||
|
||||
public class CustomTMP_Animated : TextMeshProUGUI{
|
||||
|
||||
float speed;
|
||||
|
||||
public CTextRevealEvent onTextReveal;
|
||||
public CDialogueEvent onDialogueFinish;
|
||||
|
||||
public void ReadText(string newText){
|
||||
text = string.Empty;
|
||||
|
||||
string[] subTexts = newText.Split('<', '>');
|
||||
|
||||
string displayText = "";
|
||||
for (int i = 0; i < subTexts.Length; i++){
|
||||
if (i % 2 == 0)
|
||||
displayText += subTexts[i];
|
||||
else if (!isCustomTag(subTexts[i].Replace(" ", "")))
|
||||
displayText += $"<{subTexts[i]}>";
|
||||
}
|
||||
|
||||
bool isCustomTag(string tag){
|
||||
return tag.StartsWith("speed=") || tag.StartsWith("pause=");
|
||||
}
|
||||
|
||||
text = displayText;
|
||||
maxVisibleCharacters = 0;
|
||||
StartCoroutine(Read());
|
||||
|
||||
IEnumerator Read(){
|
||||
int subCounter = 0;
|
||||
int visibleCounter = 0;
|
||||
while (subCounter < subTexts.Length){
|
||||
if (subCounter % 2 == 1){
|
||||
yield return EvaluateTag(subTexts[subCounter].Replace(" ", ""));
|
||||
}else{
|
||||
while (visibleCounter < subTexts[subCounter].Length){
|
||||
onTextReveal.Invoke(subTexts[subCounter][visibleCounter]);
|
||||
visibleCounter++;
|
||||
maxVisibleCharacters++;
|
||||
AudioManager.instance.PlayOneShot("text");
|
||||
yield return new WaitForSeconds(1f / speed);
|
||||
}
|
||||
visibleCounter = 0;
|
||||
}
|
||||
subCounter++;
|
||||
}
|
||||
yield return null;
|
||||
|
||||
WaitForSeconds EvaluateTag(string tag){
|
||||
if (tag.Length > 0){
|
||||
if (tag.StartsWith("speed=")){
|
||||
speed = float.Parse(tag.Split('=')[1]);
|
||||
}else if (tag.StartsWith("pause=")){
|
||||
return new WaitForSeconds(float.Parse(tag.Split('=')[1]));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
onDialogueFinish.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/CustomTMP_Animated.cs.meta
Normal file
11
Assets/Scripts/CustomTMP_Animated.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5c1439be7349c334c8efcbe21eb63397
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
13
Assets/Scripts/DontDestroy.cs
Normal file
13
Assets/Scripts/DontDestroy.cs
Normal file
|
@ -0,0 +1,13 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DontDestroy : MonoBehaviour{
|
||||
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
DontDestroyOnLoad(gameObject);
|
||||
}
|
||||
}
|
11
Assets/Scripts/DontDestroy.cs.meta
Normal file
11
Assets/Scripts/DontDestroy.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fb5508a239df481489eaf031570d6b02
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Scripts/Hand.meta
Normal file
8
Assets/Scripts/Hand.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 463ce90e8e909bf4988090ace0db0412
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
84
Assets/Scripts/Hand/FakeFingerManager.cs
Normal file
84
Assets/Scripts/Hand/FakeFingerManager.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Hand/FakeFingerManager.cs.meta
Normal file
11
Assets/Scripts/Hand/FakeFingerManager.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6f368aced5d00294f89e49eae6378ce0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
34
Assets/Scripts/Hand/Finger.cs
Normal file
34
Assets/Scripts/Hand/Finger.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Hand/Finger.cs.meta
Normal file
11
Assets/Scripts/Hand/Finger.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ca8887ba4171ad84580e941e7a059cd5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
42
Assets/Scripts/Hand/FingerHandManager.cs
Normal file
42
Assets/Scripts/Hand/FingerHandManager.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Hand/FingerHandManager.cs.meta
Normal file
11
Assets/Scripts/Hand/FingerHandManager.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 149d3a055efe85349bf8c2b9b0d34330
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
267
Assets/Scripts/Hand/HandManager.cs
Normal file
267
Assets/Scripts/Hand/HandManager.cs
Normal 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;
|
||||
}
|
||||
}
|
11
Assets/Scripts/Hand/HandManager.cs.meta
Normal file
11
Assets/Scripts/Hand/HandManager.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 02bd556b826f8bf4494da3d1d28ad7b7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
63
Assets/Scripts/MainMenuController.cs
Normal file
63
Assets/Scripts/MainMenuController.cs
Normal file
|
@ -0,0 +1,63 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class MainMenuController : MonoBehaviour{
|
||||
|
||||
[SerializeField] Button playButton;
|
||||
[SerializeField] Button creditsButton;
|
||||
[SerializeField] Button settingsButton;
|
||||
[SerializeField] Button settingsAcceptButton;
|
||||
[SerializeField] Button exitButton;
|
||||
|
||||
[Space]
|
||||
[SerializeField] GameObject title;
|
||||
[SerializeField] GameObject menuButtons;
|
||||
[SerializeField] GameObject settingsPanel;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start(){
|
||||
AudioManager.instance.StopAll();
|
||||
AudioManager.instance.Play("forest");
|
||||
|
||||
if (playButton != null)
|
||||
playButton.onClick.AddListener(Play);
|
||||
|
||||
if (creditsButton != null)
|
||||
creditsButton.onClick.AddListener(Credits);
|
||||
|
||||
if (settingsButton != null)
|
||||
settingsButton.onClick.AddListener(Settings);
|
||||
|
||||
if (settingsAcceptButton != null)
|
||||
settingsAcceptButton.onClick.AddListener(SettingsAccept);
|
||||
|
||||
if (exitButton != null)
|
||||
exitButton.onClick.AddListener(Exit);
|
||||
}
|
||||
|
||||
void Play(){
|
||||
Loader.Load(1);
|
||||
}
|
||||
|
||||
void Credits(){
|
||||
//SceneManager.LoadScene("Credits");
|
||||
}
|
||||
|
||||
void Settings(){
|
||||
title.SetActive(false);
|
||||
menuButtons.SetActive(false);
|
||||
settingsPanel.SetActive(true);
|
||||
}
|
||||
void SettingsAccept(){
|
||||
title.SetActive(true);
|
||||
menuButtons.SetActive(true);
|
||||
settingsPanel.SetActive(false);
|
||||
}
|
||||
|
||||
void Exit(){
|
||||
Application.Quit();
|
||||
}
|
||||
}
|
11
Assets/Scripts/MainMenuController.cs.meta
Normal file
11
Assets/Scripts/MainMenuController.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5e06e77e269b14140b12d0a12b648213
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Scripts/Overworld.meta
Normal file
8
Assets/Scripts/Overworld.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e072be93411028d40ba1aa23d1ab9239
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
71
Assets/Scripts/Overworld/Grid.cs
Normal file
71
Assets/Scripts/Overworld/Grid.cs
Normal file
|
@ -0,0 +1,71 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Grid : MonoBehaviour{
|
||||
|
||||
public bool empty = false;
|
||||
|
||||
[HideInInspector] public int index;
|
||||
|
||||
[System.Serializable] public enum Enemy { Oso, Driada, Loca }
|
||||
public Enemy enemy;
|
||||
|
||||
[Space]
|
||||
public bool isBoss = false;
|
||||
public bool unlocked;
|
||||
public bool connected;
|
||||
|
||||
[Space]
|
||||
public Grid upGrid;
|
||||
public Grid downGrid;
|
||||
public Grid leftGrid;
|
||||
public Grid rightGrid;
|
||||
|
||||
[Space]
|
||||
public Grid upPathToUnlock;
|
||||
public Grid downPathToUnlock;
|
||||
public Grid leftPathToUnlock;
|
||||
public Grid rightPathToUnlock;
|
||||
|
||||
BoxCollider2D boxCollider;
|
||||
|
||||
void Awake(){
|
||||
float range = Random.Range(0f, 300f);
|
||||
if(range < 100f){
|
||||
enemy = Enemy.Oso;
|
||||
}else if(range >= 100f && range < 200f){
|
||||
enemy = Enemy.Driada;
|
||||
}else{
|
||||
enemy = Enemy.Loca;
|
||||
}
|
||||
|
||||
boxCollider = GetComponent<BoxCollider2D>();
|
||||
}
|
||||
|
||||
public void UpdateEnemies(Enemy enemyType){
|
||||
enemy = enemyType;
|
||||
}
|
||||
|
||||
public void Connect(){
|
||||
|
||||
}
|
||||
|
||||
void Update(){
|
||||
if (unlocked){
|
||||
boxCollider.enabled = false;
|
||||
if(upPathToUnlock != null){
|
||||
upGrid = upPathToUnlock;
|
||||
}
|
||||
if (downPathToUnlock != null){
|
||||
downGrid = downPathToUnlock;
|
||||
}
|
||||
if (leftPathToUnlock != null){
|
||||
leftGrid = leftPathToUnlock;
|
||||
}
|
||||
if (rightPathToUnlock != null){
|
||||
rightGrid = rightPathToUnlock;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Overworld/Grid.cs.meta
Normal file
11
Assets/Scripts/Overworld/Grid.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5f8da0b023926474a882cd92e8ef20b0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
29
Assets/Scripts/Overworld/Level.cs
Normal file
29
Assets/Scripts/Overworld/Level.cs
Normal file
|
@ -0,0 +1,29 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Level : MonoBehaviour{
|
||||
|
||||
public Grid[] grids;
|
||||
|
||||
public static Level instance;
|
||||
void Awake(){
|
||||
instance = this;
|
||||
}
|
||||
|
||||
void Start(){
|
||||
if(GameMaster.instance.grids != null){
|
||||
for (int i = 0; i < grids.Length; i++){
|
||||
grids[i].unlocked = GameMaster.instance.grids[i];
|
||||
grids[i].enemy = (Grid.Enemy)GameMaster.instance.enemyType[i];
|
||||
}
|
||||
}else{
|
||||
GameMaster.instance.grids = new Dictionary<int, bool>();
|
||||
GameMaster.instance.enemyType = new Dictionary<int, int>();
|
||||
for (int i = 0; i < grids.Length; i++){
|
||||
GameMaster.instance.grids.Add(i, grids[i].unlocked);
|
||||
GameMaster.instance.enemyType.Add(i, (int)grids[i].enemy);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Overworld/Level.cs.meta
Normal file
11
Assets/Scripts/Overworld/Level.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5eb9447b1990b7f4c8a6e3cc6762fa70
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
120
Assets/Scripts/PlayerMovement.cs
Normal file
120
Assets/Scripts/PlayerMovement.cs
Normal file
|
@ -0,0 +1,120 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerMovement : MonoBehaviour{
|
||||
|
||||
[SerializeField] Grid startGrid = default;
|
||||
[SerializeField] float speed = 5f;
|
||||
float currentStep;
|
||||
|
||||
Grid currentGrid;
|
||||
Grid lastGrid;
|
||||
|
||||
Animator anim;
|
||||
SpriteRenderer spriteRenderer;
|
||||
|
||||
[SerializeField] float timeToLoad = 1f;
|
||||
float currentTime;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Awake(){
|
||||
currentGrid = lastGrid = startGrid;
|
||||
anim = GetComponent<Animator>();
|
||||
spriteRenderer = GetComponent<SpriteRenderer>();
|
||||
AudioManager.instance.StopAll();
|
||||
AudioManager.instance.Play("forest");
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update(){
|
||||
if (Input.GetKeyDown(KeyCode.W)){
|
||||
anim.SetTrigger("runBack");
|
||||
if(transform.position == currentGrid.transform.position){
|
||||
if(currentGrid.upGrid != null){
|
||||
lastGrid = currentGrid;
|
||||
currentGrid = currentGrid.upGrid;
|
||||
currentStep = 0;
|
||||
StartCoroutine(ChangeIddle("iddleBack"));
|
||||
}
|
||||
}
|
||||
}else if (Input.GetKeyDown(KeyCode.S)){
|
||||
anim.SetTrigger("runFront");
|
||||
if (transform.position == currentGrid.transform.position){
|
||||
if (currentGrid.downGrid != null){
|
||||
lastGrid = currentGrid;
|
||||
currentGrid = currentGrid.downGrid;
|
||||
currentStep = 0;
|
||||
StartCoroutine(ChangeIddle("iddleFront"));
|
||||
}
|
||||
}
|
||||
}else if (Input.GetKeyDown(KeyCode.A)){
|
||||
anim.SetTrigger("runSide");
|
||||
spriteRenderer.flipX = true;
|
||||
if (transform.position == currentGrid.transform.position){
|
||||
if (currentGrid.leftGrid != null){
|
||||
lastGrid = currentGrid;
|
||||
currentGrid = currentGrid.leftGrid;
|
||||
currentStep = 0;
|
||||
StartCoroutine(ChangeIddle("iddleSide"));
|
||||
}
|
||||
}
|
||||
}else if (Input.GetKeyDown(KeyCode.D)){
|
||||
anim.SetTrigger("runSide");
|
||||
spriteRenderer.flipX = false;
|
||||
if (transform.position == currentGrid.transform.position){
|
||||
if (currentGrid.rightGrid != null){
|
||||
lastGrid = currentGrid;
|
||||
currentGrid = currentGrid.rightGrid;
|
||||
currentStep = 0;
|
||||
StartCoroutine(ChangeIddle("iddleSide"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
currentStep += speed * .5f * Time.deltaTime;
|
||||
currentStep = Mathf.Clamp(currentStep, 0, 1);
|
||||
transform.position = Vector3.Lerp(lastGrid.transform.position, currentGrid.transform.position, currentStep);
|
||||
}
|
||||
|
||||
void OnTriggerStay2D(Collider2D col){
|
||||
if (col.CompareTag("AttackGrid")){
|
||||
currentTime += Time.deltaTime;
|
||||
if (col.GetComponent<Grid>().isBoss){
|
||||
//Load Boss
|
||||
if (currentTime > timeToLoad){
|
||||
GameMaster.instance.LoadBoss(col.GetComponent<Grid>().index);
|
||||
}
|
||||
}
|
||||
else{
|
||||
//Load RandomCombat
|
||||
if (currentTime > timeToLoad){
|
||||
GameMaster.instance.LoadGrid(col.GetComponent<Grid>().index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator ChangeIddle(string triggerId){
|
||||
|
||||
yield return new WaitForSeconds(0.05f);
|
||||
|
||||
Color alphaColor = spriteRenderer.color;
|
||||
while(alphaColor.a > 0){
|
||||
alphaColor.a -= 0.15f;
|
||||
spriteRenderer.color = alphaColor;
|
||||
yield return new WaitForSeconds(0.01f);
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(0.7f);
|
||||
|
||||
anim.SetTrigger(triggerId);
|
||||
|
||||
while (alphaColor.a < 1){
|
||||
alphaColor.a += 0.15f;
|
||||
spriteRenderer.color = alphaColor;
|
||||
yield return new WaitForSeconds(0.01f);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
11
Assets/Scripts/PlayerMovement.cs.meta
Normal file
11
Assets/Scripts/PlayerMovement.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 50e2b89c8872c85478c9ffbc6860abec
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Add table
Add a link
Reference in a new issue