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 271: |
Linha 270: |
| * 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. | | * 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%. | | * 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: nunca chove. | + | * Inverno: nunca chove. |
| | | |
| ===Detritos=== | | ===Detritos=== |
Linha 293: |
Linha 292: |
| | | |
| ===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: |
| |} | | |} |
| | | |
− | '''Nota:''' mundando <tt>isDebrisWeather</tt> durando um jogo ativo não irá criar o array. Você irá precisar chamar <tt>Game1::populateDebrisWeatherArray</tt> para conseguir que os detritos sejam populados. De maneira semelhante, se você está removendo a flag de clima com detritos, lembre-se de chamar <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>. |
| | | |
| ==Notas/FAQ== | | ==Notas/FAQ== |