Diferenças entre edições de "Modificações:Dados climáticos"

Fonte: Stardew Valley Wiki
Saltar para a navegação Saltar para a pesquisa
 
(Há 13 revisões intermédias de 5 utilizadores que não estão a ser apresentadas)
Linha 1: Linha 1:
 
← [[Modificações:Índice|Índice]]
 
← [[Modificações:Índice|Índice]]
{{Traduzir}}
 
 
Esta página documenta como é gerado o [[clima]] dentro do jogo.
 
Esta página documenta como é gerado o [[clima]] dentro do jogo.
  
 
==Dados==
 
==Dados==
O clima é controlado integralmente pelo campo <tt>Game1::weatherForTomorrow</tt>. Os possível valores são:
+
O clima é controlado integralmente pelo campo <samp>Game1::weatherForTomorrow</samp>. Os possível valores são:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! valor
 
! valor
Linha 13: Linha 12:
 
|-
 
|-
 
| 0
 
| 0
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
 
| Ensolarado
 
| Ensolarado
 
|-
 
|-
 
| 1
 
| 1
| <tt>weather_rain</tt>
+
| <samp>weather_rain</samp>
 
| Chovendo
 
| Chovendo
 
|-
 
|-
 
| 2
 
| 2
| <tt>weather_debris</tt>
+
| <samp>weather_debris</samp>
 
| Ventando
 
| Ventando
 
|-
 
|-
 
| 3
 
| 3
| <tt>weather_lightning</tt>
+
| <samp>weather_lightning</samp>
 
| Tempestade
 
| Tempestade
 
|-
 
|-
 
| 4
 
| 4
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
 
| Festival
 
| Festival
 
|-
 
|-
 
| 5
 
| 5
| <tt>weather_snow</tt>
+
| <samp>weather_snow</samp>
 
| Neve
 
| Neve
 
|-
 
|-
 
| 6
 
| 6
| <tt>weather_wedding</tt>
+
| <samp>weather_wedding</samp>
 
| Casamento
 
| Casamento
 
|}
 
|}
Linha 43: Linha 42:
 
==Algoritmo==
 
==Algoritmo==
 
===Clima fixo===
 
===Clima fixo===
Certas dadas possuem sempre o mesmo clima:
+
Certas datas possuem sempre o mesmo clima:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! data
 
! data
Linha 52: Linha 51:
 
|-
 
|-
 
| primavera 1
 
| primavera 1
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt> e <tt>tv</tt>
+
| <samp>newday</samp> e <samp>tv</samp>
 
|-
 
|-
 
| primevera 2 (ano 1)
 
| primevera 2 (ano 1)
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| primavera 3 (ano 1)
 
| primavera 3 (ano 1)
| <tt>weather_rain</tt>
+
| <samp>weather_rain</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| primavera 4 (ano 1)
 
| primavera 4 (ano 1)
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| primavera 13
 
| primavera 13
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| primavera 24
 
| primavera 24
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| verão 1
 
| verão 1
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt> and <tt>tv</tt>
+
| <samp>newday</samp> e <samp>tv</samp>
 
|-
 
|-
 
| verão 11
 
| verão 11
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| verão 13
 
| verão 13
| <tt>weather_lightning</tt>
+
| <samp>weather_lightning</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| verão 26
 
| verão 26
| <tt>weather_lightning</tt>
+
| <samp>weather_lightning</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| verão 28
 
| verão 28
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| outono 1
 
| outono 1
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt> and <tt>tv</tt>
+
| <samp>newday</samp> e <samp>tv</samp>
 
|-
 
|-
 
| outono 16
 
| outono 16
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| outono 27
 
| outono 27
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| inverno 1
 
| inverno 1
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt> and <tt>tv</tt>
+
| <samp>newday</samp> e <samp>tv</samp>
 
|-
 
|-
 
| inverno 8
 
| inverno 8
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| inverno 14
 
| inverno 14
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| inverno 15
 
| inverno 15
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| inverno 16
 
| inverno 16
| <tt>weather_sunny</tt>
+
| <samp>weather_sunny</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|-
 
|-
 
| inverno 25
 
| inverno 25
| <tt>weather_festival</tt>
+
| <samp>weather_festival</samp>
| <tt>newday</tt>
+
| <samp>newday</samp>
 
|}
 
|}
  
 
===Geração do clima===
 
