Advertisement
Moolah60

New Leaf luck logic

Dec 19th, 2022 (edited)
1,101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.00 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. static unsigned char LuckLUT[70][12] = {
  4.     {
  5.         0x02, 0x06, 0x00, 0x04,
  6.         0x01, 0x08, 0x04, 0x00,
  7.         0x03, 0x02, 0x07, 0x06
  8.     },
  9.     {
  10.         0x06, 0x08, 0x09, 0x02,
  11.         0x04, 0x06, 0x00, 0x03,
  12.         0x02, 0x00, 0x04, 0x08
  13.     },
  14.     {
  15.         0x04, 0x09, 0x04, 0x08,
  16.         0x05, 0x00, 0x02, 0x08,
  17.         0x06, 0x02, 0x06, 0x00
  18.     },
  19.     {
  20.         0x05, 0x02, 0x01, 0x00,
  21.         0x06, 0x04, 0x06, 0x02,
  22.         0x08, 0x03, 0x00, 0x04
  23.     },
  24.     {
  25.         0x08, 0x06, 0x02, 0x06,
  26.         0x04, 0x09, 0x04, 0x01,
  27.         0x00, 0x00, 0x08, 0x07
  28.     },
  29.     {
  30.         0x02, 0x03, 0x08, 0x07,
  31.         0x02, 0x06, 0x00, 0x00,
  32.         0x04, 0x08, 0x09, 0x06
  33.     },
  34.     {
  35.         0x01, 0x00, 0x06, 0x08,
  36.         0x09, 0x08, 0x02, 0x04,
  37.         0x00, 0x06, 0x02, 0x04
  38.     },
  39.     {
  40.         0x08, 0x04, 0x00, 0x06,
  41.         0x04, 0x02, 0x03, 0x06,
  42.         0x02, 0x01, 0x08, 0x05
  43.     },
  44.     {
  45.         0x00, 0x08, 0x06, 0x01,
  46.         0x02, 0x07, 0x08, 0x04,
  47.         0x09, 0x00, 0x06, 0x02
  48.     },
  49.     {
  50.         0x06, 0x00, 0x04, 0x02,
  51.         0x08, 0x06, 0x09, 0x02,
  52.         0x08, 0x04, 0x01, 0x00
  53.     },
  54.     {
  55.         0x00, 0x04, 0x02, 0x03,
  56.         0x02, 0x00, 0x08, 0x05,
  57.         0x06, 0x08, 0x04, 0x06
  58.     },
  59.     {
  60.         0x08, 0x06, 0x05, 0x02,
  61.         0x04, 0x08, 0x04, 0x00,
  62.         0x02, 0x09, 0x00, 0x03
  63.     },
  64.     {
  65.         0x04, 0x05, 0x08, 0x06,
  66.         0x07, 0x00, 0x01, 0x02,
  67.         0x00, 0x04, 0x08, 0x02
  68.     },
  69.     {
  70.         0x02, 0x00, 0x04, 0x04,
  71.         0x08, 0x05, 0x00, 0x07,
  72.         0x08, 0x06, 0x02, 0x09
  73.     },
  74.     {
  75.         0x00, 0x04, 0x03, 0x09,
  76.         0x04, 0x06, 0x02, 0x08,
  77.         0x02, 0x00, 0x06, 0x08
  78.     },
  79.     {
  80.         0x03, 0x08, 0x06, 0x00,
  81.         0x08, 0x04, 0x04, 0x02,
  82.         0x06, 0x02, 0x05, 0x00
  83.     },
  84.     {
  85.         0x06, 0x02, 0x07, 0x08,
  86.         0x00, 0x02, 0x05, 0x04,
  87.         0x01, 0x00, 0x04, 0x08
  88.     },
  89.     {
  90.         0x08, 0x06, 0x00, 0x05,
  91.         0x06, 0x04, 0x02, 0x00,
  92.         0x08, 0x04, 0x03, 0x02
  93.     },
  94.     {
  95.         0x07, 0x00, 0x02, 0x04,
  96.         0x02, 0x03, 0x08, 0x06,
  97.         0x05, 0x08, 0x06, 0x04
  98.     },
  99.     {
  100.         0x02, 0x01, 0x04, 0x08,
  101.         0x03, 0x02, 0x06, 0x08,
  102.         0x04, 0x07, 0x00, 0x06
  103.     },
  104.     {
  105.         0x04, 0x00, 0x06, 0x04,
  106.         0x05, 0x00, 0x08, 0x09,
  107.         0x08, 0x02, 0x06, 0x07
  108.     },
  109.     {
  110.         0x00, 0x07, 0x02, 0x08,
  111.         0x04, 0x02, 0x05, 0x00,
  112.         0x09, 0x06, 0x08, 0x06
  113.     },
  114.     {
  115.         0x08, 0x04, 0x00, 0x06,
  116.         0x02, 0x01, 0x08, 0x06,
  117.         0x04, 0x05, 0x02, 0x00
  118.     },
  119.     {
  120.         0x06, 0x02, 0x08, 0x01,
  121.         0x00, 0x08, 0x00, 0x02,
  122.         0x03, 0x06, 0x04, 0x04
  123.     },
  124.     {
  125.         0x04, 0x06, 0x09, 0x00,
  126.         0x08, 0x07, 0x02, 0x06,
  127.         0x02, 0x04, 0x00, 0x01
  128.     },
  129.     {
  130.         0x06, 0x08, 0x04, 0x02,
  131.         0x09, 0x00, 0x06, 0x04,
  132.         0x00, 0x01, 0x08, 0x02
  133.     },
  134.     {
  135.         0x05, 0x04, 0x06, 0x00,
  136.         0x06, 0x02, 0x04, 0x01,
  137.         0x08, 0x02, 0x00, 0x08
  138.     },
  139.     {
  140.         0x00, 0x06, 0x00, 0x07,
  141.         0x08, 0x09, 0x02, 0x04,
  142.         0x02, 0x08, 0x01, 0x06
  143.     },
  144.     {
  145.         0x02, 0x05, 0x08, 0x04,
  146.         0x00, 0x04, 0x03, 0x02,
  147.         0x00, 0x09, 0x06, 0x08
  148.     },
  149.     {
  150.         0x09, 0x02, 0x05, 0x02,
  151.         0x04, 0x06, 0x00, 0x08,
  152.         0x06, 0x00, 0x07, 0x04
  153.     },
  154.     {
  155.         0x06, 0x02, 0x00, 0x04,
  156.         0x07, 0x00, 0x01, 0x04,
  157.         0x08, 0x02, 0x08, 0x09
  158.     },
  159.     {
  160.         0x02, 0x06, 0x01, 0x08,
  161.         0x02, 0x03, 0x06, 0x09,
  162.         0x00, 0x08, 0x04, 0x00
  163.     },
  164.     {
  165.         0x03, 0x00, 0x02, 0x06,
  166.         0x08, 0x04, 0x08, 0x06,
  167.         0x01, 0x04, 0x09, 0x02
  168.     },
  169.     {
  170.         0x02, 0x04, 0x03, 0x00,
  171.         0x02, 0x06, 0x09, 0x00,
  172.         0x08, 0x01, 0x04, 0x08
  173.     },
  174.     {
  175.         0x01, 0x08, 0x06, 0x02,
  176.         0x06, 0x04, 0x02, 0x03,
  177.         0x04, 0x00, 0x05, 0x00
  178.     },
  179.     {
  180.         0x04, 0x03, 0x04, 0x08,
  181.         0x00, 0x06, 0x00, 0x08,
  182.         0x05, 0x06, 0x02, 0x02
  183.     },
  184.     {
  185.         0x08, 0x04, 0x02, 0x05,
  186.         0x06, 0x00, 0x07, 0x02,
  187.         0x04, 0x03, 0x00, 0x06
  188.     },
  189.     {
  190.         0x07, 0x08, 0x00, 0x02,
  191.         0x03, 0x02, 0x06, 0x00,
  192.         0x06, 0x04, 0x08, 0x04
  193.     },
  194.     {
  195.         0x00, 0x02, 0x04, 0x06,
  196.         0x00, 0x08, 0x04, 0x07,
  197.         0x02, 0x08, 0x06, 0x03
  198.     },
  199.     {
  200.         0x02, 0x01, 0x08, 0x03,
  201.         0x04, 0x05, 0x08, 0x06,
  202.         0x00, 0x06, 0x02, 0x04
  203.     },
  204.     {
  205.         0x06, 0x07, 0x00, 0x04,
  206.         0x00, 0x02, 0x08, 0x02,
  207.         0x06, 0x04, 0x08, 0x05
  208.     },
  209.     {
  210.         0x02, 0x08, 0x09, 0x07,
  211.         0x06, 0x00, 0x05, 0x08,
  212.         0x04, 0x06, 0x04, 0x00
  213.     },
  214.     {
  215.         0x06, 0x00, 0x02, 0x08,
  216.         0x05, 0x08, 0x00, 0x09,
  217.         0x06, 0x04, 0x02, 0x04
  218.     },
  219.     {
  220.         0x04, 0x05, 0x04, 0x06,
  221.         0x08, 0x06, 0x02, 0x00,
  222.         0x09, 0x02, 0x08, 0x01
  223.     },
  224.     {
  225.         0x09, 0x02, 0x08, 0x00,
  226.         0x04, 0x01, 0x06, 0x04,
  227.         0x08, 0x06, 0x00, 0x02
  228.     },
  229.     {
  230.         0x02, 0x06, 0x02, 0x06,
  231.         0x01, 0x08, 0x04, 0x00,
  232.         0x07, 0x08, 0x03, 0x00
  233.     },
  234.     {
  235.         0x00, 0x04, 0x04, 0x02,
  236.         0x08, 0x06, 0x03, 0x06,
  237.         0x00, 0x05, 0x02, 0x07
  238.     },
  239.     {
  240.         0x08, 0x02, 0x07, 0x09,
  241.         0x06, 0x00, 0x04, 0x08,
  242.         0x03, 0x00, 0x04, 0x06
  243.     },
  244.     {
  245.         0x04, 0x03, 0x08, 0x00,
  246.         0x02, 0x04, 0x06, 0x05,
  247.         0x02, 0x07, 0x06, 0x08
  248.     },
  249.     {
  250.         0x05, 0x00, 0x06, 0x04,
  251.         0x00, 0x09, 0x08, 0x06,
  252.         0x04, 0x08, 0x07, 0x02
  253.     },
  254.     {
  255.         0x08, 0x00, 0x01, 0x08,
  256.         0x04, 0x02, 0x00, 0x07,
  257.         0x06, 0x04, 0x06, 0x02
  258.     },
  259.     {
  260.         0x06, 0x09, 0x00, 0x04,
  261.         0x07, 0x08, 0x02, 0x06,
  262.         0x00, 0x03, 0x04, 0x08
  263.     },
  264.     {
  265.         0x07, 0x04, 0x08, 0x08,
  266.         0x00, 0x05, 0x06, 0x04,
  267.         0x02, 0x02, 0x00, 0x06
  268.     },
  269.     {
  270.         0x00, 0x00, 0x04, 0x05,
  271.         0x08, 0x02, 0x07, 0x08,
  272.         0x04, 0x06, 0x02, 0x09
  273.     },
  274.     {
  275.         0x02, 0x08, 0x06, 0x06,
  276.         0x02, 0x04, 0x00, 0x01,
  277.         0x00, 0x08, 0x03, 0x04
  278.     },
  279.     {
  280.         0x01, 0x04, 0x02, 0x04,
  281.         0x06, 0x00, 0x08, 0x06,
  282.         0x05, 0x02, 0x00, 0x08
  283.     },
  284.     {
  285.         0x08, 0x02, 0x00, 0x03,
  286.         0x06, 0x06, 0x02, 0x08,
  287.         0x04, 0x09, 0x04, 0x00
  288.     },
  289.     {
  290.         0x04, 0x08, 0x06, 0x02,
  291.         0x00, 0x03, 0x04, 0x02,
  292.         0x07, 0x08, 0x05, 0x06
  293.     },
  294.     {
  295.         0x00, 0x06, 0x03, 0x06,
  296.         0x02, 0x04, 0x01, 0x04,
  297.         0x08, 0x00, 0x08, 0x05
  298.     },
  299.     {
  300.         0x04, 0x01, 0x08, 0x00,
  301.         0x09, 0x08, 0x06, 0x00,
  302.         0x02, 0x06, 0x02, 0x04
  303.     },
  304.     {
  305.         0x04, 0x08, 0x07, 0x02,
  306.         0x06, 0x08, 0x00, 0x02,
  307.         0x06, 0x04, 0x01, 0x00
  308.     },
  309.     {
  310.         0x00, 0x02, 0x06, 0x08,
  311.         0x03, 0x04, 0x06, 0x04,
  312.         0x02, 0x08, 0x00, 0x01
  313.     },
  314.     {
  315.         0x08, 0x04, 0x05, 0x00,
  316.         0x08, 0x02, 0x04, 0x06,
  317.         0x07, 0x02, 0x06, 0x00
  318.     },
  319.     {
  320.         0x06, 0x09, 0x02, 0x06,
  321.         0x00, 0x08, 0x07, 0x08,
  322.         0x04, 0x00, 0x02, 0x04
  323.     },
  324.     {
  325.         0x09, 0x06, 0x04, 0x00,
  326.         0x02, 0x01, 0x00, 0x05,
  327.         0x08, 0x06, 0x08, 0x02
  328.     },
  329.     {
  330.         0x00, 0x02, 0x08, 0x04,
  331.         0x01, 0x06, 0x04, 0x02,
  332.         0x06, 0x05, 0x00, 0x08
  333.     },
  334.     {
  335.         0x04, 0x00, 0x02, 0x01,
  336.         0x08, 0x00, 0x06, 0x03,
  337.         0x04, 0x02, 0x09, 0x06
  338.     },
  339.     {
  340.         0x03, 0x08, 0x06, 0x02,
  341.         0x04, 0x02, 0x09, 0x00,
  342.         0x00, 0x07, 0x06, 0x08
  343.     },
  344.     {
  345.         0x08, 0x06, 0x00, 0x00,
  346.         0x06, 0x07, 0x08, 0x04,
  347.         0x01, 0x04, 0x02, 0x03
  348.     },
  349.     {
  350.         0x06, 0x07, 0x08, 0x09,
  351.         0x00, 0x04, 0x02, 0x08,
  352.         0x06, 0x00, 0x04, 0x02
  353.     }
  354. };
  355.  
  356. static unsigned char StarSignDates[12][2] = {
  357.     { 0x01, 0x13 },
  358.     { 0x02, 0x12 },
  359.     { 0x03, 0x14 },
  360.     { 0x04, 0x13 },
  361.     { 0x05, 0x14 },
  362.     { 0x06, 0x15 },
  363.     { 0x07, 0x16 },
  364.     { 0x08, 0x16 },
  365.     { 0x09, 0x16 },
  366.     { 0x0a, 0x17 },
  367.     { 0x0b, 0x16 },
  368.     { 0x0c, 0x15 }
  369. };
  370.  
  371. typedef struct {
  372.     unsigned int year;
  373.     signed char month;
  374.     signed char day;
  375.     signed char weekday;
  376.     signed char hour;
  377.     signed char minute;
  378.     signed char second;
  379.     signed short unk;
  380. } DateTime;
  381.  
  382. static DateTime now = {
  383.     2022,
  384.     12,
  385.     19,
  386.     1,
  387.     12,
  388.     35,
  389.     00,
  390.     00
  391. };
  392.  
  393. static int GetStarSign(int month, int day) {
  394.     int sign = 0;
  395.     while (1) {
  396.         if (month < StarSignDates[sign][0]) {
  397.             return sign;
  398.         }
  399.        
  400.         if (month == StarSignDates[sign][0] && day <= StarSignDates[sign][1]) {
  401.             return sign;
  402.         }
  403.        
  404.         sign++;
  405.         if (sign > 11) {
  406.             return 0;
  407.         }
  408.     }
  409. }
  410.  
  411. static unsigned char GetLuck(DateTime* date, signed char birthday_month, signed char birthday_day) {
  412.     int day_part = (date->day / 10) % 10 + date->day % 10;
  413.     int month_part = (date->month / 10) % 10 + date->month % 10;
  414.     int year_part = (date->year / 1000) % 10 + (date->year / 100) % 10 + (date->year / 10) % 10 + date->year % 10; // Add each decimal digit together
  415.    
  416.     int res = day_part + month_part + year_part;
  417.     if (res > 10) {
  418.         res += (res / 10) * -9; // Adds the ones and 10s place digits together while moving all digits over by one.
  419.     }
  420.    
  421.     // we transform 0 = sunday format to 0 = monday format
  422.     int base = res + ((date->weekday + 6) % 7) * 10 - 1;
  423.     int sign = GetStarSign(birthday_month, birthday_day);
  424.     return LuckLUT[base][sign];
  425. }
  426.  
  427. int main()
  428. {
  429.     int luck = GetLuck(&now, 1, 16);
  430.     printf("Luck: %d\n", luck);
  431.     return 0;
  432. }
  433.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement