add all mechanics
This commit is contained in:
parent
87383d5b8c
commit
0e2a7cc7c3
434 changed files with 238349 additions and 2092 deletions
|
|
@ -10,7 +10,10 @@ public class DialogueCharacter : ScriptableObject
|
|||
{
|
||||
Reisen,
|
||||
Youmu,
|
||||
Enemy
|
||||
Enemy,
|
||||
Lunasa,
|
||||
Merlin,
|
||||
Lyrica //the worlds WORST code
|
||||
}
|
||||
public Character thisCharacter;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,12 @@ public class DialogueManager : MonoBehaviour
|
|||
[SerializeField] private TextMeshProUGUI youmuText;
|
||||
[SerializeField] private GameObject reisenSpeechBubble; //have to change the dialogue for this but it's probably fine
|
||||
[SerializeField] private TextMeshProUGUI reisenText;
|
||||
[SerializeField] private GameObject merlinSpeechBubble; //hell
|
||||
[SerializeField] private TextMeshProUGUI merlinText;
|
||||
[SerializeField] private GameObject lyricaSpeechBubble;
|
||||
[SerializeField] private TextMeshProUGUI lyricaText;
|
||||
[SerializeField] private GameObject lunasaSpeechBubble;
|
||||
[SerializeField] private TextMeshProUGUI lunasaText;
|
||||
[Header("Animation")]
|
||||
[SerializeField] private Animator reisenAnimator;
|
||||
[SerializeField] private Animator youmuAnimator;
|
||||
|
|
@ -40,16 +46,37 @@ public class DialogueManager : MonoBehaviour
|
|||
[SerializeField] private string switchToIdleTrigger;
|
||||
[SerializeField] private string changeDialogueTrigger;
|
||||
[SerializeField] private string talkTrigger;
|
||||
|
||||
public Animator battleUIAnimator;
|
||||
[SerializeField] private string dialogueStartTrigger;
|
||||
[SerializeField] private string dialogueEndTrigger;
|
||||
public string nobossTrigger;
|
||||
|
||||
public void StartDialogue(DialogueScript newDialogue)
|
||||
{
|
||||
dialogueUI.SetActive(true);
|
||||
WaveManager.instance.bossUI.SetActive(false);
|
||||
dialogueActive = true;
|
||||
currentText = 0;
|
||||
scriptToShow = newDialogue;
|
||||
battleUIAnimator.SetTrigger(dialogueStartTrigger);
|
||||
DialogueScript.Dialogue currentDialogue = scriptToShow.dialogueList[currentText];
|
||||
bossSpeechBubble.transform.position = WaveManager.instance.bossInstance.transform.position + offset;
|
||||
if (WaveManager.instance.bossInstance)
|
||||
{
|
||||
bossSpeechBubble.position = WaveManager.instance.bossInstance.transform.position + offset;
|
||||
WaveManager.instance.musicSource.clip = WaveManager.instance.bossDialogueLoop;
|
||||
WaveManager.instance.musicSource.volume = WaveManager.instance.bossVolume;
|
||||
WaveManager.instance.musicSource.Play();
|
||||
}
|
||||
if (WaveManager.instance.lyricaInstance)
|
||||
{
|
||||
WaveManager.instance.lyricaInstance.isStalled = true;
|
||||
lunasaSpeechBubble.transform.position = WaveManager.instance.lunasaInstance.transform.position + offset;
|
||||
merlinSpeechBubble.transform.position = WaveManager.instance.merlinInstance.transform.position + offset;
|
||||
lyricaSpeechBubble.transform.position = WaveManager.instance.lyricaInstance.transform.position + offset;
|
||||
WaveManager.instance.musicSource.clip = WaveManager.instance.finalDialogueLoop;
|
||||
WaveManager.instance.musicSource.volume = WaveManager.instance.finalVolume;
|
||||
WaveManager.instance.musicSource.Play();
|
||||
}
|
||||
SetDialogue(currentDialogue);
|
||||
reisenAnimator.SetTrigger(switchToDialogueTrigger);
|
||||
youmuAnimator.SetTrigger(switchToDialogueTrigger);
|
||||
|
|
@ -74,10 +101,31 @@ public class DialogueManager : MonoBehaviour
|
|||
dialogueUI.SetActive(false);
|
||||
WaveManager.instance.player.isStalled = false;
|
||||
WaveManager.instance.player.invulnerable = false;
|
||||
WaveManager.instance.bossInstance.isStalled = false;
|
||||
battleUIAnimator.SetTrigger(dialogueEndTrigger);
|
||||
if (WaveManager.instance.bossInstance)
|
||||
{
|
||||
WaveManager.instance.bossInstance.isStalled = false;
|
||||
WaveManager.instance.bossInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.musicSource.clip = WaveManager.instance.bossMusic;
|
||||
WaveManager.instance.musicSource.Play();
|
||||
}
|
||||
if (WaveManager.instance.lunasaInstance)
|
||||
{
|
||||
WaveManager.instance.lunasaInstance.isStalled = false;
|
||||
WaveManager.instance.merlinInstance.isStalled = false;
|
||||
WaveManager.instance.lyricaInstance.isStalled = false;
|
||||
WaveManager.instance.lyricaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.merlinInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lunasaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.musicSource.clip = WaveManager.instance.finalMusic;
|
||||
WaveManager.instance.musicSource.Play();
|
||||
}
|
||||
//GameManager.instance.SetPause(false);
|
||||
WaveManager.instance.bossUI.SetActive(true);
|
||||
WaveManager.instance.musicSource.Play();
|
||||
reisenAnimator.SetTrigger(switchToIdleTrigger);
|
||||
youmuAnimator.SetTrigger(switchToIdleTrigger);
|
||||
|
||||
}
|
||||
|
||||
private void SetDialogue(DialogueScript.Dialogue textToShow)
|
||||
|
|
@ -85,6 +133,9 @@ public class DialogueManager : MonoBehaviour
|
|||
reisenSpeechBubble.SetActive(false);
|
||||
youmuSpeechBubble.SetActive(false);
|
||||
bossSpeechBubble.gameObject.SetActive(false);
|
||||
lyricaSpeechBubble.SetActive(false);
|
||||
merlinSpeechBubble.SetActive(false);
|
||||
lunasaSpeechBubble.SetActive(false);
|
||||
switch (textToShow.character.thisCharacter) //everyone will hate this code but that's alright
|
||||
{
|
||||
case DialogueCharacter.Character.Reisen:
|
||||
|
|
@ -92,18 +143,66 @@ public class DialogueManager : MonoBehaviour
|
|||
reisenText.text = textToShow.text;
|
||||
youmuAnimator.SetTrigger(changeDialogueTrigger);
|
||||
reisenAnimator.SetTrigger(talkTrigger);
|
||||
if (WaveManager.instance.lyricaInstance)
|
||||
{
|
||||
WaveManager.instance.lyricaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.merlinInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lunasaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
}
|
||||
else
|
||||
{
|
||||
WaveManager.instance.bossInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
}
|
||||
break;
|
||||
case DialogueCharacter.Character.Youmu:
|
||||
youmuSpeechBubble.SetActive(true);
|
||||
youmuText.text = textToShow.text;
|
||||
youmuAnimator.SetTrigger(talkTrigger);
|
||||
reisenAnimator.SetTrigger(changeDialogueTrigger);
|
||||
if (WaveManager.instance.lyricaInstance)
|
||||
{
|
||||
WaveManager.instance.lyricaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.merlinInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lunasaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
}
|
||||
else
|
||||
{
|
||||
WaveManager.instance.bossInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
}
|
||||
break;
|
||||
case DialogueCharacter.Character.Enemy:
|
||||
bossSpeechBubble.gameObject.SetActive(true);
|
||||
bossText.text = textToShow.text;
|
||||
reisenAnimator.SetTrigger(changeDialogueTrigger);
|
||||
youmuAnimator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.bossInstance.animator.SetTrigger(talkTrigger);
|
||||
break;
|
||||
case DialogueCharacter.Character.Lunasa:
|
||||
lunasaSpeechBubble.gameObject.SetActive(true);
|
||||
lunasaText.text = textToShow.text;
|
||||
reisenAnimator.SetTrigger(changeDialogueTrigger);
|
||||
youmuAnimator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lyricaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.merlinInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lunasaInstance.animator.SetTrigger(talkTrigger);
|
||||
break;
|
||||
case DialogueCharacter.Character.Merlin:
|
||||
merlinSpeechBubble.gameObject.SetActive(true);
|
||||
merlinText.text = textToShow.text;
|
||||
reisenAnimator.SetTrigger(changeDialogueTrigger);
|
||||
youmuAnimator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lyricaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.merlinInstance.animator.SetTrigger(talkTrigger);
|
||||
WaveManager.instance.lunasaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
break;
|
||||
case DialogueCharacter.Character.Lyrica:
|
||||
lyricaSpeechBubble.gameObject.SetActive(true);
|
||||
lyricaText.text = textToShow.text;
|
||||
reisenAnimator.SetTrigger(changeDialogueTrigger);
|
||||
youmuAnimator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lyricaInstance.animator.SetTrigger(talkTrigger);
|
||||
WaveManager.instance.merlinInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
WaveManager.instance.lunasaInstance.animator.SetTrigger(changeDialogueTrigger);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -116,6 +215,10 @@ public class DialogueManager : MonoBehaviour
|
|||
{
|
||||
ContinueDialogue();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.Escape))
|
||||
{
|
||||
EndDialogue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,4 +12,7 @@ public class DialogueScript : ScriptableObject
|
|||
}
|
||||
public Dialogue[] dialogueList;
|
||||
public int nextScene;
|
||||
public AudioClip dialogueLoop;
|
||||
public AudioClip musicToPlay;
|
||||
public float volume;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue