/// <summary>Turn text tags ({FARMER} & {REQUESTER}) into their constant values.</summary> /// <param name="quest">The quest object that contains the description, objective, and title.</param> /// <returns>An updated quest model.</returns> public static BillBoardQuest ResolveQuestTextTags(BillBoardQuest quest) { quest.Title = quest.Title.Replace("{FARMER}", Game1.player.Name); quest.Title = quest.Title.Replace("{REQUESTER}", quest.Requester); quest.Description = quest.Description.Replace("{FARMER}", Game1.player.Name); quest.Description = quest.Description.Replace("{REQUESTER}", quest.Requester); quest.Objective = quest.Objective.Replace("{FARMER}", Game1.player.Name); quest.Objective = quest.Objective.Replace("{REQUESTER}", quest.Requester); return(quest); }
/// <summary>Adds the requester sign off and rewards to the quest description</summary> /// <param name="quest">The quest object that contains the rewards, description, and requester</param> /// <returns>A constructed description string</returns> public static string ConstructDescriptionString(BillBoardQuest quest) { string questDescription = $"{quest.Description}\n\n"; if (quest.FriendshipReward > 0) { questDescription += $"- {quest.Requester} will be thankful\n"; } if (quest.MoneyReward > 0) { questDescription += $"- {quest.MoneyReward}g on delivery"; } return(questDescription); }
public NoteMenu(BillBoardQuest quest, int questPosition) { Quest = ModEntry.ResolveQuestTextTags(quest); QuestPosition = questPosition; // load assets AcceptQuestButtonTexture = ModEntry.ModHelper.Content.Load <Texture2D>("Assets/AcceptButton.png", ContentSource.ModFolder); NoteBackgroundTexture = ModEntry.ModHelper.Content.Load <Texture2D>("Assets/NoteBackground.png", ContentSource.ModFolder); var closeButtonTexture = ModEntry.ModHelper.Content.Load <Texture2D>("Assets/CloseButton.png", ContentSource.ModFolder); // get the top left position for the background asset (pass it *4 as that's the scale) Vector2 backgroundTopLeftPosition = Utility.getTopLeftPositionForCenteringOnScreen(NoteBackgroundTexture.Width * 4, NoteBackgroundTexture.Height * 4); this.xPositionOnScreen = (int)backgroundTopLeftPosition.X; this.yPositionOnScreen = (int)backgroundTopLeftPosition.Y; this.upperRightCloseButton = new ClickableTextureComponent( bounds: new Rectangle(this.xPositionOnScreen + NoteBackgroundTexture.Width * 4 - 32, this.yPositionOnScreen - 24, 48, 48), texture: closeButtonTexture, sourceRect: new Rectangle(0, 0, 12, 12), scale: 4f ); Vector2 acceptQuestButtonDimensions = Game1.dialogueFont.MeasureString("Accept Quest") + new Vector2(24); AcceptQuestButton = new ClickableComponent( bounds: new Rectangle( x: this.xPositionOnScreen + (NoteBackgroundTexture.Width / 2 * 4) - ((int)acceptQuestButtonDimensions.X / 2), y: this.yPositionOnScreen + (NoteBackgroundTexture.Height * 4) - (int)((int)acceptQuestButtonDimensions.Y / 1.5), width: (int)acceptQuestButtonDimensions.X, height: (int)acceptQuestButtonDimensions.Y ), name: "" ); QuestTitleTextDimensions = Game1.dialogueFont.MeasureString(Quest.Title); }