Ejemplo n.º 1
0
    public static void AddQuestToRadius(String strQuest, Vector3 position, int Radius)
    {
        // If there's no radius, pick 30 blocks.
        if (Radius <= 0)
        {
            Radius = 30;
        }

        World         world            = GameManager.Instance.World;
        List <Entity> entitiesInBounds = GameManager.Instance.World.GetEntitiesInBounds(null, new Bounds(position, Vector3.one * Radius));

        if (entitiesInBounds.Count > 0)
        {
            for (int i = 0; i < entitiesInBounds.Count; i++)
            {
                EntityAliveSDX entity = entitiesInBounds[i] as EntityAliveSDX;
                if (entity != null)
                {
                    entity.QuestJournal.AddQuest(QuestClass.CreateQuest(strQuest));
                }

                EntityPlayerLocal player = entitiesInBounds[i] as EntityPlayerLocal;
                if (player != null)
                {
                    player.QuestJournal.AddQuest(QuestClass.CreateQuest(strQuest));
                }
            }
        }
    }
Ejemplo n.º 2
0
    private void createQuests()
    {
        var quest1 = new QuestClass("The Beginning", 1000, 'E', "Anonymous", 1, "JobBoxQuest1", 1);

        add(quest1);
        var quest2 = new QuestClass("Save my Husband!", 1000, 'D', "Mrs Bets", 1, "JobBoxQuest2", 2);

        add(quest2);
        var quest3 = new QuestClass("My Cravings...", 1000, 'D', "Mr Smokey", 1, "JobBoxQuest3", 3);

        add(quest3);
        var quest4 = new QuestClass("A Mobile Mistake", 1200, 'D', "Mrs Sugars", 1, "JobBoxQuest4", 4);

        add(quest4);
        var quest5 = new QuestClass("Masked Bullies", 1500, 'C', "Victir", 1, "JobBoxQuest5", 5);

        add(quest5);
        var quest6 = new QuestClass("Bring me Home", 1800, 'B', "Mr Scaredy", 1, "JobBoxQuest6", 6);

        add(quest6);
        var quest7 = new QuestClass("You! Challenge me... Now!", 3000, 'A', "Boss Ah Drago", 0, "JobBoxQuest7", 7);

        add(quest7);
        var quest8 = new QuestClass("Fact or Fiction?", 1000, 'D', "Mr Host", 3, "JobBoxQuest8", 8);

        add(quest8);
        var quest9 = new QuestClass("Lost on a Venture", 1000, 'D', "Mr Shade", 2, "JobBoxQuest9", 9);

        add(quest9);
        var quest10 = new QuestClass("Exclusion Persuasion", 1500, 'B', "Mr CIP", 4, "JobBoxQuest0", 0);

        add(quest10);
    }
Ejemplo n.º 3
0
        public QuestClass copyof()
        {
            var q = new QuestClass(questName, reward, difficulty,
                                   requester, location, sprite, index);

            return(q);
        }
    // This loops through all the targets, giving each target the quest.
    //  <triggered_effect trigger="onSelfBuffStart" action="GiveQuestSDX, Mods" target="self" quest="myNewQuest" />
    public override void Execute(MinEventParams _params)
    {
        for (int j = 0; j < this.targets.Count; j++)
        {
            EntityAliveSDX entity = this.targets[j] as EntityAliveSDX;
            if (entity != null)
            {
                if (string.IsNullOrEmpty(this.strQuest))
                {
                    continue;
                }

                entity.GiveQuest(this.strQuest);
            }

            // If the target is a player.
            EntityPlayerLocal Playerentity = this.targets[j] as EntityPlayerLocal;
            if (Playerentity != null)
            {
                if (string.IsNullOrEmpty(this.strQuest))
                {
                    continue;
                }

                Quest myQuest = QuestClass.CreateQuest(this.strQuest);
                myQuest.QuestGiverID = -1;
                Playerentity.QuestJournal.AddQuest(myQuest);
            }
        }
    }
