PageRenderTime 25ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/gen_pack.php

https://github.com/wmorganjr/epictome
PHP | 131 lines | 91 code | 40 blank | 0 comment | 20 complexity | c28ad9655d92cc77209d38ca9f16bdbe MD5 | raw file
  1. <?php
  2. include_once('util.php');
  3. header('Content-type: application/json');
  4. $seed = $_GET['seed'];
  5. if (! $seed) {
  6. $seed = 0;
  7. }
  8. srand($seed);
  9. $set_name = $_GET['set_name'];
  10. $pack = array();
  11. if ($set_name == 'core') {
  12. $rares = array(11,16,24,26,29,31,33,39,40,41,42,43,44,45,51,52,55,58,59,60,62,64,67,68,71,72,74,76,81,84,85,88,89,92,95,102,104,116,118,121,123,124,127,128,129,132,135,136,137,139,145,149,156,158,160,169,171,175,177,178,180,183,188,189,190,195,198,199,200,203,205,209,211,212,217,218,223,226,229,234,235,236,238,240,245,246,254,256,260,261,264,268,277,286,287,289,291,292,294,299);
  13. $fasts = array(38 ,251, 57 ,197 ,152 ,144 ,34 ,214 ,290 ,23 ,80 ,103 ,206 ,98 ,202 ,69 ,70 ,7 ,17 ,119 ,270 ,93 ,242 ,15 ,300 ,138 ,225 ,48 ,79 ,288 ,19 ,228 ,186 ,224 ,151 ,282 ,275 ,36 ,120 ,96 ,37 ,267 ,90 ,237 ,107 ,247 ,106 ,97 ,243 ,2 ,126 ,272 ,54 ,221 ,274 ,65 ,47 ,257 ,259 ,53 ,21 ,99 ,30 ,220 ,157 ,78 ,122 ,285 ,162 ,193 ,143 ,91 ,35 ,125 ,216 ,1 ,194 ,244 ,210 ,187 ,63 ,283 ,297 ,140 ,241 ,253 ,250 ,86 ,192 ,108 ,213 ,10 ,141 ,196 ,94 ,32 ,222 ,75 ,179 ,231);
  14. $slows = array(279 ,61 ,227 ,296 ,8 ,163 ,66 ,77 ,215 ,113 ,6 ,73 ,109 ,22 ,4 ,170 ,146 ,201 ,14 ,133 ,174 ,276 ,167 ,273 ,181 ,18 ,249 ,280 ,114 ,5 ,27 ,101 ,284 ,161 ,100 ,110 ,265 ,164 ,117 ,165 ,142 ,266 ,12 ,233 ,28 ,50 ,166 ,298 ,185 ,159 ,232 ,230 ,134 ,49 ,82 ,3 ,204 ,83 ,155 ,9 ,131 ,184 ,293 ,111 ,176 ,281 ,112 ,191 ,219 ,271 ,46 ,168 ,150 ,87 ,173 ,258 ,269 ,148 ,248 ,262 ,154 ,182 ,115 ,252 ,255 ,263 ,25 ,56 ,20 ,208 ,147 ,239 ,153 ,278 ,105 ,130 ,295 ,207 ,172 ,13);
  15. $pack_set = $_GET["pack"];
  16. $rare_seed = rand(0, 99);
  17. $fast_seed = rand(0, 99);
  18. $slow_seed = rand(0, 99);
  19. if (is_numeric($pack_set)) {
  20. $pack_num = (int) $pack_set;
  21. $rare_seed = ($pack_num / 10000) % 100;
  22. $fast_seed = ($pack_num / 100) % 100;
  23. $slow_seed = ($pack_num / 1) % 100;
  24. }
  25. array_push($pack, $rares[$rare_seed]);
  26. for ($i = 0; $i < 7; $i++) {
  27. array_push($pack, $fasts[($fast_seed + $i) % 100]);
  28. }
  29. for ($i = 0; $i < 7; $i++) {
  30. array_push($pack, $slows[($slow_seed + $i) % 100]);
  31. }
  32. } elseif ($set_name == 'tw') {
  33. $stops = array(162, 152, 99, 97, 47, 32, 25, 174, 94);
  34. $wraths = array(164, 93, 84, 73, 71, 44, 45, 40, 11);
  35. $rares = array(3, 12, 17, 30, 33, 34, 36, 39, 48, 49, 64, 66, 67, 78, 80, 90, 98, 101, 102, 109, 110, 113, 116, 126, 133, 134, 147, 148, 149, 154, 163, 167, 168, 171);
  36. $ultras = array(22, 27, 28, 43, 57, 61, 62, 63, 74, 82, 95, 105, 117, 118, 130, 151, 153, 160, 173);
  37. $frees = array(96, 172, 46, 81, 10, 59, 55, 53, 106, 68, 56, 132, 35, 125, 150, 37, 69, 156, 124, 38, 23, 50, 170, 75, 16, 15);
  38. $slows = array(1, 7, 166, 137, 159, 146, 161, 21, 19, 145, 138, 135, 104, 103, 143, 131, 144, 8, 18, 58, 26, 29, 115, 139, 158, 123, 114, 42, 88, 5, 91, 52, 85, 157);
  39. $fasts = array(6, 169, 13, 41, 136, 107, 129, 122, 86, 141, 24, 165, 72, 119, 87, 31, 79, 92, 108, 128, 65, 111, 89, 77, 121, 127, 54, 14, 70, 100, 112, 4, 2, 140, 142, 120, 76, 155, 51, 60, 83, 20, 9);
  40. $stops_seed = rand(0, count($stops) - 1);
  41. $wraths_seed = rand(0, count($wraths) - 1);
  42. $rares_seed = rand(0, count($rares) * 3 + count($ultras) - 1);
  43. $frees_seed = rand(0, count($frees) - 1);
  44. $slows_seed = rand(0, count($slows) - 1);
  45. $fasts_seed = rand(0, count($fasts) - 1);
  46. array_push($pack, $stops[$stops_seed]);
  47. array_push($pack, $wraths[$wraths_seed]);
  48. for ($i = 0; $i < 3; $i++) {
  49. array_push($pack, $frees[($frees_seed + $i) % count($frees)]);
  50. }
  51. if ($rares_seed < 3 * count($rares)) {
  52. array_push($pack, $rares[$rares_seed % count($rares)]);
  53. } else {
  54. array_push($pack, $ultras[$rares_seed - (3 * count($rares))]);
  55. }
  56. for ($i = 0; $i < 4; $i++) {
  57. array_push($pack, $slows[($slows_seed + $i) % count($slows)]);
  58. }
  59. for ($i = 0; $i < 5; $i++) {
  60. array_push($pack, $fasts[($fasts_seed + $i) % count($fasts)]);
  61. }
  62. } else {
  63. echo json_encode("unrecognized set name");
  64. exit();
  65. }
  66. $query = "SELECT * FROM cards WHERE set_name = '$set_name' AND set_number IN (-1";
  67. foreach ($pack as $set_number) {
  68. $query .= ", $set_number";
  69. }
  70. $query .= ")";
  71. if (! ($link = db_connect())) {
  72. die("Database Error");
  73. }
  74. if (! $result = mysql_query($query)) {
  75. die("Database Error");
  76. }
  77. $list = array();
  78. while ($row = mysql_fetch_assoc($result)) {
  79. $arr = array();
  80. foreach ($row as $fieldname => $fieldvalue) {
  81. if ($fieldvalue == "\0") {
  82. $fieldvalue = false;
  83. }
  84. if ($fieldvalue == "\1") {
  85. $fieldvalue = true;
  86. }
  87. $arr[$fieldname] = $fieldvalue;
  88. }
  89. array_push($list, $arr);
  90. }
  91. echo json_encode($list);