SHARE
TWEET

Sample code to explain Divine Spirit bug

a guest Jul 11th, 2015 426 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. class Minion
  4. {
  5. private:
  6.     int Attack, CurrentHP, MaxHP;
  7. public:
  8.     Minion(int atk, int hp) : Attack(atk), CurrentHP(hp), MaxHP(hp) { }
  9.  
  10.     void UseDivineSpirit()
  11.     {
  12.         float temp = CurrentHP;
  13.         CurrentHP += (int)temp;
  14.         MaxHP += (int)temp;
  15.         std::cout << "Use DS: " << Attack << "/" << CurrentHP << std::endl;
  16.     }
  17.     void UseArmorPlating()
  18.     {
  19.         CurrentHP++;
  20.         MaxHP++;
  21.         std::cout << "Use AP: " << Attack << "/" << CurrentHP << std::endl;
  22.     }
  23. };
  24.  
  25. int main()
  26. {
  27.     Minion wisp(1, 1);
  28.     wisp.UseArmorPlating();  // Now a 1/2 wisp
  29.     for (int i = 0; i < 23; i++)  // Repeat Armor Plating and Divine Spirit 23 times
  30.     {
  31.         wisp.UseArmorPlating();
  32.         wisp.UseDivineSpirit();
  33.     }  // Wisp is now a 1/33554430
  34.     wisp.UseArmorPlating();  // Now a 1/33554431 wisp
  35.     wisp.UseDivineSpirit();  // Now a 1/67108863 wisp
  36.     wisp.UseDivineSpirit();  // Now a 1/134217727 wisp
  37.     wisp.UseDivineSpirit();  // Now a 1/268435455 wisp
  38.     wisp.UseDivineSpirit();  // Now a 1/536870911 wisp
  39.     wisp.UseDivineSpirit();  // Now a 1/1073741823 wisp
  40.     wisp.UseDivineSpirit();  // Now a 1/2147483647 wisp
  41.     return 0;
  42. }
  43.  
  44.  
  45. Output:
  46. Use AP: 1/2
  47. Use AP: 1/3
  48. Use DS: 1/6
  49. Use AP: 1/7
  50. Use DS: 1/14
  51. Use AP: 1/15
  52. Use DS: 1/30
  53. Use AP: 1/31
  54. Use DS: 1/62
  55. Use AP: 1/63
  56. Use DS: 1/126
  57. Use AP: 1/127
  58. Use DS: 1/254
  59. Use AP: 1/255
  60. Use DS: 1/510
  61. Use AP: 1/511
  62. Use DS: 1/1022
  63. Use AP: 1/1023
  64. Use DS: 1/2046
  65. Use AP: 1/2047
  66. Use DS: 1/4094
  67. Use AP: 1/4095
  68. Use DS: 1/8190
  69. Use AP: 1/8191
  70. Use DS: 1/16382
  71. Use AP: 1/16383
  72. Use DS: 1/32766
  73. Use AP: 1/32767
  74. Use DS: 1/65534
  75. Use AP: 1/65535
  76. Use DS: 1/131070
  77. Use AP: 1/131071
  78. Use DS: 1/262142
  79. Use AP: 1/262143
  80. Use DS: 1/524286
  81. Use AP: 1/524287
  82. Use DS: 1/1048574
  83. Use AP: 1/1048575
  84. Use DS: 1/2097150
  85. Use AP: 1/2097151
  86. Use DS: 1/4194302
  87. Use AP: 1/4194303
  88. Use DS: 1/8388606
  89. Use AP: 1/8388607
  90. Use DS: 1/16777214
  91. Use AP: 1/16777215
  92. Use DS: 1/33554430
  93. Use AP: 1/33554431
  94. Use DS: 1/67108863
  95. Use DS: 1/134217727
  96. Use DS: 1/268435455
  97. Use DS: 1/536870911
  98. Use DS: 1/1073741823
  99. Use DS: 1/2147483647
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top