Created
March 21, 2018 19:40
-
-
Save dancodan/23f4c1f868cdd6e3bfdd44f9e496ce1c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const WeatherRoller = (function(){ | |
'use strict'; | |
var version = 1.0, | |
weather = function() { | |
var roll; | |
var temperature; | |
var wind; | |
var precipitation; | |
var season; | |
var ordinal = state.Calendar.now.ordinal; | |
if(ordinal > 349 || ordinal <= 75){ | |
season = 'Winter' | |
}else if(ordinal <= 166){ | |
season = 'Spring' | |
}else if(ordinal <=257 ){ | |
season = 'Summer' | |
}else if(ordinal <=349 ){ | |
season = 'Fall' | |
} | |
//Lets roll 1d100 to determine the temperature | |
roll = Math.floor(Math.random()*(99)); | |
//5% chance it will be a bitterly cold day | |
if(roll>=0 && roll<=4){ | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en extremt kall vinterdag med en temperatur runt ${Math.floor(Math.random() * 10 - 40)} grader. `; | |
break; | |
case 'Spring': | |
temperature = `Det är en extremt kall vårdag med en temperatur runt ${Math.floor(Math.random() * 5 -3)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en extremt kall sommardag med en temperatur runt ${Math.floor(Math.random() * 5 + 9)} grader. `; | |
break; | |
case 'Fall': | |
temperature =`Det är en extremt kall höstdag med en temperatur runt ${Math.floor(Math.random() * 5 - 3)} grader. `; | |
break; | |
} | |
}else if(roll>=5 && roll<=9){ | |
//5% chance it will be a very cold day | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en väldigt kall vinterdag med en temperatur runt ${Math.floor(Math.random() * 5 - 30)} grader. `; | |
break; | |
case 'Spring': | |
temperature = `Det är en väldigt kall vårdag med en temperatur runt ${Math.floor(Math.random() * 5 + 1)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en väldigt kall sommardag med en temperatur runt ${Math.floor(Math.random() * 5 + 12)} grader. `; | |
break; | |
case 'Fall': | |
temperature = `Det är en väldigt kall höstdag med en temperatur runt ${Math.floor(Math.random() * 5 + 0)} grader. `; | |
break; | |
} | |
}else if(roll>=10 && roll<=19){ | |
//10% chance it will be a cold day | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en kall vinterdag med en temperatur runt ${Math.floor(Math.random() * 5 - 25)} grader. `; | |
break; | |
case 'Spring': | |
temperature = `Det är en kall vårdag med en temperatur runt ${Math.floor(Math.random() * 5 + 4)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en kall sommardag med en temperatur runt ${Math.floor(Math.random() * 5 + 15)} grader. `; | |
break; | |
case 'Fall': | |
temperature = `Det är en kall höstdag med en temperatur runt ${Math.floor(Math.random() * 5 + 3)} grader. `; | |
break; | |
} | |
}else if(roll>=20 && roll<=79){ | |
//60% chance of a mild and normal day | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en mild vinterdag med en temperatur runt ${Math.floor(Math.random() * 10 - 20)} grader.`; | |
break; | |
case 'Spring': | |
temperature = `Det är en mild vårdag med en temperatur runt ${Math.floor(Math.random() * 10 + 8)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en mild sommardag med en temperatur runt ${Math.floor(Math.random() * 10 + 15)} grader. `; | |
break; | |
case 'Fall': | |
temperature = `Det är en mild höstdag med en temperatur runt ${Math.floor(Math.random() * 10 + 8)} grader. `; | |
break; | |
} | |
}else if(roll>=80 && roll<=89){ | |
//10% chance of a warm day | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en varm vinterdag med en temperatur runt ${Math.floor(Math.random() * 10 - 15)} grader.`; | |
break; | |
case 'Spring': | |
temperature = `Det är en varm vårdag med en temperatur runt ${Math.floor(Math.random() * 10 + 10)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en varm sommardag med en temperatur runt ${Math.floor(Math.random() * 10 + 20)} grader. `; | |
break; | |
case 'Fall': | |
temperature = `Det är en varm höstdag med en temperatur runt ${Math.floor(Math.random() * 10 + 10)} grader. `; | |
break; | |
} | |
}else if(roll>=90 && roll<=94){ | |
//5% chance of a very warm day | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en väldigt varm vinterdag med en temperatur runt ${Math.floor(Math.random() * 10 - 10)} grader.`; | |
break; | |
case 'Spring': | |
temperature = `Det är en väldigt varm vårdag med en temperatur runt ${Math.floor(Math.random() * 10 + 13)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en väldigt varm sommardag med en temperatur runt ${Math.floor(Math.random() * 10 + 25)} grader. `; | |
break; | |
case 'Fall': | |
temperature = `Det är en väldigt varm höstdag med en temperatur runt ${Math.floor(Math.random() * 10 + 13)} grader. `; | |
break; | |
} | |
}else{ | |
//5% chance of an extremely hot day | |
switch(season) { | |
case 'Winter': | |
temperature = `Det är en extremnt varm vinterdag med en temperatur runt ${Math.floor(Math.random() * 10 - 5)} grader.`; | |
break; | |
case 'Spring': | |
temperature = `Det är en extremnt varm vårdag med en temperatur runt ${Math.floor(Math.random() * 10 + 15)} grader. `; | |
break; | |
case 'Summer': | |
temperature = `Det är en extremnt varm sommardag med en temperatur runt ${Math.floor(Math.random() * 10 + 30)} grader. `; | |
break; | |
case 'Fall': | |
temperature = `Det är en extremnt varm höstdag med en temperatur runt ${Math.floor(Math.random() * 10 + 15)} grader. `; | |
break; | |
} | |
} | |
//Ok lets do 1d100 for wind | |
roll = Math.floor(Math.random()*(99)); | |
if(roll>=0 && roll<=9){ | |
wind='Det är vindstilla och '; | |
}else if(roll>=10 && roll<=29){ | |
wind='Vinden blåser med en svag bris och '; | |
}else if(roll>=30 && roll<=49){ | |
wind='En bris blåser milt och '; | |
}else if(roll>=50 && roll<=69){ | |
wind='En måttlig vind blåser och '; | |
}else if(roll>=70 && roll<=89){ | |
wind='En frisk vind blåser och '; | |
}else if(roll>=90 && roll<=95){ | |
wind='En hård vind blåser och '; | |
}else if(roll=96){ | |
wind='Lokala stormbyar piskar lander och '; | |
}else if(roll=97){ | |
wind='En storm blåser och '; | |
}else if(roll=98){ | |
wind='En orkan blåser och '; | |
}else { | |
wind='Luften känns elektrisk, huvudet värker, en magistorm förstör allt i sin väg och '; | |
} | |
//Lets check if there is some precipitation | |
roll = Math.floor(Math.random()*(99)); | |
if(roll>=0 && roll<=14){ | |
precipitation="Light rain or snow."; | |
if(season=='Winter'){ | |
precipitation = 'molnen lyser med sin frånvaro.'; | |
}else{ | |
precipitation = 'det är en klarblå himmel.'; | |
} | |
}else if(roll>=15 && roll<=39){ | |
if(season=='Winter'){ | |
precipitation = 'på himmelen syns vita moln.'; | |
}else{ | |
precipitation = 'på himmelen syns vita moln.'; | |
} | |
}else if(roll>=40 && roll<=54){ | |
if(season=='Winter'){ | |
precipitation = 'himmelen täcks av mörka moln som spricker upp emellanåt.'; | |
}else{ | |
precipitation = 'himmelen täcks av mörka moln som spricker upp emellanåt.'; | |
} | |
}else if(roll>=55 && roll<=59){ | |
if(season=='Winter'){ | |
precipitation = 'enstaka snöflingor dalar sakta mot marken.'; | |
}else{ | |
precipitation = 'ett lätt duggregn faller sakta.'; | |
} | |
}else if(roll>=60 && roll<=69){ | |
if(season=='Winter'){ | |
precipitation = 'små snöflingor virvlar i luften.'; | |
}else{ | |
precipitation = 'spridda regnskurar faller under några timmar.'; | |
} | |
}else if(roll>=70 && roll<=79){ | |
if(season=='Winter'){ | |
precipitation = 'snön faller.'; | |
}else{ | |
precipitation = 'ett lätt regn strilar ner mot marken.'; | |
} | |
}else if(roll>=80 && roll<=85){ | |
if(season=='Winter'){ | |
precipitation = 'ett snöväder täcker lander.'; | |
}else{ | |
precipitation = 'ett regnväder faller från en mörk himmel.'; | |
} | |
}else if(roll>=86 && roll<=91){ | |
if(season=='Winter'){ | |
precipitation = 'ett snöväder faller tungt.'; | |
}else{ | |
precipitation = 'ett ösregn faller från en mörk himmel.'; | |
} | |
}else if(roll>=92 && roll<=93){ | |
if(season=='Winter'){ | |
precipitation = 'snön faller tungt från tjocka moln på himmelen.'; | |
}else{ | |
precipitation = 'ett ösregn faller från en mörk himmel, på avstånd hörs en lätt åska.'; | |
} | |
}else if(roll>=94 && roll<=95){ | |
if(season=='Winter'){ | |
precipitation = 'snön faller tungt från mörka, tunga moln på himmelen.'; | |
}else{ | |
precipitation = 'ett ösregn börjar falla från en mörk himmel, på avstånd hörs en rejäl åska.'; | |
} | |
}else if(roll>=96 && roll<=97){ | |
if(season=='Winter'){ | |
precipitation = 'snön faller intensivt från himmelen. Begränsad sikt och framkomlighet.'; | |
}else{ | |
precipitation = 'ett skyfall faller från himmelen. Bäckar och floder har svämmat över. Begränsad framkomlighet.'; | |
} | |
}else{ | |
if(season=='Winter'){ | |
precipitation = 'snön faller intensivt från himmelen. Begränsad sikt och framkomlighet.'; | |
}else{ | |
precipitation = 'ett skyfall faller från himmelen och en intensiv åska råder. Bäckar och floder har svämmat över. Begränsad framkomlighet.'; | |
} | |
} | |
var forecast = temperature + '<br>' + wind + '<br>' + precipitation; | |
return forecast; | |
}; | |
return { | |
weather: weather | |
}; | |
}()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment