void LoadSettings() { Debug.Log("Loading settings in Persister"); if (File.Exists(pathToSaveFile)) { Debug.Log("Loading settings from filename = " + pathToSaveFile); BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(pathToSaveFile, FileMode.Open); settingsOfTheGame = (CustomGameSettings)bf.Deserialize(file); // Debug.Log ("making serializer"); // var serializer = new XmlSerializer(typeof(CustomGameSettings)); // Debug.Log ("done making serializer"); // Debug.Log ("using serializer"); // settingsOfTheGame = serializer.Deserialize(file) as CustomGameSettings; Debug.Log("done using serializer"); file.Close(); Debug.Log("settings loaded"); } else { Debug.Log("making new settings object"); settingsOfTheGame = new CustomGameSettings(); settingsOfTheGame.GenerateFakeTopTenScores(); Debug.Log("done making new settings object"); } }
public CustomGameSettings CriarCustomGameSettings() { CustomGameSettings settings = new CustomGameSettings(); settings.Professor = paginaEscolherProfessor.ProfessorSelecionado; settings.Sala = SalaDeAula.SalaDeCiencias; settings.ValorNivelDeEnsino = paginaInformacoesBasicas.NivelDeEnsinoSelecionado.valor; settings.ValorAreaDeConhecimento = paginaInformacoesBasicas.AreaDeConhecimentoSelecionada.valor; settings.IntroducaoAula = introducaoAula.text; settings.DescricaoMomento1 = descricaoMomento1.text; settings.DescricaoMomento2 = descricaoMomento2.text; settings.DescricaoMomento3 = descricaoMomento3.text; settings.Procedimento1 = paginaProcedimentoAgrupamento.ProcedimentoMomento1; settings.Procedimento2 = paginaProcedimentoAgrupamento.ProcedimentoMomento2; settings.Procedimento3 = paginaProcedimentoAgrupamento.ProcedimentoMomento3; settings.Agrupamento1 = paginaProcedimentoAgrupamento.AgrupamentoMomento1; settings.Agrupamento2 = paginaProcedimentoAgrupamento.AgrupamentoMomento2; settings.Agrupamento3 = paginaProcedimentoAgrupamento.AgrupamentoMomento3; settings.ArrayMidiaPoderFeedbackMomento1 = paginaFeedbackMidiasMomento1.ArrayMidiaPoderFeedback; settings.ArrayMidiaPoderFeedbackMomento2 = paginaFeedbackMidiasMomento2.ArrayMidiaPoderFeedback; settings.ArrayMidiaPoderFeedbackMomento3 = paginaFeedbackMidiasMomento3.ArrayMidiaPoderFeedback; settings.TituloDaAula = tituloDaAula.text; settings.Autor = autorInputField.text; // Definir a data de criação do jogo settings.dataDeCriacao = DateTime.Now.ToUniversalTime().AddHours(-3).ToShortDateString(); return(settings); }
public void Configure(CustomGameSettings settings, int index) { this.settings = settings; tituloDaAula.text = settings.TituloDaAula; autor.text = settings.Autor; nivelDeEnsino.text = NivelDeEnsino.Get(settings.ValorNivelDeEnsino).nome; areaDeConhecimento.text = AreaDeConhecimento.Get(settings.ValorAreaDeConhecimento).nome; localImage.sprite = PlaceSpriteDatabase.SpriteOf(settings.Sala); localImage.preserveAspect = true; DateTime dateTime; if (DateTime.TryParse(settings.dataDeCriacao, out dateTime)) { dataDaCriacao.text = dateTime.ToString("d", CultureInfo.CreateSpecificCulture("pt-BR")); } // Adicionar função ao OnClick do botão excluir, ela irá pedir para // o servidor excluir a aula com o índice deste botão this.index = index; botaoExcluir.onClick.AddListener(() => { CustomGameSettings.DeleteFromServerByIndex(this.index); Destroy(this.gameObject); }); }
public static void Postfix(CustomGameSettings __instance, SettingConfig config) { foreach (var tsetting in tsettings) { __instance.AddSettingConfig(tsetting); } }
private void ConfigurarFalasDoProfessorDuranteAula(ClassManager classManager, CustomGameSettings settings) { var paragrafos = new string[3]; paragrafos[0] = settings.DescricaoMomento1; paragrafos[1] = settings.DescricaoMomento2; paragrafos[2] = settings.DescricaoMomento3; // Adicionar falas ao diálogo do professor var falas = new GameComenius.Dialogo.Dialogo[paragrafos.Length]; for (int i = 0; i < paragrafos.Length; i++) { falas[i] = new GameComenius.Dialogo.Dialogo(); falas[i].nodulos = new GameComenius.Dialogo.DialogoNodulo[1]; falas[i].nodulos[0] = new GameComenius.Dialogo.DialogoNodulo(); falas[i].nodulos[0].falas = new GameComenius.Dialogo.Fala[1]; falas[i].nodulos[0].falas[0] = new GameComenius.Dialogo.Fala(); falas[i].nodulos[0].falas[0].fala = paragrafos[i]; var p = Enum.Parse(typeof(GameComenius.Dialogo.Personagens), settings.Professor.ToString(), true); falas[i].nodulos[0].falas[0].personagem = (GameComenius.Dialogo.Personagens)p; falas[i].nodulos[0].falas[0].emocao = GameComenius.Dialogo.Expressao.Sorrindo; } classManager.Falas = falas; }
private IEnumerator Start() { yield return(StartCoroutine(CustomGameSettings.LoadAndUseAllSettings(AddCreatedGameButtons))); StartCoroutine(AguardarSelecaoELiberarBotaoJogar()); StartCoroutine(AguardarSenhaELiberarExclusao()); }
public void PressButtonThatStartsCustomGame() { // Criar configurações a partir das escolhas do jogador CustomGameSettings settings = CriarCustomGameSettings(); // Definir essa configuração como a configuração atual CustomGameSettings.CurrentSettings = settings; }
private void ConfigurarPlanejamento(CustomGameSettings s) { DefinirFotoDoProfessor(s.Professor); DefinirDescricaoDosMomentos(s); DefinirPoderDasMidias(s); DefinirProcedimentos(s.Procedimento1, s.Procedimento2, s.Procedimento3); DefinirAgrupamentos(s.Agrupamento1, s.Agrupamento2, s.Agrupamento3); }
public void AddCreatedGameButton(CustomGameSettings settings, int index) { var button = Instantiate(createdGameButtonPrefab, content.transform); button.transform.localScale = Vector3.one; button.Configure(settings, index); createdGameButtons.Add(button); }
public void PressButtonThatSavesCustomGame() { // Criar configurações a partir das escolhas do jogador e // criar objeto para escrever no disco CustomGameSettings settings = CriarCustomGameSettings(); // Salvar no servidor settings.SaveToDisk(); }
public static IEnumerator RequestAllGames(List <CustomGameSettings> gameListToBePopulated) { var request = UnityWebRequest.Get(downloadURI); // Timeout, aborta requisição se X segundos passarem request.timeout = 10; Debug.Log("Resquest created - Timeout = " + request.timeout); // Enviar o HTTP Get e esperar pela resposta ou pelo erro yield return(request.SendWebRequest()); if (request.isNetworkError) { Debug.Log("Network error: " + request.error); } else if (request.isHttpError) { Debug.Log("HTTP error: " + request.error); } else { var response = request.downloadHandler.data; string converted = Encoding.Default.GetString(response, 0, response.Length); string[] separator = { "$$$" }; var objsStrings = converted.Split(separator, StringSplitOptions.None); Debug.Log("HTTP response length = " + response.Length); Debug.Log("Quantidade de jogos criados = " + objsStrings.Length); Debug.Log("Bytes de um jogo criado = " + objsStrings[0].Length); var allGames = new CustomGameSettings[objsStrings.Length]; for (int i = 0; i < allGames.Length; i++) { var objBytes = Encoding.Default.GetBytes(objsStrings[i]); using (var stream = new MemoryStream()) { stream.Write(objBytes, 0, objBytes.Length); stream.Seek(0, SeekOrigin.Begin); var formatter = new BinaryFormatter(); try { var obj = formatter.Deserialize(stream); Debug.Log("Desserialização foi um sucesso!"); allGames[i] = (CustomGameSettings)obj; } catch (SerializationException e) { Debug.Log("Desserialização falhou: " + e.Message); } } } gameListToBePopulated.Clear(); gameListToBePopulated.AddRange(allGames); } }
private void ConfigurarPortas(CustomGameSettings settings) { // Aplicar sobre todas as portas da sala var doors = GameObject.FindGameObjectsWithTag("Door1"); foreach (var door in doors) { // Trocar diálogo // Novas falas var paragrafos = new string[2]; // Fala da Lurdinha paragrafos[0] = "Vou indo então, até mais " + settings.Professor.PrimeiroNome() + "!"; // Fala do professor paragrafos[1] = "Tudo bem, obrigado pela ajuda!!"; // Substituir componentes relacionados ao diálogo var npc = door.GetComponent <NpcDialogo>(); var originalInteractOffset = npc.interactOffset; Destroy(npc); Destroy(door.GetComponent <QuestGuest>()); door.AddComponent <QuestGuest>(); npc = door.AddComponent <NpcDialogo>(); npc.interactOffset = originalInteractOffset; npc.dialogoPrincipal = new GameComenius.Dialogo.Dialogo(); npc.dialogoPrincipal.nodulos = new GameComenius.Dialogo.DialogoNodulo[1]; npc.dialogoPrincipal.nodulos[0] = new GameComenius.Dialogo.DialogoNodulo(); npc.dialogoPrincipal.nodulos[0].falas = new GameComenius.Dialogo.Fala[paragrafos.Length]; // Adicionar fala da Lurdinha npc.dialogoPrincipal.nodulos[0].falas[0] = new GameComenius.Dialogo.Fala { fala = paragrafos[0], personagem = GameComenius.Dialogo.Personagens.Lurdinha, emocao = GameComenius.Dialogo.Expressao.Sorrindo }; // Adicionar fala do professor npc.dialogoPrincipal.nodulos[0].falas[1] = new GameComenius.Dialogo.Fala(); npc.dialogoPrincipal.nodulos[0].falas[1].fala = paragrafos[1]; var a = Enum.Parse(typeof(GameComenius.Dialogo.Personagens), settings.Professor.ToString(), true); npc.dialogoPrincipal.nodulos[0].falas[1].personagem = (GameComenius.Dialogo.Personagens)a; npc.dialogoPrincipal.nodulos[0].falas[1].emocao = GameComenius.Dialogo.Expressao.Sorrindo; // Ativar collider da porta, caso esteja desativado door.GetComponent <Collider2D>().enabled = true; // Configurar o que irá acontecer quando interagir com a porta npc.OnEndDialogueEvent += () => StartCoroutine(FinalizarCustomGame()); } }
protected override void OnPrefabInit() { instance = this; AddSettingConfig(CustomGameSettingConfigs.World); AddSettingConfig(CustomGameSettingConfigs.WorldgenSeed); AddSettingConfig(CustomGameSettingConfigs.ImmuneSystem); AddSettingConfig(CustomGameSettingConfigs.CalorieBurn); AddSettingConfig(CustomGameSettingConfigs.Morale); AddSettingConfig(CustomGameSettingConfigs.Stress); AddSettingConfig(CustomGameSettingConfigs.StressBreaks); AddSettingConfig(CustomGameSettingConfigs.CarePackages); AddSettingConfig(CustomGameSettingConfigs.SandboxMode); VerifySettingCoordinates(); }
private void ConfigurarSalaDeAula(CustomGameSettings settings) { var professor = FindObjectOfType <TeacherScript>().gameObject; var classManager = FindObjectOfType <ClassManager>(); ConfigurarSpritesDoProfessor(professor, settings); ConfigurarFalasDoProfessorDuranteAula(classManager, settings); ConfigurarFalaDoProfessorPosAula(classManager, settings); // Configurar falas de feedback dos alunos quando a aula terminar ClassManager.EndClass += () => ConfigurarFalasDeFeedback(classManager, settings); ConfigurarPortas(settings); }
public void ConfigurarProfessor(GameObject professorGO, CustomGameSettings settings) { professor = settings.Professor; introducaoAula = settings.IntroducaoAula; descricaoMomento1 = settings.DescricaoMomento1; descricaoMomento2 = settings.DescricaoMomento2; descricaoMomento3 = settings.DescricaoMomento3; DividirEInserirFalas(professorGO); // Definir o meu sprite como o sprite do professor escolhido e na // direção correta definida no Unity inspector spriteNW = CharacterSpriteDatabase.SpriteNW(professor); spriteNE = CharacterSpriteDatabase.SpriteNE(professor); spriteSE = CharacterSpriteDatabase.SpriteSE(professor); spriteSW = CharacterSpriteDatabase.SpriteSW(professor); SpriteRenderer mySP = professorGO.GetComponent <SpriteRenderer>(); switch (facingDirection) { case Direction.NW: mySP.sprite = spriteNW; break; case Direction.NE: mySP.sprite = spriteNE; break; case Direction.SE: mySP.sprite = spriteSE; break; case Direction.SW: mySP.sprite = spriteSW; break; } // Alguns casos especiais, não quero mexer no .png // Basicamente, alterar o tamanho de alguns professores var professorTransform = professorGO.transform; switch (professor) { case CharacterName.Vladmir: case CharacterName.Paulino: professorTransform.localScale = Vector3.one * 0.7f; break; } }
public static void PostGame(CustomGameSettings gameSettings) { var fieldName = "data"; using (var stream = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(stream, gameSettings); List <IMultipartFormSection> formData = new List <IMultipartFormSection>(); formData.Add(new MultipartFormDataSection(fieldName, stream.ToArray())); UnityWebRequest webRequest = UnityWebRequest.Post(uploadURI, formData); webRequest.SendWebRequest(); // ^ // Verificar se o Post funcionou e impedir o save caso isso ocorra } }
public void Init() { Global.Instance.modManager.Load(Content.LayerableFiles); SettingsCache.Clear(); WorldGen.LoadSettings(); CustomGameSettings.Instance.LoadWorlds(); Global.Instance.modManager.Report(base.gameObject); settings = CustomGameSettings.Instance; widgets = new List <NewGameSettingWidget>(); foreach (KeyValuePair <string, SettingConfig> qualitySetting in settings.QualitySettings) { if (!qualitySetting.Value.debug_only || DebugHandler.enabled) { ListSettingConfig listSettingConfig = qualitySetting.Value as ListSettingConfig; if (listSettingConfig != null) { NewGameSettingList newGameSettingList = Util.KInstantiateUI <NewGameSettingList>(prefab_cycle_setting, content.gameObject, true); newGameSettingList.Initialize(listSettingConfig); widgets.Add(newGameSettingList); } else { ToggleSettingConfig toggleSettingConfig = qualitySetting.Value as ToggleSettingConfig; if (toggleSettingConfig != null) { NewGameSettingToggle newGameSettingToggle = Util.KInstantiateUI <NewGameSettingToggle>(prefab_checkbox_setting, content.gameObject, true); newGameSettingToggle.Initialize(toggleSettingConfig); widgets.Add(newGameSettingToggle); } else { SeedSettingConfig seedSettingConfig = qualitySetting.Value as SeedSettingConfig; if (seedSettingConfig != null) { NewGameSettingSeed newGameSettingSeed = Util.KInstantiateUI <NewGameSettingSeed>(prefab_seed_input_setting, content.gameObject, true); newGameSettingSeed.Initialize(seedSettingConfig); widgets.Add(newGameSettingSeed); } } } } } Refresh(); }
private void ConfigurarSpritesDoProfessor(GameObject professor, CustomGameSettings settings) { var teacherScript = professor.GetComponent <TeacherScript>(); var professorName = settings.Professor; // Load dos sprites do professor selecionado pelo criador do custom var spriteNW = CharacterSpriteDatabase.SpriteNW(professorName); var spriteNE = CharacterSpriteDatabase.SpriteNE(professorName); var spriteSE = CharacterSpriteDatabase.SpriteSE(professorName); var spriteSW = CharacterSpriteDatabase.SpriteSW(professorName); // Configurar sprites no componente TeacherScript teacherScript.Sprites[0] = spriteSE; teacherScript.Sprites[1] = spriteSW; teacherScript.Sprites[2] = spriteNE; teacherScript.Sprites[3] = spriteNW; // Inicialmente o professor vai olhar para o sudeste (SE) var mySP = teacherScript.GetComponent <SpriteRenderer>(); mySP.sprite = spriteSE; // Alguns casos especiais, não quero mexer no .png // Basicamente, alterar o tamanho de alguns professores var professorTransform = professor.transform; switch (professorName) { case CharacterName.Vladmir: case CharacterName.Paulino: professorTransform.localScale = Vector3.one * 0.7f; break; } // Configurar sprites do professor caminhando // Por enquanto estamos usando os mesmos sprites dos professores parados // porque alguns professores do custom não tem sprites caminhando ainda //for (int i = 0; i < teacherScript.GoLeft.Length; i++) // teacherScript.GoLeft[i] = spriteSW; //for (int i = 0; i < teacherScript.GoRight.Length; i++) // teacherScript.GoRight[i] = spriteNE; }
/// <summary> /// Adds the settings before the immunity /// </summary> /// <param name="__instance"></param> /// <param name="config"></param> public static void Prefix(CustomGameSettings __instance, SettingConfig config) { if (config != CustomGameSettingConfigs.WorldgenSeed) { return; } var worldListX = new List <SettingLevel>(); for (int i = 64; i <= 8192; i += 32) { worldListX.Add(new SettingLevel(i.ToString(), i.ToString(), "Default: 256")); } var worldListY = new List <SettingLevel>(); for (int i = 64; i <= 8192; i += 32) { worldListY.Add(new SettingLevel(i.ToString(), i.ToString(), "Default: 384")); } WorldgenSeedX = new ListSettingConfig(WorldsizeX, "Custom World Width", "Use a custom width.", worldListX, "256", "256"); WorldgenSeedY = new ListSettingConfig(WorldsizeY, "Custom World Height", "Use a custom height.", worldListY, "384", "384"); List <SettingConfig> settings = new List <SettingConfig> { UseCustomWorld, WorldgenSeedX, WorldgenSeedY }; foreach (SettingConfig settingConfig in settings) { /* * __instance.QualitySettings.Add(settingConfig.id, settingConfig); * if (!__instance.CurrentQualityLevelsBySetting.ContainsKey(settingConfig.id) || string.IsNullOrEmpty(__instance.CurrentQualityLevelsBySetting[settingConfig.id])) * { * __instance.CurrentQualityLevelsBySetting[settingConfig.id] = settingConfig.default_level_id; * } */ __instance.AddSettingConfig(settingConfig); } }
public static void Prefix(CustomGameSettings __instance, SettingConfig config) { if (config != CustomGameSettingConfigs.ImmuneSystem) { return; } List <SettingConfig> settings = new List <SettingConfig> { UseCustomWorld, WorldgenSeedX, WorldgenSeedY }; foreach (SettingConfig settingConfig in settings) { __instance.QualitySettings.Add(settingConfig.id, settingConfig); if (!__instance.CurrentQualityLevelsBySetting.ContainsKey(settingConfig.id) || string.IsNullOrEmpty(__instance.CurrentQualityLevelsBySetting[settingConfig.id])) { __instance.CurrentQualityLevelsBySetting[settingConfig.id] = settingConfig.default_level_id; } } }
private void ConfigurarFalaDoProfessorPosAula(ClassManager classManager, CustomGameSettings settings) { var dialogos = classManager.DialogosProfessorPosAula(); foreach (var dialogo in dialogos) { var p = Enum.Parse(typeof(GameComenius.Dialogo.Personagens), settings.Professor.ToString(), true); // falas[1] porque o [0] é dedicada à Lurdinha // Se colocarem a fala do professor em falas[0], é só trocar if (dialogo.nodulos[0].falas.Length > 1) { dialogo.nodulos[0].falas[1].personagem = (GameComenius.Dialogo.Personagens)p; dialogo.nodulos[0].falas[1].emocao = GameComenius.Dialogo.Expressao.Sorrindo; } else { dialogo.nodulos[0].falas[0].personagem = (GameComenius.Dialogo.Personagens)p; dialogo.nodulos[0].falas[0].emocao = GameComenius.Dialogo.Expressao.Sorrindo; } } }
private void DefinirPoderDasMidias(CustomGameSettings s) { CreateCustomGamePanel.MidiaPoderFeedback[][] arraysMPF = { s.ArrayMidiaPoderFeedbackMomento1, s.ArrayMidiaPoderFeedbackMomento2, s.ArrayMidiaPoderFeedbackMomento3, }; foreach (var arrayMPF in arraysMPF) { if (arrayMPF == null) { return; } } MidiaMomento[] midiasMomento = { GameObject.Find("Midia1").GetComponent <MidiaMomento>(), GameObject.Find("Midia2").GetComponent <MidiaMomento>(), GameObject.Find("Midia3").GetComponent <MidiaMomento>(), }; foreach (var mm in midiasMomento) { if (mm == null) { return; } } for (var i = 0; i < 3; i++) { var midiaMomento = midiasMomento[i]; foreach (var mpf in arraysMPF[i]) { midiaMomento.SetPoints(mpf.Midia, (int)mpf.Poder); } } }
public static void Prefix(ref int width, ref int height) { // 256x512 default Debug.Log("CWS: Using custom world size ..."); if (!CustomGameSettings.Get().is_custom_game) { Debug.Log("CWS: Nah, no custom game ..."); return; } SettingConfig settingConfig = CustomGameSettings.Get().QualitySettings[CustomWorldMod.UseCustomWorldSize]; SettingLevel currentQualitySetting = CustomGameSettings.Get().GetCurrentQualitySetting(CustomWorldMod.UseCustomWorldSize); bool allowCustomSize = !settingConfig.IsDefaultLevel(currentQualitySetting.id); if (!allowCustomSize) { Debug.Log("CWS: No custom size allowed ..."); return; } SettingLevel currentQualitySettingX = CustomGameSettings.Get().GetCurrentQualitySetting(CustomWorldMod.WorldsizeX); SettingLevel currentQualitySettingY = CustomGameSettings.Get().GetCurrentQualitySetting(CustomWorldMod.WorldsizeY); Int32.TryParse(currentQualitySettingX.id, out width); Int32.TryParse(currentQualitySettingY.id, out height); Debug.Log("CWS: Using " + width + "/" + height + " as new world size"); // if (Config.Enabled && Config.CustomWorldSize) //{ // width = Config.width; // height = Config.height; //} }
// Deve ser usada sempre como uma Coroutine porque faz uma requisição web e // não seria legal travar o jogo enquanto esperamos por essa requisição // Como usar: StartCoroutine(CustomGameSettings.LoadAndUseAllSettings(...)); // O argumento callbackAction é a função que será chamada quando o este // método (LoadAndUseSettings) conseguir as Settings do servidor web, ou // seja, este método passará as Settings como parâmetro para callbackAction public static IEnumerator LoadAndUseAllSettings(Action <CustomGameSettings[]> callbackAction) { var request = UnityWebRequest.Get(downloadURI); // Timeout, aborta requisição se X segundos passarem request.timeout = 10; Debug.Log("Resquest created - Timeout = " + request.timeout); // Enviar o HTTP Get e esperar pela resposta ou pelo erro yield return(request.SendWebRequest()); if (request.isNetworkError) { Debug.Log("Network error: " + request.error); } else if (request.isHttpError) { Debug.Log("HTTP error: " + request.error); } else { var response = request.downloadHandler.data; // Se o servidor não tiver jogos para mostrar if (response.Length == 0) { yield break; } string converted = Encoding.ASCII.GetString(response, 0, response.Length); string[] separator = { "$%$%$" }; var objsStrings = converted.Split(separator, StringSplitOptions.None); Debug.Log("HTTP response length = " + response.Length); Debug.Log("Quantidade de jogos criados = " + objsStrings.Length); Debug.Log("Bytes de um jogo criado = " + objsStrings[0].Length); var allGames = new CustomGameSettings[objsStrings.Length]; for (int i = 0; i < allGames.Length; i++) { var objBytes = Encoding.ASCII.GetBytes(objsStrings[i]); using (var stream = new MemoryStream()) { stream.Write(objBytes, 0, objBytes.Length); stream.Seek(0, SeekOrigin.Begin); var formatter = new BinaryFormatter(); try { var obj = formatter.Deserialize(stream); Debug.Log("Desserialização foi um sucesso!"); allGames[i] = (CustomGameSettings)obj; } catch (SerializationException e) { Debug.Log("Desserialização falhou: " + e.Message); } } } // Se a requisição HTTP funcionou e a desserialização também, // chamar a callbackAction passada como argumento para esta função callbackAction(allGames); } }
private void DefinirDescricaoDosMomentos(CustomGameSettings s) { planejamento.descricaoMomento1 = s.DescricaoMomento1; planejamento.descricaoMomento2 = s.DescricaoMomento2; planejamento.descricaoMomento3 = s.DescricaoMomento3; }
public static void Postfix(CustomGameSettings __instance) { __instance.AddSettingConfig(SleepNotIncludedPatches.RemoveSleepEffects); }
private void ConfigurarFalasDeFeedback(ClassManager classManager, CustomGameSettings settings) { // Configurar feedback geral sobre a aula do professor também? // ... // Configurar falas de feedback específicas sobre as mídias // Para cada momento, um aluno na sala falará sobre a mídia escolhida // para aquele momento da aula // Obter feedbacks escritos pelo criador do custom CreateCustomGamePanel.MidiaPoderFeedback[][] arraysMPF = { settings.ArrayMidiaPoderFeedbackMomento1, settings.ArrayMidiaPoderFeedbackMomento2, settings.ArrayMidiaPoderFeedbackMomento3, }; foreach (var arrayMPF in arraysMPF) { if (arrayMPF == null) { return; } } // Criar 3 Dictionary, um para cada momento, para guardarem o link entre // uma mídia e o seu feedback var feedbacksPorMidiaNoMomento1Custom = new Dictionary <ItemName, string>(); var feedbacksPorMidiaNoMomento2Custom = new Dictionary <ItemName, string>(); var feedbacksPorMidiaNoMomento3Custom = new Dictionary <ItemName, string>(); Dictionary <ItemName, string>[] feedbacksPorMidiaArray = { feedbacksPorMidiaNoMomento1Custom, feedbacksPorMidiaNoMomento2Custom, feedbacksPorMidiaNoMomento3Custom }; // Guardar as informações escritas pelo criador nos Dictionary // Depois, esses Dictionary serão usados para instanciar um objeto da // classe FeedbacksDosAlunos for (var momento = 0; momento < 3; momento++) { var quantidadeMidias = arraysMPF[momento].Length; for (var j = 0; j < quantidadeMidias; j++) { var mpf = arraysMPF[momento][j]; feedbacksPorMidiaArray[momento][mpf.Midia] = mpf.Feedback; } } // Configurar falas de feedback gerais sobre a aula string[] feedbacksAulaMelhor = { "A aula foi incrível!" }; string[] feedbacksAulaMuitoBoa = { "A aula foi muito boa!" }; string[] feedbacksAulaBoa = { "A aula foi boa!" }; string[] feedbacksAulaFraca = { "A aula foi ruim..." }; // Criar novo objeto FeedbacksDosAlunos, que conterá falas específicas // sobre as mídias e falas gerais sobre a aula de acordo com as escolhas // feitas pelo criador da missão custom FeedbacksDosAlunos feedbacksDosAlunos = new FeedbacksDosAlunos ( feedbacksPorMidiaNoMomento1Custom, feedbacksPorMidiaNoMomento2Custom, feedbacksPorMidiaNoMomento3Custom, feedbacksAulaMelhor, feedbacksAulaMuitoBoa, feedbacksAulaBoa, feedbacksAulaFraca ); // Pedir para o ClassManager configurar as falas dos alunos // comentaristas com os feedbacks custom classManager.AlunosComentaristasSetUp(feedbacksDosAlunos); }
public static void Postfix(CustomGameSettings __instance) { __instance.AddSettingConfig(StartWithAllResearchPatches.StartWithAllResearch); }
public static void Postfix(CustomGameSettings __instance) { __instance.AddSettingConfig(OxygenNotNeededPatches.WorldRequiresOxygen); }