Ejemplo n.º 5
0
 private void GetActions(QuestClass quest)
 {
     foreach (var action in quest.Actions)
     {
         Actions.Add(new BCMQuestAction(action));
     }
     Bin.Add("Actions", Actions);
 }
Ejemplo n.º 6
0
 private void GetRequirements(QuestClass quest)
 {
     foreach (var requirement in quest.Requirements)
     {
         Requirements.Add(new BCMQuestRequirement(requirement));
     }
     Bin.Add("Requirements", Requirements);
 }
Ejemplo n.º 7
0
 private void GetObjectives(QuestClass quest)
 {
     foreach (var objective in quest.Objectives)
     {
         Objectives.Add(new BCMQuestObjective(objective));
     }
     Bin.Add("Objectives", Objectives);
 }
Ejemplo n.º 8
0
 private void GetRewards(QuestClass quest)
 {
     foreach (var reward in quest.Rewards)
     {
         Rewards.Add(new BCMQuestReward(reward));
     }
     Bin.Add("Rewards", Rewards);
 }
Ejemplo n.º 9
0
    public void RemoverMissao(QuestClass quest)
    {
        BotaoTituloMissao botaoQueDeveSerRemovido;
        var sucesso = questsESeusBotoes.TryGetValue(quest, out botaoQueDeveSerRemovido);

        if (sucesso)
        {
            questsESeusBotoes.Remove(quest);
            Destroy(botaoQueDeveSerRemovido.gameObject);
        }
    }
Ejemplo n.º 10
0
    public void AdicionarMissao(QuestClass quest)
    {
        BotaoTituloMissao botao = Instantiate(prefabBotaoMissao);

        botao.transform.SetParent(this.transform);
        botao.transform.localScale = Vector3.one;

        //botoesMissao.Add(botao);
        questsESeusBotoes.Add(quest, botao);

        botao.Configurar(quest);
    }
Ejemplo n.º 11
0
    // Esse método deve ser chamado quando você quiser remover uma missão
    // nesta janela de missões, basta passar a missão:quest
    // Retorna a quest removida
    public QuestClass RemoverMissao(QuestClass quest)
    {
        if (!listaDeQuestsAtivas.Contains(quest))
        {
            return(null);
        }

        listaDeQuestsAtivas.Remove(quest);
        listaDeQuestsRemovidas.Add(quest);
        corpoJanelaMissoes.RemoverMissao(quest);
        return(quest);
    }
    public override void PerformAction(EntityPlayer player)
    {
        Quest NewQuest = QuestClass.CreateQuest(ID);

        if (NewQuest == null)
        {
            return;
        }

        player.QuestJournal.RemoveQuest(NewQuest);
        player.QuestJournal.AddQuest(NewQuest);
    }