===Geração do clima===
O clima em Stardew Valley é definido dentro da função <tt>Game1::newDayAfterFade()</tt> (após o código de mudança de dia, mas antes do evento do SMAPI <tt>SaveEvents.BeforeSave</tt>).
+
O clima em Stardew Valley é definido dentro da função <samp>Game1::newDayAfterFade()</samp> (após o código de mudança de dia, mas antes do evento do SMAPI <samp>SaveEvents.BeforeSave</samp>).
  
 
O jogo segue estes passos para decidir que clima e detritos serão definidos para o dia seguinte:
 
O jogo segue estes passos para decidir que clima e detritos serão definidos para o dia seguinte:
  
 
# Verifique o [[#Forced weather|clima fixo]].
 
# Verifique o [[#Forced weather|clima fixo]].
# Se hoje é um festival, define o clima como <tt>weather_festival</tt>.
+
# Se hoje é um festival, define o clima como <samp>weather_festival</samp>.
# Se hoje é um casamento, define o clima como <tt>weather_wedding</tt>.
+
# Se hoje é um casamento, define o clima como <samp>weather_wedding</samp>.
# Define <tt>Game1::wasRainingYesterday</tt> com base em se havia chuva ou tempestade.
+
# Define <samp>Game1::wasRainingYesterday</samp> com base em se havia chuva ou tempestade.
# Redefine todos os sinalizadores de tempo e os coloca no seguinte padrão
+
# Redefine todos os sinalizadores de tempo e os coloca no seguinte padrão:
## Se vai haver chuva ou tempestade, ajusta o sinal de chuva para true
+
## Se vai haver chuva ou tempestade, ajusta o sinal de chuva para true;
## Se vai haver uma tempestade, ajusta o sinal de tempestade para true
+
## Se vai haver uma tempestade, ajusta o sinal de tempestade para true;
## Se o tempo é (ensolarado, detritos) ou (festival, nevando, casamento), limpa todos os sinalizadores
+
## Se o tempo é (ensolarado, detritos) ou (festival, nevando, casamento), limpa todos os sinalizadores;
## Se estiver negando, define nevando para true
+
## Se estiver nevando, define nevando para true;
## Em seguida, define a música com base nisto
+
## Em seguida, define a música com base nisto;
## Limpa a matriz meteorológica de detritos e os sinalizadores
+
## Limpa a matriz meteorológica de detritos e os sinalizadores;
## if bloom isn't null, clear it's visibility
+
## Se o pólen não for nulo, limpa sua visibilidade;
## If the wedding is debris, populate the debris array.
+
## Se o casamento é detrito, popula o array de detritos;
# If it's not raining, and the chance to rain tomorrow is less than .1, it will try to create a bloom day.
+
# Se não está chovendo e a chance de chover amanhã é menor que 0,1, o jogo tentará criar um dia com pólen.
# It then calculates the rain chance for tomorrow. It follows the following algorithm
+
# O jogo então calcula a chance de chuva para amanhã. Ele segue o seguinte algoritmo:
## Check to see if it's summer.
+
## Checa se é verão:
### If not, check to see if it's winter.
+
### Se não é verão, checa se é inverno:
#### If it's not, the rain chance is .183
+
#### Se não é inverno, a chance de chuva é de 0,183;
#### Else, it's .63  
+
#### Senão, é 0,63;
### If it is, it uses the following: Check if it's day 1.
+
### Se é verão, o jogo usa o seguinte: Checa se é o dia 1;
#### If it's not, the chance is .12 + <tt>Game1::dayOfMonth</tt> * 3/1000
+
#### Se não é, a chance é de 0,12 + <samp>Game1::dayOfMonth</samp> * 3/1000;
#### If it is, the chance is 0. Which.. is kinda redundant, as the force days take care of this.
+
#### Se é, a chance é 0. O que.. é meio redundante, já que os dias de clima fixo já cuidam disso;
# Check to see if a random number is less than the odds. If it is, it follows the following algorithm
+
# Checa se um número randômico é menor do que as chances. Se sim, o jogo segue o seguinte algoritmo:
## Set <tt>Game1::weatherForTomorrow</tt> to <tt>weather_rain</tt>
+
## Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_rain</samp>;
## If:
+
## Se:
### It's summer, and if a random number is less than .85
+
### É verão e o número randômico é menor que 0,85;
### Or If it's not winter, and if a random number is less than .25 AND the day of the month is more than 2 and more than 27 days have been played
+
### Ou se não é inverno e se o número randômico é menor que 0,25 E o dia do mês é maior que 2 e mais do que 27 dias já foram jogados;
### Set <tt>Game1::weatherForTomorrow</tt> to <tt>weather_lightning</tt>
+
### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_lightning</samp>
## If it is winter
+
## Se e inverno:
### Set <tt>Game1::weatherForTomorrow</tt> to <tt>weather_snow</tt>
+
### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_snow</samp>
# Else, if it's over the rain odds.
+
# Senão, se o número for maior que a chance de chover:
## If you've played less than 3 days.
+
## Se você jogou menos que 3 dias:
## Or: if
+
## Ou, se:
### It's not spring or a random number is greater than or equal to .2 (so 80%) and spring.
+
### Não é primavera ou um número randômico é igual ou maior a 0,2 (então 80%) e é primavera;
### And it's not fall or a random number is greater than or equal to .6 (so 40%) and fall.
+
### E não é outono ou um número randômico é maior ou igual a 0,6 (então 40%) e é outono;
### Or: If there is a wedding today
+
### Ou, se é um dia de casamento hoje:
#### Set <tt>Game1::weatherForTomorrow</tt> to <tt>weather_sunny</tt> if true
+
#### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_sunny</samp> se verdadeiro;
#### Set <tt>Game1::weatherForTomorrow</tt> to <tt>weather_debris</tt> if false
+
#### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_debris</samp> se falso;
## Check if tomorrow is a festival, and set weather to <tt>weather_festival</tt> if true.
+
## Checa se amanhã e um festival e define o clima para <samp>weather_festival</samp> se verdadeiro;
## Again force the 3rd day to be <tt>weather_rain</tt>
+
## Novamente força o terceiro dia a ser <samp>weather_rain</samp>;
  
