init
This commit is contained in:
commit
fca6784fe7
571 changed files with 84105 additions and 0 deletions
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);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue