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)); } } } }
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); }
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); } } }
private void GetActions(QuestClass quest) { foreach (var action in quest.Actions) { Actions.Add(new BCMQuestAction(action)); } Bin.Add("Actions", Actions); }
private void GetRequirements(QuestClass quest) { foreach (var requirement in quest.Requirements) { Requirements.Add(new BCMQuestRequirement(requirement)); } Bin.Add("Requirements", Requirements); }
private void GetObjectives(QuestClass quest) { foreach (var objective in quest.Objectives) { Objectives.Add(new BCMQuestObjective(objective)); } Bin.Add("Objectives", Objectives); }
private void GetRewards(QuestClass quest) { foreach (var reward in quest.Rewards) { Rewards.Add(new BCMQuestReward(reward)); } Bin.Add("Rewards", Rewards); }
public void RemoverMissao(QuestClass quest) { BotaoTituloMissao botaoQueDeveSerRemovido; var sucesso = questsESeusBotoes.TryGetValue(quest, out botaoQueDeveSerRemovido); if (sucesso) { questsESeusBotoes.Remove(quest); Destroy(botaoQueDeveSerRemovido.gameObject); } }
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); }
// 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); }
// 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; } }
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); } }
// 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]; } }
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"); }
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); }
private void GetOffer(QuestClass quest) => Bin.Add("Offer", Offer = quest.Offer);
private void GetRepeatable(QuestClass quest) => Bin.Add("Repeatable", Repeatable = quest.Repeatable);
private void GetIcon(QuestClass quest) => Bin.Add("Icon", Icon = quest.Icon);
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; } }
private void GetQuests(QuestClass obj) => Bin = new BCMQuest(obj, TypeStr, Options, StrFilter).Data();
/// <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_; }
/// <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_; }
private void GetId(QuestClass questClass) => Bin.Add("Id", Id = questClass.ID);
private void GetName(QuestClass questClass) => Bin.Add("Name", Name = questClass.Name);
private void GetGroup(QuestClass quest) => Bin.Add("Group", Group = quest.GroupName);
private void GetSubTitle(QuestClass quest) => Bin.Add("SubTitle", SubTitle = quest.SubTitle);
private void GetDesc(QuestClass quest) => Bin.Add("Desc", Desc = quest.Description);
private void GetDifficulty(QuestClass quest) => Bin.Add("Difficulty", Difficulty = quest.Difficulty);