At this point, the main function is done setting weather.
+
Nesse ponto, a função principal do jogo termina a definição do clima.
  
===TV Channel===
+
===Previsão do tempo===
The TV checks the weather, but will occasionally set it on certain days. It follows the following chart:
+
A TV checa o clima, mas vai ocasionalmente defini-lo em certos dias. Isso e mostrado na seguinte tabela.
  
The TV force sets by:
+
A TV define o clima nos dias:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
! date
+
! data
! weather
+
! clima
 
|-
 
|-
| spring 1
+
| primavera 1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|-
 
|-
| spring 3
+
| primavera 3
| <tt>weather_rainy</tt
+
| <samp>weather_rainy</samp
 
|-
 
|-
| summer 1
+
| verão1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|-
 
|-
| fall 1
+
| outono 1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|-
 
|-
| winter 1
+
| inverno 1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|}
 
|}
  
<small>¹ Also set (and thus overridden) by the <tt>Game1::newDayAfterFade()</tt> method.</small><br />
+
<small>¹ Também definido (e portanto sobrescrito) pelo método <samp>Game1::newDayAfterFade()</samp>.</small><br />
  
The TV will check the weather and show the following message:
+
A TV irá checar o clima e mostrará a seguinte mensagem:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
! weather
+
! clima
! message
+
! menssagem
 
|-
 
|-
| sunny or wedding
+
| ensolarado ou casamento
| 50% chance each:
+
| 50% de chance cada:
* "It's going to be clear and sunny all day."
+
* "O dia todo será claro e ensolarado."
* "It's going to be a beautiful, sunny day tommorow!"
+
* "Amanhã será um dia lindo e ensolarado!"
 
|-
 
|-
| rain
+
| chuva
| "It's going to rain all day tomorrow"
+
| "Vai chover o dia todo amanhã."
 
|-
 
|-
| debris
+
| deritos
| Per conditions:
+
| Por condições:
# If spring: "Partially cloudy with a light breeze. Expect lots of pollen!"
+
# Se primavera: "Parcialmente nublado com uma brisa leve. Esperem por bastante pólen!"
# If not fall: "It's going to snow all day. Make sure you bundle up, folks!" and defaults with: "It's going to be cloudy, with gusts of wind throught the day."
+
# Se não é outono: "Vai nevar o dia todo. Se agrasalhem, pessoal!" e o seu padrão é: "O dia vai ser nublado e com rajadas de vento durante todo o dia."
# If storm: "Looks like a storm is approaching. Thunder and lightning is expected."
+
# Se tempestade: "Parece que uma tempestade está se aproximando. Vão cair raios e trovões."
# If festival, it attempts to read the festival data. If it fails, it will say "Um... that's odd. My information sheet just says 'null'. This is embarrassing..." If it succeeds, it will read out where it is and when it is.
+
# Se festival, o jogo tenta ler as informações do festival. Se ele falhar, a seguinte mensagem será mostrada "... que estranho. A minha planilha de informações só diz \"nulo\". Que vergonha... " Se ele tiver sucesso ele falará quando e onde é o festival.
# If snow, a 50% chance of one of two strings: "Expect a few inches of snow tomorrow" or "Bundle up, folks. It's going to snow tomorrow!"
+
# Se nevar, tem 50% de chance entre dois possíveis diálogos: "Esperem bastante neve amanhã." ou "Agasalhem-se, pessoal. Vai nevar amanhã!"
 
