194 lines
7 KiB
C#
194 lines
7 KiB
C#
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");
|
|
}
|
|
}
|