update music manager and fix voting page

This commit is contained in:
Fangh 2024-01-28 15:52:05 +01:00
parent e105360132
commit f5a938f314
5 changed files with 44 additions and 46 deletions

View File

@ -1788,6 +1788,7 @@ GameObject:
- component: {fileID: 375256414} - component: {fileID: 375256414}
- component: {fileID: 375256413} - component: {fileID: 375256413}
- component: {fileID: 375256412} - component: {fileID: 375256412}
- component: {fileID: 375256415}
m_Layer: 0 m_Layer: 0
m_Name: '[Managers]' m_Name: '[Managers]'
m_TagString: Untagged m_TagString: Untagged
@ -1835,7 +1836,7 @@ MonoBehaviour:
- {fileID: 1854893636} - {fileID: 1854893636}
- {fileID: 2065109614} - {fileID: 2065109614}
- {fileID: 1197279072} - {fileID: 1197279072}
votingPage: {fileID: 0} votingPage: {fileID: 1660260835}
promptList: {fileID: 11400000, guid: 21907abc84e40403ca34c4fb9ab30b06, type: 2} promptList: {fileID: 11400000, guid: 21907abc84e40403ca34c4fb9ab30b06, type: 2}
--- !u!114 &375256413 --- !u!114 &375256413
MonoBehaviour: MonoBehaviour:
@ -1866,6 +1867,29 @@ Transform:
- {fileID: 1937957482} - {fileID: 1937957482}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &375256415
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 375256411}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ccc6142918f2946509e0c02fbe0df427, type: 3}
m_Name:
m_EditorClassIdentifier:
musicSource: {fileID: 1277491651}
sfxSource: {fileID: 1937957483}
musics:
- title: 0
clip: {fileID: 8300000, guid: 7ac3efdb5c840704aafbf19188b3e61e, type: 3}
- title: 1
clip: {fileID: 8300000, guid: 0e86c0433979a2d4c884b368808d3cdf, type: 3}
- title: 2
clip: {fileID: 8300000, guid: d782d7e00ee5a0d40a3c005d87c15b3a, type: 3}
- title: 3
clip: {fileID: 8300000, guid: e1135788bf319bd42b6ca512976f9028, type: 3}
--- !u!1 &411140634 --- !u!1 &411140634
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -5641,9 +5665,8 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 1277491650} - component: {fileID: 1277491650}
- component: {fileID: 1277491651} - component: {fileID: 1277491651}
- component: {fileID: 1277491652}
m_Layer: 0 m_Layer: 0
m_Name: MusicManager m_Name: MusicSource
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -5760,27 +5783,6 @@ AudioSource:
m_PreInfinity: 2 m_PreInfinity: 2
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
--- !u!114 &1277491652
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1277491649}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ccc6142918f2946509e0c02fbe0df427, type: 3}
m_Name:
m_EditorClassIdentifier:
musics:
- title: 0
clip: {fileID: 8300000, guid: 7ac3efdb5c840704aafbf19188b3e61e, type: 3}
- title: 1
clip: {fileID: 8300000, guid: 0e86c0433979a2d4c884b368808d3cdf, type: 3}
- title: 2
clip: {fileID: 8300000, guid: d782d7e00ee5a0d40a3c005d87c15b3a, type: 3}
- title: 3
clip: {fileID: 8300000, guid: e1135788bf319bd42b6ca512976f9028, type: 3}
--- !u!1 &1318111281 --- !u!1 &1318111281
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9238,7 +9240,7 @@ GameObject:
- component: {fileID: 1937957482} - component: {fileID: 1937957482}
- component: {fileID: 1937957483} - component: {fileID: 1937957483}
m_Layer: 0 m_Layer: 0
m_Name: SFXManager m_Name: SFXSource
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0

View File

@ -18,6 +18,7 @@ private void Awake()
public void ChangeMusic(MusicTitle _title) public void ChangeMusic(MusicTitle _title)
{ {
Debug.Log($"changing music to {_title}");
musicSource.clip = musics.Find(x => x.title == _title).clip; musicSource.clip = musics.Find(x => x.title == _title).clip;
musicSource.Play(); musicSource.Play();
} }
@ -29,6 +30,7 @@ public void StopMusic()
public void PlaySFX(AudioClip _clip) public void PlaySFX(AudioClip _clip)
{ {
Debug.Log($"playing {_clip.name} SFX");
sfxSource.PlayOneShot(_clip); sfxSource.PlayOneShot(_clip);
} }
} }

View File