|-
 
|-
| ''any other''
+
| ''qualquer outro''
| Returns an empty string (should never happen).
+
| Retorna uma string vazia (nunca deve acontecer).
 
|}
 
|}
  
'''Note:''' the TV will not necessarily be accurate for any other day than non festival days, the first of the month and the 3rd of spring, which are force-set by the <tt>Game1::newDayAfterFade</tt> method. Farmhands (and not host players) may not even get that accuracy for the first of the month and 3rd of spring.
+
'''Nota:''' A TV não será necessariamente precisa para qualquer outro dia que não seja dias de festival, o primeiro dia do mês e o terceiro dia da primavera, que são definidos à força pelo método <samp>Game1::newDayAfterFade</samp>. Ajudantes de fazenda(e jogadores que não são o host) podem até mesmo não conseguir essa precisão no primeiro dia do mês ou no terceiro dia da primavera.
  
'''Note 2:''' The Night Market is not considered a festival for the purposes of weather.
+
'''Nota 2:''' O Mercado Noturno não é considerado um festival quando se trata do clima.
  
===Weather Icon===
+
===Ícone do Clima===
The weather icon is set in <tt>Game1::updateWeatherIcon</tt>, which sets an index in <tt>LooseSprite/Cursors.xnb</tt>:
+
O ícone do clima é definido em <samp>Game1::updateWeatherIcon</samp>, que define um index em <samp>LooseSprite/Cursors.xnb</samp>:
  
# If snowing: 7.
+
# Se nevando: 7.
# If sunny: 2.
+
# Se ensolarado: 2.
# If wedding: 0.
+
# Se casamento: 0.
# If festival: 1.
+
# Se festival: 1.
# If raining: 4.
+
# Se chovendo: 4.
# If stormy: 5.
+
# Se tempestade: 5.
# If spring: debris weather is 3.
+
# Se primavera: clima com detritos é 3.
# If summer: unset (defaults to sunny).
+
# Se verão: não definido (torna ao padrão que é ensolarado).
# If fall: 6.
+
# Se outono: 6.
# If winter: 7 (same as snowing).
+
# Se inverno: 7 (o mesmo que nevando).
  
