private void OnSelectOption(string displayName) { string name = NpcHandler.Dictionary[displayName]; NpcHandler npcHandler = new NpcHandler(name); if (npcHandler.Target != null) { if (Config.AllowQuestSubmissions) { QuestHandler questHandler = new QuestHandler(this); questHandler.FindOneAndUpdate(npcHandler, itemHandler); if (UseDefaultAction) { ProcessGift(npcHandler); } } else { ProcessGift(npcHandler); } Exit(); } }
public AstrumClient() { ViewModel = new MainWindowViewModel(); ViewModel.PropertyChanged += ViewModel_PropertyChanged; _questHandler = new QuestHandler(this); _raidHandler = new RaidHandler(this); _furyRaidHandler = new FuryRaidHandler(this); _limitedRaidHandler = new LimitedRaidHandler(this); _breedingHandler = new BreedingHandler(this); _guildBattleHandler = new GuildBattleHandler(this); _mypageHandler = new MypageHandler(this); _giftHandler = new GiftHandler(this); _itemHandler = new ItemHandler(this); _gachaHandler = new GachaHandler(this); _trainingHandler = new TraningHandler(this); _specialAreaHandler = new SpecialAreaHandler(this); _talkHandler = new TalkHandler(this); ViewModel.IsQuestEnable = true; ViewModel.IsGuildBattleEnable = false; ViewModel.IsSpecialAreaEnable = false; ViewModel.MinStaminaStock = DEFAULT_STOCK; ViewModel.MinBpStock = DEFAULT_STOCK; ViewModel.KeepStamina = DEFAULT_KEEP_STAMINA; ViewModel.BaseDamage = DEFAULT_BASE_DAMAGE; }
protected override void ExecuteRequest(HttpContext context) { (bool isOk, User user) = CheckClaimsForUser(Request, context, _userRepository); if (!isOk || user == null) { return; } IEnumerable <Quest> quests = _questRepository.Get(user, _questTypeRepository, QuestState.InProgress).GetAwaiter().GetResult(); foreach (Quest quest in quests) { QuestHandler questHandler = QuestHandlers.Create(quest, user, _questTypeRepository); if (questHandler != null) { switch (questHandler.Update(Request)) { case QuestState.InProgress: break; case QuestState.Failed: break; case QuestState.Finished: break; default: break; } _questRepository.Update(quest).GetAwaiter().GetResult(); } } context.Response.StatusCode = StatusCodes.Status200OK; }
public void RpcTurnStart() { if (hasAuthority) { foreach (FollowerMovement f in GameObject.FindObjectsOfType <FollowerMovement>()) { f.rooted = false; } SupplyData sD = GameObject.FindObjectOfType <SupplyData>(); sD.gold += sD.workers; sD.food = Mathf.Clamp(sD.food, 0, sD.food - (int)Mathf.Ceil((sD.fighters + sD.workers) / 4)); if (sD.food < 0) { sD.fighters = Mathf.Clamp(sD.fighters, 0, sD.fighters - 1); } } foreach (Building b in GameObject.FindObjectsOfType <Building>()) { b.OnTurnStart(); } int roll = Random.Range(0, 99); if (hasAuthority && Random.Range(0, 99) >= 0) { FightManager.i.StartFight(5); } else if (hasAuthority && Random.Range(0, 99) >= 1000) { QuestHandler qH = GameObject.FindObjectOfType <QuestHandler>(); qH.SelectQuest(); } }
/// <summary> /// Run if Quest failed /// </summary> /// <param name="player">The player failing the quest</param> public virtual void OnFail(CQPlayerObject player) { EventInfoHolder tmpE = new EventInfoHolder(); tmpE.quest = this; tmpE.player = player; QuestHandler.TriggerEvent("QuestFailed", tmpE); //Sends out the QuestFailed event QuestHandler.Instance.availableQuests[player].Remove(this); playersUnCompleted.Remove(player); ResetCriterias(player); if (noSpawnIfNoPlayer == true) { if (playersUnCompleted.Count <= 0) { List <Criteria> tmpCriteria = new List <Criteria>(criterias); foreach (Criteria criteria in tmpCriteria) { foreach (SpawnZone zone in criteria.spawnZones) { zone.DespawnQuestObjects(); } } StopSpawning(); } } //TODO: Delete, if all players has failed it, and they are not allowed to try again. (OneTry == true) (List of players who failed?) tmpE.player = player; tmpE.quest = this; QuestHandler.TriggerEvent("UpdateQuestTracker", tmpE); //Sends out the UpdateQuestTracker event }
/// <summary> /// Completes a Criteria. /// </summary> /// <param name="player">The player who completed it</param> /// <param name="criteria">The criteria to complete</param> /// <param name="unit">The unit who completed the criteria</param> public virtual void CriteriaCompleted(CQExamplePlayer unit, CQPlayerObject player, Criteria criteria) { if (unCompletedCriterias.ContainsKey(player) != true || completedCriterias.ContainsKey(player) != true || activeCriterias.ContainsKey(player) != true || completedOptionalCriterias.ContainsKey(player) != true) { AddPlayerToCriterias(); } if (unCompletedCriterias[player].Contains(criteria)) //TODO: Some check if its in activeCriterias aswell? { ProcessCriteria(unit, player, criteria); } else if (activeOptionalCriterias[player].Contains(criteria)) { ProcessOptionalCriteria(unit, player, criteria); } else if (completedCriterias[player].Contains(criteria) || completedOptionalCriterias[player].Contains(criteria)) { //Criteria has already been completed by that player } else { Debug.LogWarning(criteria + " not found in any lists in " + this + ". " + criteria + " could not be completed"); } EventInfoHolder tmpE = new EventInfoHolder(); tmpE.player = player; tmpE.quest = this; QuestHandler.TriggerEvent("UpdateQuestTracker", tmpE); //Sends out the UpdateQuestTracker event }
/// <summary> /// Starts the progress of a quest pop up. /// </summary> /// <param name="player">The player recieving the quest pop up</param> public void StartQuestPopUp(CQPlayerObject player, Quest quest) { if (quest) { if (quest.pickUpAble == true) { if (FindObjectOfType <QuestUI>()) { EventInfoHolder tmpE = new EventInfoHolder(); tmpE.player = player; tmpE.quest = quest; tmpE.questGiver = this; QuestHandler.TriggerEvent("StartQuestPopUp", tmpE); //Sends out the StartQuestPopUp event } else { QuestHandler.Instance.QuestsDiscovered(quest, player); } } } else { Debug.LogWarning("Quest is null in: " + this.gameObject + " Cannot give quest"); } }
/// <summary> /// Is run when this criteria is completed /// </summary> /// <param name="player">The player who completed the criteria</param> public virtual void Complete(CQPlayerObject player, CQExamplePlayer unit) { EventInfoHolder tmpE = new EventInfoHolder(); tmpE.criteria = this; tmpE.player = player; tmpE.unit = unit; QuestHandler.TriggerEvent("CriteriaCompleted", tmpE); //Sends out the CriteriaCompleted event if (!dontDespawnObjectsWhenComplete) { bool despawn = true; foreach (CQPlayerObject p in quest.playersUnCompleted) { if (quest.activeCriterias[p].Contains(this)) { despawn = false; } } if (despawn == true) { foreach (SpawnZone zone in spawnZones) { zone.DespawnQuestObjects(); zone.Spawn = false; } } } }
// Use this for initialization void Start() { phone = GameObject.FindGameObjectWithTag("Phone").transform.GetChild(0).gameObject; listPage = transform.Find("List Screen"); fullPage = transform.Find("Full Screen Quest"); handler = GameObject.Find("GameManager").GetComponent <QuestHandler>(); Clear(); }
/// <summary> /// Is run when this criteria fails /// </summary> public virtual void Fail(CQPlayerObject player) { EventInfoHolder tmpE = new EventInfoHolder(); tmpE.criteria = this; tmpE.player = player; QuestHandler.TriggerEvent("CriteriaFailed", tmpE); //Sends out the CriteriaFailed event quest.CriteriaFailed(player, this); remainingTimer.Remove(player); }
void Start() { questHandler = GetComponentInParent <QuestHandler>(); leftTransform = new Vector3(-2 * xOffset, 0, 0); rightTransform = new Vector3(2 * xOffset, 0, 0); availableCharacters = questHandler.GetAvailableAdventurers(); arrayTail = 0; InstantiateImages(); SetSelectedCharacter(); }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { QuestInvalidReason reason = trigger.Text.NextEnum(QuestInvalidReason.Ok); Character target = trigger.Args.Character.Target as Character; if (target != null) { QuestHandler.SendQuestInvalid(target, reason); } trigger.Reply("Done."); }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { QuestPushResponse qpr = trigger.Text.NextEnum(QuestPushResponse.Busy); Character target = trigger.Args.Character.Target as Character; if (target != null) { QuestHandler.SendQuestPushResult(trigger.Args.Character, qpr, target); } trigger.Reply("Done."); }
public void UpdateStatus() { if (this.CheckCompletedStatus()) { this.m_Log.Owner.SetQuestState(this.Slot, QuestCompleteStatus.Completed); QuestHandler.SendQuestUpdateComplete(this.m_Log.Owner, this.Template.Id); } else { this.m_Log.Owner.SetQuestState(this.Slot, QuestCompleteStatus.NotCompleted); } }
public void UpdateStatus() { if (CheckCompletedStatus()) { m_Log.Owner.SetQuestState(Slot, QuestCompleteStatus.Completed); QuestHandler.SendQuestUpdateComplete(m_Log.Owner, Template.Id); } else { m_Log.Owner.SetQuestState(Slot, QuestCompleteStatus.NotCompleted); } }
/// <summary> /// Give's the Reward when the player completes the quest. /// </summary> /// <param name="unit">The unit who completed the quest</param> /// <param name="player">The player who completed the quest</param> public virtual void GiveReward(CQExamplePlayer unit, CQPlayerObject player, List <Reward> rewards) { foreach (Reward reward in rewards) { EventInfoHolder tmpE = new EventInfoHolder(); tmpE.player = player; tmpE.unit = unit; tmpE.quest = this; tmpE.reward = reward; QuestHandler.TriggerEvent("GiveReward", tmpE); //Sends out the QuestCompleted event } }
/// <summary> /// Tries to hand out the rewards, archives this quest and sends details about the next quest in the chain (if any). /// </summary> /// <param name="qHolder"></param> /// <param name="rewardSlot"></param> public bool TryFinish(IQuestHolder qHolder, uint rewardSlot) { Character owner = m_Log.Owner; owner.OnInteract(qHolder as WorldObject); if (qHolder is WorldObject && !owner.IsInRadius((WorldObject)qHolder, NPCMgr.DefaultInteractionDistance)) { NPCHandler.SendNPCError(owner, qHolder, VendorInventoryError.TooFarAway); return(false); } if (!Template.TryGiveRewards(m_Log.Owner, qHolder, rewardSlot)) { return(false); } ArchiveQuest(); QuestHandler.SendComplete(Template, owner); if (Template.FollowupQuestId != 0U) { QuestTemplate template = QuestMgr.GetTemplate(Template.FollowupQuestId); if (template != null && qHolder.QuestHolderInfo.QuestStarts.Contains(template)) { QuestHandler.SendDetails(qHolder, template, owner, true); if (template.Flags.HasFlag(QuestFlags.AutoAccept)) { owner.QuestLog.TryAddQuest(template, qHolder); } } } if (!Template.Repeatable) { owner.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteQuestCount, 1U, 0U, null); owner.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteQuest, Entry, 0U, null); if (Template.ZoneTemplate != null) { owner.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteQuestsInZone, (uint)Template.ZoneTemplate.Id, 0U, null); } } if (Template.IsDaily) { owner.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteDailyQuest, 1U, 0U, null); } return(true); }
void UpdateInteractionCount(Quest quest, QuestInteractionTemplate interaction, WorldObject obj) { var count = quest.Interactions[interaction.Index]; if (count < interaction.Amount) { ++quest.Interactions[interaction.Index]; m_Owner.SetQuestCount(quest.Slot, interaction.Index, (byte)(count + 1)); QuestHandler.SendUpdateInteractionCount(quest, obj, interaction, count + 1, m_Owner); quest.UpdateStatus(); } //quest.Template.NotifyGOUsed(quest, go); }
/// <summary> /// Tries to hand out the rewards, archives this quest and sends details about the next quest in the chain (if any). /// </summary> /// <param name="qHolder"></param> /// <param name="rewardSlot"></param> public bool TryFinish(IQuestHolder qHolder, uint rewardSlot) { var chr = m_Log.Owner; chr.OnInteract(qHolder as WorldObject); if (qHolder is WorldObject && !chr.IsInRadius((WorldObject)qHolder, NPCMgr.DefaultInteractionDistance)) { NPCHandler.SendNPCError(chr, qHolder, VendorInventoryError.TooFarAway); return(false); } if (Template.TryGiveRewards(m_Log.Owner, qHolder, rewardSlot)) { ArchiveQuest(); QuestHandler.SendComplete(Template, chr); if (Template.FollowupQuestId != 0) { var nq = QuestMgr.GetTemplate(Template.FollowupQuestId); if (nq != null && qHolder.QuestHolderInfo.QuestStarts.Contains(nq)) { // Offer the next Quest if its also offered by the same QuestGiver QuestHandler.SendDetails(qHolder, nq, chr, true); if (nq.Flags.HasFlag(QuestFlags.AutoAccept)) { chr.QuestLog.TryAddQuest(nq, qHolder); } } } if (!Template.Repeatable) { chr.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteQuestCount, 1); chr.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteQuest, Entry); if (Template.ZoneTemplate != null) { chr.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteQuestsInZone, (uint)Template.ZoneTemplate.Id); } } if (Template.IsDaily) { chr.Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.CompleteDailyQuest, 1); } return(true); } return(false); }
private void UpdateInteractionCount(Quest quest, QuestInteractionTemplate interaction, WorldObject obj) { uint interaction1 = quest.Interactions[interaction.Index]; if ((long)interaction1 >= (long)interaction.Amount) { return; } ++quest.Interactions[interaction.Index]; this.m_Owner.SetQuestCount(quest.Slot, interaction.Index, (ushort)(byte)(interaction1 + 1U)); QuestHandler.SendUpdateInteractionCount(quest, (ObjectBase)obj, interaction, interaction1 + 1U, this.m_Owner); quest.UpdateStatus(); }
void Awake() { if (questHandler == null) { DontDestroyOnLoad(gameObject); questHandler = this; LoadIsActiveComplet(); SetTheQuestsVar(); } else if (questHandler != this) { Destroy(gameObject); } }
private void UpdateInteractionCount(Quest quest, QuestInteractionTemplate interaction, WorldObject obj) { uint interaction1 = quest.Interactions[interaction.Index]; if (interaction1 >= interaction.Amount) { return; } ++quest.Interactions[interaction.Index]; m_Owner.SetQuestCount(quest.Slot, interaction.Index, (byte)(interaction1 + 1U)); QuestHandler.SendUpdateInteractionCount(quest, obj, interaction, interaction1 + 1U, m_Owner); quest.UpdateStatus(); }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { var qt = QuestMgr.GetTemplate(trigger.Text.NextUInt()); if (qt != null) { var questReceiver = trigger.Args.Character.Target as Character; if (questReceiver != null) { QuestHandler.SendComplete(qt, questReceiver); } } trigger.Reply("Done."); }
private static void createNewPlayerData(string username) { var data = new PlayerData { username = username, model_name = "LocalPlayer", scene_id = 1, position = new Vector3(125f, 1.5f, 125f), hitpoints = 100, questStates = JObject.FromObject(QuestHandler.GetQuestsList()).ToString() }; System.IO.File.WriteAllText(System.IO.Path.Combine(save_path, $"{username}.json"), JsonUtility.ToJson(data)); }
// Start is called before the first frame update void Start() { if (questHandler == null) { questHandler = this; DontDestroyOnLoad(this); } else { Destroy(this.gameObject); return; } MakeQuests(); }
// Start is called before the first frame update void Start() { questHandler = this.GetComponent <QuestHandler>(); saveLoadHandler = this.GetComponent <SaveLoadHandler>(); if (locationParent != null) { for (int i = 0; i < locationParent.childCount; i++) { GameObject location = locationParent.GetChild(i).gameObject; locations.Add(location); } } //Debug.Log("Locations: " + locations.Count); }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { QuestTemplate template = QuestMgr.GetTemplate(trigger.Text.NextUInt()); if (template != null) { Character target = trigger.Args.Character.Target as Character; if (target != null) { QuestHandler.SendComplete(template, target); } } trigger.Reply("Done."); }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { var qt = QuestMgr.GetTemplate(trigger.Text.NextUInt()); if (qt != null) { var questGiver = trigger.Args.Character as IQuestHolder; var questReceiver = (Character)trigger.Args.Character.Target; if (questGiver != null) { QuestHandler.SendDetails(questGiver, qt, questReceiver, false); } } trigger.Reply("Done."); }
/// <summary> /// Is called when the owner of this QuestLog receives or looses the given amount of Items /// </summary> /// <param name="item"></param> internal void OnItemAmountChanged(Item item, int delta) { for (int index1 = 0; index1 < this.m_RequireItemsQuests.Count; ++index1) { Quest requireItemsQuest = this.m_RequireItemsQuests[index1]; for (int index2 = 0; index2 < requireItemsQuest.Template.CollectableItems.Length; ++index2) { Asda2ItemStackDescription collectableItem = requireItemsQuest.Template.CollectableItems[index2]; if (collectableItem.ItemId == item.Template.ItemId) { int collectedItem = requireItemsQuest.CollectedItems[index2]; int num = collectedItem + delta; bool flag = collectedItem < collectableItem.Amount || num < collectableItem.Amount; requireItemsQuest.CollectedItems[index2] = num; if (flag) { QuestHandler.SendUpdateItems(item.Template.ItemId, delta, this.m_Owner); requireItemsQuest.UpdateStatus(); break; } break; } } for (int index2 = 0; index2 < requireItemsQuest.Template.CollectableSourceItems.Length; ++index2) { Asda2ItemStackDescription collectableSourceItem = requireItemsQuest.Template.CollectableSourceItems[index2]; if (collectableSourceItem.ItemId == item.Template.ItemId) { int collectedSourceItem = requireItemsQuest.CollectedSourceItems[index2]; int num = collectedSourceItem + delta; bool flag = collectedSourceItem < collectableSourceItem.Amount || num < collectableSourceItem.Amount; requireItemsQuest.CollectedSourceItems[index2] = num; if (flag) { QuestHandler.SendUpdateItems(item.Template.ItemId, delta, this.m_Owner); requireItemsQuest.UpdateStatus(); break; } break; } } } }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { QuestTemplate template = QuestMgr.GetTemplate(trigger.Text.NextUInt()); if (template != null) { IQuestHolder character = trigger.Args.Character as IQuestHolder; Character target = (Character)trigger.Args.Character.Target; if (character != null) { QuestHandler.SendDetails(character, template, target, false); } } trigger.Reply("Done."); }