public static function GenerateDaily($date) { $dayid = DailyConfig::DateTimeToInt($date); $weekDay = intval($date->format('w')); $chr = Character::Isaac; $endLevel = 0; $diff = 0; $isMega = false; $polaroid = false; $rnd = new RandIsaac($dayid); do { $chr = $rnd->Next() % 15; } while ($chr == Character::Lazarus2 || $chr == Character::BlackJudas || $chr == Character::Keeper); switch ($rnd->Next() & 3) { case 0: $endLevel = EndLevel::MomsFoot; break; case 1: $endLevel = EndLevel::MomsHeart; break; case 2: $polaroid = ($rnd->Next() & 1) == 0; $endLevel = $polaroid ? EndLevel::Cathedral : EndLevel::Sheol; break; case 3: $polaroid = ($rnd->Next() & 1) == 0; $endLevel = $polaroid ? EndLevel::Chest : EndLevel::DarkRoom; break; } if ($weekDay == 0) { $endLevel = $polaroid ? EndLevel::Chest : EndLevel::DarkRoom; $isMega = true; if ($rnd->Next() % 6 == 0) { $diff = Difficulty::Hard; } } else { if ($weekDay == 1) { $diff = Difficulty::Hard; } } return new DailyConfig($chr, $endLevel, $diff, $isMega, $rnd->Next()); }
<?php date_default_timezone_set('Pacific/Honolulu'); include "models/dailyseed.php"; $start = isset($_GET['start']) ? $_GET['start'] : null; $length = isset($_GET['length']) ? intval($_GET['length']) : 1000; $start = DateTime::createFromFormat("Ymd", $start); if (!$start) { $start = DateTime::createFromFormat("Ymd", "20151031"); } $length = min(800, max(1, $length)); $today = new DateTime((new DateTime())->format('Y-m-d')); $dailies = array(); for ($i = 0; $i < $length; $i++) { $daily = DailyConfig::GenerateDaily($start); $r = array(); if ($start->compare($today)->isBeforeOrEqual()) { $r['char'] = $daily->CharAsText(); $r['end'] = $daily->EndAsText(); $r['mega'] = $daily->IsMegaSatan; $r['hard'] = $daily->Difficulty; } if ($start < $today) { $r['seed'] = DailyConfig::SeedToString($daily->Seed); } $dailies[$start->format('Ymd')] = $r; $start = $start->add(new DateInterval("P1D")); } echo json_encode($dailies);
<?php date_default_timezone_set('Pacific/Honolulu'); include "models/dailyseed.php"; $length = 365 * 3; $start = date_create_from_format("Ymd", "20151031"); $today = date_create(); $dailies = array(); while ($length !== 0) { $daily = DailyConfig::GenerateDaily($start); $r = array(); if ($start <= $today) { $r['char'] = $daily->CharAsText(); $r['end'] = $daily->EndAsText(); $r['mega'] = $daily->IsMegaSatan; $r['hard'] = $daily->Difficulty; $r['seed'] = $start < $today ? DailyConfig::SeedToString($daily->Seed) : "????????"; $dailies[$start->format('Ymd')] = $r; $start = $start->add(new DateInterval("P1D")); } $length--; } echo json_encode($dailies);
function updateDailyObjectives($date = 0) { global $db; if ($date == 0) { $stmt = $db->query("\n SELECT date\n FROM dates\n WHERE done = 1\n ORDER BY date DESC\n LIMIT 1"); } else { $stmt = $db->prepare("\n SELECT date\n FROM dates\n WHERE date = :date"); $stmt->execute(array(':date' => $date)); } $date = new DateTime($stmt->fetch()[0]); $daily = DailyConfig::GenerateDaily($date); $stmt = $db->prepare("\n UPDATE dates\n SET char_id = :char,\n endlevel = :floor,\n megasatan = :mega,\n hard = :hard\n WHERE date = :date"); $stmt->execute(array(':char' => $daily->Character, ':floor' => $daily->EndLevel, ':mega' => $daily->IsMegaSatan, ':hard' => $daily->Difficulty, ':date' => $date->format('Y-m-d'))); return $daily; }