===Rain Totem===
+
===Totem de Chuva===
The rain totem (item #681) and is controlled by <tt>Object::rainTotem</tt>, which is invoked by <tt>Object::performUseAction</tt>. If tomorrow is a festival day, the item is used up but nothing happens. Otherwise, it uses up the item and sets the weather for tomorrow to <tt>weather_rain</tt> and displays the message.
+
O totem de chuva(item #681) é controlado pelo <samp>Object::rainTotem</samp>, que é invocado pelo <samp>Object::performUseAction</samp>. Se amanhã é um dia de festival, o item é usado mas nada acontece. Caso contrário, um item é usado e define o clima de amanhã para <samp>weather_rain</samp> e mostra a mensagem.
  
==Weather probability by type==
+
==Probabilidade de clima por tipo==
This section explains the probability of each weather type. This only applies on dates with no [[#Forced weather|forced weather]].
+
Essa seção explica a probabilidade de cada tipo de clima. Isso somente se aplica à datas que não tenham [[#Clima_fixo|clima fixo]].
  
===Sunny===
+
===Ensolarado===
Sunny weather covers weather variables 0, 4, and 6.
+
O clima ensolarado utiliza as variáveis de clima 0,4 e 6.
  
* Spring: there's an 18.3% base chance of rain (81.7% chance remaining for other weathers). If it doesn't rain, there's an 80% chance to remain sunny (except on spring 3, which will always be rainy). That means that in spring there's a 66.4% chance of sunny weather.
+
* Primavera: 18,3% de chance base de chuva (81,7% de chance para os outros possíveis climas). Se não chover, tem 80% de chance do clima se manter ensolarado (exceto no dia 3 da primavera, quando vai ser sempre chuvoso). Isso significa que na primavera tem 66,4% de chance do clima ser ensolarado.
* Summer: The chance of sunny weather diminishes steadily per day from 86% on summer 1 to 79.9% on summer 28. The precise chance is 1 - [13% + (.3 * day of the month)] per day, with a 0% chance on day 1.
+
* Verão: A chance de um clima ensolarado diminui constantemente a cada dia, de 86% do primeiro dia do verão para 79,9% no dia 28. O cálculo da chance é, mais precisamente, 1 - [13% + (0,3 * dia do mês)] por dia, sendo que a chance é 0% no dia 1.
* Fall: identical to spring, but no forced weather.
+
* Outono: Idêntico à primavera, mas sem clima fixo.
* Winter: there's a 63% chance of precipitation, so only a 37% chance of sunny weather.
+
* Inverno: Há chance de 63% de precipitação, então somente 37% de chance de um dia ensolarado.
  
===Rainy===
+
===Chuvoso===
* Spring: there's an 18.3% base chance of rain. If it rains, there's a 25% chance of storms ''except in year 1''. So the rain odds in Spring is a flat 18.3% in year 1, and 13.725% in year 2 or later. It will always rain on spring 3 (year 1).
+
* Primavera: 18,3% de chance de chuva. Se chover, tem uma chance de 25% de tempestades, ''exceto no primeiro ano''. Então as chances de chover na Primavera são de 18,3% no primeiro ano, e 13,725% do ano 2 em diante. Sempre chove no dia 3 da primavera do ano 1.
* Summer: the chance of rainy weather increases steadily per day from 14% on summer 2 to 21.1% on Summer 27. There's an 85% chance that rain becomes storms. So you have a scale of [13% + (.3 * day of the month)] * .85 to determine your chances of rainfall.
+
* Verão: A chance the clima chuvoso aumenta constantemente a cada dia indo de 14% no dia 2 do verão para 21,1% no dia 27. Há uma chance de 85% de que chuvas se tornem tempestades. Então temos uma escala de [13% + (0,3 * dia do mês)] * 0,85 para determinar as chances de chover.
* Fall: same as spring, except fall in year 1 can be stormy so it's a flat 13.725% chance.
+
* Outono: O mesmo que a primavera, exceto que o outono do ano 1 pode ser tempestuoso então tem uma chance de 13.725%.
* Winter: never rains.
+
* Inverno: nunca chove.
  
===Debris===
+
===Detritos===
Debris weather covers weather variable 2.
+
Clima com detritos utiliza a variável de clima 2.
  
* Spring: there's a 20% chance of this after rain, so approximately 16.6% chance of debris weather.
+
* Primavera: 20% de chance de acontecer depois de um dia chuvoso, então aproximadamente 16,6% de chance de clima com detritos.
* Summer: no debris weather.
+
* Verão: Não tem clima com detritos.
* Fall: there's a 60% chance for this after rain, so approximately 49.8% chance of debris weather.
+
* Fall: 60% de chance de acontecer depois de um dia chuvoso, então aproximadamente 49,8% de chance de clima com detritos.
* Winter: no debris weather.
+
* Winter: Não tem clima com detritos.
  
===Stormy===
+
===Tempestuoso===
Stormy weather covers weather variable 3.
+
Clima tempestuoso utiliza a variável de clima 3.
  
* Spring: 4.57% chance of storms.
+
* Primavera: 4,57% de chance de tempestades.
* Summer: variable chance of storms; starts at 11.9% and increases to 17.9%.
+
* Verão: Chance de tempestades variável; Começa em 11% e aumenta até 17,9%.
* Fall: 4.57% chance of storms.
+
* Outono: 4.,7% de chance de tempestades.
* Winter: no stormy weather.
+
* Inverno: não há tempestades.
  
===Snowy===
+
===Neve===
In winter, there's a 63% chance of snow. No other season has snow.
+
No inverno há 63% de chance de nevar. Nenhuma outra estação tem neve.
  
==Save files==
+
===Salvar arquivos===
The save file is a snapshot of the day at 0600 the next morning. The <tt>WeatherForTommorow</tt> field was used to calculate the weather, but changing it has no effect on the weather since the weather flags have already been set by this point. To change the weather, you need to set one of these combinations of flags:
+
O arquivo salvo é um instantâneo do dia às 06h00 da manhã seguinte. O campo <samp> WeatherForTommorow </samp> foi usado para calcular o tempo, mas alterá-lo não tem efeito sobre o tempo, uma vez que os sinalizadores de tempo já foram definidos por este ponto. Para alterar o clima, você precisa definir uma dessas combinações de sinalizadores:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! weather  
 
! weather  
! <tt>isRaining</tt>
+
! <samp>isRaining</samp>
! <tt>isDebrisWeather</tt>
+
! <samp>isDebrisWeather</samp>
! <tt>isLightning</tt>
+
! <samp>isLightning</samp>
! <tt>isSnowing</tt>
+
! <samp>isSnowing</samp>
 
|-
 
|-
| sunny
+
| Ensolarado
 
| ☐
 
| ☐
 
| ☐
 
| ☐
Linha 309: Linha 308:
 
| ☐
 
| ☐
 
|-
 
|-
| rainy
+
| Chuvoso
 
| ☑
 
| ☑
 
| ☐
 
| ☐
Linha 315: Linha 314:
 
| ☐
 
| ☐
 
|-
 
|-
| stormy
+
| Tempestade
 
| ☑
 
| ☑
 
| ☐
 
| ☐
Linha 321: Linha 320:
 
| ☐
 
| ☐
 
|-
 
|-
| debris
+
| Detritos
 
| ☐
 
| ☐
 
| ☑
 
| ☑
Linha 327: Linha 326:
 
| ☐
 
| ☐
 
|-
 
|-
| snowy
+
| Nevasca
 
| ☐
 
| ☐
 
| ☐
 
| ☐
Linha 339: Linha 338:
 
| ☐
 
| ☐
 
|-
 
|-
| wedding
+
| Casamento
 
| ☐
 
| ☐
 
| ☐
 
| ☐
Linha 346: Linha 345:
 
|}
 
|}
  
'''Note:''' changing <tt>isDebrisWeather</tt> during an active game will not create the array. You'll need to call <tt>Game1::populateDebrisWeatherArray</tt> to get the debris populated. Correspondingly, if you're removing the debris weather flag, remember to call <tt>Game1::debrisWeather::Clear</tt>.
+
'''Nota:''' mundando <samp>isDebrisWeather</samp> durando um jogo ativo não irá criar o array. Você irá precisar chamar <samp>Game1::populateDebrisWeatherArray</samp> para conseguir que os detritos sejam populados. De maneira semelhante, se você está removendo a flag de clima com detritos, lembre-se de chamar <samp>Game1::debrisWeather::Clear</samp>.
  
==Notes/FAQ==
+
==Notas/FAQ==
 
* A TV pode ser consertada substituindo-a - ou apenas usando o Entoroax's Framework.
 
* A TV pode ser consertada substituindo-a - ou apenas usando o Entoroax's Framework.
* Você pode definir neve e detritos a qualquer momento, o jogo simplesmente não vai.
+
* Você pode definir neve e detritos a qualquer momento, o jogo simplesmente não vai.
* Você não pode colocar detritos e chover ao mesmo tempo.
+
* Você não pode colocar detritos e chover ao mesmo tempo.
  
 
[[Category:Modificações]]
 
[[Category:Modificações]]
  
 
[[en:Modding:Weather data]]
 
[[en:Modding:Weather data]]

Edição atual desde as 16h21min de 19 de fevereiro de 2024

Índice Esta página documenta como é gerado o clima dentro do jogo.

Dados

O clima é controlado integralmente pelo campo Game1::weatherForTomorrow. Os possível valores são:

valor constante clima
0 weather_sunny Ensolarado
1 weather_rain Chovendo
2 weather_debris Ventando
3 weather_lightning Tempestade
4 weather_festival Festival
5 weather_snow Neve
6 weather_wedding Casamento

Algoritmo

Clima fixo

Certas datas possuem sempre o mesmo clima:

data clima sobrescrito por
primavera 1 weather_sunny newday e tv
primevera 2 (ano 1) weather_sunny newday
primavera 3 (ano 1) weather_rain newday
primavera 4 (ano 1) weather_sunny newday
primavera 13 weather_festival newday
primavera 24 weather_festival newday
verão 1 weather_sunny newday e tv
verão 11 weather_festival newday
verão 13 weather_lightning newday
verão 26 weather_lightning newday
verão 28 weather_festival newday
outono 1 weather_sunny newday e tv
outono 16 weather_festival newday
outono 27 weather_festival newday
inverno 1 weather_sunny newday e tv
inverno 8 weather_festival newday
inverno 14 weather_sunny newday
inverno 15 weather_sunny newday
inverno 16 weather_sunny newday
inverno 25 weather_festival newday

Geração do clima

O clima em Stardew Valley é definido dentro da função Game1::newDayAfterFade() (após o código de mudança de dia, mas antes do evento do SMAPI SaveEvents.BeforeSave).

O jogo segue estes passos para decidir que clima e detritos serão definidos para o dia seguinte:

  1. Verifique o clima fixo.
  2. Se hoje é um festival, define o clima como weather_festival.
  3. Se hoje é um casamento, define o clima como weather_wedding.
  4. Define Game1::wasRainingYesterday com base em se havia chuva ou tempestade.
  5. Redefine todos os sinalizadores de tempo e os coloca no seguinte padrão:
    1. Se vai haver chuva ou tempestade, ajusta o sinal de chuva para true;
    2. Se vai haver uma tempestade, ajusta o sinal de tempestade para true;
    3. Se o tempo é (ensolarado, detritos) ou (festival, nevando, casamento), limpa todos os sinalizadores;
    4. Se estiver nevando, define nevando para true;
    5. Em seguida, define a música com base nisto;
    6. Limpa a matriz meteorológica de detritos e os sinalizadores;
    7. Se o pólen não for nulo, limpa sua visibilidade;
    8. Se o casamento é detrito, popula o array de detritos;
  6. Se não está chovendo e a chance de chover amanhã é menor que 0,1, o jogo tentará criar um dia com pólen.
  7. O jogo então calcula a chance de chuva para amanhã. Ele segue o seguinte algoritmo:
    1. Checa se é verão:
      1. Se não é verão, checa se é inverno:
        1. Se não é inverno, a chance de chuva é de 0,183;
        2. Senão, é 0,63;
      2. Se é verão, o jogo usa o seguinte: Checa se é o dia 1;
        1. Se não é, a chance é de 0,12 + Game1::dayOfMonth * 3/1000;
        2. Se é, a chance é 0. O que.. é meio redundante, já que os dias de clima fixo já cuidam disso;
  8. Checa se um número randômico é menor do que as chances. Se sim, o jogo segue o seguinte algoritmo:
    1. Define Game1::weatherForTomorrow para weather_rain;
    2. Se:
      1. É verão e o número randômico é menor que 0,85;
      2. Ou se não é inverno e se o número randômico é menor que 0,25 E o dia do mês é maior que 2 e mais do que 27 dias já foram jogados;
      3. Define Game1::weatherForTomorrow para weather_lightning
    3. Se e inverno:
      1. Define Game1::weatherForTomorrow para weather_snow
  9. Senão, se o número for maior que a chance de chover:
    1. Se você jogou menos que 3 dias:
    2. Ou, se:
      1. Não é primavera ou um número randômico é igual ou maior a 0,2 (então 80%) e é primavera;
      2. E não é outono ou um número randômico é maior ou igual a 0,6 (então 40%) e é outono;
      3. Ou, se é um dia de casamento hoje:
        1. Define Game1::weatherForTomorrow para weather_sunny se verdadeiro;
        2. Define Game1::weatherForTomorrow para weather_debris se falso;
    3. Checa se amanhã e um festival e define o clima para weather_festival se verdadeiro;
    4. Novamente força o terceiro dia a ser weather_rain;

Nesse ponto, a função principal do jogo termina a definição do clima.

Previsão do tempo

A TV checa o clima, mas vai ocasionalmente defini-lo em certos dias. Isso e mostrado na seguinte tabela.

A TV define o clima nos dias:

data clima
primavera 1 weather_sunny¹
primavera 3 weather_rainy¹
verão1 weather_sunny¹
outono 1 weather_sunny¹
inverno 1 weather_sunny¹

¹ Também definido (e portanto sobrescrito) pelo método Game1::newDayAfterFade().

A TV irá checar o clima e mostrará a seguinte mensagem:

clima menssagem
ensolarado ou casamento 50% de chance cada:
  • "O dia todo será claro e ensolarado."
  • "Amanhã será um dia lindo e ensolarado!"
chuva "Vai chover o dia todo amanhã."
deritos Por condições:
  1. Se primavera: "Parcialmente nublado com uma brisa leve. Esperem por bastante pólen!"
  2. Se não é outono: "Vai nevar o dia todo. Se agrasalhem, pessoal!" e o seu padrão é: "O dia vai ser nublado e com rajadas de vento durante todo o dia."
  3. Se tempestade: "Parece que uma tempestade está se aproximando. Vão cair raios e trovões."
  4. Se festival, o jogo tenta ler as informações do festival. Se ele falhar, a seguinte mensagem será mostrada "Hã... que estranho. A minha planilha de informações só diz \"nulo\". Que vergonha... " Se ele tiver sucesso ele falará quando e onde é o festival.
  5. Se nevar, tem 50% de chance entre dois possíveis diálogos: "Esperem bastante neve amanhã." ou "Agasalhem-se, pessoal. Vai nevar amanhã!"
qualquer outro Retorna uma string vazia (nunca deve acontecer).

Nota: A TV não será necessariamente precisa para qualquer outro dia que não seja dias de festival, o primeiro dia do mês e o terceiro dia da primavera, que são definidos à força pelo método Game1::newDayAfterFade. Ajudantes de fazenda(e jogadores que não são o host) podem até mesmo não conseguir essa precisão no primeiro dia do mês ou no terceiro dia da primavera.

Nota 2: O Mercado Noturno não é considerado um festival quando se trata do clima.

Ícone do Clima

O ícone do clima é definido em Game1::updateWeatherIcon, que define um index em LooseSprite/Cursors.xnb:

  1. Se nevando: 7.
  2. Se ensolarado: 2.
  3. Se casamento: 0.
  4. Se festival: 1.
  5. Se chovendo: 4.
  6. Se tempestade: 5.
  7. Se primavera: clima com detritos é 3.
  8. Se verão: não definido (torna ao padrão que é ensolarado).
  9. Se outono: 6.
  10. Se inverno: 7 (o mesmo que nevando).

Totem de Chuva

O totem de chuva(item #681) é controlado pelo Object::rainTotem, que é invocado pelo Object::performUseAction. Se amanhã é um dia de festival, o item é usado mas nada acontece. Caso contrário, um item é usado e define o clima de amanhã para weather_rain e mostra a mensagem.

Probabilidade de clima por tipo

Essa seção explica a probabilidade de cada tipo de clima. Isso somente se aplica à datas que não tenham clima fixo.

Ensolarado

O clima ensolarado utiliza as variáveis de clima 0,4 e 6.

  • Primavera: Há 18,3% de chance base de chuva (81,7% de chance para os outros possíveis climas). Se não chover, tem 80% de chance do clima se manter ensolarado (exceto no dia 3 da primavera, quando vai ser sempre chuvoso). Isso significa que na primavera tem 66,4% de chance do clima ser ensolarado.
  • Verão: A chance de um clima ensolarado diminui constantemente a cada dia, de 86% do primeiro dia do verão para 79,9% no dia 28. O cálculo da chance é, mais precisamente, 1 - [13% + (0,3 * dia do mês)] por dia, sendo que a chance é 0% no dia 1.
  • Outono: Idêntico à primavera, mas sem clima fixo.
  • Inverno: Há chance de 63% de precipitação, então somente 37% de chance de um dia ensolarado.

Chuvoso

  • Primavera: Há 18,3% de chance de chuva. Se chover, tem uma chance de 25% de tempestades, exceto no primeiro ano. Então as chances de chover na Primavera são de 18,3% no primeiro ano, e 13,725% do ano 2 em diante. Sempre chove no dia 3 da primavera do ano 1.
  • Verão: A chance the clima chuvoso aumenta constantemente a cada dia indo de 14% no dia 2 do verão para 21,1% no dia 27. Há uma chance de 85% de que chuvas se tornem tempestades. Então temos uma escala de [13% + (0,3 * dia do mês)] * 0,85 para determinar as chances de chover.
  • Outono: O mesmo que a primavera, exceto que o outono do ano 1 pode ser tempestuoso então tem uma chance de 13.725%.
  • Inverno: nunca chove.

Detritos

Clima com detritos utiliza a variável de clima 2.

  • Primavera: Há 20% de chance de acontecer depois de um dia chuvoso, então aproximadamente 16,6% de chance de clima com detritos.
  • Verão: Não tem clima com detritos.
  • Fall: Há 60% de chance de acontecer depois de um dia chuvoso, então aproximadamente 49,8% de chance de clima com detritos.
  • Winter: Não tem clima com detritos.

Tempestuoso

Clima tempestuoso utiliza a variável de clima 3.

  • Primavera: 4,57% de chance de tempestades.
  • Verão: Chance de tempestades variável; Começa em 11% e aumenta até 17,9%.
  • Outono: 4.,7% de chance de tempestades.
  • Inverno: não há tempestades.

Neve

No inverno há 63% de chance de nevar. Nenhuma outra estação tem neve.

Salvar arquivos

O arquivo salvo é um instantâneo do dia às 06h00 da manhã seguinte. O campo WeatherForTommorow foi usado para calcular o tempo, mas alterá-lo não tem efeito sobre o tempo, uma vez que os sinalizadores de tempo já foram definidos por este ponto. Para alterar o clima, você precisa definir uma dessas combinações de sinalizadores:

weather isRaining isDebrisWeather isLightning isSnowing
Ensolarado
Chuvoso
Tempestade
Detritos
Nevasca
festival
Casamento

Nota: mundando isDebrisWeather durando um jogo ativo não irá criar o array. Você irá precisar chamar Game1::populateDebrisWeatherArray para conseguir que os detritos sejam populados. De maneira semelhante, se você está removendo a flag de clima com detritos, lembre-se de chamar Game1::debrisWeather::Clear.

Notas/FAQ

  • A TV pode ser consertada substituindo-a - ou apenas usando o Entoroax's Framework.
  • Você pode definir neve e detritos a qualquer momento, o jogo simplesmente não vai.
  • Você não pode colocar detritos e chover ao mesmo tempo.