diff --git a/fortune_generator/fortune.js b/fortune_generator/fortune.js index 1485def..7c4540f 100644 --- a/fortune_generator/fortune.js +++ b/fortune_generator/fortune.js @@ -14,6 +14,14 @@ fetch("fortune.json") badFortunes = data.badFortunes; }) +let special_events = []; + +fetch("special.json") +.then(response => response.json()) +.then(data => { + special_events = data.special_events; +}) + const textColor = ["#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#5eb95e", "#5eb95e", "#000000bf", "#000000bf", "#000000bf"]; const fortuneStatus = ["大吉", "中吉", "中吉", "小吉", "小吉", "中平", "中平", "凶", "凶", "大凶"]; const chineseMonth = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"]; @@ -44,11 +52,7 @@ function Appear() { $('#month').html(''); $('#date').html(''); $('#weekday').html(''); - $('#btn').html('打卡成功'); - if(date == 18 && month == 11){ - special = true; - } let p = 0; let num = [0, 0, 0, 0]; @@ -63,14 +67,27 @@ function Appear() { const goodLen = goodFortunes.length; const badLen = badFortunes.length; const statusLen = fortuneStatus.length; + const specialLen = special_events.length; + + let = special_events_index = 0; + for(let i = 0; i < specialLen; i++){ + if(special_events[i].year == year && special_events[i].month == month && special_events[i].date == date){ + special = true; + special_events_index = i; + break; + } + } let hashDate = Math.round(Math.log10(year * ((month << (Math.log10(num[3]) + 1)) * (date << Math.log10(num[2]))))); let seed1 = (num[0] >> hashDate) * (num[1] >> Math.min(hashDate, 2)) + (num[2] << 1) * (num[3] >> 3) + (date << 3) * (month << hashDate) + year; let seed2 = (num[0] << (hashDate + 2)) * (num[1] << hashDate) + (num[2] << 1) * (num[3] << 3) + (date << (hashDate - 1)) * (month << 4) + year >> hashDate; - let status = `§ ${fortuneStatus[seed1 % statusLen]} §`; + let status_index = seed1 % statusLen; + let status = `§ ${fortuneStatus[status_index]} §`; + if(special){ - special_status = `§ ${fortuneStatus[0]} §`; + status_index = special_events[special_events_index].status_index; + special_status = `§ ${fortuneStatus[status_index]} §`; $('#ip-to-fortune').html(special_status); } else{ @@ -90,6 +107,7 @@ function Appear() { set.add(badFortunes[r1].event); r2 = ((((((seed1 << 3) + (d.getFullYear() >> 5) * (date << 2)) % badLen) * seed2) >> 6) % badLen + badLen) % badLen; while(set.has(badFortunes[r2].event)) r2 = (r2 + 1) % badLen; + l_1_event = `宜: ${goodFortunes[l1].event}`; l_1_desc = `${goodFortunes[l1].description}`; l_2_event = `宜: ${goodFortunes[l2].event}`; @@ -98,16 +116,42 @@ function Appear() { r_1_desc = `${badFortunes[r1].description}`; r_2_event = `忌: ${badFortunes[r2].event}`; r_2_desc = `${badFortunes[r2].description}`; + + let l_1_special_event, l_1_special_desc, l_2_special_event, l_2_special_desc, r_1_special_event, r_1_special_desc, r_2_special_event, r_2_special_desc; if(special){ - l_1_special_event = `宜: 參加特選`; - l_1_special_desc = `順利上榜`; - l_2_special_event = `宜: 放鬆心態`; - l_2_special_desc = `水準超常發揮`; - $('#r-1-event').html(allGood); + if(status_index == 0){ + r_1_special_event = allGood; + l_1_special_event = `宜: ${special_events[special_events_index].goodFortunes.l_1_event}`; + l_1_special_desc = `${special_events[special_events_index].goodFortunes.l_1_desc}`; + l_2_special_event = `宜: ${special_events[special_events_index].goodFortunes.l_2_event}`; + l_2_special_desc = `${special_events[special_events_index].goodFortunes.l_2_desc}`; + } + else if(status_index == statusLen - 1){ + l_1_special_event = allBad; + r_1_special_event = `忌: ${special_events[special_events_index].badFortunes.r_1_event}`; + r_1_special_desc = `${special_events[special_events_index].badFortunes.r_1_desc}`; + r_2_special_event = `忌: ${special_events[special_events_index].badFortunes.r_2_event}`; + r_2_special_desc = `${special_events[special_events_index].badFortunes.r_2_desc}`; + } + else{ + l_1_special_event = `宜: ${special_events[special_events_index].goodFortunes.l_1_event}`; + l_1_special_desc = `${special_events[special_events_index].goodFortunes.l_1_desc}`; + l_2_special_event = `宜: ${special_events[special_events_index].goodFortunes.l_2_event}`; + l_2_special_desc = `${special_events[special_events_index].goodFortunes.l_2_desc}`; + r_1_special_event = `忌: ${special_events[special_events_index].badFortunes.r_1_event}`; + r_1_special_desc = `${special_events[special_events_index].badFortunes.r_1_desc}`; + r_2_special_event = `忌: ${special_events[special_events_index].badFortunes.r_2_event}`; + r_2_special_desc = `${special_events[special_events_index].badFortunes.r_2_desc}`; + } + $('#l-1-event').html(l_1_special_event); $('#l-1-desc').html(l_1_special_desc); $('#l-2-event').html(l_2_special_event); $('#l-2-desc').html(l_2_special_desc); + $('#r-1-event').html(r_1_special_event); + $('#r-1-desc').html(r_1_special_desc); + $('#r-2-event').html(r_2_special_event); + $('#r-2-desc').html(r_2_special_desc); } else if(seed1 % statusLen == 0){ $('#r-1-event').html(allGood);