@ -6,17 +6,8 @@
[JsonObject] [JsonObject]
public class Question public class Question
{ {
public string id; public int index;
public string promptId; public string promptId;
public Dictionary<int, Proposition> propositions; public Dictionary<int, Proposition> propositions;
public double creationDate; public double creationDate;
public Proposition GetFirstProposition()
{
return propositions[0];
}
public Proposition GetSecondProposition()
{
return propositions[1];
}
} }

View File

@ -304,7 +304,7 @@ public void GeneratePrompts()
questions.Add(i, new Question() questions.Add(i, new Question()
{ {
id = Guid.NewGuid().ToString(), index = i,
promptId = prompts[i].id, promptId = prompts[i].id,
propositions = propositions, propositions = propositions,
creationDate = DateTime.Now.ToOADate(), creationDate = DateTime.Now.ToOADate(),

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Firebase.Database; using Firebase.Database;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
@ -66,14 +67,16 @@ public void ShowVotingPage(DatabaseReference _roomRef, Dictionary<string, Player
currentPlayers = _currentPlayers; currentPlayers = _currentPlayers;
OnVoteEnded = _callback_OnVoteEnded; OnVoteEnded = _callback_OnVoteEnded;
foreach (Dictionary<int, Question> QuestionByID in _questions) Question[] _questionArray = _questions.Values.ToArray();
for (int i = 0; i < _questionArray.Length; i++)
{ {
remainingQuestions.Enqueue(QuestionByID.Value); remainingQuestions.Enqueue(_questionArray[i]);
roomRef.Child("questions").Child(QuestionByID.Key).ValueChanged += OnQuestionChanged; roomRef.Child("questions").Child(i.ToString()).ValueChanged += OnQuestionChanged;
} }
currentQuestion = remainingQuestions.Dequeue(); currentQuestion = remainingQuestions.Dequeue();
roomRef.Child("currentQuestion").SetValueAsync(currentQuestion.id); roomRef.Child("currentQuestion").SetValueAsync(currentQuestion.index);
ShowQuestion(); ShowQuestion();
} }
@ -85,8 +88,8 @@ void ShowQuestion()
Debug.Log($"Prompt is {currentPromptLabel.text}", this); Debug.Log($"Prompt is {currentPromptLabel.text}", this);
proposition1.Initialize(currentQuestion.GetFirstProposition()); proposition1.Initialize(currentQuestion.propositions[0]);
proposition1.Initialize(currentQuestion.GetSecondProposition()); proposition1.Initialize(currentQuestion.propositions[1]);
endOfTimer = DateTime.Now.AddSeconds(votingTime); endOfTimer = DateTime.Now.AddSeconds(votingTime);
} }
@ -102,10 +105,10 @@ private void OnQuestionChanged(object sender, ValueChangedEventArgs _questionRef
Question question = Newtonsoft.Json.JsonConvert.DeserializeObject<Question>(JSON); Question question = Newtonsoft.Json.JsonConvert.DeserializeObject<Question>(JSON);
//if someone succeeded to vote for another question than the one that is displayed => yeet //if someone succeeded to vote for another question than the one that is displayed => yeet
if (question.id != currentQuestion.id) if (question.index != currentQuestion.index)
return; return;
Debug.Log($"someone has voted for {question.id}", this); Debug.Log($"someone has voted for {question.index}", this);
currentQuestion.propositions = question.propositions; currentQuestion.propositions = question.propositions;
UpdateVoters(); UpdateVoters();
@ -114,13 +117,13 @@ private void OnQuestionChanged(object sender, ValueChangedEventArgs _questionRef
private void UpdateVoters() private void UpdateVoters()
{ {
List<Player> playersThatHasVotedForFirstProposition = new List<Player>(); List<Player> playersThatHasVotedForFirstProposition = new List<Player>();
foreach (string playerId in currentQuestion.GetFirstProposition().voters) foreach (string playerId in currentQuestion.propositions[0].voters)
{ {
playersThatHasVotedForFirstProposition.Add(currentPlayers[playerId]); playersThatHasVotedForFirstProposition.Add(currentPlayers[playerId]);
} }
List<Player> playersThatHasVotedForSecondProposition = new List<Player>(); List<Player> playersThatHasVotedForSecondProposition = new List<Player>();
foreach (string playerId in currentQuestion.GetSecondProposition().voters) foreach (string playerId in currentQuestion.propositions[1].voters)
{ {
playersThatHasVotedForSecondProposition.Add(currentPlayers[playerId]); playersThatHasVotedForSecondProposition.Add(currentPlayers[playerId]);
} }