Example #1
0
        /**
         * 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);
            }
        }
Example #2
0
        /**
         * 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ê.");
            }
        }
Example #3
0
        /**
         * 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);
            }
        }
Example #4
0
        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++;
        }
Example #5
0
    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);
        }
    }
Example #6
0
        /**
         * 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);
            }
        }
Example #7
0
    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();
        }
    }
Example #8
0
        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;
        }