Talk:Caroline

From Stardew Valley Wiki
Jump to: navigation, search
This talk page is for discussing Caroline.
  • Sign and date your posts by typing four tildes (~~~~).
  • Put new text below old text.
  • Be polite.
  • Assume good faith.
  • Don't delete discussions.

Schedule code extracted from game files

Code 
    rain: "800 SeedShop 37 6 3/1200 SeedShop 15 23 0/1330 SeedShop 21 5 2 caroline_read/1600 SeedShop 25 18 2 square_9_9/2100 SeedShop 25 4 1" #!String
    fall_25: "800 SeedShop 37 6 3/1000 SeedShop 27 7 3 \"Strings\\schedules\\Caroline:fall_25.000\"/1200 Hospital 13 14 0 \"Strings\\schedules\\Caroline:fall_25.001\"/1330 Hospital 4 6 1 \"Strings\\schedules\\Caroline:fall_25.002\"/1600 SeedShop 25 18 2 square_9_9/2100 SeedShop 25 4 1" #!String
    winter_16: "800 SeedShop 37 6 3/1200 SeedShop 15 23 0/1330 Town 23 71 2/1600 Beach 24 32 3 \"Strings\\schedules\\Caroline:winter_16.000\"/2330 SeedShop 25 4 1" #!String
    Tue: "800 SeedShop 22 14 0 \"Strings\\schedules\\Caroline:Tue.000\"/1030 SeedShop 24 17 3/1300 SeedShop 24 21 0 caroline_exercise/1600 SeedShop 23 15 1 \"Strings\\schedules\\Caroline:Tue.001\"/1810 SeedShop 34 5 0 \"Strings\\schedules\\Caroline:Tue.002\"/2100 SeedShop 25 4 1" #!String
    Fri: "800 SeedShop 37 6 3/1200 ArchaeologyHouse 14 4 2 caroline_read \"Strings\\schedules\\Caroline:Fri.000\"/1700 SeedShop 25 18 2 square_9_9/2100 SeedShop 25 4 1" #!String
    Wed: "800 SeedShop 37 6 3/1200 Town 23 27 1/1700 SeedShop 25 18 2 square_9_9/2100 SeedShop 25 4 1" #!String
    Sat: "800 SeedShop 37 6 3/1100 CommunityCenter 26 9 0/1700 SeedShop 25 18 2 square_9_9/2100 SeedShop 25 4 1" #!String
    Sun: "900 SeedShop 22 5 2/1040 SeedShop 21 5 3 \"Strings\\schedules\\Caroline:Sun.000\"/1330 SeedShop 15 23 0/1440 Town 48 33 2/1830 SeedShop 27 7 1/2100 SeedShop 25 4 1" #!String
    spring: "800 SeedShop 37 6 3/1200 SeedShop 15 23 0/1330 Town 23 71 2/1600 SeedShop 25 18 2 square_9_9/2100 SeedShop 25 4 1" #!String

-- Updated to v1.2.33 and made collapsable margotbean (talk) 17:47, 1 October 2017 (BST)
-- Updated to v1.3.36 margotbean (talk) 19:19, 31 July 2019 (UTC)

Rain in Winter

Caroline's schedule has a winter entry for when it is raining. Does it ever rain in winter (in Stardew Valley :)? (Happens all the time where I live.) Butterbur (talk) 04:42, 20 July 2017 (BST)

Random Gifts sent through the Mail

I've changed the heart events to reflect that an NPC can send you a gift in the mail when you have any number of friendship points with him/her more than zero. Shown below is the relevant code.

From Game1.cs::newDayAfterFade() (this executes every night).

Source Code:

if (Game1.player.friendships.Count > 0)
{
	string text = Game1.player.friendships.Keys.ElementAt(Game1.random.Next(Game1.player.friendships.Keys.Count));
	if (Game1.random.NextDouble() < (double)(Game1.player.friendships[text][0] / 250) * 0.1 
	   &&
	   (Game1.player.spouse == null || !Game1.player.spouse.Equals(text)) 
	   && 
	   Game1.content.Load<Dictionary<string, string>>("Data\\mail").ContainsKey(text))
	{
		Game1.mailbox.Enqueue(text);
	}
}

Simplified Pseudo-code:

Choose a random friend from the list of people you've already met.

If a random number between 0 and 1 is less than (number of hearts of friendship / 10)
and you are not married, or the chosen friend is not your spouse
and the chosen friend is one who sends gifts in the mail
Then
Add a letter with gift to tomorrow's mail.

The people who send gifts through the mail are listed in Data\Mail.xnb:

  • Caroline, Clint, Demetrius, Emily, Evelyn, George, Gus, Jodi, Kent, Lewis (sends gold), Linus, Marnie, Pam, Pierre (sends gold), Robin, Sandy, Shane, and the Wizard.

Based on the equation Friendship Points / 250 * 0.1, the chances of receiving a gift at 1 friendship point are ridiculously low, but still possible.

The more friendship hearts you have with an NPC (and the fewer friends you have met), the better the chance of receiving a letter with gift. There is no set heart limit at which you start receiving gifts, unlike the method for receiving recipes. margotbean (talk) 21:22, 26 September 2017 (BST)

I have been having a closer look at this area of the game. I intend to eventually have a page dedicated to gifts that can be received, probably starting on my page.
Anyway, there is a quirk within C# that affects the line Friendship Points / 250 * 0.1. Even though the result is cast to a double, the numbers in the equation are both Integers. This causes the code to return an Integer before casting to double. Therefore the result of [1-249] / 250 * 0.1 will return 0, [250-499] returns 0.1 and so on. In simplified terms it means that each heart with a villager gives a 10% chance of sending a gift when their character is selected. BlaDe (talk) 20:17, 24 November 2019 (UTC)