public void FinishQuest() { myParty = PartyGenerator.GenerateRandomParty(); myResult = myQuest.GetResult(myParty); questPopup.GetComponent <Canvas>().enabled = true; questResults.GetComponent <QuestResultBox>().Display(myResult); }
public void Display(QuestResult qr) { Debug.Log(qr.Gold.ToString()); goldReward.GetComponent <Text>().text = $"Gold: {qr.Gold.ToString()}"; questOutcome.GetComponent <Text>().text = qr.success ? "Success!" : "Fail!"; loot.GetComponent <LootRewardBox>().Display(qr.Loot); }
public Quest(string[] ss) { switch (ss[1]) { case "KAE": Type = QuestType.KillAllEnemies; break; case "RP": Type = QuestType.ReachPosition; GoalObject = GameObject.Find(ss[2]); break; case "DT": Type = QuestType.DestroyTarget; GoalObject = GameObject.Find(ss[2]); break; } switch (ss[3]) { case "OP": Result = QuestResult.OpenGate; ResultObject = GameObject.Find(ss[4]); break; case "C": Result = QuestResult.Clear; break; } TimelineAssetName = ss[5]; }
public override QuestResult GetResult(Party party) { int killedVictims = (int)((party.GetAverageStats().Speed / 3 + party.GetAverageStats().Strength / 4 - Difficulty)); killedVictims = Math.Max(0, killedVictims); var qr = new QuestResult(); qr.ReturnParty = party; DamageRandomParts(qr.ReturnParty, Difficulty / 100 + 4); // if (killedVictims <= 0) return qr; qr.Gold = killedVictims * party.GetAverageStats().Intelligence / 100; if (double.IsNaN(qr.Gold)) { qr.Gold = 0; } for (var i = 0; i < 10 / 2; i++) { qr.Loot.Add(PartGenerator.GeneratePart()); } qr.Report = $"You have slain {killedVictims} villagers!"; return(qr); }
public void PlayResultSound(QuestResult _result) { string sound = string.Empty; switch (_result) { case QuestResult.QUEST_ACCEPT: sound = "Sound/Interface/S6012_EFF_QuestAccept"; break; case QuestResult.QUEST_GIVEUP: sound = "Sound/Interface/S6015_EFF_QuestFail"; break; case QuestResult.QUEST_CLEAR: sound = "Sound/Interface/S6013_EFF_QuestSuccess"; break; case QuestResult.QUEST_COMPLETE: sound = AsSoundPath.QuestComplete; break; case QuestResult.QUEST_FAILED: sound = "Sound/Interface/S6015_EFF_QuestFail"; break; } if (sound != string.Empty) { Debug.Log(sound); AsSoundManager.Instance.PlaySound( sound, Vector3.zero, false); } }
public override QuestResult GetResult(Party party) { var killedChickens = (int)((party.GetAverageStats().Strength / 3) + party.GetAverageStats().Dexterity - Difficulty); var qr = new QuestResult { ReturnParty = party }; DamageRandomParts(qr.ReturnParty, Difficulty / 100); qr.Report = $"Your party managed to kill {Math.Max(0, killedChickens)} chickens!"; if (killedChickens <= 0) { return(qr); } if (killedChickens >= chickenCount) { qr.success = true; } qr.Gold = killedChickens; for (var i = 0; i < killedChickens / 2; i++) { qr.Loot.Add(PartGenerator.GeneratePart()); } return(qr); }
private void DisplayQuest(Quest quest, QuestResult result) { gameState.Pause(); GetComponent <Canvas>().enabled = true; questTitle.GetComponent <Text>().text = quest.Title; questReport.GetComponent <Text>().text = result.Report; questResults.GetComponent <QuestResultBox>().Display(result); }
protected void AddReward(int groupId, RewardGroupType type, QuestResult result, QuestReward reward) { if (!this.RewardGroups.ContainsKey(groupId)) { this.RewardGroups[groupId] = new QuestRewardGroup(groupId, type); } reward.Result = result; this.RewardGroups[groupId].Add(reward); }
public void QuestComplited(QuestResult questResult) { var q = Instantiate(questPrevfab, questCanvas.transform); q.GetComponent <QuestDisplay>().Description.GetComponent <Text>().text = questResult.description; q.GetComponent <QuestDisplay>().Header.GetComponent <Text>().text = questResult.header; q.GetComponent <QuestDisplay>().Image.GetComponent <Image>().sprite = questResult.image; currQuest = q; questCanvas.SetActive(true); }
public void FinishQuest() { foreach (var body in BodyQueue) { Party.Bodies.Add(body); } questState = QuestState.Complete; LastQuestResult = CurrentQuest?.GetResult(Party); Gold += (int)LastQuestResult.Gold; QuestEventManager.SendQuestFinished(CurrentQuest, LastQuestResult); }
/// <summary> /// Adds reward to a specific reward group, that the player can select /// after completing the quest. /// </summary> /// <remarks> /// Mainly used for PTJs. /// </remarks> /// <param name="groupId"></param> /// <param name="type"></param> /// <param name="result"></param> /// <param name="reward"></param> /// <param name="options"></param> protected void AddReward(int groupId, RewardGroupType type, QuestResult result, QuestReward reward, RewardOptions options = RewardOptions.None) { if (!this.RewardGroups.ContainsKey(groupId)) { this.RewardGroups[groupId] = new QuestRewardGroup(groupId, type); } reward.Result = result; reward.Visible = (options & RewardOptions.Hidden) == 0; this.RewardGroups[groupId].Add(reward); }
public void Restart() { Difficulty = 0; Gold = 0; StartNewQuest(); QuestTimer = CurrentQuest.MaxDuration; BeltContent = new List <BodyPartVisual>(); PartQueue = new List <BodyPartVisual>(); BodyQueue = new List <Body>(); LastQuestResult = null; }
public ICollection <QuestReward> GetRewards(int rewardGroup, QuestResult result) { var rewards = new List <QuestReward>(); QuestRewardGroup group; this.RewardGroups.TryGetValue(rewardGroup, out group); if (group != null && result != QuestResult.None) { rewards.AddRange(group.Rewards.Where(a => a.Result == result)); } return(rewards); }
public override QuestResult GetResult(Party party) { var result = new QuestResult(); if (!(party.GetAverageStats().Vitality > 100)) { return(result); } result.success = true; result.Report = "Lots of stuff happened. You should have been there."; result.ReturnParty = party; result.Gold = 1000; return(result); }
public void ShowResultMessage(QuestResult _result) { // play sound effect PlayResultSound(_result); HideAll(); if (dicSimpleSprite.ContainsKey(_result)) { nowSpite = dicSimpleSprite[_result]; nowSpite.Start(); fPassedTime = 0.0f; bShow = true; nowSpite.Hide(false); } }
public static bool UseTool(User user, string tool, int x, int y) { if (tool == Quest.Shovel) { // check Treasures if (Treasure.IsTileTreasure(x, y)) { Treasure treasure = Treasure.GetTreasureAt(x, y); if (treasure.Type == "BURIED") { treasure.CollectTreasure(user); } return(true); } } QuestResult result = null; foreach (QuestEntry quest in QuestList) { if (quest.AltActivation.Type == tool && quest.AltActivation.ActivateX == x && quest.AltActivation.ActivateY == y) { result = ActivateQuest(user, quest, true, result); if (result.QuestCompleted) { if (result.NpcChat != null) { byte[] ChatPacket = PacketBuilder.CreateChat(result.NpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT); user.LoggedinClient.SendPacket(ChatPacket); } return(true); } } } if (result != null) { if (result.NpcChat != null) { byte[] ChatPacket = PacketBuilder.CreateChat(result.NpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT); user.LoggedinClient.SendPacket(ChatPacket); } return(true); } return(false); }
void Start() { this.anim = GetComponent <Animator>(); hud = hudObject.GetComponent <HUD>(); stats = hud.statsObject.GetComponent <Stats>(); ammo = hud.ammoObject.GetComponent <Ammo>(); stats.SetHP(healthPoints); stats.SetArmor(armor); gunDataBase = gunDataBaseObject.GetComponent <GunDataBase>(); List <GunInfo> pistols = new List <GunInfo>(); foreach (var g in (gunDataBase.Guns)) { pistols.Add(g.GetComponent <GunInfo>()); } unlockedGuns.AddRange(pistols); Quest newQ = new Quest(); QuestResult questResult = new QuestResult(); newQ.isActive = true; newQ.check = QuestFunctionsList.ScarLUnlockCheck; newQ.doresult = QuestFunctionsList.ScalLUnclockDoResult; newQ.quest_id = "unlock_scarL"; questResult.header = "Unlocked new gun"; questResult.description = "Name: " + gunDataBase.GetById("Assault_scarl").GetComponent <GunInfo>().DisplayName + '\n' + "Rarity: " + gunDataBase.GetById("Assault_scarl").GetComponent <GunInfo>().Rarity.ToString(); questResult.image = gunDataBase.GetById("Assault_scarl").GetComponent <SpriteRenderer>().sprite; newQ.result = questResult; quests.Add(newQ); foreach (var q in quests) { q.player = this; } }
public static QuestResult FailQuest(User user, QuestEntry quest, bool npcActivation = false, QuestResult res = null) { if (res == null) { res = new QuestResult(); } res.QuestCompleted = false; if (npcActivation) { if (quest.GotoNpcChatpoint != -1) { res.GotoChatpoint = quest.GotoNpcChatpoint; } if (quest.HideReplyOnFail != false) { res.HideRepliesOnFail = quest.HideReplyOnFail; } if (res.SetChatpoint != -1) { res.SetChatpoint = quest.SetNpcChatpoint; } } if (quest.FailNpcChat != null) { if (!npcActivation) { byte[] ChatPacket = PacketBuilder.CreateChat(quest.FailNpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT); user.LoggedinClient.SendPacket(ChatPacket); } else { if (quest.FailNpcChat != null) { if (npcActivation) { if (quest.FailNpcChat != "") { res.NpcChat = quest.FailNpcChat; } } } } } return(res); }
/// <summary> /// Returns true if group contains rewards for result. /// </summary> /// <param name="result"></param> /// <returns></returns> public bool HasRewardsFor(QuestResult result) { return(this.Rewards.Any(a => a.Result == result)); }
/// <summary> /// Returns true if group contains rewards for result. /// </summary> /// <param name="result"></param> /// <returns></returns> public bool HasRewardsFor(QuestResult result) { return this.Rewards.Any(a => a.Result == result); }
public DialogPtjReport(QuestResult result) { this.Result = result; }
public static QuestResult CompleteQuest(User user, QuestEntry quest, bool npcActivation = false, QuestResult res = null) { if (res == null) { res = new QuestResult(); } // Take Items foreach (QuestItemInfo itemInfo in quest.ItemsRequired) { InventoryItem itm = user.Inventory.GetItemByItemId(itemInfo.ItemId); for (int i = 0; i < itemInfo.Quantity; i++) { user.Inventory.Remove(itm.ItemInstances[0]); } } // Take Money user.TakeMoney(quest.MoneyCost); // Give money user.AddMoney(quest.MoneyEarned); // Give items foreach (QuestItemInfo itemInfo in quest.ItemsEarned) { for (int i = 0; i < itemInfo.Quantity; i++) { ItemInstance itm = new ItemInstance(itemInfo.ItemId); Item.ItemInformation itemInformation = itm.GetItemInfo(); if (itemInformation.Type == "CONCEPTUAL") { Item.ConsumeItem(user, itemInformation); } else { user.Inventory.AddIgnoringFull(itm); } } } if (quest.WarpX != 0 && quest.WarpY != 0) { user.Teleport(quest.WarpX, quest.WarpY); } // Give quest points user.QuestPoints += quest.QuestPointsEarned; res.QuestCompleted = true; if (npcActivation) { if (quest.SuccessNpcChat != null && quest.SuccessNpcChat != "") { res.NpcChat = quest.SuccessNpcChat; } if (quest.SetNpcChatpoint != -1) { res.SetChatpoint = quest.SetNpcChatpoint; } if (quest.GotoNpcChatpoint != -1) { res.GotoChatpoint = quest.GotoNpcChatpoint; } } if (quest.Tracked) { user.Quests.TrackQuest(quest.Id); } if (quest.ChainedQuestId != 0) { res = ActivateQuest(user, Quest.GetQuestById(quest.ChainedQuestId), npcActivation, res); } if (quest.SuccessMessage != null) { byte[] ChatPacket = PacketBuilder.CreateChat(quest.SuccessMessage, PacketBuilder.CHAT_BOTTOM_RIGHT); user.LoggedinClient.SendPacket(ChatPacket); } if (quest.SuccessNpcChat != null) { if (!npcActivation) { byte[] ChatPacket = PacketBuilder.CreateChat(quest.SuccessNpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT); user.LoggedinClient.SendPacket(ChatPacket); } } // Check if award unlocked int questPointsPercent = Convert.ToInt32(Math.Floor(((decimal)user.QuestPoints / (decimal)GetTotalQuestPoints()) * (decimal)100.0)); if (questPointsPercent >= 25) { user.Awards.AddAward(Award.GetAwardById(1)); // 25% Quest Completion Award. } if (questPointsPercent >= 50) { user.Awards.AddAward(Award.GetAwardById(2)); // 50% Quest Completion Award. } if (questPointsPercent >= 75) { user.Awards.AddAward(Award.GetAwardById(3)); // 75% Quest Completion Award. } if (questPointsPercent >= 100) { user.Awards.AddAward(Award.GetAwardById(4)); // 100% Quest Completion Award. } // Is cloud isles quest? if (quest.Id == 1373) { byte[] swfLoadPacket = PacketBuilder.CreateSwfModulePacket("ballooncutscene", PacketBuilder.PACKET_SWF_CUTSCENE); user.LoggedinClient.SendPacket(swfLoadPacket); } return(res); }
/// <summary> /// Returns rewards for the given group and result. /// </summary> /// <remarks> /// Mainly used for PTJs. /// </remarks> /// <param name="rewardGroup"></param> /// <param name="result"></param> /// <returns></returns> public ICollection<QuestReward> GetRewards(int rewardGroup, QuestResult result) { var rewards = new List<QuestReward>(); QuestRewardGroup group; this.RewardGroups.TryGetValue(rewardGroup, out group); if (group != null && result != QuestResult.None) rewards.AddRange(group.Rewards.Where(a => a.Result == result)); return rewards; }
/// <summary> /// Adds reward to a specific reward group, that the player can select /// after completing the quest. /// </summary> /// <remarks> /// Mainly used for PTJs. /// </remarks> /// <param name="groupId"></param> /// <param name="type"></param> /// <param name="result"></param> /// <param name="reward"></param> protected void AddReward(int groupId, RewardGroupType type, QuestResult result, QuestReward reward) { if (!this.RewardGroups.ContainsKey(groupId)) this.RewardGroups[groupId] = new QuestRewardGroup(groupId, type); reward.Result = result; this.RewardGroups[groupId].Add(reward); }
public DialogPtjReport PtjReport(QuestResult result) { return new DialogPtjReport(result); }
public DialogPtjReport(QuestResult result) { this.Result = result; }
public static QuestResult ActivateQuest(User user, QuestEntry quest, bool npcActivation = false, QuestResult res = null) { if (CanComplete(user, quest)) { return(CompleteQuest(user, quest, npcActivation, res)); } else { return(FailQuest(user, quest, npcActivation, res)); } }
/// <summary> /// Adds reward to a specific reward group, that the player can select /// after completing the quest. /// </summary> /// <remarks> /// Mainly used for PTJs. /// </remarks> /// <param name="groupId"></param> /// <param name="type"></param> /// <param name="result"></param> /// <param name="reward"></param> /// <param name="options"></param> protected void AddReward(int groupId, RewardGroupType type, QuestResult result, QuestReward reward, RewardOptions options = RewardOptions.None) { if (!this.RewardGroups.ContainsKey(groupId)) this.RewardGroups[groupId] = new QuestRewardGroup(groupId, type); reward.Result = result; reward.Visible = (options & RewardOptions.Hidden) == 0; this.RewardGroups[groupId].Add(reward); }
/// <summary> /// Returns XML code to display the rewards for the given result. /// </summary> /// <param name="result"></param> /// <returns></returns> public string GetPtjReportXml(QuestResult result) { return string.Format("<arbeit_report result=\"{0}\"/>", (byte)result); }
public static void SendQuestFinished(Quest quest, QuestResult qr) { QuestFinishedEvent?.Invoke(quest, qr); }