Linha 8: |
Linha 8: |
| | | |
| === Diálogo específico do personagem === | | === Diálogo específico do personagem === |
− | <tt>Characters\Dialogue\*.xnb</tt> contém a maior parte do diálogo para cada caractere (um arquivo por caractere). O jogo escolherá o diálogo em uma das seções abaixo, na ordem mostrada aqui. | + | <samp>Characters\Dialogue\*.xnb</samp> contém a maior parte do diálogo para cada caractere (um arquivo por caractere). O jogo escolherá o diálogo em uma das seções abaixo, na ordem mostrada aqui. |
| | | |
| ====Diálogo especial==== | | ====Diálogo especial==== |
Linha 17: |
Linha 17: |
| ! Descrição | | ! Descrição |
| |- | | |- |
− | | <tt>Rejeição de Dança</tt> | + | | <samp>Rejeição de Dança</samp> |
| | Diálogo usado para rejeitar uma oferta de dança na [[Dança da Flores]]. (Um diálogo diferente é usado se eles ja estiverem aceitado dançar com outro jogador.) | | | Diálogo usado para rejeitar uma oferta de dança na [[Dança da Flores]]. (Um diálogo diferente é usado se eles ja estiverem aceitado dançar com outro jogador.) |
| |- | | |- |
− | | <tt>Divorciado</tt> | + | | <samp>Divorciado</samp> |
| | Diálogo mostrado quando você fala com seu cônjuge divorciado. | | | Diálogo mostrado quando você fala com seu cônjuge divorciado. |
| |- | | |- |
− | | <tt>{{t|Localização}}_Entrada</tt> | + | | <samp>{{t|Localização}}_Entrada</samp> |
− | | Possíveis linhas de diálogo mostradas acima do nome do NPC quando eles inserem o nome. {{t|Localização}}, com 50% de chance. Essa entrada de diálogo pode conter múltiplas opções separadas por <code>/</code>; o jogo, aleatoriamente, irá escolher uma para mostrar.<br /><small>Exemplo: <tt>Entrada Loja de Sementes: "Oi, Pierre!/Agora, O que eu preciso.../Ah, isso parece bom!/Fazendo meu molho especial esta noite!/Pierre! O que há de novo?/Pierre! O que você tem aí para mim?"</tt> | + | | Possíveis linhas de diálogo mostradas acima do nome do NPC quando eles inserem o nome. {{t|Localização}}, com 50% de chance. Essa entrada de diálogo pode conter múltiplas opções separadas por <code>/</code>; o jogo, aleatoriamente, irá escolher uma para mostrar.<br /><small>Exemplo: <samp>Entrada Loja de Sementes: "Oi, Pierre!/Agora, O que eu preciso.../Ah, isso parece bom!/Fazendo meu molho especial esta noite!/Pierre! O que há de novo?/Pierre! O que você tem aí para mim?"</samp> |
| |- | | |- |
− | | <tt>Volte Mais Tarde</tt><br /><tt>Ronco</tt> | + | | <samp>Volte Mais Tarde</samp><br /><samp>Ronco</samp> |
− | | Diálogo do [[Gil]]'s aparece quando você ainda não completou nenhuma meta do novo Adventure Quest. <tt>''Volte Mais Tarde...''</tt> será mostrado uma vez, e nos diálogos subsequentes irá mostrar <tt>Ronco</tt>. | + | | Diálogo do [[Gil]]'s aparece quando você ainda não completou nenhuma meta do novo Adventure Quest. <samp>''Volte Mais Tarde...''</samp> será mostrado uma vez, e nos diálogos subsequentes irá mostrar <samp>Ronco</samp>. |
| |} | | |} |
| | | |
Linha 34: |
Linha 34: |
| | | |
| Variantes: | | Variantes: |
− | * Cada chave pode, opcionalmente, ser prefixada com um [[#Seasons|season name]], Como <tt>springMountain_47_23</tt>. | + | * Cada chave pode, opcionalmente, ser prefixada com um [[#Seasons|season name]], Como <samp>springMountain_47_23</samp>. |
| | | |
− | O jogo verificará as variantes nesta ordem: <tt>{{t|season}}{{t|key}}</tt>, e <tt>{{t|key}}</tt>. As variantes não estão listadas abaixo para simplificar. | + | O jogo verificará as variantes nesta ordem: <samp>{{t|season}}{{t|key}}</samp>, e <samp>{{t|key}}</samp>. As variantes não estão listadas abaixo para simplificar. |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
Linha 43: |
Linha 43: |
| ! description | | ! description |
| |- | | |- |
− | | <tt>{{t|location}}_{{t|x}}_{{t|y}}</tt> | + | | <samp>{{t|location}}_{{t|x}}_{{t|y}}</samp> |
− | | 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> | + | | Dialogue shown in the named location when the NPC is standing at tile position {{t|x}}, {{t|y}}.<br /><small>Example: <samp>Mountain_47_23: "I come here for the peace and quiet."</samp></small> |
| |- | | |- |
− | | <tt>{{t|location}}_{{t|dayName}}</tt> | + | | <samp>{{t|location}}_{{t|dayName}}</samp> |
− | | 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> | + | | Dialogue shown in the named location on the given [[#Days of week|day of week]].<br /><small>Example: <samp>winter_Fri: "One thing I've learned living here... everyone stares at you if you look different."</samp></small> |
| |- | | |- |
− | | <tt>{{t|location}}{{t|hearts}}</tt> | + | | <samp>{{t|location}}{{t|hearts}}</samp> |
− | | 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> | + | | 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: <samp>Saloon8: "Hi there @. I'm glad to see you! You're always welcome here."</samp></small> |
| |- | | |- |
− | | <tt>{{t|location}}</tt> | + | | <samp>{{t|location}}</samp> |
− | | 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> | + | | Dialogue shown in the named location.<br /><small>Example: <samp>Saloon: "Now that I'm here I can finally relax and socialize a bit."</samp></small> |
| |} | | |} |
| | | |
| ====Diálogo da chuva==== | | ====Diálogo da chuva==== |
− | <tt>Characters\Dialogue\rainy.xnb</tt> Contém uma entrada de diálogo por NPC. Existe, aproximadamente, 50% de chance que eles usem esse diálogo se nenhum deles combinarem, está chovendo, e você não é casado ou divorciado com nenhum deles. | + | <samp>Characters\Dialogue\rainy.xnb</samp> Contém uma entrada de diálogo por NPC. Existe, aproximadamente, 50% de chance que eles usem esse diálogo se nenhum deles combinarem, está chovendo, e você não é casado ou divorciado com nenhum deles. |
| | | |
| ====Diálogo Genérico==== | | ====Diálogo Genérico==== |
Linha 63: |
Linha 63: |
| | | |
| Variantes: | | Variantes: |
− | * Each key can optionally be prefixed with a [[#Seasons|season name]], like <tt>spring_14</tt>. | + | * Each key can optionally be prefixed with a [[#Seasons|season name]], like <samp>spring_14</samp>. |
− | * 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. | + | * Each key can optionally be suffixed with <samp>_inlaw_{{t|spouseName}}</samp> (the current player's spouse's internal name), like <samp>Sat_inlaw_Abigail</samp>. 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. | + | Variants are checked in this order: <samp>{{t|season}}{{t|key}}_inlaw_{{t|spouseName}}</samp>, <samp>{{t|season}}{{t|key}}</samp>, and <samp>{{t|key}}_inlaw_{{t|spouseName}}</samp>, and <samp>{{t|key}}</samp>. The variants aren't listed below for simplicity. |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
Linha 73: |
Linha 73: |
| ! description | | ! description |
| |- | | |- |
− | | <tt>{{t|dayOfMonth}}</tt> | + | | <samp>{{t|dayOfMonth}}</samp> |
− | | Dialogue shown on the given 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> | + | | Dialogue shown on the given day of month in the first year only.<br /><small>Example: <samp>10: "Did you watch the game last night?#$b#Or wait, do you even have a TV set...?"</samp></small> |
| |- | | |- |
− | | <tt>{{t|dayOfMonth}}_{{t|firstOrLaterYear}}</tt> | + | | <samp>{{t|dayOfMonth}}_{{t|firstOrLaterYear}}</samp> |
− | | Dialogue shown on the given 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> | + | | Dialogue shown on the given day of month in the [[#First/later year|first/later year]].<br /><small>Example: <samp>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?"</samp></small> |
| |- | | |- |
− | | <tt>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</tt> | + | | <samp>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</samp> |
− | | 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> | + | | 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 <samp>{{t|dayOfWeek}}{{t|hearts}}</samp> key also exists.<br /><small>Example: <samp>Thu2_2: "Well, my Dad is back. Have you met him?#$b#I'm just glad he's okay."</samp></small> |
| |- | | |- |
− | | <tt>{{t|dayOfWeek}}{{t|hearts}}</tt> | + | | <samp>{{t|dayOfWeek}}{{t|hearts}}</samp> |
− | | 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> | + | | 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: <samp>Sun4: "Hey, @.#$e#How's your day going?"</samp></small> |
| |- | | |- |
− | | <tt>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</tt> | + | | <samp>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</samp> |
− | | 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> | + | | 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 <samp>{{t|dayOfWeek}}</samp> key also exists.<br /><small>Example: <samp>Sat_1: "Dad's coming back soon!#$b#I hope he brings me some toys.$u"</samp></small> |
| |- | | |- |
− | | <tt>{{t|dayOfWeek}}</tt> | + | | <samp>{{t|dayOfWeek}}</samp> |
− | | 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> | + | | Dialogue shown on the given [[#Days of week|day of week]].<br /><small>Example: <samp>Mon: "Oh, hey. Taking a break from work?"</samp></small> |
| |} | | |} |
| | | |
| ====Fallback==== | | ====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.") | + | If none of the above match, the game will show the value with key <samp>NPC.cs.4061</samp> in <samp>Strings\StringsFromCSFiles.xnb</samp>. (English version: "Hi.") |
| | | |
| ===Marriage dialogue=== | | ===Marriage dialogue=== |
− | <tt>Characters\Dialogue\MarriageDialogue.xnb</tt> contains dialogue text for all spouses, and each NPC may optionally have their own dialogue file like <tt>Characters\Dialogue\MarriageDialogueAbigail.xnb</tt>. When looking up a dialogue key, it will use the one in the NPC's file if it exists, else the one in the generic file, else a default text (usually blank). | + | <samp>Characters\Dialogue\MarriageDialogue.xnb</samp> contains dialogue text for all spouses, and each NPC may optionally have their own dialogue file like <samp>Characters\Dialogue\MarriageDialogueAbigail.xnb</samp>. When looking up a dialogue key, it will use the one in the NPC's file if it exists, else the one in the generic file, else a default text (usually blank). |
| | | |
| Each dialogue entry has a key with one of these formats: | | Each dialogue entry has a key with one of these formats: |
Linha 104: |
Linha 104: |
| ! description | | ! description |
| |- | | |- |
− | | <tt>{{t|season}}_{{t|day}}</tt> | + | | <samp>{{t|season}}_{{t|day}}</samp> |
− | | Dialogue shown when the day starts, if {{t|season}} and {{t|day}} match the current date.<br /><small>Example: <tt>fall_1</tt>: "''The scent is unmistakable... mushroom, rotting leaves, pumpkin. It's fall, alright. Isn't it lovely?''"</small> | + | | Dialogue shown when the day starts, if {{t|season}} and {{t|day}} match the current date.<br /><small>Example: <samp>fall_1</samp>: "''The scent is unmistakable... mushroom, rotting leaves, pumpkin. It's fall, alright. Isn't it lovely?''"</small> |
| |- | | |- |
− | | <tt>patio_{{t|spouse}}</tt> | + | | <samp>patio_{{t|spouse}}</samp> |
| | Dialogue shown when the NPC is standing on the patio. | | | Dialogue shown when the NPC is standing on the patio. |
| |- | | |- |
− | | <tt>{{t|weather}}_{{t|dayOrNight}}_{{t|random}}</tt> | + | | <samp>{{t|weather}}_{{t|dayOrNight}}_{{t|random}}</samp> |
− | | Daily dialogue. {{t|weather}} is <tt>Rainy</tt> if it's raining, else <tt>Indoor</tt> (even if they're not indoors). {{t|dayOrNight}} is <tt>Night</tt> after 6pm, else <tt>Day</tt>. {{t|random}} is a number -1 to 4, used to randomly select an entry.<br /><small>Example: <tt>Rainy_Night_3</tt>: "''On nights like this, I like to turn the light down low and just listen...$8''"</small> | + | | Daily dialogue. {{t|weather}} is <samp>Rainy</samp> if it's raining, else <samp>Indoor</samp> (even if they're not indoors). {{t|dayOrNight}} is <samp>Night</samp> after 6pm, else <samp>Day</samp>. {{t|random}} is a number -1 to 4, used to randomly select an entry.<br /><small>Example: <samp>Rainy_Night_3</samp>: "''On nights like this, I like to turn the light down low and just listen...$8''"</small> |
| |- | | |- |
− | | <tt>funLeave_{{t|spouse}}</tt> | + | | <samp>funLeave_{{t|spouse}}</samp> |
| | TODO | | | TODO |
| |- | | |- |
− | | <tt>jobLeave_{{t|spouse}}</tt> | + | | <samp>jobLeave_{{t|spouse}}</samp> |
| | TODO | | | TODO |
| |- | | |- |
− | | <tt>funReturn_{{t|spouse}}</tt> | + | | <samp>funReturn_{{t|spouse}}</samp> |
− | | Dialogue shown after 1pm when they enter the farmhouse but before reaching their target position, but only on Monday (any NPC) or Friday (if not Maru/Penny/Harvey).<br /><small>Example: <tt>funReturn_Abigail</tt>: "''Hey! Did you have a good day? Mine went well. It was refreshing to take a walk.$h''"</small> | + | | Dialogue shown after 1pm when they enter the farmhouse but before reaching their target position, but only on Monday (any NPC) or Friday (if not Maru/Penny/Harvey).<br /><small>Example: <samp>funReturn_Abigail</samp>: "''Hey! Did you have a good day? Mine went well. It was refreshing to take a walk.$h''"</small> |
| |- | | |- |
− | | <tt>jobReturn_{{t|spouse}}</tt> | + | | <samp>jobReturn_{{t|spouse}}</samp> |
− | | Dialogue shown after 1pm when they enter the farmhouse but before reaching their target position, but only if <tt>funReturn</tt> isn't shown instead.<br /><small>Example: <tt>jobReturn_Penny</tt>: "''#$c .5#Good evening. My day was fine, thanks! How was yours?$h#$e#Jas and Vincent weren't behaving very well today. I'm still all wound up...''"</small> | + | | Dialogue shown after 1pm when they enter the farmhouse but before reaching their target position, but only if <samp>funReturn</samp> isn't shown instead.<br /><small>Example: <samp>jobReturn_Penny</samp>: "''#$c .5#Good evening. My day was fine, thanks! How was yours?$h#$e#Jas and Vincent weren't behaving very well today. I'm still all wound up...''"</small> |
| |- | | |- |
− | | <tt>{{t|season}}_{{t|spouse}}</tt> | + | | <samp>{{t|season}}_{{t|spouse}}</samp> |
− | | Dialogue shown at 9+ heart levels with a 5% chance each day.<br /><small>Example: <tt>fall_Abigail</tt>: "''Do I smell pumpkin on you? Maybe I'm just dreaming...$h''"</small> | + | | Dialogue shown at 9+ heart levels with a 5% chance each day.<br /><small>Example: <samp>fall_Abigail</samp>: "''Do I smell pumpkin on you? Maybe I'm just dreaming...$h''"</small> |
| |- | | |- |
− | | <tt>Outdoor_{{t|spouse}}</tt> | + | | <samp>Outdoor_{{t|spouse}}</samp> |
− | | Dialogue shown on the farm with a 20% chance.<br /><small>Example: <tt>Outdoor_Abigail</tt>: "''I'm just going to hang out here, okay?#$e#There's a lot of interesting bugs and things out here. *chuckle*$h''"</small> | + | | Dialogue shown on the farm with a 20% chance.<br /><small>Example: <samp>Outdoor_Abigail</samp>: "''I'm just going to hang out here, okay?#$e#There's a lot of interesting bugs and things out here. *chuckle*$h''"</small> |
| |- | | |- |
− | | <tt>Outdoor_{{t|random}}</tt> | + | | <samp>Outdoor_{{t|random}}</samp> |
− | | Dialogue shown on the farm with an 80% chance. {{t|random}} is a number 0–4, used to randomly select an entry.<br /><small>Example: <tt>Outdoor_3</tt>: "''It's pretty cool that we have a cave on our property. It's something I always dreamed about.$h''"</small> | + | | Dialogue shown on the farm with an 80% chance. {{t|random}} is a number 0–4, used to randomly select an entry.<br /><small>Example: <samp>Outdoor_3</samp>: "''It's pretty cool that we have a cave on our property. It's something I always dreamed about.$h''"</small> |
| |- | | |- |
− | | <tt>spouseRoom_{{t|spouse}}</tt> | + | | <samp>spouseRoom_{{t|spouse}}</samp> |
− | | Dialogue shown when the NPC is in their room.<br /><small>Example: <tt>spouseRoom_Abigail</tt>: "''$c .5#I got up a little before you and fed David Jr. He's very active this morning.#$e#I hope you don't mind the guinea pig smell."''</small> | + | | Dialogue shown when the NPC is in their room.<br /><small>Example: <samp>spouseRoom_Abigail</samp>: "''$c .5#I got up a little before you and fed David Jr. He's very active this morning.#$e#I hope you don't mind the guinea pig smell."''</small> |
| |- | | |- |
− | | <tt>OneKid_{{t|random}}</tt> | + | | <samp>OneKid_{{t|random}}</samp> |
− | | Dialogue shown when standing in the kitchen, if they have one child. {{t|random}} is a number 0–4, used to randomly select an entry.<br /><small><tt>OneKid_1</tt>: "''I wonder if %kid1 will grow up to be a farmer like you?''"</small> | + | | Dialogue shown when standing in the kitchen, if they have one child. {{t|random}} is a number 0–4, used to randomly select an entry.<br /><small><samp>OneKid_1</samp>: "''I wonder if %kid1 will grow up to be a farmer like you?''"</small> |
| |- | | |- |
− | | <tt>TwoKids_{{t|random}}</tt> | + | | <samp>TwoKids_{{t|random}}</samp> |
− | | Dialogue shown when standing in the kitchen, if they have two children. {{t|random}} is a number 0–4, used to randomly select an entry.<br /><small><tt>TwoKids_2</tt>: "''I had a dream that %kid2 will grow up to be a famous monster hunter. I've already been thinking about a little armor set.''"</small> | + | | Dialogue shown when standing in the kitchen, if they have two children. {{t|random}} is a number 0–4, used to randomly select an entry.<br /><small><samp>TwoKids_2</samp>: "''I had a dream that %kid2 will grow up to be a famous monster hunter. I've already been thinking about a little armor set.''"</small> |
| |- | | |- |
− | | <tt>{{t|affection}}_{{t|random}}</tt> | + | | <samp>{{t|affection}}_{{t|random}}</samp> |
− | | Dialogue shown inside the farmhouse between 11am and 6pm, ''or'' when the day starts if a different dialogue isn't selected. {{t|affection}} is randomly <tt>Bad</tt> or <tt>Neutral</tt> if they have less than 9 hearts; 50% chance of <tt>Good</tt> and 75% chance of <tt>Good</tt> if you have 10+ or 11+ hearts respectively; else <tt>Neutral</tt> {{t|random}} is a number 0–9, used to randomly select an entry.<br /><small>Example: <tt>Good_5</tt>: "''I was just admiring the mermaid's pendant you gave me... I'll proudly wear this to my grave.$l''"</small> | + | | Dialogue shown inside the farmhouse between 11am and 6pm, ''or'' when the day starts if a different dialogue isn't selected. {{t|affection}} is randomly <samp>Bad</samp> or <samp>Neutral</samp> if they have less than 9 hearts; 50% chance of <samp>Good</samp> and 75% chance of <samp>Good</samp> if you have 10+ or 11+ hearts respectively; else <samp>Neutral</samp> {{t|random}} is a number 0–9, used to randomly select an entry.<br /><small>Example: <samp>Good_5</samp>: "''I was just admiring the mermaid's pendant you gave me... I'll proudly wear this to my grave.$l''"</small> |
| |} | | |} |
| | | |
| ===Event files=== | | ===Event files=== |
− | <tt>Data\Events\*.xnb</tt> contains event scripts, including any dialogue in the event (see [[Modding:Event data]]). | + | <samp>Data\Events\*.xnb</samp> contains event scripts, including any dialogue in the event (see [[Modding:Event data]]). |
| | | |
| ===Descrição de Animação=== | | ===Descrição de Animação=== |
− | <tt>Data\animationDescriptions.xnb</tt> contém pequenos trechos de diálogo para acompanhar certos pontos da programação. | + | <samp>Data\animationDescriptions.xnb</samp> contém pequenos trechos de diálogo para acompanhar certos pontos da programação. |
| | | |
| ===Strings from CS files=== | | ===Strings from CS files=== |
− | <tt>Strings\StringsFromCSFiles.xnb</tt> contains miscellaneous translations. That includes NPC dialogue defined in the code, dialogue that's shared between multiple characters, dialogue for some hardcoded events like marriage, etc. | + | <samp>Strings\StringsFromCSFiles.xnb</samp> contains miscellaneous translations. That includes NPC dialogue defined in the code, dialogue that's shared between multiple characters, dialogue for some hardcoded events like marriage, etc. |
| | | |
− | The file has entries in the form <tt>"<key>": "dialogue string"</tt>, where the key is an arbitrary unique identifier. These must exactly match the key expected by the game, but the keys are just unique identifiers — even though most keys look like <tt>{{t|file name}}.{{t|line number}}</tt>, that's just the convention originally used to assign IDs and it has no meaning or effect (nor does it even necessarily match the current file name or line number). | + | The file has entries in the form <samp>"<key>": "dialogue string"</samp>, where the key is an arbitrary unique identifier. These must exactly match the key expected by the game, but the keys are just unique identifiers — even though most keys look like <samp>{{t|file name}}.{{t|line number}}</samp>, that's just the convention originally used to assign IDs and it has no meaning or effect (nor does it even necessarily match the current file name or line number). |
| | | |
| ====NPC-specific generic dialogue==== | | ====NPC-specific generic dialogue==== |
− | With some ingenuity, you can make each NPC respond differently instead of using the normal static dialogue. For example, you can use {{nexus mod|1915|Content Patcher}} to change <tt>NPC.cs.3962</tt> and <tt>NPC.cs.3963</tt> (to give a bouquet), and <tt>NPC.cs.3980</tt> (for the mermaid pendant acceptance): | + | With some ingenuity, you can make each NPC respond differently instead of using the normal static dialogue. For example, you can use {{nexus mod|1915|Content Patcher}} to change <samp>NPC.cs.3962</samp> and <samp>NPC.cs.3963</samp> (to give a bouquet), and <samp>NPC.cs.3980</samp> (for the mermaid pendant acceptance): |
| <syntaxhighlight lang="json"> | | <syntaxhighlight lang="json"> |
| { | | { |
Linha 172: |
Linha 172: |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | In this example, each NPC will get their response from the <tt>give_flowersA</tt>, <tt>give_flowersB</tt>, and <tt>give_pendant</tt> dialogue key in their [[Modding:Dialogue#Character-specific dialogue|character dialogue]] files. (See [[#Format|format]] below for more info on the syntax.) Note that these should be added for all datable characters to avoid errors. For example, you could add this for Haley: | + | In this example, each NPC will get their response from the <samp>give_flowersA</samp>, <samp>give_flowersB</samp>, and <samp>give_pendant</samp> dialogue key in their [[Modding:Dialogue#Character-specific dialogue|character dialogue]] files. (See [[#Format|format]] below for more info on the syntax.) Note that these should be added for all datable characters to avoid errors. For example, you could add this for Haley: |
| <syntaxhighlight lang="json"> | | <syntaxhighlight lang="json"> |
| { | | { |
Linha 191: |
Linha 191: |
| | | |
| # Event dialogue is read from the appropriate event commands (see [[Modding:Event data]]). | | # Event dialogue is read from the appropriate event commands (see [[Modding:Event data]]). |
− | # Location-specific dialogue is read from <tt>StringsFromCSFiles {{t|location}}.cs</tt>. | + | # Location-specific dialogue is read from <samp>StringsFromCSFiles {{t|location}}.cs</samp>. |
| # Else character dialogue is read from the character-specific files. | | # Else character dialogue is read from the character-specific files. |
− | # If no dialogues were found, the game resorts to hardcoded dialogue from the <tt>StringsFromCSFiles</tt> files (specifically keys prefixed with <tt>NPC.cs</tt> NPC.cs). | + | # If no dialogues were found, the game resorts to hardcoded dialogue from the <samp>StringsFromCSFiles</samp> files (specifically keys prefixed with <samp>NPC.cs</samp> NPC.cs). |
| | | |
| ==Format== | | ==Format== |
− | Dialogue text can contain tokens and commands which control the dialogue box, change the text (e.g. switch between gender-specific strings), inject values, etc. These are parsed by the <tt>Dialogue</tt> class. | + | Dialogue text can contain tokens and commands which control the dialogue box, change the text (e.g. switch between gender-specific strings), inject values, etc. These are parsed by the <samp>Dialogue</samp> class. |
| | | |
| Special tokens: | | Special tokens: |
Linha 205: |
Linha 205: |
| ! description | | ! description |
| |- | | |- |
− | | <tt>#</tt> | + | | <samp>#</samp> |
| | Separates two commands in a dialogue string. | | | Separates two commands in a dialogue string. |
| |- | | |- |
− | | <tt>{</tt> | + | | <samp>{</samp> |
| | TODO. Stands for "breakSpecialCharacter". | | | TODO. Stands for "breakSpecialCharacter". |
| |- | | |- |
− | | <tt>^</tt> | + | | <samp>^</samp> |
| | Gender switch character. The text before it is shown for male farmers, the text after it for female farmers.<br />''Example: <code>Oh, good morning Mr. @!^Oh, good morning Ms. @!</code>'' | | | Gender switch character. The text before it is shown for male farmers, the text after it for female farmers.<br />''Example: <code>Oh, good morning Mr. @!^Oh, good morning Ms. @!</code>'' |
| |- | | |- |
− | | <tt>%</tt> | + | | <samp>%</samp> |
| | Turns the dialogue box into a generic text box.<br />''Example: <code>"%Abigail is lost in her music."</code>'' | | | Turns the dialogue box into a generic text box.<br />''Example: <code>"%Abigail is lost in her music."</code>'' |
| |- | | |- |
− | | <tt>*</tt> | + | | <samp>*</samp> |
| | TODO. Stands for "quickResponseDelineator". | | | TODO. Stands for "quickResponseDelineator". |
| |} | | |} |
Linha 230: |
Linha 230: |
| ! description | | ! description |
| |- | | |- |
− | | <tt>$neutral</tt> | + | | <samp>$neutral</samp> |
| | Switch the speaking character to their neutral portrait. | | | Switch the speaking character to their neutral portrait. |
| |- | | |- |
− | | <tt>$h</tt> | + | | <samp>$h</samp> |
| | Switch the speaking character to their happy portrait. | | | Switch the speaking character to their happy portrait. |
| |- | | |- |
− | | <tt>$s</tt> | + | | <samp>$s</samp> |
| | Switch the speaking character to their sad portrait. | | | Switch the speaking character to their sad portrait. |
| |- | | |- |
− | | <tt>$u</tt> | + | | <samp>$u</samp> |
| | Switch the speaking character to their unique portrait. | | | Switch the speaking character to their unique portrait. |
| |- | | |- |
− | | <tt>$l</tt> | + | | <samp>$l</samp> |
| | Switch the speaking character to their love portrait. | | | Switch the speaking character to their love portrait. |
| |- | | |- |
− | | <tt>$a</tt> | + | | <samp>$a</samp> |
| | Switch the speaking character to their angry portrait. | | | Switch the speaking character to their angry portrait. |
| |- | | |- |
− | | <tt>${{t|id}}</tt> | + | | <samp>${{t|id}}</samp> |
− | | Switch the speaking character to the portrait at the given index in their portraits file. Portraits are numbered from left to right and top to bottom, starting at <tt>$0</tt>. All characters have six standard portraits: <tt>$0</tt> (neutral), <tt>$1</tt> (happy), <tt>$2</tt> (sad), <tt>$3</tt> (unique), <tt>$4</tt> (love), and <tt>$5</tt> (angry). Characters may have custom portraits beyond those for their dialogue and cutscenes.<br/>NOTE: <tt>$1</tt> can't be used as the first dialogue command (see <tt>$1</tt> below). | + | | Switch the speaking character to the portrait at the given index in their portraits file. Portraits are numbered from left to right and top to bottom, starting at <samp>$0</samp>. All characters have six standard portraits: <samp>$0</samp> (neutral), <samp>$1</samp> (happy), <samp>$2</samp> (sad), <samp>$3</samp> (unique), <samp>$4</samp> (love), and <samp>$5</samp> (angry). Characters may have custom portraits beyond those for their dialogue and cutscenes.<br/>NOTE: <samp>$1</samp> can't be used as the first dialogue command (see <samp>$1</samp> below). |
| |} | | |} |
| | | |
Linha 256: |
Linha 256: |
| {|class="wikitable" | | {|class="wikitable" |
| |- | | |- |
− | | <tt>$q {{t|response IDs}} {{t|fallback}}#{{t|text}}</tt> | + | | <samp>$q {{t|response IDs}} {{t|fallback}}#{{t|text}}</samp> |
| | Show a dialogue box containing the given question text. If {{t|response IDs}} (a list delimited by <code>/</code>) contains an answer already given, the question is skipped (along with the rest of this dialogue line), and instead the dialogue entry identified by {{t|fallback}} will be appended to whatever precedes this $q command. The {{t|fallback}} dialogue typically uses a $p command to adjust the text based on the player's answer to this question. | | | Show a dialogue box containing the given question text. If {{t|response IDs}} (a list delimited by <code>/</code>) contains an answer already given, the question is skipped (along with the rest of this dialogue line), and instead the dialogue entry identified by {{t|fallback}} will be appended to whatever precedes this $q command. The {{t|fallback}} dialogue typically uses a $p command to adjust the text based on the player's answer to this question. |
| |- | | |- |
− | | <tt>$r {{t|response ID}} {{t|friendship}} {{t|reaction}}#{{t|answer text}}</tt> | + | | <samp>$r {{t|response ID}} {{t|friendship}} {{t|reaction}}#{{t|answer text}}</samp> |
− | | Define a response option to a $q question dialogue. {{t|answer text}} is the text shown. {{t|response ID}} is used to group responses for future reference (multiple answers can share an answer ID). {{t|friendship}} defines the change in friendship value, positive or negative, if this response is selected. {{t|reaction}} names the dialogue entry from the NPC's <tt>Content\Characters\Dialogue\*.xnb</tt> file that will be the NPC's reaction if this response is selected by the player. | + | | Define a response option to a $q question dialogue. {{t|answer text}} is the text shown. {{t|response ID}} is used to group responses for future reference (multiple answers can share an answer ID). {{t|friendship}} defines the change in friendship value, positive or negative, if this response is selected. {{t|reaction}} names the dialogue entry from the NPC's <samp>Content\Characters\Dialogue\*.xnb</samp> file that will be the NPC's reaction if this response is selected by the player. |
| |- | | |- |
− | | <tt>$p {{t|response ID}}#{{t|match text}}|{{t|no-match text}}</tt> | + | | <samp>$p {{t|response ID}}#{{t|match text}}|{{t|no-match text}}</samp> |
| | Stands for "dialoguePrerequisite". Shows different text depending on whether the player gave a particular answer to a previously-asked question. If {{t|response ID}} matches an answer the player gave, {{t|match text}} is shown; otherwise, {{t|no-match text}} is shown. These texts, separated by <code>|</code>, can each contain multiple commands separated by <code>#</code>. This does not need to be the first command in the dialogue string. | | | Stands for "dialoguePrerequisite". Shows different text depending on whether the player gave a particular answer to a previously-asked question. If {{t|response ID}} matches an answer the player gave, {{t|match text}} is shown; otherwise, {{t|no-match text}} is shown. These texts, separated by <code>|</code>, can each contain multiple commands separated by <code>#</code>. This does not need to be the first command in the dialogue string. |
| |- | | |- |
− | | <tt>$b</tt> | + | | <samp>$b</samp> |
| | Indicates pauses in dialogue, where the player will need to click for the next part to load in a new dialogue box. | | | Indicates pauses in dialogue, where the player will need to click for the next part to load in a new dialogue box. |
| |- | | |- |
− | | <tt>$e</tt> | + | | <samp>$e</samp> |
− | | Ends the current dialogue, closing the dialogue box and resuming player control. The dialogue following <tt>$e</tt> will require a new interaction with the NPC. | + | | Ends the current dialogue, closing the dialogue box and resuming player control. The dialogue following <samp>$e</samp> will require a new interaction with the NPC. |
| |- | | |- |
− | | <tt>$k</tt> | + | | <samp>$k</samp> |
| | TODO. Stands for "dialogueKill". | | | TODO. Stands for "dialogueKill". |
| |- | | |- |
− | | <tt>$c {{t|probability}}#{{t|text1}}#{{t|text2}}</tt> | + | | <samp>$c {{t|probability}}#{{t|text1}}#{{t|text2}}</samp> |
| | Show {{t|text1}} with a {{t|probability}} between 0 and 1; otherwise, show {{t|text2}}. E.g. <code>$c 0.9</code> for a 90% chance of {{t|text1}} and a 10% chance of {{t|text2}}. NOTE: Replacer commands (see below) do not work in {{t|text1}}. This does not need to be the first command in a dialogue string. It is unaffected by daily luck. | | | Show {{t|text1}} with a {{t|probability}} between 0 and 1; otherwise, show {{t|text2}}. E.g. <code>$c 0.9</code> for a 90% chance of {{t|text1}} and a 10% chance of {{t|text2}}. NOTE: Replacer commands (see below) do not work in {{t|text1}}. This does not need to be the first command in a dialogue string. It is unaffected by daily luck. |
| |- | | |- |
− | | <tt>$d {{t|bus|joja|cc}}</tt> | + | | <samp>$d {{t|bus|joja|cc}}</samp> |
| | dialogueDependingOnWorldState<br/> | | | dialogueDependingOnWorldState<br/> |
| <code>"Tue4": "$d</code> {{t|dependence}}<code>#|Dialogue when dependence value is true.|Dialogue in other situations.",</code><br/> | | <code>"Tue4": "$d</code> {{t|dependence}}<code>#|Dialogue when dependence value is true.|Dialogue in other situations.",</code><br/> |
| The dependence can take one of three values: "bus": is the bus fixed?; "joja": is JoJa Mart in business?; "cc": has the Community Centre been completed? This command must start the dialogue string and does not allow for any other dialogue commands in the string. | | The dependence can take one of three values: "bus": is the bus fixed?; "joja": is JoJa Mart in business?; "cc": has the Community Centre been completed? This command must start the dialogue string and does not allow for any other dialogue commands in the string. |
| |- | | |- |
− | | <tt>$y</tt> | + | | <samp>$y</samp> |
| | TODO. Stands for "dialogueQuickResponse"; works like $q, but within one and the same text line. | | | TODO. Stands for "dialogueQuickResponse"; works like $q, but within one and the same text line. |
| |- | | |- |
− | | <tt>$1 {{t|letter ID}}#{{t|1st-time text}} #$e# {{t|nth-time text}}</tt> | + | | <samp>$1 {{t|letter ID}}#{{t|1st-time text}} #$e# {{t|nth-time text}}</samp> |
| | Creates a line of dialogue which the character will only see once (at most). {{t|1st-time text}} is shown only if {{t|letter ID}} has not been marked as sent yet (and this marks it as sent); otherwise, {{t|nth-time text}} is shown. {{t|letter ID}} should not correspond to an actual piece of mail (because it will not be sent), but it can be referenced by events or other dialogue lines. | | | Creates a line of dialogue which the character will only see once (at most). {{t|1st-time text}} is shown only if {{t|letter ID}} has not been marked as sent yet (and this marks it as sent); otherwise, {{t|nth-time text}} is shown. {{t|letter ID}} should not correspond to an actual piece of mail (because it will not be sent), but it can be referenced by events or other dialogue lines. |
| |- | | |- |
− | | <tt>%fork</tt> | + | | <samp>%fork</samp> |
| | TODO. Seems to have to do with questions and forks, however is used sparingly in game code. May be limited to forking events. | | | TODO. Seems to have to do with questions and forks, however is used sparingly in game code. May be limited to forking events. |
| |- | | |- |
− | | <tt>[# # #]</tt> | + | | <samp>[# # #]</samp> |
| | Gives the player a random item, from the pool of item IDs within the brackets. | | | Gives the player a random item, from the pool of item IDs within the brackets. |
| |} | | |} |
Linha 398: |
Linha 398: |
| {|class="wikitable" | | {|class="wikitable" |
| |- | | |- |
− | | <tt>@</tt> | + | | <samp>@</samp> |
| | Nome do Fazendeiro.<br />''Example: <code>Eai @!</code>'' | | | Nome do Fazendeiro.<br />''Example: <code>Eai @!</code>'' |
| |- | | |- |
− | | <tt>%adj</tt> | + | | <samp>%adj</samp> |
| | Adjetivo aleatório. (Definido em StringsFromCSFiles.xnb) | | | Adjetivo aleatório. (Definido em StringsFromCSFiles.xnb) |
| |- | | |- |
− | | <tt>%substantivo</tt> | + | | <samp>%substantivo</samp> |
| | Substantivo aleatório. (Definido em StringsFromCSFiles.xnb) | | | Substantivo aleatório. (Definido em StringsFromCSFiles.xnb) |
| |- | | |- |
− | | <tt>%lugar</tt> | + | | <samp>%lugar</samp> |
| | Nome de lugar aleatório. (Definido em StringsFromCSFiles.xnb) | | | Nome de lugar aleatório. (Definido em StringsFromCSFiles.xnb) |
| |- | | |- |
− | | <tt>%cônjuge</tt> | + | | <samp>%cônjuge</samp> |
| | O nome do cônjuge do fazendeiro. | | | O nome do cônjuge do fazendeiro. |
| |- | | |- |
− | | <tt>%nome</tt> | + | | <samp>%nome</samp> |
| | Um nome gerado aleatoriamente | | | Um nome gerado aleatoriamente |
| |- | | |- |
− | | <tt>%PrimeiroNomeCarta</tt> | + | | <samp>%PrimeiroNomeCarta</samp> |
| | As primeiras 2 cartas no nome do fazendeiro. (Exemplo: Se o nome do Fazendeiro for Jack.) "Olhe! Está soletrando algo!, I... ❤, J-A. Espere.. I, ❤, Ja...?) | | | As primeiras 2 cartas no nome do fazendeiro. (Exemplo: Se o nome do Fazendeiro for Jack.) "Olhe! Está soletrando algo!, I... ❤, J-A. Espere.. I, ❤, Ja...?) |
| |- | | |- |
− | | <tt>%tempo</tt> | + | | <samp>%tempo</samp> |
| | Tempo atual. | | | Tempo atual. |
| |- | | |- |
− | | <tt>%banda</tt> | + | | <samp>%banda</samp> |
| | O nome da banda de Sam e Sebastian. | | | O nome da banda de Sam e Sebastian. |
| |- | | |- |
− | | <tt>%livro</tt> | + | | <samp>%livro</samp> |
| | O título do livro de Elliott. | | | O título do livro de Elliott. |
| |- | | |- |
− | | <tt>%rival</tt> | + | | <samp>%rival</samp> |
| | Um primeiro nome aleatório do mesmo gênero que o fazendeiro vindo de StringsFromCSFiles.xnb (keys Utility.cs.5499 through Utility.cs.5560). O nome não irá combinar com o do Fazendeiro. | | | Um primeiro nome aleatório do mesmo gênero que o fazendeiro vindo de StringsFromCSFiles.xnb (keys Utility.cs.5499 through Utility.cs.5560). O nome não irá combinar com o do Fazendeiro. |
− | | <tt>%pet</tt> | + | | <samp>%pet</samp> |
| | O nome do pet de estimação do fazendeiro. | | | O nome do pet de estimação do fazendeiro. |
| |- | | |- |
− | | <tt>%fazenda</tt> | + | | <samp>%fazenda</samp> |
| | Nome da Fazenda. | | | Nome da Fazenda. |
| |- | | |- |
− | | <tt>%favorito</tt> | + | | <samp>%favorito</samp> |
| | Coisa favorita do Fazendeiro. | | | Coisa favorita do Fazendeiro. |
| |- | | |- |
− | | <tt>%criança1</tt> | + | | <samp>%criança1</samp> |
| | O nome da primeira criança do Fazendeiro. | | | O nome da primeira criança do Fazendeiro. |
| |- | | |- |
− | | <tt>%criança2</tt> | + | | <samp>%criança2</samp> |
| | O nome da segunda criança do Fazendeiro. | | | O nome da segunda criança do Fazendeiro. |
| |} | | |} |
Linha 449: |
Linha 449: |
| O jogo usa esses valores pré-definidos em algumas chaves de diálogo. Essa seção está vincula com a de cima quando necessário. | | O jogo usa esses valores pré-definidos em algumas chaves de diálogo. Essa seção está vincula com a de cima quando necessário. |
| ===Dias da Semana=== | | ===Dias da Semana=== |
− | * <tt>Seg</tt> | + | * <samp>Seg</samp> |
− | * <tt>Ter</tt> | + | * <samp>Ter</samp> |
− | * <tt>Qua</tt> | + | * <samp>Qua</samp> |
− | * <tt>Qui</tt> | + | * <samp>Qui</samp> |
− | * <tt>Sex</tt> | + | * <samp>Sex</samp> |
− | * <tt>Sáb</tt> | + | * <samp>Sáb</samp> |
− | * <tt>Dom</tt> | + | * <samp>Dom</samp> |
| | | |
| ===Estações=== | | ===Estações=== |
− | * <tt>Primavera</tt> | + | * <samp>Primavera</samp> |
− | * <tt>Verão</tt> | + | * <samp>Verão</samp> |
− | * <tt>Outono</tt> | + | * <samp>Outono</samp> |
− | * <tt>Inverno</tt> | + | * <samp>Inverno</samp> |
| | | |
| ===Primeiro/Último ano=== | | ===Primeiro/Último ano=== |
Linha 470: |
Linha 470: |
| ! Significados | | ! Significados |
| |- | | |- |
− | | <tt>1</tt> | + | | <samp>1</samp> |
| | Ocorre no primeiro ano. | | | Ocorre no primeiro ano. |
| |- | | |- |
− | | <tt>2</tt> | + | | <samp>2</samp> |
| | Ocorre em qualquer ano após o primeiro (não apenas no segundo ano). | | | Ocorre em qualquer ano após o primeiro (não apenas no segundo ano). |
| |} | | |} |