Modificações:Dados climáticos

Fonte: Stardew Valley Wiki
Saltar para a navegação Saltar para a pesquisa
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Í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.