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á 6 revisões intermédias de 3 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 45: Linha 44:
 
Certas datas 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> e <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> e <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> e <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;
Linha 157: Linha 156:
 
#### Senão, é 0,63;  
 
#### Senão, é 0,63;  
 
### Se é verão, o jogo usa o seguinte: Checa se é o dia 1;
 
### Se é verão, o jogo usa o seguinte: Checa se é o dia 1;
#### Se não é, a chance é de 0,12 + <tt>Game1::dayOfMonth</tt> * 3/1000;
+
#### Se não é, a chance é de 0,12 + <samp>Game1::dayOfMonth</samp> * 3/1000;
 
#### Se é, a chance é 0. O que.. é meio redundante, já que os dias de clima fixo já cuidam disso;
 
#### Se é, a chance é 0. O que.. é meio redundante, já que os dias de clima fixo já cuidam disso;
 
# Checa se um número randômico é menor do que as chances. Se sim, o jogo segue o seguinte algoritmo:
 
# Checa se um número randômico é menor do que as chances. Se sim, o jogo segue o seguinte algoritmo:
## Define <tt>Game1::weatherForTomorrow</tt> para <tt>weather_rain</tt>;
+
## Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_rain</samp>;
 
## Se:
 
## Se:
 
### É verão e o número randômico é menor que 0,85;
 
### É verão e o número randômico é menor que 0,85;
 
### 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;
 
### 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;
### Define <tt>Game1::weatherForTomorrow</tt> para <tt>weather_lightning</tt>
+
### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_lightning</samp>
 
## Se e inverno:
 
## Se e inverno:
### Define <tt>Game1::weatherForTomorrow</tt> para <tt>weather_snow</tt>
+
### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_snow</samp>
 
# Senão, se o número for maior que a chance de chover:
 
# Senão, se o número for maior que a chance de chover:
 
## Se você jogou menos que 3 dias:
 
## Se você jogou menos que 3 dias:
Linha 173: Linha 172:
 
### E não é outono ou um número randômico é maior ou igual a 0,6 (então 40%) e é outono;
 
### E não é outono ou um número randômico é maior ou igual a 0,6 (então 40%) e é outono;
 
### Ou, se é um dia de casamento hoje:
 
### Ou, se é um dia de casamento hoje:
#### Define <tt>Game1::weatherForTomorrow</tt> para <tt>weather_sunny</tt> se verdadeiro;
+
#### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_sunny</samp> se verdadeiro;
#### Define <tt>Game1::weatherForTomorrow</tt> para <tt>weather_debris</tt> se falso;
+
#### Define <samp>Game1::weatherForTomorrow</samp> para <samp>weather_debris</samp> se falso;
## Checa se amanhã e um festival e define o clima para <tt>weather_festival</tt> se verdadeiro;
+
## Checa se amanhã e um festival e define o clima para <samp>weather_festival</samp> se verdadeiro;
## Novamente força o terceiro dia a ser <tt>weather_rain</tt>;
+
## Novamente força o terceiro dia a ser <samp>weather_rain</samp>;
  
 
Nesse ponto, a função principal do jogo termina a definição do clima.
 
Nesse ponto, a função principal do jogo termina a definição do clima.
Linha 185: Linha 184:
 
A TV define o clima nos dias:
 
A TV define o clima nos dias:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! data
 
! data
Linha 191: Linha 190:
 
|-
 
|-
 
| primavera 1
 
| primavera 1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|-
 
|-
 
| primavera 3
 
| primavera 3
| <tt>weather_rainy</tt
+
| <samp>weather_rainy</samp
 
|-
 
|-
 
| verão1
 
| verão1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|-
 
|-
 
| outono 1
 
| outono 1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|-
 
|-
 
| inverno 1
 
| inverno 1
| <tt>weather_sunny</tt
+
| <samp>weather_sunny</samp
 
|}
 
|}
  
<small>¹ Também definido (e portanto sobrescrito) pelo método <tt>Game1::newDayAfterFade()</tt>.</small><br />
+
<small>¹ Também definido (e portanto sobrescrito) pelo método <samp>Game1::newDayAfterFade()</samp>.</small><br />
  
 
A TV irá checar o clima e mostrará a seguinte mensagem:
 
A TV irá checar o clima e mostrará a seguinte mensagem:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! clima
 
! clima
Linha 235: Linha 234:
 
|}
 
|}
  
'''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 <tt>Game1::newDayAfterFade</tt>. 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:''' 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.
  
 
'''Nota 2:''' O Mercado Noturno não é considerado um festival quando se trata do clima.
 
'''Nota 2:''' O Mercado Noturno não é considerado um festival quando se trata do clima.
  
 
===Ícone do Clima===
 
===Ícone do Clima===
O ícone do clima é definido em <tt>Game1::updateWeatherIcon</tt>, que define um index em <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>:
  
 
# Se nevando: 7.
 
# Se nevando: 7.
Linha 248: Linha 247:
 
# Se chovendo: 4.
 
# Se chovendo: 4.
 
# Se tempestade: 5.
 
# Se tempestade: 5.
# Se primavera: clima com detritos é is 3.
+
# Se primavera: clima com detritos é 3.
 
# Se verão: não definido (torna ao padrão que é ensolarado).
 
# Se verão: não definido (torna ao padrão que é ensolarado).
 
# Se outono: 6.
 
# Se outono: 6.
Linha 254: Linha 253:
  
 
===Totem de Chuva===
 
===Totem de Chuva===
O totem de chuva(item #681) é controlado pelo <tt>Object::rainTotem</tt>, que é invocado pelo <tt>Object::performUseAction</tt>. 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 <tt>weather_rain</tt> e mostra a mensagem.
+
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.
  
 
==Probabilidade de clima por tipo==
 
==Probabilidade de clima por tipo==
Linha 262: Linha 261:
 
O clima ensolarado utiliza as variáveis de clima 0,4 e 6.
 
O clima ensolarado utiliza as variáveis de clima 0,4 e 6.
  
* Primavera: Tem uma chase base de 18,3% 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.
+
* 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.
* Verão: A chance de um clima ensolarado diminui constantemente por 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.
+
* 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.
 
* Outono: Idêntico à primavera, mas sem clima fixo.
* Inverno: Tem uma chance de 63% de precipitação, então somente 37% de chance de um dia ensolarado.
+
* Inverno: chance de 63% de precipitação, então somente 37% de chance de um dia ensolarado.
  
 
===Chuvoso===
 
===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.
  
 
===Salvar arquivos===
 
===Salvar arquivos===
O arquivo salvo é um instantâneo do dia às 06h00 da manhã seguinte.  O campo <tt> WeatherForTommorow </tt> 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:
+
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>
 
|-
 
|-
 
| Ensolarado
 
| Ensolarado
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.

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.