/** * Iniciar conversa. */ public static void iniciarConversa(Mobile m, DialogNPC npc) { Jogador jogador = (Jogador)m; //jogaro já tem classe if (!jogador.getSistemaClasse().getClasse().idClasse().Equals(classe.Aldeao)) { npc.SayTo(jogador, "O seu caminho já foi escolhido. Não tenho nada para você no momento."); } else if (jogador.getSistemaAventura().completouAventura(IDAventura.cartaRecomendacao) && jogador.getSistemaClasse().getClasse().idClasse().Equals(classe.Aldeao) && m.Backpack.FindItemByType(typeof(CartaRecomendacaoItem), true) == null) { npc.SayTo(jogador, "Tome mais cuidado com suas coisas. Aqui esta outra carta de recomendação."); CartaRecomendacaoItem cartaRec = new CartaRecomendacaoItem(jogador); jogador.AddToBackpack(cartaRec); } else if (jogador.getSistemaAventura().pegouAventura(IDAventura.cartaRecomendacao)) { //pedir o favor npc.RunSpeechGump("7933cac2-3294-4cd9-98f6-7427a57b6ec2", jogador); } else { //falar para andar pela cidade a procura de um treinamento npc.RunSpeechGump("92066456-80f4-43f6-a5f0-2510d894894b", jogador); } }
/** * Jogar entrando na academia de guerreiros. */ public static void alistarAcademia(Mobile m, DialogNPC npc) { Jogador jogador = (Jogador)m; CartaRecomendacaoItem cartaRec = m.Backpack.FindItemByType(typeof(CartaRecomendacaoItem), true) as CartaRecomendacaoItem; //fala sobre a carta if (cartaRec == null) { //falando sobre a carta npc.RunSpeechGump("a7a1b0d8-563a-435d-b834-f60ccb43a770", m); } else if (cartaRec.Name.Equals("Carta de recomendação para " + m.Name)) { cartaRec.Delete(); if (jogador.getSistemaClasse().getClasse().idClasse().Equals(classe.Aldeao)) { jogador.setClasse = classe.Escudeiro; //boas vindas a academia npc.RunSpeechGump("da033fe2-c8a4-4f84-aab0-509485dfd495", m); } else { npc.SayTo(jogador, "Você já escolheu o seu caminho."); } } else { npc.Say("Esta carta de recomendação não é para você."); } }
/** * Concluir quest da carta de recomendação */ public static void concluirQuestCartaRecomendacao(Mobile m, DialogNPC npc) { Jogador jogador = (Jogador)m; if (jogador.getSistemaAventura().pegouAventura(IDAventura.cartaRecomendacao)) { jogador.getSistemaAventura().finalizarAventura(IDAventura.cartaRecomendacao); CartaRecomendacaoItem cartaRec = new CartaRecomendacaoItem(jogador); jogador.AddToBackpack(cartaRec); } }
public override void Close(bool ignoreCloseAnimation = false) { if (_fenrir) { _fenrir.gameObject.SetActive(false); _fenrir = null; } if (_freya) { _freya.gameObject.SetActive(false); _freya = null; } base.Close(ignoreCloseAnimation); _callCount++; }
public override void play() { // [..] if (currentCinematicStage == 0) { moveCameraToPrincess(); // AUTOTALK TO PRINCESS DialogNPC talkative = GetComponent <DialogNPC>(); talkative.capturedPlayerControlled = playerGO.GetComponent <PlayerController>(); if (!!talkative) { talkative.interactWithType(NPCTypeNames.dialog); } } if (currentCinematicStage > 1) { quitCinematic(); Destroy(gameObject); } }
/** * Jogar pedindo para se alistar na academia de guerreiros. */ public static void queroMeAlistar(Mobile m, DialogNPC npc) { Jogador jogador = (Jogador)m; CartaRecomendacaoItem cartaRec = m.Backpack.FindItemByType(typeof(CartaRecomendacaoItem), true) as CartaRecomendacaoItem; //fala sobre a carta if (cartaRec == null) { if (!jogador.getSistemaAventura().pegouAventura(IDAventura.cartaRecomendacao)) { jogador.getSistemaAventura().iniciarAventura(IDAventura.cartaRecomendacao); } //falando sobre a carta npc.RunSpeechGump("a7a1b0d8-563a-435d-b834-f60ccb43a770", m); } else { //confirmação de alistamento npc.RunSpeechGump("8e544309-53ef-419e-811b-24ecfb426a37", m); } }
void OnGUI() { EditorStyles.textField.wordWrap = true; string[] curControl = null; try { GUILayout.BeginArea(new Rect(3, 3, 450, 700)); GUILayout.BeginVertical(); GUILayout.Label("NPC List"); GUILayout.BeginHorizontal(); scrollPositionNPC = GUILayout.BeginScrollView(scrollPositionNPC, GUILayout.Width(200), GUILayout.Height(250)); for (int i = 0; i < dialog.dialogData.npcList.Count; i++) { if (focusIndex == i) { GUI.color = Color.green; } string conName = "NPC_" + i.ToString(); GUI.SetNextControlName(conName); dialog.dialogData.npcList[i].name = EditorGUILayout.TextField(dialog.dialogData.npcList[i].name); GUI.color = Color.white; } GUILayout.EndScrollView(); GUILayout.BeginVertical(); GUILayout.Label("Description"); curControl = GUI.GetNameOfFocusedControl().Split('_'); if (curControl.Length == 2) { int temp = int.Parse(curControl[1]); if (temp >= 0 && temp < dialog.dialogData.npcList.Count) { //if (temp != focusIndex) //{ // Debug.LogWarning("Old: " + focusIndex + " New: " + temp); // Debug.LogWarning(dialog.dialogData.npcList.Count); //} focusIndex = temp; EditorPrefs.SetInt("focusIndex", focusIndex); GUI.SetNextControlName("i_g_nore"); } dialog.dialogData.npcList[focusIndex].description = EditorGUILayout.TextField(dialog.dialogData.npcList[focusIndex].description, GUILayout.Width(230), GUILayout.Height(200)); } else if (curControl.Length == 3 && focusIndex >= 0 && focusIndex < dialog.dialogData.npcList.Count) { GUI.SetNextControlName("i_g_nore"); dialog.dialogData.npcList[focusIndex].description = EditorGUILayout.TextField(dialog.dialogData.npcList[focusIndex].description, GUILayout.Width(230), GUILayout.Height(200)); } else { focusIndex = -1; EditorPrefs.SetInt("focusIndex", focusIndex); GUI.SetNextControlName("i_g_nore"); GUILayout.TextField("No NPC Selected", GUILayout.Width(230), GUILayout.Height(200)); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); if (GUILayout.Button("Add NPC")) { DialogNPC newNPC = new DialogNPC(); dialog.dialogData.npcList.Add(newNPC); GUI.FocusControl(""); } if (GUILayout.Button("Delete NPC")) { if (focusIndex >= 0 && focusIndex < dialog.dialogData.npcList.Count) { dialog.dialogData.npcList.RemoveAt(focusIndex); if (focusIndex == dialog.dialogData.npcList.Count) { focusIndex = dialog.dialogData.npcList.Count - 1; } //GUI.FocusControl(""); if (focusIndex == -1) { GUI.FocusControl(""); } EditorPrefs.SetInt("focusIndex", focusIndex); } Repaint(); } saveName = GUILayout.TextField(saveName); if (GUILayout.Button("Save Data")) { System.Text.StringBuilder allData = new System.Text.StringBuilder(); #region oldMethod //foreach (DialogNPC npc in dialog.dialogData.npcList) //{ // allData.AppendLine("[NPC]"); // allData.AppendLine("[NAME]"); // allData.AppendLine(npc.name); // allData.AppendLine("[DESC]"); // allData.AppendLine(npc.description); // allData.AppendLine("[ALLBARKS]"); // foreach (DialogBark bark in npc.barkList) // { // allData.AppendLine("[BARK]"); // allData.AppendLine("[LINE]"); // allData.AppendLine(bark.line); // allData.AppendLine("[TOKENS]"); // allData.AppendLine(bark.tokens); // allData.AppendLine("[REQUIREDFLAGS]"); // allData.AppendLine(bark.requireFlags); // allData.AppendLine("[FORBIDENFLAGS]"); // allData.AppendLine(bark.blockFlags); // allData.AppendLine("[SAVEFLAGS]"); // allData.AppendLine(bark.saveFlags); // allData.AppendLine("[ENDBARK]"); // } // allData.AppendLine("[ENDNPC]"); //} #endregion allData.AppendLine("NPC,Bark,Tokens,Required,Forbiden,Save"); foreach (DialogNPC npc in dialog.dialogData.npcList) { foreach (DialogBark bark in npc.barkList) { allData.AppendLine(System.String.Format( "{0},{1},{2},{3},{4},{5}", npc.name, bark.line, bark.tokens, bark.requireFlags, bark.blockFlags, bark.saveFlags )); } } string assetName = ""; if (saveName.Length < 1) { assetName = "/DialogFile.csv"; } else { assetName = System.String.Format("{0}/{1}.csv", Application.dataPath, saveName); } Debug.Log(assetName); System.IO.File.WriteAllText(assetName, allData.ToString()); AssetDatabase.Refresh(); } GUILayout.Button("Load Data"); GUILayout.EndArea(); } catch (System.Exception e) { GUILayout.Label("Error occured during OnGUI, clearing control focus. You should not see this, if you do something is really wrong."); Debug.LogError(e.Message); Debug.LogError("If the controls look normal, this error has been handled."); GUI.FocusControl(""); focusIndex = -1; EditorPrefs.SetInt("focusIndex", focusIndex); FindDialog(); } }
public IEnumerator CoShowText() { var text = L10nManager.Localize($"{_dialogKey}{_dialogIndex}"); if (string.IsNullOrEmpty(text)) { yield break; } _npc = null; _text = ParseText(text); // TODO: npc if (!string.IsNullOrEmpty(_npc)) { if (_npc == "11") { if (_fenrir is null) { var go = Game.Game.instance.Stage.npcFactory.CreateDialogNPC( FenrirId, fenrirPosition.position, LayerType.UI, 100); _fenrir = go.GetComponent <DialogNPC>(); } _freya?.SpineController.Disappear(0.3f); _fenrir.SpineController.Appear(0.3f); } else { if (_freya is null) { var go = Game.Game.instance.Stage.npcFactory.CreateDialogNPC( FreyaId, freyaPosition.position, LayerType.UI, 100); _freya = go.GetComponent <DialogNPC>(); } _freya.SpineController.Appear(0.3f); _fenrir?.SpineController.Disappear(0.3f); } string localizedName; try { localizedName = L10nManager.Localize($"NPC_{_npc}_NAME"); } catch (KeyNotFoundException) { localizedName = "???"; } txtName.text = localizedName; } bool skipTag = false; bool tagClosed = true; for (int textIndex = 1; textIndex <= _text.Length; ++textIndex) { if (_text.Length > textIndex) { if (_text[textIndex] == '<') { skipTag = true; tagClosed = false; } else if (skipTag && _text[textIndex] == '>') { skipTag = false; continue; } if (!tagClosed && _text[textIndex] == '/') { tagClosed = true; } } if (skipTag) { continue; } if (tagClosed) { txtDialog.text = $"{_text.Substring(0, textIndex)}"; } else { txtDialog.text = $"{_text.Substring(0, textIndex)}</color>"; } AudioController.instance.PlaySfx(AudioController.SfxCode.Typing, 0.1f); yield return(new WaitForSeconds(TextInterval)); } _coroutine = null; }