Untitled
unknown
plain_text
2 years ago
28 kB
3
Indexable
using System; using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using Gadgets.EverilionIntegration.Scripts.EverilionApi; using NakaSDK; using NakaSDK.Events; using UnityEngine; #region SubClasses [Serializable] public class RouletteQuestion : ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } [NakaSDK.Label("$key_Question")] public string question; [NakaSDK.Label("$key_Answers"), NakaSDK.Description("$key_AnswersDescription")] public string[] answers; [NakaSDK.Label("$key_CorrectAnswer"), NakaSDK.Description("$key_CorrectAnswerDescription")] public int correct; } [Serializable] public class RouletteVoiceLines { //Cuando el jugador cae en una casilla al girar la ruleta [NakaSDK.Label("$key_rouletteNormalPieceScored255075"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteNormalPieceScored_25_50_75 = null; [NakaSDK.Label("$key_rouletteNormalPieceScored100200"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteNormalPieceScored_100_200 = null; [NakaSDK.Label("$key_roulettePieceScoredX2"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] roulettePieceScored_X2 = null; [NakaSDK.Label("$key_roulettePieceScoredX05"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] roulettePieceScored_X05 = null; [NakaSDK.Label("$key_roulettePieceScoredPassTurn"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] roulettePieceScored_PassTurn = null; [NakaSDK.Label("$key_roulettePieceScoredBankrupt"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] roulettePieceScored_Bankrupt = null; //Cuando el jugador gana los puntos [NakaSDK.Label("$key_rouletteCorrectAnswer255075"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteCorrectAnswer_25_50_75 = null; [NakaSDK.Label("$key_rouletteCorrectAnswer100200"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteCorrectAnswer_100_200 = null; [NakaSDK.Label("$key_rouletteCorrectAnswerX2"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteCorrectAnswer_X2 = null; [NakaSDK.Label("$key_rouletteCorrectAnswerX05"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteCorrectAnswer_X05 = null; //Cuando el jugador pierde los puntos [NakaSDK.Label("$key_rouletteIncorrectAnswer255075"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteIncorrectAnswer_25_50_75 = null; [NakaSDK.Label("$key_rouletteIncorrectAnswer100200"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteIncorrectAnswer_100_200 = null; [NakaSDK.Label("$key_rouletteIncorrectAnswerX2"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteIncorrectAnswer_X2 = null; [NakaSDK.Label("$key_rouletteIncorrectAnswerX05"), NakaSDK.Description("$key_PieceScoredDescription")] public string[] rouletteIncorrectAnswer_X05 = null; //Cuando Se cambia el turno [NakaSDK.Label("$key_rouletteChangeTurn"), NakaSDK.Description("$key_TurnDescription")] public string[] rouletteChangeTurn = null; //public RouletteVoiceLines() { } } [NakaSDK.GadgetDataClass(GadgetPackageName = "RouletteGame", Selectable = true, Label = "$key_RouletteData")] [Serializable] public class RouletteData : ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } [NakaSDK.Label("$key_PlayerNumber")] public int playerNumber; [NakaSDK.Label("$key_RoundsNumber")] public int roundsNumber; [NakaSDK.Label("$key_QuestionsData")] public RouletteQuestion[] rouletteData; [NakaSDK.Label("$key_VoiceLines")] public RouletteVoiceLines voiceLines; //[NakaSDK.Label("$key_rouletteChangeTurn"), NakaSDK.Description("$key_TurnDescription")] //public TraductionVoiceLine[] rouletteChangeTurn = null; } [NakaSDK.GadgetDataClass(GadgetPackageName = "RouletteGame", Selectable = true, Label = "$key_RouletteData")] [Serializable] public class TraductionVoiceLine : ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } public string rouletteChangeTurn = null; } [Serializable] public class PlayerAnswer : ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } public int score; public string question; public int selected; public PlayerAnswer() { } public PlayerAnswer(int _score, string _question, int _selected = -1) {score = _score; question = _question; selected = _selected; } } [Serializable] public class PlayerJoinedData : ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } public int networkId; public string nickname; public bool itsme; public int index; public PlayerJoinedData(MeetingUser _user, int _index) { networkId = _user.networkId; nickname = _user.nickname; itsme = _user.itsme; index = _index; } } #endregion public class GameLauncher : MonoBehaviour, ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } private Gadget _gadget; private ServiceWrapper _service; private RouletteData parsedData; private LoggerNaka _loggerNaka; private PlayerTurns _turns; private List<RouletteQuestion> rouletteQuestionsDone = new List<RouletteQuestion>(); private List<RouletteQuestion> rouletteQuestionsAvailable; [Header("Lecterns")] public LecternLogic[] _pointsPosition; [Header("UI")] public ScreenUI ScreenUI; [Header("Start Question Panel")] public GameObject startPanel; public GameObject playButton; public GameObject spectateButton; public Transform spawnPlayer; public GameObject startGameButton; public GameObject repeatButton; public static bool IsVRDeviceConnected = true; private int userCardID = -1; #region Gadget public async void setData(string Data) { _gadget = GetComponent<Gadget>(); spectateButton.GetComponent<SimpleButton>().RegisterInteractable(_gadget); playButton.GetComponent<SimpleButton>().RegisterInteractable(_gadget); startGameButton.GetComponent<SimpleButton>().RegisterInteractable(_gadget); repeatButton.GetComponent<SimpleButton>().RegisterInteractable(_gadget); spectateButton.GetComponent<SimpleButton>().OnSelect.AddListener(() => { startPanel.SetActive(false); InitializeGadget(Data, true); }); playButton.GetComponent<SimpleButton>().OnSelect.AddListener(() => { InitializeGadget(Data); startPanel.SetActive(false); }); GameSynchronizer.Instance.AddAction(TypeEvent.PlayerJoin, (data, id) => { PlayerJoinedData parsedData = JsonUtility.FromJson<PlayerJoinedData>(data); MeetingUser user = new MeetingUser(); user.nickname = parsedData.nickname; user.networkId = parsedData.networkId; user.itsme = parsedData.itsme; _pointsPosition[parsedData.index].SetUser(user); _pointsPosition[parsedData.index].isEmpty = false; _pointsPosition[parsedData.index].index = parsedData.index; }); _gadget.nakaInterface.AddEventReciever(GameSynchronizer.Instance.gameObject, GameSynchronizer.Instance); await Task.Delay(1000); Utils.Transform player = GetPlayerHead(); Transform startingPanel = spectateButton.transform.parent; startingPanel.rotation = Quaternion.Euler(0, player.rotation.eulerAngles.y, 0); startingPanel.position = player.position + startingPanel.forward * 0.5f; InvokeRepeating(nameof(CheckDevice), 0, 0.1f); } private string FakeData() { return "{\"playerNumber\": 1, \"roundsNumber\": 2, \"rouletteData\":[{\"question\":\"¿Cuántos planetas hay en el sistema solar?\",\"answers\":[\"7\",\"8\",\"9\"],\"correct\":2},{\"question\":\"¿Quién descubrió América?\",\"answers\":[\"Cristobal Colón\",\"Amerigo Vespucci\"],\"correct\":0},{\"question\":\"¿Qué es un hexágono?\",\"answers\":[\"Un polígono de 4 lados\",\"Un polígono de 5 lados\",\"Un polígono de 6 lados\"],\"correct\":2},{\"question\":\"¿Qué fruta es considerada el rey de las frutas?\",\"answers\":[\"Manzana\",\"Pera\",\"Banana\",\"Durazno\"],\"correct\":3},{\"question\":\"¿Qué animal es el más rápido en tierra?\",\"answers\":[\"Leopardo\",\"Guepardo\"],\"correct\":1},{\"question\":\"¿Quién escribió la obra 'Romeo y Julieta'?\",\"answers\":[\"William Shakespeare\",\"Mark Twain\",\"Charlotte Bronte\",\"Jane Austen\"],\"correct\":0},{\"question\":\"¿Cuántas patas tiene una araña?\",\"answers\":[\"6\",\"8\"],\"correct\":1},{\"question\":\"¿Quién pintó la Mona Lisa?\",\"answers\":[\"Leonardo da Vinci\",\"Michelangelo\",\"Rafael\",\"Jan Vermeer\"],\"correct\":0},{\"question\":\"¿Cuál es la capital de España?\",\"answers\":[\"Barcelona\",\"Madrid\",\"Valencia\",\"Sevilla\"],\"correct\":1},{\"question\":\"¿Quién es el autor de la obra 'Cien años de soledad'?\",\"answers\":[\"Gabriel García Márquez\",\"Jorge Luis Borges\",\"Mario Vargas Llosa\",\"Carlos Fuentes\"],\"correct\":0},{\"question\":\"¿Qué es un pentágono?\",\"answers\":[\"Un polígono de 4 lados\",\"Un polígono de 5 lados\",\"Un polígono de 6 lados\"],\"correct\":1},{\"question\":\"¿Cuál es el animal más grande del mundo?\",\"answers\":[\"Elefante\",\"Rinoceronte\",\"Ballena Azul\",\"Anaconda\"],\"correct\":2},{\"question\":\"¿Qué es un octágono?\",\"answers\":[\"Un polígono de 4 lados\",\"Un polígono de 5 lados\"],\"correct\":3},{\"question\":\"¿En qué año fue fundada NTTDATA?\",\"answers\":[\"1988\",\"2000\",\"2010\",\"2015\"],\"correct\":0},{\"question\":\"¿Cuál es el lema de NTTDATA?\",\"answers\":[\"Transformamos los negocios a través de la tecnología\",\"Innovación, colaboración, valor\",\"Construyendo un futuro mejor juntos\",\"Acelerando la transformación digital\"],\"correct\":0},{\"question\":\"¿En qué país se encuentra la sede central de NTTDATA?\",\"answers\":[\"Japón\",\"Estados Unidos\",\"India\",\"Australia\"],\"correct\":0},{\"question\":\"¿Qué servicios ofrece NTTDATA?\",\"answers\":[\"Consultoría, soluciones de TI y outsourcing\",\"Servicios de telecomunicaciones\"],\"correct\":0},{\"question\":\"¿Cuántos empleados tiene NTTDATA a nivel mundial?\",\"answers\":[\"50,000\",\"100,000\",\"150,000\"],\"correct\":2},{\"question\":\"¿En qué industrias se especializa NTTDATA?\",\"answers\":[\"Finanzas, seguros, retail, fabricación, servicios públicos\",\"Medios de comunicación, entretenimiento, tecnología\",\"Automóviles, construcción, servicios públicos\",\"Salud, educación, servicios públicos\"],\"correct\":0},{\"question\":\"¿Cuál es la filosofía de NTTDATA en cuanto a sus empleados?\",\"answers\":[\"Empleados felices = clientes felices\",\"Empleados primero = clientes primero\",\"Clientes primero = empleados felices\",\"Empleados felices = empresa exitosa\"],\"correct\":0}]}"; } public void OnEventGadget(object e) { NakaSDK.Events.NetworkSyncEvent networkEvent = (NakaSDK.Events.NetworkSyncEvent)e; switch (networkEvent.networkEventType) { case NakaSDK.Events.NetworkSyncEvent.NetworkEventType.OnUserJoin: Debug.Log("User enter: " + networkEvent.meetingUser.nickname); break; case NakaSDK.Events.NetworkSyncEvent.NetworkEventType.OnUserExit: Debug.Log("User exit: " + networkEvent.meetingUser.nickname); //_gadget.nakaInterface.postEvent(gameObject, (int)TypeEvent.PlayerLeave, networkEvent.meetingUser.networkId.ToString(), NakaNetworkSync.ReceiverGroupFlags.All); GetComponent<PlayerTurns>().OnPlayerLeave(networkEvent.meetingUser.networkId.ToString()); break; } } #endregion #region Init private async void InitializeGadget(string Data, bool spectator = false) { if (string.IsNullOrEmpty(Data)) { Data = FakeData(); } // InitializeLogger(); Debug.LogError("Data: " + Data); parsedData = _gadget.nakaInterface.NAKAJsonUtility.fromJSON<RouletteData>(Data);//LitJson.JsonMapper.ToObject<RouletteData>(Data); rouletteQuestionsAvailable = new List<RouletteQuestion>(parsedData.rouletteData); Debug.LogError("Data parsed"); _service = GetComponent<ServiceWrapper>(); Debug.LogError("[Roulette] everillion 1"); userCardID = await GetUserCardData(); Debug.LogError("[Roulette] everillion 2"); if (!spectator) { int index = await PositionPlayer(); InitializeTurns(index); InitButtonSelectables(); if (index == parsedData.playerNumber - 1)//_pointsPosition.Length - 1) SendData(index); } else { InitializeTurns(-1, true); } } private void InitializeTurns(int index, bool spectator = false) { _turns = GetComponent<PlayerTurns>(); if (!spectator) _turns.Initialize(_pointsPosition, index, parsedData.playerNumber, parsedData.roundsNumber); else _turns.InitializeAsPublic(_pointsPosition, parsedData.playerNumber, parsedData.roundsNumber); } private void InitButtonSelectables() { foreach (LecternLogic l in _pointsPosition) { l.lever.InitMechanism(_gadget); l.Button.RegisterInteractable(_gadget, ()=> { l.wantToPlay = true; GameSynchronizer.Instance.SendData(TypeEvent.PlayGame, ""); l.Button.gameObject.SetActive(false); }); foreach (GameObject b in l.Answers) { b.GetComponent<SimpleButton>().RegisterInteractable(_gadget); } } } private void InitializeLogger() { int userID = _gadget.nakaInterface.getMeetingUser().networkId; _loggerNaka = new LoggerNaka(userID); } #endregion #region User Management private bool CheckUsers(MeetingUser []meetingUsers) { if (meetingUsers == null) { Debug.Log("[GAME] Not User List"); return false; } if (_pointsPosition == null) { Debug.Log($"[GAME] PointPosition NULL"); return false; } if (meetingUsers.Length > _pointsPosition.Length) { Debug.Log($"[GAME] Hay mas gente que posiciones, por ahora no hacemos nada con esto"); return false; } return true; } public MeetingUser[] GetMeetingUsers() { return _gadget.nakaInterface.getMeetingUsers(); } public MeetingUser GetUser() { return _gadget.nakaInterface.getMeetingUser(); } public MeetingUser GetUserByID(int networkid) { foreach (var user in _gadget.nakaInterface.getMeetingUsers()) { if (user.networkId == networkid) return user; } Debug.LogError("Could not find any user with this nework id : " + networkid); return new MeetingUser(); } #endregion #region Teleport User private async Task<int> PositionPlayer() { int index = -1; LecternLogic lectern = GetEmptyLectern(out index); if(lectern != null) { Vector3 position = lectern.Position.position; Quaternion rotation = lectern.Position.rotation; Debug.Log($"Teleport: index{index}, position {position} rotation: {rotation}"); await TeleportSite(position, rotation); lectern.index = index; lectern.lever.IsLocal = true; Debug.Log($"[INDEX] Index: {index} Length: {_pointsPosition.Length - 1}"); } return index; } private LecternLogic GetEmptyLectern(out int index) { index = -1; for (int i = 0; i < _pointsPosition.Length; i++) { LecternLogic lec = _pointsPosition[i]; if (lec.isEmpty) { index = i; var data = new PlayerJoinedData(_gadget.nakaInterface.getMeetingUser(), index); GameSynchronizer.Instance.SendData(TypeEvent.PlayerJoin, data); return lec; } } return null; } private async Task TeleportSite(Vector3 position, Quaternion rotation) { await Task.Delay(250); _gadget.nakaInterface.teleport(position, rotation); } #endregion #region Events public async void SendData(int userNumber) { //ScreenUI.PostPanelMessage("Todos los usuarios conectados, Empieza el juego"); EventData data = new EventData() { numUsers = userNumber}; Debug.Log($"Create Event Data: {data}"); GameSynchronizer.Instance.SendData(TypeEvent.StartGame, data); Debug.Log($"Send Data"); } public void OnReciveHelloEvent(string data ,int fromUserID ) { Debug.Log($"Recuve code {fromUserID} data {data}"); EventData helloData = JsonUtility.FromJson<EventData>(data); } #endregion #region Utils public RouletteQuestion GenerateRandomQuestion() { return rouletteQuestionsAvailable[UnityEngine.Random.Range(0, rouletteQuestionsAvailable.Count)]; } public void RemoveQuestionFromAvailable(RouletteQuestion question) { rouletteQuestionsAvailable.Remove(question); rouletteQuestionsDone.Add(question); } public Utils.Transform GetPlayerHead() { return _gadget.nakaInterface.getHeadTransform(); } private void CheckDevice() { if (UnityEngine.Input.GetMouseButton(0)) { IsVRDeviceConnected = false; CancelInvoke(nameof(CheckDevice)); } } //public string GetNextTurnVoiceLine() //{ // if (parsedData.voiceLines.rouletteChangeTurn != null && parsedData.voiceLines.rouletteChangeTurn.Length > 0) // return parsedData.voiceLines.rouletteChangeTurn[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteChangeTurn.Length - 1)]; // else // return "&, es tu turno"; //} //public string GetBoxScoredVoiceLine(RouletteScore.RoulettePieceType type, int value = 0) //{ // string ret = null; // switch (type) // { // case RouletteScore.RoulettePieceType.NORMAL: // if(value >= 100) // { // if (parsedData.voiceLines.rouletteNormalPieceScored_100_200 != null && parsedData.voiceLines.rouletteNormalPieceScored_100_200.Length > 0) // ret = parsedData.voiceLines.rouletteNormalPieceScored_100_200[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteNormalPieceScored_100_200.Length - 1)]; // else // ret = "&, juegas por % puntos"; // } // else // { // if (parsedData.voiceLines.rouletteNormalPieceScored_25_50_75 != null && parsedData.voiceLines.rouletteNormalPieceScored_25_50_75.Length > 0) // ret = parsedData.voiceLines.rouletteNormalPieceScored_25_50_75[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteNormalPieceScored_25_50_75.Length - 1)]; // else // ret = "&, juegas por % puntos"; // } // break; // case RouletteScore.RoulettePieceType.MULTIPLY: // if (parsedData.voiceLines.roulettePieceScored_X2 != null && parsedData.voiceLines.roulettePieceScored_X2.Length > 0) // ret = parsedData.voiceLines.roulettePieceScored_X2[UnityEngine.Random.Range(0, parsedData.voiceLines.roulettePieceScored_X2.Length - 1)]; // else // ret = "&, juegas por el doble de puntos"; // break; // case RouletteScore.RoulettePieceType.DIVIDE: // if (parsedData.voiceLines.roulettePieceScored_X05 != null && parsedData.voiceLines.roulettePieceScored_X05.Length > 0) // ret = parsedData.voiceLines.roulettePieceScored_X05[UnityEngine.Random.Range(0, parsedData.voiceLines.roulettePieceScored_X05.Length - 1)]; // else // ret = "&, juegas por perder la mitad de tus puntos"; // break; // case RouletteScore.RoulettePieceType.PASS_TURN: // if (parsedData.voiceLines.roulettePieceScored_PassTurn != null && parsedData.voiceLines.roulettePieceScored_PassTurn.Length > 0) // ret = parsedData.voiceLines.roulettePieceScored_PassTurn[UnityEngine.Random.Range(0, parsedData.voiceLines.roulettePieceScored_PassTurn.Length - 1)]; // else // ret = "&, pierdes el turno"; // break; // case RouletteScore.RoulettePieceType.BANKRUPT: // if (parsedData.voiceLines.roulettePieceScored_Bankrupt != null && parsedData.voiceLines.roulettePieceScored_Bankrupt.Length > 0) // ret = parsedData.voiceLines.roulettePieceScored_Bankrupt[UnityEngine.Random.Range(0, parsedData.voiceLines.roulettePieceScored_Bankrupt.Length - 1)]; // else // ret = "&, pierdes el turno y todos tus puntos"; // break; // } // return ret; //} //public string GetCorrectAnswerVoiceLine(RouletteScore.RoulettePieceType type, int value = 0) //{ // string ret = null; // switch (type) // { // case RouletteScore.RoulettePieceType.NORMAL: // if (value >= 100) // { // if (parsedData.voiceLines.rouletteCorrectAnswer_100_200 != null && parsedData.voiceLines.rouletteCorrectAnswer_100_200.Length > 0) // ret = parsedData.voiceLines.rouletteCorrectAnswer_100_200[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteCorrectAnswer_100_200.Length - 1)]; // else // ret = "&, sumas % puntos"; // } // else // { // if (parsedData.voiceLines.rouletteCorrectAnswer_25_50_75 != null && parsedData.voiceLines.rouletteCorrectAnswer_25_50_75.Length > 0) // ret = parsedData.voiceLines.rouletteCorrectAnswer_25_50_75[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteCorrectAnswer_25_50_75.Length - 1)]; // else // ret = "&, sumas % puntos"; // } // break; // case RouletteScore.RoulettePieceType.MULTIPLY: // if (parsedData.voiceLines.rouletteCorrectAnswer_X2 != null && parsedData.voiceLines.rouletteCorrectAnswer_X2.Length > 0) // ret = parsedData.voiceLines.rouletteCorrectAnswer_X2[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteCorrectAnswer_X2.Length - 1)]; // else // ret = "&, sumas % puntos"; // break; // case RouletteScore.RoulettePieceType.DIVIDE: // if (parsedData.voiceLines.rouletteCorrectAnswer_X05 != null && parsedData.voiceLines.rouletteCorrectAnswer_X05.Length > 0) // ret = parsedData.voiceLines.rouletteCorrectAnswer_X05[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteCorrectAnswer_X05.Length - 1)]; // else // ret = "&, no pierdes puntos"; // break; // } // return ret; //} //public string GetIncorrectAnswerVoiceLine(RouletteScore.RoulettePieceType type, int value = 0) //{ // string ret = null; // switch (type) // { // case RouletteScore.RoulettePieceType.NORMAL: // if (value >= 100) // { // if (parsedData.voiceLines.rouletteIncorrectAnswer_100_200 != null && parsedData.voiceLines.rouletteIncorrectAnswer_100_200.Length > 0) // ret = parsedData.voiceLines.rouletteIncorrectAnswer_100_200[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteIncorrectAnswer_100_200.Length - 1)]; // else // ret = "&, no sumas ningun punto"; // } // else // { // if (parsedData.voiceLines.rouletteIncorrectAnswer_25_50_75 != null && parsedData.voiceLines.rouletteIncorrectAnswer_25_50_75.Length > 0) // ret = parsedData.voiceLines.rouletteIncorrectAnswer_25_50_75[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteIncorrectAnswer_25_50_75.Length - 1)]; // else // ret = "&, no sumas ningun punto"; // } // break; // case RouletteScore.RoulettePieceType.MULTIPLY: // if (parsedData.voiceLines.rouletteIncorrectAnswer_X2 != null && parsedData.voiceLines.rouletteIncorrectAnswer_X2.Length > 0) // ret = parsedData.voiceLines.rouletteIncorrectAnswer_X2[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteIncorrectAnswer_X2.Length - 1)]; // else // ret = "&, no sumas ningun punto"; // break; // case RouletteScore.RoulettePieceType.DIVIDE: // if (parsedData.voiceLines.rouletteIncorrectAnswer_X05 != null && parsedData.voiceLines.rouletteIncorrectAnswer_X05.Length > 0) // ret = parsedData.voiceLines.rouletteIncorrectAnswer_X05[UnityEngine.Random.Range(0, parsedData.voiceLines.rouletteIncorrectAnswer_X05.Length - 1)]; // else // ret = "&, pierdes % puntos"; // break; // } // return ret; //} public string GetFinalVoiceLine(string username, string value, string voiceLine, string key = "[points]") { string ret = voiceLine.Replace("[username]", username); ret = ret.Replace(key, value); return ret; } #endregion #region Unity private void OnDestroy() => _loggerNaka.Destroy(); #endregion #region Reflection bool testPause = false; [ContextMenu(nameof(TestPause))] public void TestPause() { testPause = !testPause; PauseGameRequest(testPause); } public void PauseGameRequest(bool pause) { _turns.PauseGameRequest(pause); } #endregion #region Everillion private async Task<int> GetUserCardData() { return await _service.GetUserCardIDBySN(_gadget.nakaInterface.getMeetingUser().nickname, _gadget.nakaInterface.getMeetingUser().nickname); } public void SaveUserPoints(int points) { Debug.LogError("[Everillion] pasa 0" + points); if (points > 0) { _service.PostUserPoints(userCardID, points); } } #endregion } [Serializable] public class EventData : ExportComponent { public static string getScriptPath() { return NakaSDK.Utils.getScriptPathReal(); } public int numUsers; }
Editor is loading...