Ejemplo n.º 13
0
    // Esse método deve ser chamado quando você quiser cadastrar uma missão
    // nesta janela de missões, basta passar a missão:quest
    public void AdicionarMissao(QuestClass quest)
    {
        if (listaDeQuestsRemovidas.Contains(quest))
        {
            return;
        }
        if (listaDeQuestsAtivas.Contains(quest))
        {
            Debug.LogWarning("A quest '" + quest.description + "' já está na janela de missões e você está tentando adicioná-la novamente");
            return;
        }

        listaDeQuestsAtivas.Add(quest);
        corpoJanelaMissoes.AdicionarMissao(quest);
    }
    private IEnumerator RemoverMissaoNaJanela(QuestClass quest, MomentoDaAcao momento)
    {
        switch (momento)
        {
        case MomentoDaAcao.InicioDaCena:
            yield return(new WaitUntil(() => ConselheiroComenius.JanelaMissoes != null));

            ConselheiroComenius.JanelaMissoes.RemoverMissao(quest);
            break;

        case MomentoDaAcao.AposDialogo:
            if (!Dialogo)
            {
                Debug.LogError("Diálogo == null. Impossível remover uma missão após um diálogo sem especificar o mesmo.");
                break;
            }
            Action funcaoRemoverMissao = null;
            funcaoRemoverMissao = () =>
            {
                ConselheiroComenius.JanelaMissoes.RemoverMissao(quest);
                Dialogo.OnEndDialogueEvent -= funcaoRemoverMissao;
            };
            Dialogo.OnEndDialogueEvent += funcaoRemoverMissao;
            break;

        case MomentoDaAcao.AposResposta:
            if (!Dialogo)
            {
                Debug.LogError("Diálogo == null. Impossível remover uma missão após um diálogo sem especificar o mesmo.");
                break;
            }
            Action <int> funcaoRemoverMissaoAposResposta = null;
            funcaoRemoverMissaoAposResposta = (respostaDoJogador) =>
            {
                if (respostaDoJogador == IndiceDaRespostaAlvo)
                {
                    ConselheiroComenius.JanelaMissoes.RemoverMissao(quest);
                    Dialogo.QuandoEscolherRespostaEvent -= funcaoRemoverMissaoAposResposta;
                }
            };
            Dialogo.QuandoEscolherRespostaEvent += funcaoRemoverMissaoAposResposta;
            break;
        }
    }
Ejemplo n.º 15
0
    public override void GiveReward(EntityPlayer player)
    {
        Quest quest = QuestClass.CreateQuest(base.ID);

        if (base.OwnerQuest != null)
        {
            quest.PreviousQuest = GetQuest(base.OwnerQuest.ID).Name;
        }

        if (GameManager.Instance.World.Entities.dict.ContainsKey(base.OwnerQuest.SharedOwnerID))
        {
            EntityAliveSDX questEntity = GameManager.Instance.World.Entities.dict[base.OwnerQuest.SharedOwnerID] as EntityAliveSDX;
            if (questEntity == null)
            {
                return;
            }
            questEntity.QuestJournal.AddQuest(quest);
        }
    }
Ejemplo n.º 16
0
    // Keyword params permite passar um número variável de passos da missão
    // Por exemplo, pode chamar this.Configurar("a", "b", "c", "d") ou
    // this.Configurar("a", "b", "c") ou this.Configurar("a", "b")
    public void Configurar(QuestClass quest)
    {
        this.titulo.text = quest.description;

        var quantidadeMaxPassos = 3;

        if (quest.passosDaQuest.Length > quantidadeMaxPassos)
        {
            Debug.LogWarning("Tentando adicionar missão com mais de 3 descrições");
        }

        var quantidadeDePassos = Math.Min(quest.passosDaQuest.Length, 3);

        passosDaMissao = new string[quantidadeDePassos];
        for (var i = 0; i < quantidadeDePassos; i++)
        {
            passosDaMissao[i] = quest.passosDaQuest[i];
        }
    }
Ejemplo n.º 17
0
    void EndDialogue()
    {
        canvas.SetActive(false);

        mouseLook.LockMouse();

        if (currentDialogue.quest)
        {
            QuestClass quest = currentDialogue.quest;
            if (!quest.activated)
            {
                quest.Activate();
            }
            else
            {
                quest.Complete();
            }
        }

        Debug.Log("end of conversation");
    }
Ejemplo n.º 18
0
    public void GiveQuest(String strQuest)
    {
        // Don't give duplicate quests.
        foreach (Quest quest in QuestJournal.quests)
        {
            if (quest.ID == strQuest.ToLower())
            {
                return;
            }
        }

        // Make sure the quest is valid
        Quest NewQuest = QuestClass.CreateQuest(strQuest);

        if (NewQuest == null)
        {
            return;
        }

        // If there's no shared owner, it tries to read the PlayerLocal's entity ID. This entity doesn't have that.
        NewQuest.SharedOwnerID = entityId;
        NewQuest.QuestGiverID  = -1;
        QuestJournal.AddQuest(NewQuest);
    }
