public ProgressBattle( QuestData quest, int maxCount, string lowestRank, int[] targetArea, bool isBossOnly ) : base( quest, maxCount ) { LowestRank = Constants.GetWinRank( lowestRank ); TargetArea = targetArea == null ? null : new HashSet<int>( targetArea ); IsBossOnly = isBossOnly; }
public static void SetQuestString(QuestData _questData) { Tbl_QuestStringRecord stringRecord = AsTableManager.Instance.GetTbl_QuestString_Record(_questData.Info.ID); _questData.Info.Name = stringRecord.Info.Title; _questData.Info.Explain = stringRecord.Info.Explain; _questData.Info.Achievement = stringRecord.Info.Achievement; }
public ProgressData( QuestData quest, int maxCount ) { QuestID = quest.QuestID; ProgressMax = maxCount; QuestType = quest.Type; TemporaryProgress = 0; SharedCounterShift = 0; }
public void SetData(QuestData qd) { saveddata = qd; QuestName.text = saveddata.Name; Questbreif.text = saveddata.Description; ticketnum.text = "x" + qd.StaminaCost.ToString(); questnum = saveddata.Index; party1.spriteName = GameManager.User.party.member[0].char_name; party2.spriteName = GameManager.User.party.member[1].char_name; party3.spriteName = GameManager.User.party.member[2].char_name; }
public void SetQuestData(QuestData _questData) { questData = _questData; SetQuestString(questData); Tbl_QuestTalk_Record talkRecord = AsTableManager.Instance.GetTbl_QuestTalk(_questData.Info.ID); if (talkRecord != null) dicQuestTalks = talkRecord.questTalk.GetTalkStringAll(); }
public Tbl_Quest_Record(XmlElement _element) { try { XmlNode root = (XmlElement)_element; m_Quest = QuestData.GetQuestDataFromXml(root.ChildNodes); } catch (System.Exception e) { System.Diagnostics.Trace.WriteLine(e.Message); } }
public static Dictionary<int, QuestData> Load(string fileName) { Dictionary<int, QuestData> table = new Dictionary<int, QuestData>(); // 텍스트 테이블 읽어 들임 XmlDocument xmlFile = new XmlDocument(); xmlFile.PreserveWhitespace = false; try { TextAsset textAsset = (TextAsset)Resources.Load("XML/" + fileName, typeof(TextAsset)); xmlFile.LoadXml(textAsset.text); } catch (Exception e) { return null; } XmlNodeList allData = xmlFile.ChildNodes; foreach (XmlNode mainNode in allData) { if (mainNode.Name.Equals("Data") == true) { XmlNodeList childNodeList = mainNode.ChildNodes; foreach (XmlNode node in childNodeList) { QuestData tableData = new QuestData(); tableData.Index = Int32.Parse(node.Attributes.GetNamedItem("Index").Value); tableData.Name = String.Copy(node.Attributes.GetNamedItem("Name").Value); tableData.MapIndex = Int32.Parse(node.Attributes.GetNamedItem("MapIndex").Value); tableData.Mode = Int32.Parse(node.Attributes.GetNamedItem("Mode").Value); tableData.StaminaCost = Int32.Parse(node.Attributes.GetNamedItem("StaminaCost").Value); tableData.EnemySpawnType = Int32.Parse(node.Attributes.GetNamedItem("EnemySpawnType").Value); tableData.Boss = Int32.Parse(node.Attributes.GetNamedItem("Boss").Value); tableData.MaxGold = Int32.Parse(node.Attributes.GetNamedItem("MaxGold").Value); tableData.GoodScore = Int32.Parse(node.Attributes.GetNamedItem("GoodScore").Value); tableData.GreatScore = Int32.Parse(node.Attributes.GetNamedItem("GreatScore").Value); tableData.Description = String.Copy(node.Attributes.GetNamedItem("Description").Value); table.Add(tableData.Index, tableData); } } } return table; }
void SetQuestData( QuestData _qustData) { clearQuest = false; hide = false; clearHideTime = achHideTime; listAchCompleteCheck.Clear(); listAchRemainTime.Clear(); listAchDisable.Clear(); questData = _qustData; listAchievement = questData.Achievement.GetDatas(); // check achieveCount; listAchIndex.Clear(); int count = 0; for( int i = 0; i < listAchievement.Count; i++) { if( listAchievement[i].IsComplete == false) { listAchIndex.Add( count); listAchCompleteCheck.Add( false); listAchDisable.Add( false); listAchRemainTime.Add( 2.0f); } else if (listAchievement[i].QuestMessageType == QuestMessages.QM_TIME_LIMIT) { listAchIndex.Add(count); listAchCompleteCheck.Add(false); listAchDisable.Add(false); listAchRemainTime.Add(2.0f); } count++; } // icon SetQuestIcon( _qustData); // achievement SetQuestInfoString( _qustData); // reposition RepositionAchievements(); }
public void LoadQuest() { string pathQuest = Application.persistentDataPath + "/Quest.dat"; if (File.Exists(pathQuest)) { QuestData data = SaveSystem.LoadQuest(); for (int i = 0; i < quest.Length; i++) { for (int k = 0; k < data.Q.Count; k++) { if (quest[i].id == data.Q[k].id) { quest[i].number = data.Q[k].number; quest[i].checkClaim = data.Q[k].CheckClaim; quest[i].checkReceived = data.Q[k].CheckReceived; } } } } }
public override void Write() { QuestData.Write(_worldPacket); _worldPacket.WriteUInt32(QuestPackageID); _worldPacket.WriteUInt32(PortraitGiver); _worldPacket.WriteUInt32(PortraitGiverMount); _worldPacket.WriteUInt32(PortraitTurnIn); _worldPacket.WriteBits(QuestTitle.GetByteCount(), 9); _worldPacket.WriteBits(RewardText.GetByteCount(), 12); _worldPacket.WriteBits(PortraitGiverText.GetByteCount(), 10); _worldPacket.WriteBits(PortraitGiverName.GetByteCount(), 8); _worldPacket.WriteBits(PortraitTurnInText.GetByteCount(), 10); _worldPacket.WriteBits(PortraitTurnInName.GetByteCount(), 8); _worldPacket.WriteString(QuestTitle); _worldPacket.WriteString(RewardText); _worldPacket.WriteString(PortraitGiverText); _worldPacket.WriteString(PortraitGiverName); _worldPacket.WriteString(PortraitTurnInText); _worldPacket.WriteString(PortraitTurnInName); }
public override void OnInspectorGUI() { base.DrawDefaultInspector(); QuestTracker tracker = (QuestTracker)target; GUILayout.Space(20f); GUILayout.Label("Add a Quest"); GUILayout.BeginHorizontal(); GUILayout.Label("Quest Source"); source = EditorGUILayout.ObjectField(source, typeof(QuestData), true) as QuestData; GUILayout.EndHorizontal(); if (GUILayout.Button("Save")) //8 { // description = source.questDescription; // objective = source.questObjective; // quantity = source.objQuantity; tracker.AddQuest(source); } }
/// <summary> /// 実際の進捗データから、進捗度を補正します。 /// </summary> /// <param name="q">任務データ。</param> public virtual void CheckProgress(QuestData q) { if (TemporaryProgress > 0) { if (q.State == 2) { Progress = Math.Min(Progress + TemporaryProgress, ProgressMax); } TemporaryProgress = 0; } switch (q.Progress) { case 1: //50% Progress = (int)Math.Max(Progress, Math.Ceiling((ProgressMax + SharedCounterShift) * 0.5) - SharedCounterShift); break; case 2: //80% Progress = (int)Math.Max(Progress, Math.Ceiling((ProgressMax + SharedCounterShift) * 0.8) - SharedCounterShift); break; } }
public void AddMainQuest(string QuestName, int Goal, string Reward, string ObjName = "NONE") { QuestData Quest = new QuestData(); if (ObjName == "NONE") { Quest.name = QuestName; } else { Quest.name = ObjName + " " + QuestName; } Quest.objname = ObjName; Quest.count = 0; Quest.goal = Goal; Quest.reward = Reward; Quest.clear = false; MainQuestList.Add(Quest); }
public void AcceptQuest() { questWindow.SetActive(false); questButton.SetActive(false); quest = questHandler.GetQuest(); if (quest.quest.GetQuestObjective().goalType == GoalType.ReportTo) { quest.quest.GetQuestObjective().reporter = GameObject.Find(quest.quest.GetQuestObjective().reporterName); Debug.Log("Report to: " + quest.quest.GetQuestObjective().reporter.name); QuestObjective objective = new QuestObjective(quest.quest.GetQuestObjective().reporter.name); QuestData acceptedQuest = new QuestData(quest.quest.name, quest.quest.description, quest.quest.expReward, quest.quest.goldReward, true, objective); for (int i = 0; i < PlayerStats.missionList.Count; i++) { if (PlayerStats.missionList[i].GetName().Equals(acceptedQuest.GetName())) { Debug.Log("You already have this quest"); Debug.Log(PlayerStats.missionList.Count); return; } } PlayerStats.missionList.Add(acceptedQuest); return; } QuestObjective objective2 = new QuestObjective(quest.quest.GetQuestObjective().requiredAmount, quest.quest.GetQuestObjective().goalType); QuestData acceptedQuest2 = new QuestData(quest.quest.name, quest.quest.description, quest.quest.expReward, quest.quest.goldReward, true, objective2); for (int i = 0; i < PlayerStats.missionList.Count; i++) { if (PlayerStats.missionList[i].GetName().Equals(acceptedQuest2.name)) { Debug.Log("You already have this quest"); Debug.Log(PlayerStats.missionList.Count); return; } } PlayerStats.missionList.Add(acceptedQuest2); }
/** 执行完成任务 */ private void toCommitQuest(QuestData data, bool isAbs) { if (CommonSetting.isClientDriveLogic) { QuestConfig config = data.config; //删除任务道具 DIntData[] questItemArr = config.questItem; if (questItemArr.Length > 0) { //如果需要删除任务道具 me.bag.removeItems(questItemArr, 1, CallWayType.CommitQuest); } //执行任务完成动作组 me.role.doRoleActions(config.completeActions, 1, CallWayType.CommitQuest); //有奖励 if (data.config.rewardID > 0) { //奖励 if (isAbs) { me.bag.addRewardAbs(data.config.rewardID, CallWayType.CommitQuest); } else { me.bag.addReward(data.config.rewardID, CallWayType.CommitQuest); } } doCommitQuest(data); } else { me.send(CommitQuestRequest.create(data.id)); } }
public override void UpdatePlayer(Player player, QuestData rawdata) { OutfitQuestData data = (OutfitQuestData)rawdata; if (data.QuestStep == 1) { if (KingSlimeSlot < 255) { if (!Main.npc[KingSlimeSlot].active || Main.npc[KingSlimeSlot].type != Terraria.ID.NPCID.KingSlime) { KingSlimeSlot = 255; } else if (!data.SardineFell) { TerraGuardian sardine = PlayerMod.GetPlayerSummonedGuardian(player, GuardianBase.Sardine); if (sardine != null) { data.SardineFell = sardine.KnockedOut || sardine.Downed; } } } else { for (byte i = 0; i < 200; i++) { if (Main.npc[i].active && Main.npc[i].type == Terraria.ID.NPCID.KingSlime) { KingSlimeSlot = i; break; } } if (KingSlimeSlot < 255 && PlayerMod.HasGuardianSummoned(player, GuardianBase.Sardine)) { PlayerMod.GetPlayerSummonedGuardian(player, GuardianBase.Sardine).SaySomething("There it is! Let's slay it!"); } } } }
// daily quest는 서버에서 처리한다. /// <summary> /// 서버에서 받아온 정보로 시스템을 초기화 한다. /// </summary> /// <param name="baseQuestNumList">선행 퀘스트가 없는 퀘스트 목록</param> /// <param name="clearedQuestNumList">플레이어가 완수한 퀘스트 목록</param> /// <param name="inProgressQuestNumList">플레이어가 진행중인 퀘스트 목록</param> /// <param name="questProgress">플레이어가 진행중인 퀘스트들의 진행도</param> public void InitQuestInfo(List <int> baseQuestNumList, List <int> clearedQuestNumList, List <int> inProgressQuestNumList, List <List <int> > questProgress) { for (int i = 0; i < inProgressQuestNumList.Count(); i++) { var questNum = inProgressQuestNumList[i]; var quest = QuestData.GetQuestData(questNum); QuestDataSet.Add(quest); quest.QuestProgress = questProgress[i]; } foreach (var questNum in clearedQuestNumList) { var quest = QuestData.GetQuestData(questNum); ClearedQuestDataSet.Add(quest.KEY, quest); } foreach (var questSet in ClearedQuestDataSet) { var quest = questSet.Value; if (FeasibleQuestDataSet.Contains(quest)) { FeasibleQuestDataSet.Remove(quest); } foreach (var nextQuest in quest.nextQuest) { CheckFeasible(nextQuest); } } foreach (var questNum in baseQuestNumList) { #if QUEST_DEBUG Debug.Log($" Quest base init {questNum}"); #endif CheckFeasible(questNum); QuestStart(questNum); // <-- for test 퀘스트 시작 테스트용 코드 TODO Delete } }
private void RemoveQuestItem(QuestData RemoveData) { bool isRemoved = false; Inventory inven = GameObject.FindGameObjectWithTag("Inventory").GetComponent <Inventory>(); for (int i = 0; i < inven.SlotList.Count; i++) { Slot GetSlot = inven.SlotList[i].GetComponent <Slot>(); Debug.Log("for case i : " + i); if (GetSlot.isSlots()) { if (GetSlot.ItemReturn().Item_ID == RemoveData.quest.TargetObject_ID && GetSlot.slot.Count >= RemoveData.quest.Num) { for (int j = 0; j < RemoveData.quest.Num; j++) { if (GetSlot.slot.Count == 1) { GetSlot.slot.Clear(); GetSlot.UpDateinfo(false, GetSlot.DefaultImage); } else { inven.SlotList[i].GetComponent <Slot>().slot.Pop(); } isRemoved = true; } } } if (isRemoved == true) { return; } } }
private void buttonCreate_Click(object sender, EventArgs e) { var questId = short.Parse(this.labelId.Text); if (dataHandler.Quests.ContainsKey(questId)) { this.logger.Error("QuestId already exists in the database"); return; } if (checkedListFlags.CheckedItems.Count == 0) { this.logger.Error("Must check atleast 1 flag"); return; } var quest = new QuestData { Id = QuestData.GenerateId(questId), QuestId = questId, Name = this.textBoxName.Text, Level = short.Parse(textBoxLevel.Text) }; if (this.StoreQuest(quest)) { var level = quest.Level.ToString(CultureInfo.InvariantCulture); if (!treeViewQuests.Nodes.ContainsKey(level)) { this.treeViewQuests.Nodes.Add(level, level); } this.treeViewQuests.Nodes[level].Nodes.Add(quest.QuestId.ToString(), quest.Name); this.logger.LogFormat("New Quest Created. Id = {0} Name = {1}", questId, quest.Name); this.ResetFields(); } }
public void RefreshToComplete(QuestData data) { currnetData = data; DeactiveAllButton(); Complete_Btn.gameObject.SetActive(true); // 퀘스트 설명 StringBuilder builder = new StringBuilder(); for (int i = 0; i < currnetData.QuestCompleteContents.Length; ++i) { builder.Append(currnetData.QuestCompleteContents[i]); builder.AppendLine(); } ContentsText.text = builder.ToString(); // 퀘스트 목표 ImpliedObjectiveText.text = currnetData.QuestIntroduce_Implied; DetailedObjectiveText.text = GetQuestObjectSTR(currnetData); // 퀘스트 보상 RewardText.text = GetQuestRewardSTR(currnetData); }
private void HandlingLast_TalkObj() { if (!currentWords.IsDone) { return; } currentTalkObj.UpdateTalkState(); if (currentTalkObj.IsComplete) { QuestData qParent = currentTalkObj.parent; //该目标是任务的最后一个目标,则可以直接提交任务 if (qParent.currentQuestHolder == currentTalker.GetData <TalkerData>() && qParent.IsComplete && qParent.Objectives.IndexOf(currentTalkObj) == qParent.Objectives.Count - 1) { buttonDatas.Add(new ButtonWithTextData("继续", delegate { currentQuest = qParent; CurrentType = DialogueType.Quest; StartDialogue(qParent.Model.CompleteDialogue); })); } } currentTalkObj = null;//重置管理器的对话目标以防出错 }
public PlayerQuestData SavePlayerQuestData() { PlayerQuestData pqd = new PlayerQuestData(); pqd.inProgressQuests = new List <QuestData>(); pqd.completedQuests = new List <QuestData>(); foreach (Quest q in GameManagerScript.ins.playerQuests.completedQuests) { QuestData qd = new QuestData(); qd.ID = q.questID; qd.currentObjective = q.currentObjective; pqd.completedQuests.Add(qd); } foreach (Quest q in GameManagerScript.ins.playerQuests.inProgressQuests) { QuestData qd = new QuestData(); qd.ID = q.questID; qd.currentObjective = q.currentObjective; pqd.inProgressQuests.Add(qd); } return(pqd); }
private void InitQuest() { if (!Info || Info.QuestsStored == null) { return; } if (questInstances.Count > 0) { questInstances.Clear(); } foreach (Quest quest in Info.QuestsStored) { if (quest) { QuestData questInstance = new QuestData(quest) { originalQuestHolder = this, currentQuestHolder = this }; questInstances.Add(questInstance); } } }
public void SelectEvent(string EventName) { // if (CurrentEvent != null) // return; for (int i = 0; i < AvailableQuest.Length; i++) { if (AvailableQuest [i].QuestTitle == EventName) { AvailableQuest [i].IsGoingOn = true; for (int x = 0; x < AvailableQuest.Length; x++) { { if (allQuestData [x].QuestTitle == AvailableQuest [i].QuestTitle) { allQuestData [x].IsGoingOn = true; } } CurrentQuest = AvailableQuest [i]; break; } } } }
public override string GetQuestCurrentObjective(QuestData rawdata) { ZacksOutfitQuestData data = (ZacksOutfitQuestData)rawdata; switch (data.QuestStep) { case 1: return("Speak with Blue about what she wants."); case 2: case 3: return("Visit the Nurse while having Blue with you."); case 4: case 5: return("Visit the Clothier while having Blue with you."); case 6: case 7: return("Talk with Zacks while having Blue with you."); } return(base.GetQuestCurrentObjective(data)); }
public static void InsertQuestInst(COM_QuestInst quest) { if (QuestList == null) { return; } QuestData qdata0 = QuestData.GetData(quest.questId_); int i; for (i = 0; i < QuestList.Count; ++i) { QuestData qdata1 = QuestData.GetData(QuestList[i].questId_); if (qdata0.questKind_ > qdata1.questKind_) { break; } } QuestListKind[(int)qdata0.questKind_].Add(quest); QuestList.Insert(i, quest); UpdateAcceptableQuests(); }
public static int GetFirstAcceptableMainKindId() { if (AcceptableList == null) { return(0); } for (int i = 0; i < AcceptableList.Count; ++i) { QuestData qdata = QuestData.GetData(AcceptableList[i]); if (null == qdata) { continue; } if (qdata.questKind_ == QuestKind.QK_Main) { return(AcceptableList[i]); } } return(0); }
public static bool IsFDailyQuest() { if (CompletedList == null) { return(false); } int count = 0; for (int i = 0; i < CompletedList.Count; i++) { QuestData qd = QuestData.GetData(CompletedList[i]); if (qd.questKind_ == QuestKind.QK_Daily) { count++; } } if (count == 10) { return(true); } return(false); }
void readDailyQuest() { QuestInfo = new Dictionary <int, QuestData>(); XmlDocument xmlDoc = new XmlDocument(); TextAsset path = Resources.Load <TextAsset>(GameConfig.DatabasePathDailyQuest); xmlDoc.LoadXml(path.text); XmlNodeList listQuest = xmlDoc.GetElementsByTagName("Quest"); foreach (XmlNode infoQuest in listQuest) { QuestData questData = new QuestData(); questData.Name = infoQuest.SelectSingleNode("Name").InnerText; questData.Text = infoQuest.SelectSingleNode("Text").InnerText; questData.Time = int.Parse(infoQuest.SelectSingleNode("Time").InnerText); questData.Reward = infoQuest.SelectSingleNode("Reward").InnerText; questData.SceneName = infoQuest.SelectSingleNode("SceneName").InnerText; QuestInfo.Add(int.Parse(infoQuest.Attributes["ID"].InnerText.Trim()), questData); } }
public void UpdateQuestProcess(QuestData qData, int num) { for (int i = 0; i < listQuest.Count; i++) { if (listQuest[i].questData.mainQuestId == qData.mainQuestId && listQuest[i].questData.subQuestId == qData.subQuestId) { Quest q = listQuest[i]; if (q.process < qData.requireNum) { //q.process += num; photonView.RPC("SendIncreaseQuestNum", PhotonTargets.AllViaServer, i, num); } else { //OnFinishQuest(q); photonView.RPC("SendQuestObjectChangeStage", PhotonTargets.AllViaServer, i); } } } }
public void ClearTermsCheck() { questEnd.text = quest.Wait; switch (quest.CLEARTYPE) { case 0: quest.Clear = true; clearboard.SetActive(true); break; case 1: StartCoroutine(ClearRealTimeCheckingPolicy()); if (cleared) { quest.Clear = true; } break; case 2: break; case 3: break; default: Debug.Log("default"); break; } if (quest.Clear) { prevque = quest; } }
private void ParseQuest(dynamic message) { try { QuestData quest = JsonConvert.DeserializeObject <QuestData>(Convert.ToString(message)); if (quest == null) { _logger.Error($"Failed to parse Quest webhook object: {message}"); return; } lock (_processedQuests) { if (_processedQuests.ContainsKey(quest.PokestopId)) { if (_processedQuests[quest.PokestopId].Type == quest.Type && _processedQuests[quest.PokestopId].Rewards == quest.Rewards && _processedQuests[quest.PokestopId].Conditions == quest.Conditions) { // Processed quest already return; } } else { _processedQuests.Add(quest.PokestopId, quest); } } OnQuestReceived(quest); } catch (Exception ex) { _logger.Error(ex); _logger.Debug(Convert.ToString(message)); } }
void OnTriggerEnterQuestObject(Collider other) { //update quest process data ObjectInGame obj = other.GetComponent <ObjectInGame>(); Transform pos = this.transform.findChildRecursively("wrong_marker"); if (obj && obj.isCombinableObject() && other.gameObject.GetPhotonView().viewID == 0) { SendTriggerQuestItem = true; other.gameObject.SetActive(false); Item otherData = other.gameObject.GetComponent <Item>(); QuestData q = listQuestData.Find(x => x.requireItemId == otherData.Id); if (q != null && !QuestManager.instance.isFinishQuest(q)) { FBPoolManager.instance.returnObjectToPool(other.gameObject); QuestManager.instance.UpdateQuestProcess(q, +1); FBParticleManager.PlayEffect(FBParticleManager.EFFECT_COMBINE_OBJECT, 2, pos ? pos.position : this.transform.position); FBSoundManager.Play(FBSoundManager.COMBINE_SOUND); Invoke("ResetSendTrigger", 2f); } else { if (pos) { PopupManager.ShowWrongSignal(pos.position); } else { PopupManager.ShowWrongSignal(this.transform.position); } } } else { FBPoolManager.instance.returnObjectToPool(other.gameObject); } }
// Construct a new quest from quest data public Quest(QuestLoader.Quest q) { game = Game.Get(); // This happens anyway but we need it to be here before the following code is executed game.quest = this; // Static data from the quest file qd = new QuestData(q); // Initialise data boardItems = new Dictionary <string, BoardComponent>(); flags = new HashSet <string>(); monsters = new List <Monster>(); heroSelection = new Dictionary <string, List <Quest.Hero> >(); eManager = new EventManager(); delayedEvents = new List <QuestData.Event.DelayedEvent>(); undo = new Stack <string>(); // Populate null hero list, these can then be selected as hero types heroes = new List <Hero>(); for (int i = 1; i <= game.gameType.MaxHeroes(); i++) { heroes.Add(new Hero(null, i)); } // Set quest flags for selected expansions Dictionary <string, string> packs = game.config.data.Get(game.gameType.TypeName() + "Packs"); if (packs != null) { foreach (KeyValuePair <string, string> kv in packs) { flags.Add("#" + kv.Key); } } }
void InitData() { ClearObj(); giveBabys.Clear(); giveItems.Clear(); QuestData qdata = QuestData.GetData(quesid); if (qdata.questType_ == QuestType.QT_GiveItem) { titleLable.text = LanguageManager.instance.GetValue("xuanzedaoju"); babyObj.SetActive(false); itemObj.SetActive(true); InitItemData(qdata); isBaby = false; } else if (qdata.questType_ == QuestType.QT_GiveBaby) { titleLable.text = LanguageManager.instance.GetValue("xuanzechongwu"); babyObj.SetActive(true); itemObj.SetActive(false); InitbabyData(qdata); isBaby = true; } }
private void HandlingLast_SumbitObj() { //双重确认,以防出错 if (CheckSumbitAble(currentSubmitObj)) { BackpackManager.Instance.LoseItem(currentSubmitObj.Model.ItemToSubmit, currentSubmitObj.Model.Amount); currentSubmitObj.UpdateSubmitState(currentSubmitObj.Model.Amount); } if (currentSubmitObj.IsComplete) { QuestData qParent = currentSubmitObj.parent; //若该目标是任务的最后一个目标,则可以直接提交任务 if (qParent.currentQuestHolder == currentTalker.GetData <TalkerData>() && qParent.IsComplete && qParent.Objectives.IndexOf(currentSubmitObj) == qParent.Objectives.Count - 1) { buttonDatas.Add(new ButtonWithTextData("继续", delegate { currentQuest = qParent; CurrentType = DialogueType.Quest; StartDialogue(qParent.Model.CompleteDialogue); })); } } currentSubmitObj = null;//重置管理器的提交目标以防出错 }
private void RewardQuest(Player player) { QuestData questData = player.Quests[Quest.QuestId]; if (questData.Status == QuestStatus.Complete) { return; } if (!Reward(player)) { questData.Step--; return; } questData.Status = QuestStatus.Complete; new SpQuest(questData).Send(player.Connection); SystemMessages.QuestCompleted("@quest:" + Quest.QuestId + "001").Send(player.Connection); new SpQuestComplite(Quest.QuestId).Send(player.Connection); UpdateAroundIcons(player); }
private string GetQuestRewardSTR(QuestData data) { StringBuilder builder = new StringBuilder(); for (int rewardIdx = 0; rewardIdx < data.QuestRewards.Length; ++rewardIdx) { switch (data.QuestRewards[rewardIdx]) { case "GetItem": RewardItem[] items = data.Reward_GetItem.RewardItems; for (int i = 0; i < items.Length; ++i) { ItemData item = ItemDB.Instance.GetItemData(items[i].ItemCode); builder.Append($"[{item.Name} / {items[i].ItemCount}개]"); if (i != items.Length - 1) { builder.Append(", "); } } break; case "GetStatus": RewardStatus[] statuses = data.Reward_GetStatus.RewardStatuss; for (int i = 0; i < statuses.Length; ++i) { builder.Append($"[{statuses[i].StatusName} / {statuses[i].Amount}]"); if (i != statuses.Length - 1) { builder.Append(", "); } } break; } } return(builder.ToString()); }
void MatchingQuestParty() { if (recentlyClearQuestData == null) return; if (recentlyClearQuestData.Info.PartyQuest == false || recentlyClearQuestData.NowQuestProgressState != QuestProgressState.QUEST_PROGRESS_IN) return; AsSoundManager.Instance.PlaySound("Sound/Interface/S6002_EFF_Button", Vector3.zero, false); AsPartySender.SendPartySearch(recentlyClearQuestData.Info.QuestMapID); recentlyClearQuestData = null; }
private void Initialize(QuestData.Param p, Quest q) { parent = q; id = p.id; step = p.step; isCompleted = false; isEndEvent = p.kind == "endevent"; condition = QuestCondition.BuildCondition(step, p.condition); if( p.kind == "event" || p.kind == "endevent" ) { kind = Kind.DialogEvent; } if( p.kind == "terop" ) { kind = Kind.Terop; } if( p.dialog != null && p.dialog.Length > 0 ) { string[] msgs = p.dialog.Split('\n'); messages = new List<string>(); foreach(string m in msgs) { messages.Add ( string.Format(p.format,m) ); } } if(p.gimic != null) { for(int i = 0; i<p.gimic.Length;++i) { _PutGimic(p.gimic[i], i); } } }
public static QuestEntity CreateEntity(QuestData.Param p, Quest q) { QuestEntity qe = ScriptableObject.CreateInstance<QuestEntity>(); qe.Initialize(p, q); return qe; }
void CancelQuestParty() { recentlyClearQuestData = null; }
public ProgressPractice( QuestData quest, int maxCount, bool winOnly ) : base( quest, maxCount ) { WinOnly = winOnly; }
public static void SetQuestStrings(QuestData _questData) { Tbl_QuestStringRecord stringRecord = AsTableManager.Instance.GetTbl_QuestString_Record(_questData.Info.ID); if (stringRecord == null) { Debug.LogError("Quest string(" + _questData.Info.ID + ") is null"); return; } _questData.Info.Name = stringRecord.Info.Title; _questData.Info.Explain = stringRecord.Info.Explain; _questData.Info.Achievement = stringRecord.Info.Achievement; // 퀘스트 목표 스트링 추가 Tbl_QuestStringRecord questString = AsTableManager.Instance.GetTbl_QuestString_Record(_questData.Info.ID); if (questString != null) { List<AchBase> listAchievement = _questData.Achievement.GetDatas(); string[] achStrings = questString.Info.Achievement.Split('\r'); int count = achStrings.Length; for (int i = 0; i < count; i++) { if (achStrings[i] == null) continue; if (i < listAchievement.Count) listAchievement[i].Achievement = achStrings[i].Trim(); } } Tbl_QuestTalk_Record talkRecord = AsTableManager.Instance.GetTbl_QuestTalk(_questData.Info.ID); if (talkRecord != null) _questData.SetQuestTalks(talkRecord.questTalk.GetTalkStringAll()); else Debug.LogWarning("Talk is not exist = " + _questData.Info.ID); }
public void AskQuestPartyMatching(QuestData _data) { if (_data.Info.PartyQuest == false || AsGameMain.GetOptionState(OptionBtnType.OptionBtnType_QuestPartyMatching) == false) return; if (AsPartyManager.Instance.IsPartying == true) return; recentlyClearQuestData = _data; string msg = string.Format(AsTableManager.Instance.GetTbl_String(2101), TerrainMgr.Instance.GetMap(_data.Info.QuestMapID).MapData.GetName()); if (partyMatchingMsgBox != null) partyMatchingMsgBox.Close(); partyMatchingMsgBox = AsNotify.Instance.MessageBox(AsTableManager.Instance.GetTbl_String(126), msg, this, "MatchingQuestParty", "CancelQuestParty", AsNotify.MSG_BOX_TYPE.MBT_OKCANCEL, AsNotify.MSG_BOX_ICON.MBI_NOTICE); }
void AddQuest(QuestData _questData) { int nQuestCount = questList.Count; IUIListObject item = questList.CreateItem(questPrefab, nQuestCount, _questData.Info.Name); AsLanguageManager.Instance.SetFontFromSystemLanguage(item.TextObj); QuestListIconController questListIconCon = item.gameObject.GetComponent<QuestListIconController>(); if (questListIconCon != null) questListIconCon.SetQuestIconType(_questData.Info.QuestType); if (!dicQuest.ContainsKey(item.gameObject)) { dicQuest.Add(item.gameObject, nQuestCount); dicQuestName.Add(item.gameObject, _questData.Info.Name); listUIListItem.Add(item.gameObject.GetComponent<UIListItem>()); } }
public bool IsUpperLevelQuest(QuestData _questData) { return listUpperLevel.Contains(_questData.Info.ID); }
public void SelectQuestDelegate(IUIObject obj) { if (obj != questList) return; if (questList.SelectedItem == null) return; AsSoundManager.Instance.PlaySound(AsSoundPath.ButtonClick, Vector3.zero, false); int nClickIdx = dicQuest[questList.SelectedItem.gameObject]; clickQuestData = listQuests[nClickIdx]; Click_Event(); }
void ShowQuestClearMsg(QuestData _questData) { string msg = string.Empty; int stringIdx = 0; int npcID = 0; Tbl_Npc_Record npcRecord = null; if (_questData.Info.QuestType == QuestType.QUEST_MAIN || _questData.Info.QuestType == QuestType.QUEST_FIELD || _questData.Info.QuestType == QuestType.QUEST_BOSS || _questData.Info.QuestType == QuestType.QUEST_PVP || _questData.Info.QuestType == QuestType.QUEST_NPC_DAILY) { npcID = _questData.Info.QuestCompleteNpcID; npcRecord = AsTableManager.Instance.GetTbl_Npc_Record(npcID); stringIdx = 847; } else if (_questData.Info.QuestType == QuestType.QUEST_DAILY) stringIdx = 848; else if (_questData.Info.QuestType == QuestType.QUEST_WANTED) stringIdx = 860; if (_questData.Info.QuestType == QuestType.QUEST_MAIN || _questData.Info.QuestType == QuestType.QUEST_FIELD || _questData.Info.QuestType == QuestType.QUEST_BOSS || _questData.Info.QuestType == QuestType.QUEST_PVP || _questData.Info.QuestType == QuestType.QUEST_NPC_DAILY) msg = string.Format(AsTableManager.Instance.GetTbl_String(stringIdx), _questData.Info.Name, npcRecord.NpcName); else msg = string.Format(AsTableManager.Instance.GetTbl_String(stringIdx), _questData.Info.Name); if (AsHudDlgMgr.Instance != null) if (AsHudDlgMgr.Instance.questCompleteMsgManager != null) { AsHudDlgMgr.Instance.questCompleteMsgManager.AddMessage(msg, _questData.Info.QuestType); } // quest clear chat msg string chatMsg = string.Format(AsTableManager.Instance.GetTbl_String(2102), _questData.Info.Name); if (TerrainMgr.Instance.IsCurMapType(eMAP_TYPE.Tutorial) == true) { StringBuilder sb = new StringBuilder("["); sb.Append(AsUtil.GetRealString(System.Text.Encoding.UTF8.GetString(AsUserInfo.Instance.GetCurrentUserCharacterInfo().szCharName))); sb.Append("]:"); sb.Append(chatMsg); AsChatManager.Instance.InsertChat(sb.ToString(), eCHATTYPE.eCHATTYPE_PUBLIC, true); AsChatManager.Instance.ShowChatBalloon(AsEntityManager.Instance.UserEntity.UniqueId, chatMsg, eCHATTYPE.eCHATTYPE_PUBLIC); } else { body_CS_CHAT_MESSAGE chat = new body_CS_CHAT_MESSAGE(chatMsg, eCHATTYPE.eCHATTYPE_PUBLIC, false); byte[] data = chat.ClassToPacketBytes(); AsNetworkMessageHandler.Instance.Send(data); } }
/// <summary> /// Under construction. /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task HandleQuestsLogic(QuestData data) { Log.InfoFormat("[HandleQuests]"); // Loop though all quest tiles. foreach (var questTile in data.QuestTiles) { // If we can't cancel a quest, we shouldn't try to. if (questTile.IsCancelable) { // We never want to do this specific quest, if we've not started it. // User logic may vary though, but this is just an example. if (questTile.Achievement.Name.Equals("Beat Down") && questTile.Achievement.CurProgress == 0) { // Mark the quest tile to be canceled. //questTile.ShouldCancel = true; // We can only cancel *1* quest, so no point trying to process the rest. return; } } } }
public ProgressAGo( QuestData quest ) : base( quest, 0 ) { }
public static bool IsPossibleAccept(AsUserEntity _user, QuestData _questData) { return IsPossibleAccept(_user, _questData, 0); }
public static bool IsPossibleAccept(AsUserEntity _user, QuestData _questData, int _addLevel) { if (_questData.Condition.CanAccept() == false) return false; // 레벨 확인 List<ConditionLevel> listConditionLevel = _questData.Condition.GetCondition<ConditionLevel>(); ConditionLevel levelConditon = new ConditionLevel(); if (listConditionLevel.Count > 0) { int level = _user.GetProperty<int>(eComponentProperty.LEVEL) + _addLevel; levelConditon.CommonValue = level; if (!listConditionLevel[0].CheckAccept(levelConditon)) return false; } // 퀘스트 패스 확인 or bool bAcceptAnd = true; bool bAcceptOr = false; int nOrCount = 0; List<ConditionQuestPass> listQuestPass = _questData.Condition.GetCondition<ConditionQuestPass>(); if (listQuestPass.Count > 0) { foreach (ConditionQuestPass questPass in listQuestPass) { if (questPass.QuestPassType == QuestPassType.AND) bAcceptAnd &= ArkQuestmanager.instance.IsCompleteQuest(questPass.QuestID); else { bAcceptOr |= ArkQuestmanager.instance.IsCompleteQuest(questPass.QuestID); nOrCount++; } } if (nOrCount > 0) { if (bAcceptAnd == false) return false; if (bAcceptOr == false) return false; } else { if (bAcceptAnd == false) return false; } } return true; }
public ProgressImprovement( QuestData quest, int maxCount ) : base( quest, maxCount ) { }
public void AskWarp(QuestData _questData) { //2014.05.16 dopamin if (234018 == _questData.Info.ID || 234019 == _questData.Info.ID || 234020 == _questData.Info.ID || 234030 == _questData.Info.ID ) { if(true == WemeSdkManager.Instance.IsServiceGuest) { AsNotify.Instance.MessageBox( AsTableManager.Instance.GetTbl_String(126), AsTableManager.Instance.GetTbl_String(1922), this, "ToLoginScene", AsNotify.MSG_BOX_TYPE.MBT_OK, AsNotify.MSG_BOX_ICON.MBI_NOTICE); return; } } if (_questData.Preparation == null) return; if (_questData.Preparation.MoveMap.MapID == -1) return; warpQuestData = _questData; AsNotify.Instance.MessageBox(AsTableManager.Instance.GetTbl_String(145), AsTableManager.Instance.GetTbl_String(141), AsTableManager.Instance.GetTbl_String(1152), AsTableManager.Instance.GetTbl_String(997), this, "AskWarpCore", AsNotify.MSG_BOX_TYPE.MBT_OKCANCEL, AsNotify.MSG_BOX_ICON.MBI_QUESTION); }
/// <summary> /// 実際の進捗データから、進捗度を補正します。 /// </summary> /// <param name="q">任務データ。</param> public virtual void CheckProgress( QuestData q ) { if ( TemporaryProgress > 0 ) { if ( q.State == 2 ) Progress = Math.Min( Progress + TemporaryProgress, ProgressMax ); TemporaryProgress = 0; } if ( QuestType == 0 ) // ver. 1.6.6 以前のデータとの互換性維持 QuestType = q.Type; switch ( q.Progress ) { case 1: //50% Progress = (int)Math.Max( Progress, Math.Ceiling( ( ProgressMax + SharedCounterShift ) * 0.5 ) - SharedCounterShift ); break; case 2: //80% Progress = (int)Math.Max( Progress, Math.Ceiling( ( ProgressMax + SharedCounterShift ) * 0.8 ) - SharedCounterShift ); break; } }
public void RemoveMonInfoForTargetMark(QuestData _questData) { if (_questData == null) { Debug.LogWarning("Quest Data is null"); return; } // Item Drop Mon List<AchGetItem> listGetItem = _questData.Achievement.GetDatas<AchGetItem>(); foreach (AchGetItem getItem in listGetItem) { if (getItem.IsComplete == true) continue; foreach (PrepareItemDropMonster itemDropMon in _questData.Preparation.ItemDropMonsterList) { if (itemDropMon.ItemID == getItem.ItemID) RemoveTargetInfo(itemDropMon.TargetMonsterID, itemDropMon.Champion); } } // Item Drop Mon Kind foreach (AchGetItem getItem in listGetItem) { if (getItem.IsComplete == true) continue; foreach (PrepareItemDropMonsterKind itemDropMonKind in _questData.Preparation.ItemDromMonsterKindList) { if (itemDropMonKind.ItemID == getItem.ItemID) RemoveTargetInfo(itemDropMonKind.TargetMonsterKindID, itemDropMonKind.Champion); } } // Use Item To Target List<AchUseItemToTarget> listUseItemToTarget = _questData.Achievement.GetDatas<AchUseItemToTarget>(); foreach (AchUseItemToTarget useItemToTarget in listUseItemToTarget) { if (useItemToTarget.IsComplete == false) if (useItemToTarget.targetType == UseItemToTargetType.MONSTER) RemoveTargetInfo(useItemToTarget.targetID, useItemToTarget.Champion); } // Kill Monster List<AchKillMonster> listKillMon = _questData.Achievement.GetDatas<AchKillMonster>(); foreach (AchKillMonster killMon in listKillMon) { if (killMon.IsComplete == false) RemoveTargetInfo(killMon.MonsterID, killMon.Champion); } // Kill Monster Kind List<AchKillMonsterKind> listKillMonKind = _questData.Achievement.GetDatas<AchKillMonsterKind>(); foreach (AchKillMonsterKind killMonKind in listKillMonKind) { if (killMonKind.IsComplete == false) RemoveTargetInfo(killMonKind.MonsterKindID, killMonKind.Champion); } // Get Item From Mon List<AchGetItemFromMonster> listGetItemFromMon = _questData.Achievement.GetDatas<AchGetItemFromMonster>(); foreach (AchGetItemFromMonster getItemFromMon in listGetItemFromMon) { if (getItemFromMon.IsComplete == false) RemoveTargetInfo(getItemFromMon.MonsterID, getItemFromMon.Champion); } // Get Item From Mon List<AchGetItemFromMonsterKind> listGetItemFromMonKind = _questData.Achievement.GetDatas<AchGetItemFromMonsterKind>(); foreach (AchGetItemFromMonsterKind getItemFromMonKind in listGetItemFromMonKind) { if (getItemFromMonKind.IsComplete == false) RemoveTargetInfo(getItemFromMonKind.MonsterKindID, getItemFromMonKind.Champion); } AsHUDController.Instance.panelManager.UpdateMonsterNamePanel(); }
public ProgressDiscard( QuestData quest, int maxCount ) : base( quest, maxCount ) { }
public override void CheckProgress( QuestData q ) { if ( TemporaryProgress != 0 ) { if ( q.State == 2 ) { sortieCount = sortieCount + sortieCountTemp; sWinCount = sWinCount + sWinCountTemp; bossCount = bossCount + bossCountTemp; bossWinCount = bossWinCount + bossWinCountTemp; } TemporaryProgress = 0; } }
public void SetQuest(QuestData qd) { GameReady.SetData(qd); }