Guest User

bolide 0.35 LOL

a guest
Apr 21st, 2021
48
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %hp is 0 def is 1 numarti/sub refer to num of hp main/sub not incl nat sub
  2. %ehp = effective hp
  3. %damage reduction BANNED AND IGNORED(beidou q, xingqiu e, c6 jean q, c4 mc)
  4. %teamcomp c1 zhong bei razor but with DR stack its c6 jean bei xingqiu razor which is cheating LOL
  5. %even though beidou c1 requires ult to proc the shield we're ignoring the ult DR LOL
  6.  
  7. setscreen ("graphics: max; 2000")
  8. var level := 100.0;
  9. %enemy level
  10.  
  11.  
  12.  
  13.  
  14. var bell := 0.0;
  15. var bellBool := false;
  16. var razor : boolean
  17. var mostEHP := 0.0;
  18. var finalEHP := 0.0;
  19.  
  20. var choice := 7;
  21.  
  22. var arti := 0.0;
  23.  
  24.  
  25. var defSubs := 0;
  26. var defArtis := 0;
  27.  
  28. var numArti := 0.0;
  29. var numSub := 0.0;
  30.  
  31.  
  32. %1/ dmg multi = ehp multi. 1.4 is cap, easily obtained, thundersoother and electro pot.
  33. var resX := 1.4 * 4 + 1
  34.  
  35.  
  36. var defX := 0.0;
  37.  
  38. var baseHP := 11962.0;
  39. var baseDEF := 751.0;
  40.  
  41.  
  42. %shield value calced in spreadsheet
  43. var shield := 8996.376;
  44. shield := shield * 2.5;
  45. var bolideShield := shield * 2.0;
  46. %electro shield absorb 2.5, all multiplicative, 2.4 = 1 + 0.25 + 0.4 + 0.35 from r5 unforged, zhong a2 prestacked, bolide, moon pie respectively
  47.  
  48. %razorHP is razor hp and beidou shield hp
  49. var razorHP := 0.0;
  50. var razorDEF := 0.0;
  51.  
  52. var HPArtis := 0;
  53. var maxDEFSubs := 0;
  54. var maxHPSubs := 0;
  55. var leftoverHP := 0;
  56. var leftoverDEF := 0;
  57. var HPSubs := 0;
  58.  
  59. var flatHP := 0;
  60. var flatDEF := 0;
  61.  
  62. var maxHP := 0
  63. var maxDEF := 0
  64.  
  65. var fourHP := 0;
  66. var fourDEF := 0
  67. var flower := 0.0
  68. var fourFlower := 0
  69. var fourFeather := 0
  70. var fourFF := 0
  71. var fourFlatDEF := 0
  72. var fourFlatHP := 0
  73. var maxFlatDEF := 0
  74. var maxFlatHP := 0
  75.  
  76. var miracle := true;
  77. var zhong := true;
  78.  
  79. var unforged := false;
  80. var wblind := 0.0;
  81.  
  82. var beiRES := 0.0;
  83. %bolide
  84. var gonext := false;
  85.  
  86. proc higher (d, e, f, g, tmp : int)
  87. if finalEHP > mostEHP then
  88.  
  89.  
  90. mostEHP := finalEHP;
  91.  
  92. numArti := d
  93. numSub := e
  94.  
  95. unforged := false
  96. bellBool := false
  97. razor := false
  98. if f = 1 then
  99. unforged := true
  100. razor := true
  101.  
  102. elsif f = 0 then
  103. razor := true
  104.  
  105. elsif f = 2 then
  106. unforged := true
  107.  
  108. elsif f = 3 then
  109.  
  110. elsif f = 4 then
  111. bellBool := true
  112.  
  113. end if
  114. zhong := true
  115. miracle := false
  116. if f > 1 then
  117. if g = 0 then
  118. miracle := false
  119. zhong := true
  120. elsif g = 1 then
  121. miracle := false
  122. zhong := false
  123. elsif g = 2 then
  124. miracle := true
  125. zhong := true
  126. else
  127. miracle := true
  128. zhong := false
  129. end if
  130. end if
  131. choice := tmp
  132. % if numArti = 3 and numSub = 21 then
  133. % put maxHPSubs
  134. % put maxHP
  135. % put HPSubs
  136. % put flatHP
  137. % put leftoverHP
  138. % put fourFlatHP
  139. % put "d"
  140. % put defSubs
  141. % put flatDEF
  142. % put leftoverDEF
  143. % put (defSubs + HPArtis + (2 - fourFF))
  144. % put fourDEF
  145. % put fourFF
  146. % put "t"
  147. % put shield
  148. % put resX
  149. % put defX
  150. % put razorHP
  151. % put razorHP - shield
  152. % put shield
  153. % put razorDEF
  154. % put " "
  155. %
  156. %
  157. % end if
  158. end if
  159. end higher
  160.  
  161. level := 0
  162.  
  163.  
  164.  
  165. var fileName := "beidouEHP.txt"
  166. var fileNo := 7
  167. open : fileNo, fileName, put
  168.  
  169. loop
  170.  
  171.  
  172. level += 1
  173.  
  174. mostEHP := 0
  175.  
  176. for k : 0 .. 4
  177.  
  178. if k = 1 then
  179. shield := 8996.376 * 2.5
  180. resX := 6.6
  181. bolideShield := 2.35
  182. wblind := 0.0
  183. baseHP := 11962.0;
  184. baseDEF := 751.0;
  185. elsif k = 0 then
  186. shield := 8996.376 * 2.5
  187. resX := 6.6
  188. bolideShield := 1.95
  189. wblind := 0.997
  190. baseHP := 11962.0;
  191. baseDEF := 751.0;
  192. elsif k = 2 then
  193. shield := 0
  194. resX := 4.2
  195. bolideShield := 2.35
  196. wblind := 0.0
  197. baseHP := 13050.0;
  198. baseDEF := 648.0;
  199. bell := 0.0
  200. elsif k = 3 then
  201. shield := 0
  202. resX := 4.2
  203. bolideShield := 1.95
  204. wblind := 0.997
  205. baseHP := 13050.0;
  206. baseDEF := 648.0;
  207. bell := 0.0
  208. elsif k = 4 then
  209. shield := 0
  210. resX := 4.2
  211. bolideShield := 1.95
  212. wblind := 0.0
  213. baseHP := 13050.0;
  214. baseDEF := 648.0;
  215. bell := 0.413
  216. end if
  217.  
  218.  
  219.  
  220. for a : 0 .. 3
  221.  
  222.  
  223. defArtis := 3 - a;
  224. %iterate through all possibility (1 2 or 3 hp, and corresponding def)
  225. HPArtis := a;
  226.  
  227.  
  228. for i : 0 .. 25
  229.  
  230. if k < 2 then
  231. defSubs := 25 - i;
  232. HPSubs := i;
  233.  
  234. maxHPSubs := 5 * (5 - HPArtis)
  235. maxDEFSubs := 5 * (5 - defArtis)
  236.  
  237. leftoverDEF := 0
  238. leftoverHP := 0
  239.  
  240.  
  241. if HPSubs > maxHPSubs then
  242. leftoverHP := HPSubs - maxHPSubs;
  243. HPSubs := maxHPSubs
  244. end if
  245.  
  246. if defSubs > maxDEFSubs then
  247. leftoverDEF := defSubs - maxDEFSubs;
  248. defSubs := maxDEFSubs
  249. end if
  250.  
  251.  
  252. razorHP := baseHP * (1 + 0.466 * HPArtis + 0.058 * (HPSubs + (5 - HPArtis)));
  253.  
  254. razorHP += 4780 + 299 * (leftoverHP + 4)
  255.  
  256. razorDEF := baseDEF * (1 + 0.583 * defArtis + 0.073 * (defSubs + (5 - defArtis)) + wblind);
  257.  
  258. razorDEF += 235 + 23 * (leftoverDEF + 5)
  259.  
  260. shield := shield * bolideShield
  261.  
  262. razorHP += shield;
  263. %1/ 1 - damage reduction, gives def ehp multiplier from wiki formula
  264. defX := 1 / (1 - razorDEF / (razorDEF + 500 + 5 * level));
  265.  
  266.  
  267.  
  268. finalEHP := defX * razorHP * resX;
  269. %how busted would damage reduction be its just a 4th multiplier
  270. %like xq 4th slot u would actually enter 1 billion + EHP
  271. %c6 jean and youre immortal
  272.  
  273. higher (a, i, k, 99, 99)
  274. shield := 8996.376 * 2.5
  275. end if
  276.  
  277.  
  278.  
  279.  
  280. if k > 1 then
  281.  
  282. for p : 0 .. 3
  283.  
  284. %bolidezhong, bolidening, miraclezhong, miraclening
  285. if k = 2 then
  286. bolideShield := 2.35
  287. else
  288. bolideShield := 1.95
  289. end if
  290. resX := 4.2
  291. if p = 0 then
  292.  
  293. elsif p = 1 then
  294. bolideShield -= 0.25
  295. resX += 0.4
  296. elsif p = 2 then
  297. resX += 0.8
  298. bolideShield -= 0.35
  299. else
  300. bolideShield -= 0.6
  301. resX += 1.2
  302. end if
  303.  
  304. if p < 2 then
  305. defSubs := 25 - i;
  306. HPSubs := i;
  307.  
  308. maxHPSubs := 5 * (5 - HPArtis)
  309. maxDEFSubs := 5 * (5 - defArtis)
  310.  
  311. leftoverDEF := 0
  312. leftoverHP := 0
  313.  
  314.  
  315. if HPSubs > maxHPSubs then
  316. leftoverHP := HPSubs - maxHPSubs;
  317. HPSubs := maxHPSubs
  318. end if
  319.  
  320. if defSubs > maxDEFSubs then
  321. leftoverDEF := defSubs - maxDEFSubs;
  322. defSubs := maxDEFSubs
  323. end if
  324.  
  325.  
  326. razorHP := baseHP * (1 + bell + 0.466 * HPArtis + 0.058 * (HPSubs + (5 - HPArtis)));
  327.  
  328. razorHP += 4780 + 299 * (leftoverHP + 4)
  329.  
  330. razorDEF := baseDEF * (1 + 0.583 * defArtis + 0.073 * (defSubs + (5 - defArtis)) + wblind);
  331.  
  332. razorDEF += 235 + 23 * (leftoverDEF + 5)
  333.  
  334. shield := 2.5 * (0.306 * razorHP + 3813)
  335.  
  336. shield := shield * bolideShield
  337.  
  338. razorHP += shield;
  339. %1/ 1 - damage reduction, gives def ehp multiplier from wiki formula
  340. defX := 1 / (1 - razorDEF / (razorDEF + 500 + 5 * level));
  341.  
  342.  
  343. finalEHP := defX * razorHP * resX;
  344.  
  345. %how busted would damage reduction be its just a 4th multiplier
  346. %like xq 4th slot u would actually enter 1 billion + EHP
  347. %c6 jean and youre immortal
  348.  
  349. higher (a, i, k, p, 99)
  350.  
  351. elsif i < 22 then
  352. %q, 4* choice. flower/feather, feather/def, feather/hp, def/def, hp/hp, hp/def
  353. for q : 1 .. 6
  354.  
  355. defSubs := 21 - i;
  356. HPSubs := i;
  357.  
  358.  
  359.  
  360. flatHP := 0
  361. flatDEF := 0
  362.  
  363. leftoverDEF := 0
  364. leftoverHP := 0
  365. fourHP := 0
  366. fourDEF := 0
  367. flower := 4780
  368. gonext := true
  369. fourFlatDEF := 0
  370. fourFlatHP := 0
  371.  
  372.  
  373. fourFlower := 0
  374. fourFeather := 0
  375. fourFF := 0
  376. if q = 1 then
  377. flower -= 1209
  378. fourHP := 0
  379. fourDEF := 0
  380. fourFlower := 1
  381. fourFeather := 1
  382. gonext := false
  383. elsif q = 2 then
  384. if defArtis > 0 then
  385. gonext := false
  386. fourDEF := 1
  387. fourFeather := 1
  388. end if
  389. elsif q = 3 then
  390. if HPArtis > 0 then
  391. gonext := false
  392. fourHP := 1
  393. fourFeather := 1
  394. end if
  395. elsif q = 4 then
  396. if defArtis > 1 then
  397. gonext := false
  398. fourDEF := 2
  399. end if
  400. elsif q = 5 then
  401. if HPArtis > 1 then
  402. gonext := false
  403. fourHP := 2
  404. end if
  405. else
  406. if HPArtis > 0 and defArtis > 0 then
  407. gonext := false
  408. fourDEF := 1
  409. fourHP := 1
  410. end if
  411. end if
  412.  
  413.  
  414.  
  415.  
  416. if gonext = false then
  417. fourFF := fourFlower + fourFeather
  418. maxHPSubs := fourDEF * 3 + 5 * (defArtis - fourDEF) + 3 * fourFF + 5 * (2 - fourFF)
  419. maxDEFSubs := fourHP * 3 + 5 * (HPArtis - fourHP) + 3 * fourFF + 5 * (2 - fourFF)
  420. maxHP := 5 * (defArtis - fourDEF) + 5 * (2 - fourFF)
  421. maxDEF := 5 * (HPArtis - fourHP) + 5 * (2 - fourFF)
  422. maxFlatHP := 5 * (3 - fourDEF - fourHP)
  423. maxFlatDEF := 5 * (3 - fourDEF - fourHP)
  424.  
  425.  
  426.  
  427. if HPSubs > maxHPSubs then
  428. flatHP := HPSubs - maxHPSubs
  429. leftoverHP := HPSubs - (flatHP + maxHP)
  430. HPSubs := maxHP
  431. if flatHP > maxFlatHP then
  432. fourFlatHP := flatHP - maxFlatHP
  433. flatHP := maxFlatHP
  434. end if
  435. elsif HPSubs > maxHP then
  436. leftoverHP := HPSubs - maxHP
  437. HPSubs := maxHP
  438.  
  439. end if
  440.  
  441.  
  442. if defSubs > maxDEFSubs then
  443. flatDEF := defSubs - maxDEFSubs
  444. leftoverDEF := defSubs - (flatDEF + maxDEF)
  445. defSubs := maxDEF
  446. if flatDEF > maxFlatDEF then
  447. fourFlatDEF := flatDEF - maxFlatDEF
  448. flatDEF := maxFlatDEF
  449. end if
  450. elsif defSubs > maxDEF then
  451. leftoverDEF := defSubs - maxDEF
  452. defSubs := maxDEF
  453.  
  454. end if
  455.  
  456. finalEHP := 0
  457.  
  458.  
  459.  
  460.  
  461. razorHP := baseHP * (1 + fourHP * 0.348 + 0.466 * (HPArtis - fourHP) + 0.058 * (HPSubs + defArtis + (2 - fourFF) - fourDEF) + 0.047 * (fourDEF + leftoverHP +
  462. fourFF));
  463.  
  464. if flower > 4000 then
  465.  
  466. razorHP += flower + 299 * (flatHP + 2) + 239 * (2 + fourFlatHP) %- 180
  467.  
  468. else
  469. razorHP += flower + 299 * (flatHP + 3) + 239 * (1 + fourFlatHP) %- 180
  470. end if
  471.  
  472.  
  473.  
  474. razorDEF := baseDEF * (1 + fourDEF * 0.435 + 0.583 * (defArtis - fourDEF) + 0.073 * (defSubs + HPArtis + (2 - fourFF) - fourHP) + 0.058 * (fourHP + leftoverDEF +
  475. fourFF) + wblind);
  476.  
  477. razorDEF += 235 + 23 * (flatDEF + 3) + 19 * (2 + fourFlatDEF)
  478. shield := 2.5 * (0.306 * razorHP + 3813)
  479.  
  480. shield := shield * bolideShield
  481. razorHP += shield;
  482.  
  483.  
  484. defX := 1 / (1 - razorDEF / (razorDEF + 500 + 5 * level));
  485.  
  486.  
  487. finalEHP := defX * razorHP * resX;
  488.  
  489.  
  490. higher (a, i, k, p, q)
  491.  
  492.  
  493.  
  494. end if
  495.  
  496.  
  497. end for
  498.  
  499. end if
  500.  
  501.  
  502.  
  503. end for
  504.  
  505.  
  506.  
  507. end if
  508.  
  509.  
  510.  
  511.  
  512. end for
  513.  
  514.  
  515. end for
  516.  
  517.  
  518. end for
  519.  
  520.  
  521. exit when level = 2000
  522.  
  523. put : fileNo, mostEHP
  524. end loop
  525.  
  526. put "level? ", level
  527. put mostEHP : 14 : 7, " effective health, HP main stats: ", numArti, ", HP sub stats: ", numSub
  528.  
  529. put " "
  530. put "razor? ", razor
  531. put "bell? ", bellBool
  532. put "unforged? ", unforged
  533. put "zhong? ", zhong
  534. put "miracle? ", miracle
  535. put "4* choice, 1-6. flower/feather, feather/def, feather/hp, def/def, hp/hp, hp/def"
  536. put choice
  537.  
RAW Paste Data