public void SetQuestPrompt(Quest quest, QuestEventModel questEventModel) { var progress = quest.GetEventProgress(questEventModel.Id); var prefix = questEventModel.Required > 0 && questEventModel.EventId != GameEventDispatcher.ITEM_TURNED_IN ? string.Format(NUMBER_TRACKER_FORMAT, progress, questEventModel.Required) : string.Empty; _questPromptLabel.Text = prefix + questEventModel.PromptText; _questPromptLabel.Visible = !string.IsNullOrEmpty(_questPromptLabel.Text); }
public void AddQuestPrompt(Quest quest, QuestEventModel questEventModel) { var qti = GD.Load(Filename) as PackedScene; var qtis = qti.Instance() as QuestTrackItem; AddChild(qtis); qtis.SetQuestPrompt(quest, questEventModel); _eventTrackItemMap[questEventModel.Id] = qtis; }
public override void _Ready() { base._Ready(); _promptLineEdit = GetNode <LineEdit>("VBoxContainer/PromptContainer/LineEdit"); _idLineEdit = GetNode <LineEdit>("VBoxContainer/IdContainer/LineEdit"); _promptLineEdit.Connect("text_changed", this, nameof(OnTextChanged)); Model = new QuestEventModel(); Model.DisplayName = "event"; CallDeferred(nameof(SetNodeTitle)); }
public void DisplayTurnIn(QuestEventModel questEventModel) { HideButtons(); _dialogueLabel.Hide(); _turnInContainer.Show(); _notYetButton.Show(); ShowTurnInRequirements(questEventModel); if (Quest.IsQuestEventReadyForCompletion(questEventModel)) { _completeButton.Show(); } }
private void ShowTurnInRequirements(QuestEventModel questEventModel) { var quest = QuestTracker.GetActiveQuestContainingModelId(questEventModel.Id); var rewards = quest.GetRewards(questEventModel.Id); foreach (var child in _rewardsContainer.GetChildren <Node>()) { if (child is InventoryCell) { child.GetParent().RemoveChild(child); child.QueueFree(); } } foreach (var child in _requirementsContainer.GetChildren <Node>()) { if (child is InventoryCell) { child.GetParent().RemoveChild(child); child.QueueFree(); } } var requirementCell = _resourcePreloader.InstanceScene <InventoryCell>(); requirementCell.SizeFlagsHorizontal = (int)SizeFlags.ShrinkCenter; _requirementsContainer.AddChild(requirementCell); var requirementItem = InventoryItem.FromItemId(questEventModel.ItemId); requirementItem.Amount = questEventModel.Required; requirementCell.SetInventoryItem(requirementItem); foreach (var reward in rewards) { var rewardCell = _resourcePreloader.InstanceScene <InventoryCell>(); rewardCell.SizeFlagsHorizontal = (int)SizeFlags.ShrinkCenter; _rewardsContainer.AddChild(rewardCell); var item = InventoryItem.FromItemId(reward.ItemId); item.Amount = reward.Amount; rewardCell.SetInventoryItem(item); } }
private void InitializeEvent(QuestEventModel eventModel) { _eventProgress[eventModel.Id] = 0; switch (eventModel.EventId) { case GameEventDispatcher.PLAYER_INVENTORY_ITEM_UPDATED: GameEventDispatcher.Instance.Connect(nameof(GameEventDispatcher.EventPlayerInventoryItemUpdated), this, nameof(CheckInventoryItemUpdatedCompletion)); CheckInventoryItemUpdatedCompletion(eventModel.EventId, eventModel.ItemId); break; case GameEventDispatcher.ENTITY_KILLED: GameEventDispatcher.Instance.Connect(nameof(GameEventDispatcher.EventEntityKilled), this, nameof(CheckEntityKilledCompletion)); break; case GameEventDispatcher.ITEM_TURNED_IN: GameEventDispatcher.Instance.Connect(nameof(GameEventDispatcher.EventItemTurnedIn), this, nameof(CheckTurnInCompletion)); break; case GameEventDispatcher.ENTITY_ENGAGED: GameEventDispatcher.Instance.Connect(nameof(GameEventDispatcher.EventEntityEngaged), this, nameof(CheckEntityEngagedCompletion)); break; } }
public override void LoadModel(QuestModel questModel) { base.LoadModel(questModel); Model = (QuestEventModel)questModel; }