add all mechanics

This commit is contained in:
Sylvia 2026-07-13 17:46:02 -07:00
parent 87383d5b8c
commit 0e2a7cc7c3
434 changed files with 238349 additions and 2092 deletions

View file

@ -10,7 +10,10 @@ public class DialogueCharacter : ScriptableObject
{
Reisen,
Youmu,
Enemy
Enemy,
Lunasa,
Merlin,
Lyrica //the worlds WORST code
}
public Character thisCharacter;
}

View file

@ -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();
}
}
}
}

View file

@ -12,4 +12,7 @@ public class DialogueScript : ScriptableObject
}
public Dialogue[] dialogueList;
public int nextScene;
public AudioClip dialogueLoop;
public AudioClip musicToPlay;
public float volume;
}