Ejemplo n.º 19
0
 private void GetOffer(QuestClass quest) => Bin.Add("Offer", Offer = quest.Offer);
Ejemplo n.º 20
0
 private void GetRepeatable(QuestClass quest) => Bin.Add("Repeatable", Repeatable = quest.Repeatable);
Ejemplo n.º 21
0
 private void GetIcon(QuestClass quest) => Bin.Add("Icon", Icon = quest.Icon);
Ejemplo n.º 22
0
    private void DrawQuestList(QuestClass[] quests, int MainOrSide)
    {
        for (int i = 0; i < quests.Length; i++)
        {
            QuestClass quest = quests[i];

            GUIStyle style = new GUIStyle();
            style           = EditorStyles.foldout;
            style.fontStyle = FontStyle.Bold;

            string label = "  Quest " + quest.index + ": " + quest.description;

            if (quest.IsComplete())
            {
                label          += " Complete!";
                style.fontStyle = FontStyle.Normal;
            }
            else if (!quest.QuestAvailable())
            {
                label          += " Not Available!";
                style.fontStyle = FontStyle.Italic;
            }

            toggles[i, MainOrSide] = EditorGUILayout.Foldout(toggles[i, MainOrSide], new GUIContent {
                text = label
            }, style);

            if (toggles[i, MainOrSide])
            {
                if (quest.dependencies.Length != 0)
                {
                    label = "    Dependencies";

                    style           = EditorStyles.label;
                    style.fontStyle = FontStyle.Normal;

                    dependencies[i, MainOrSide] = EditorGUILayout.Foldout(dependencies[i, MainOrSide], new GUIContent {
                        text = label
                    });

                    if (dependencies[i, MainOrSide])
                    {
                        foreach (int dependency in quest.dependencies)
                        {
                            string labelDep = "        Quest " + dependency;

                            if (quest.IsComplete())
                            {
                                labelDep       += " - Complete!";
                                style.fontStyle = FontStyle.Bold;
                            }

                            EditorGUILayout.LabelField(new GUIContent {
                                text = labelDep
                            }, style);
                        }
                    }
                }

                ChooseQuestType(quest.questType);
            }

            style.fontStyle = FontStyle.Normal;
        }
    }
Ejemplo n.º 23
0
 private void GetQuests(QuestClass obj) => Bin = new BCMQuest(obj, TypeStr, Options, StrFilter).Data();
Ejemplo n.º 24
0
 /// <summary>
 /// Sets quest's class, which is displayed in squred brackets in
 /// front of its name.
 /// </summary>
 /// <param name="class_"></param>
 protected void SetClass(QuestClass class_)
 {
     this.Class = class_;
 }
Ejemplo n.º 25
0
		/// <summary>
		/// Sets quest's class, which is displayed in squred brackets in
		/// front of its name.
		/// </summary>
		/// <param name="class_"></param>
		protected void SetClass(QuestClass class_)
		{
			this.Class = class_;
		}
Ejemplo n.º 26
0
 private void GetId(QuestClass questClass) => Bin.Add("Id", Id = questClass.ID);
Ejemplo n.º 27
0
 private void GetName(QuestClass questClass) => Bin.Add("Name", Name = questClass.Name);
Ejemplo n.º 28
0
 private void GetGroup(QuestClass quest) => Bin.Add("Group", Group = quest.GroupName);
Ejemplo n.º 29
0
 private void GetSubTitle(QuestClass quest) => Bin.Add("SubTitle", SubTitle = quest.SubTitle);
Ejemplo n.º 30
0
 private void GetDesc(QuestClass quest) => Bin.Add("Desc", Desc = quest.Description);
Ejemplo n.º 31
0
 private void GetDifficulty(QuestClass quest) => Bin.Add("Difficulty", Difficulty = quest.Difficulty);