Changes

Jump to navigation Jump to search
4,839 bytes added ,  04:45, 2 July 2018
→‎Character-specific dialogue: replace with actual implementation
Line 7: Line 7:     
===Character-specific dialogue===
 
===Character-specific dialogue===
<tt>Characters\Dialogue\*.xnb</tt> contains most of the dialogue for each character (one file per character). The format in this file is:
+
<tt>Characters\Dialogue\*.xnb</tt> contains most of the dialogue for each character (one file per character). The game will choose dialogue from one of the sections below, in the order shown here.
   −
<source lang="yaml">
+
====Special dialogue====
"<preface>[heart level]_[date]_[year][suffix]": "String"
+
There are a few predefined keys for specific cases:
</source>
+
{| class="wikitable"
 +
|-
 +
! key format
 +
! description
 +
|-
 +
| <tt>danceRejection</tt>
 +
| Dialogue used to reject an offer to dance at the [[Flower Dance]]. (A different dialogue is used if they've already agreed to dance with another player.)
 +
|-
 +
| <tt>divorced</tt>
 +
| Dialogue shown when you speak to your divorced spouse.
 +
|-
 +
| <tt>{{t|location}}_Entry</tt>
 +
| Possible dialogue lines shown above the NPC's name when they enter the named {{t|location}}, with a 50% chance. This dialogue entry can contain multiple options separated by <code>/</code>; the game will randomly choose one to display.<br /><small>Example: <tt>SeedShop_Entry: "Hi, Pierre!/Now, what do I need.../Ah, that looks good!/Makin' my special sauce tonight!/Pierre! What's fresh?/Pierre! Waddya got for me?"</tt>
 +
|-
 +
| <tt>ComeBackLater</tt><br /><tt>Snoring</tt>
 +
| [[Gil]]'s dialogue when you haven't completed any new Adventure Quest goals. <tt>ComeBackLater</tt> will be shown once, and all subsequent dialogues will show <tt>Snoring</tt>.
 +
|}
   −
...where:
+
====Override dialogue====
* {{t|preface}} is an arbitrary key which identifies what it's for (like <tt>Introduction</tt>, <tt>Event</tt>, <tt>Season</tt>, etc).
+
Otherwise the game will choose dialogue in this order, if one of these keys is defined.
* {{o|heart level}} is the ''minimum'' heart level the player must have reached with the NPC for this dialogue to appear.
  −
* {{o|date}} is the numeric day of the month (like <tt>28</tt>), or the three-character weekday (like <tt>Mon</tt>).
  −
* {{o|year}} is <tt>1</tt> for year one, or <tt>2</tt> for any year after that.
  −
* {{o|suffix}} is any string further identifying the dialogue (like <tt>inlaw_Abigail</tt>, for dialogue that only appears when you're married to Abigail).
     −
If multiple dialogues are eligible, the game prioritises by the following:
+
Variants:
# marriage status;
+
* Each key can optionally be prefixed with a [[#seasons|season name]], like <tt>springMountain_47_23</tt>.
# preface;
+
 
# suffix;
+
The game will check variants in this order: <tt>{{t|season}}{{t|key}}</tt>, and <tt>{{t|key}}</tt>. The variants aren't listed below for simplicity.
# in-law status;
+
 
# day of month;
+
{| class="wikitable"
# year;
+
|-
# heart level;
+
! key format
# day of week.
+
! description
 +
|-
 +
| <tt>{{t|location}}_{{t|x}}_{{t|y}}</tt>
 +
| Dialogue shown in the named location when the NPC is standing at tile position {{t|x}}, {{t|y}}.<br /><small>Example: <tt>Mountain_47_23: "I come here for the peace and quiet."</tt></small>
 +
|-
 +
| <tt>{{t|location}}_{{t|dayName}}</tt>
 +
| Dialogue shown in the named location on the given [[#days of week|day of week]].<br /><small>Example: <tt>winter_Fri: "One thing I've learned living here... everyone stares at you if you look different."</tt></small>
 +
|-
 +
| <tt>{{t|location}}{{t|hearts}}</tt>
 +
| Dialogue shown in the named location if you have at least {{t|hearts}} hearts with them. The {{t|hearts}} will be checked in the order 10, 8, 6, 4, 2 (no other value will be recognised).<br /><small>Example: <tt>Saloon8: "Hi there @. I'm glad to see you! You're always welcome here."</tt></small>
 +
|-
 +
| <tt>{{t|location}}</tt>
 +
| Dialogue shown in the named location.<br /><small>Example: <tt>Saloon: "Now that I'm here I can finally relax and socialize a bit."</tt></small>
 +
|}
 +
 
 +
====Generic dialogue====
 +
If none of the above match, the game will choose one of these in the order shown here.
 +
 
 +
Variants:
 +
* Each key can optionally be prefixed with a [[#seasons|season name]], like <tt>spring_14</tt>.
 +
* Each key can optionally be suffixed with <tt>_inlaw_{{t|spouseName}}</tt> (the current player's spouse's internal name), like <tt>Sat_inlaw_Abigail</tt>. The NPC doesn't actually need to be related to the spouse.
 +
 
 +
Variants are checked in this order: <tt>{{t|season}}{{t|key}}_inlaw_{{t|spouseName}}</tt>, <tt>{{t|season}}{{t|key}}</tt>, and <tt>{{t|key}}_inlaw_{{t|spouseName}}</tt>, and <tt>{{t|key}}</tt>. The variants aren't listed below for simplicity.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! key format
 +
! description
 +
|-
 +
| <tt>{{t|dayOfMonth}}</tt>
 +
| Dialogue shown on the given [[#days of month|day of month]] in the first year only.<br /><small>Example: <tt>10: "Did you watch the game last night?#$b#Or wait, do you even have a TV set...?"</tt></small>
 +
|-
 +
| <tt>{{t|dayOfMonth}}_{{t|firstOrLaterYear}}</tt>
 +
| Dialogue shown on the given [[#days of month|day of month]] in the [[#first/later year|first/later year]].<br /><small>Example: <tt>2_1: "My husband Kent is a soldier, working overseas. That's why he's not here right now.#$b#I know he'll come back safe once his tour is over!!#$e#Need something?"</tt></small>
 +
|-
 +
| <tt>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</tt>
 +
| Dialogue shown on the given [[#days of week|day of week]] if you have at least {{t|hearts}} hearts with them, in the [[#first/later year|first/later year]]. The {{t|hearts}} will be checked in the order 10, 8, 6, 4, 2 (no other value will be recognised).<br />'''Bug:''' only shown if an equivalent <tt>{{t|dayOfWeek}}{{t|hearts}}</tt> key also exists.<br /><small>Example: <tt>Thu2_2: "Well, my Dad is back. Have you met him?#$b#I'm just glad he's okay."</tt></small>
 +
|-
 +
| <tt>{{t|dayOfWeek}}{{t|hearts}}</tt>
 +
| Dialogue shown on the given [[#days of week|day of week]] if you have at least {{t|hearts}} hearts with them. The {{t|hearts}} will be checked in the order 10, 8, 6, 4, 2 (no other value will be recognised).<br /><small>Example: <tt>Sun4: "Hey, @.#$e#How's your day going?"</tt></small>
 +
|-
 +
| <tt>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</tt>
 +
| Dialogue shown on the given [[#days of week|day of week]] in the [[#first/later year|first/later year]].<br />'''Bug:''' only shown if an equivalent <tt>{{t|dayOfWeek}}</tt> key also exists.<br /><small>Example: <tt>Sat_1: "Dad's coming back soon!#$b#I hope he brings me some toys.$u"</tt></small>
 +
|-
 +
| <tt>{{t|dayOfWeek}}</tt>
 +
| Dialogue shown on the given [[#days of week|day of week]].<br /><small>Example: <tt>Mon: "Oh, hey. Taking a break from work?"</tt></small>
 +
|}
 +
 
 +
====Fallback====
 +
If none of the above match, the game will show the value with key <tt>NPC.cs.4061</tt> in <tt>Strings\StringsFromCSFiles.xnb</tt>. (English version: "Hi.")
 +
 
 +
===Character-specific rain dialogue===
 +
<tt>Characters\Dialogue\rainy.xnb</tt> contains one dialogue entry per NPC. There's a roughly 50% chance they'll use this dialogue if it's raining and you're not married to or divorced from them.
    
===Strings from CS files===
 
===Strings from CS files===
translators
8,438

edits

Navigation menu