gamozo

Registered
  • Content Count

    1
  • Joined

  • Last visited

  1. gamozo

    Score

    To expand on this score, I made a theoretical/ideal score calculator in python. It also includes information like cumulative gold and per creep health per wave. All the stats are done for classic mode only. Here are the results from the script. Note that the final score calculation does not include score from frog waves. All the scores are theoretical maximums based on if you kill the entire wave instantly every wave (thus also no leakage). To my knowledge it factors in the delays between waves correctly (please let me know if my calculations are off). difficulty normal wave | time | score | cum score | per creep gold | wave gold | cum gold | per creep health ---------------------------------------------------------------------------------------------- 1 | 45 | 444 | 444 | 1 | 30 | 280 | 75 2 | 67 | 518 | 963 | 1 | 30 | 310 | 87 3 | 89 | 592 | 1556 | 2 | 60 | 370 | 102 4 | 111 | 666 | 2223 | 2 | 60 | 430 | 119 5 | 133 | 741 | 2964 | 2 | 60 | 490 | 139 6 | 178 | 815 | 3779 | 2 | 60 | 550 | 163 7 | 200 | 889 | 4668 | 2 | 60 | 610 | 190 8 | 222 | 963 | 5631 | 3 | 90 | 700 | 222 9 | 244 | 1037 | 6669 | 3 | 90 | 790 | 259 10 | 266 | 1111 | 7780 | 3 | 90 | 880 | 303 11 | 311 | 1185 | 8966 | 4 | 120 | 1000 | 354 12 | 334 | 1259 | 10225 | 4 | 120 | 1120 | 413 13 | 357 | 1333 | 11559 | 4 | 120 | 1240 | 483 14 | 380 | 1407 | 12967 | 5 | 150 | 1390 | 564 15 | 403 | 1482 | 14449 | 5 | 150 | 1540 | 659 16 | 448 | 1556 | 16005 | 6 | 180 | 1720 | 770 17 | 471 | 1630 | 17635 | 7 | 210 | 1930 | 899 18 | 494 | 1704 | 19340 | 7 | 210 | 2140 | 1050 19 | 517 | 1778 | 21118 | 8 | 240 | 2380 | 1227 20 | 540 | 1852 | 22971 | 9 | 270 | 2650 | 1433 21 | 585 | 1926 | 24897 | 10 | 300 | 2950 | 1674 22 | 608 | 2000 | 26898 | 11 | 330 | 3280 | 1955 23 | 631 | 2074 | 28973 | 12 | 360 | 3640 | 2284 24 | 654 | 2148 | 31122 | 13 | 390 | 4030 | 2668 25 | 677 | 2223 | 33345 | 14 | 420 | 4450 | 3116 26 | 722 | 2297 | 35642 | 15 | 450 | 4900 | 3640 27 | 745 | 2371 | 38013 | 17 | 510 | 5410 | 4251 28 | 768 | 2445 | 40458 | 18 | 540 | 5950 | 4966 29 | 791 | 2519 | 42978 | 20 | 600 | 6550 | 5800 30 | 814 | 2593 | 45571 | 22 | 660 | 7210 | 6774 31 | 859 | 2667 | 48239 | 24 | 720 | 7930 | 7913 32 | 883 | 2741 | 50980 | 26 | 780 | 8710 | 9242 33 | 907 | 2815 | 53796 | 29 | 870 | 9580 | 10795 34 | 931 | 2889 | 56686 | 32 | 960 | 10540 | 12608 35 | 955 | 2964 | 59650 | 35 | 1050 | 11590 | 14727 36 | 1000 | 3038 | 62688 | 38 | 1140 | 12730 | 17201 37 | 1024 | 3112 | 65800 | 41 | 1230 | 13960 | 20091 38 | 1048 | 3186 | 68987 | 45 | 1350 | 15310 | 23466 39 | 1072 | 3260 | 72247 | 50 | 1500 | 16810 | 27408 40 | 1096 | 3334 | 75582 | 54 | 1620 | 18430 | 32013 41 | 1141 | 3408 | 78990 | 59 | 1770 | 20200 | 37391 42 | 1165 | 3482 | 82473 | 65 | 1950 | 22150 | 43673 43 | 1189 | 3556 | 86030 | 71 | 2130 | 24280 | 51010 44 | 1213 | 3630 | 89661 | 78 | 2340 | 26620 | 59580 45 | 1237 | 3705 | 93366 | 85 | 2550 | 29170 | 69589 46 | 1282 | 3779 | 97145 | 93 | 2790 | 31960 | 81281 47 | 1307 | 3853 | 100998 | 101 | 3030 | 34990 | 94936 48 | 1332 | 3927 | 104925 | 111 | 3330 | 38320 | 110885 49 | 1357 | 4001 | 108927 | 121 | 3630 | 41950 | 129514 50 | 1382 | 4075 | 113002 | 133 | 3990 | 45940 | 151272 51 | 1427 | 4149 | 117152 | 145 | 4350 | 50290 | 176686 52 | 1452 | 4223 | 121375 | 158 | 4740 | 55030 | 206369 53 | 1477 | 4297 | 125673 | 173 | 5190 | 60220 | 241039 54 | 1502 | 4371 | 130045 | 189 | 5670 | 65890 | 281534 55 | 1527 | 4446 | 134491 | 207 | 6210 | 72100 | 328832 Final score with game time bonus: 341116 difficulty hard wave | time | score | cum score | per creep gold | wave gold | cum gold | per creep health ---------------------------------------------------------------------------------------------- 1 | 45 | 889 | 889 | 1 | 30 | 280 | 97 2 | 66 | 1037 | 1926 | 1 | 30 | 310 | 113 3 | 87 | 1185 | 3112 | 2 | 60 | 370 | 132 4 | 108 | 1333 | 4446 | 2 | 60 | 430 | 154 5 | 129 | 1482 | 5928 | 2 | 60 | 490 | 180 6 | 174 | 1630 | 7558 | 2 | 60 | 550 | 211 7 | 195 | 1778 | 9336 | 2 | 60 | 610 | 247 8 | 216 | 1926 | 11263 | 3 | 90 | 700 | 288 9 | 237 | 2074 | 13338 | 3 | 90 | 790 | 336 10 | 258 | 2223 | 15561 | 3 | 90 | 880 | 393 11 | 303 | 2371 | 17932 | 4 | 120 | 1000 | 460 12 | 325 | 2519 | 20451 | 4 | 120 | 1120 | 536 13 | 347 | 2667 | 23119 | 5 | 150 | 1270 | 627 14 | 369 | 2815 | 25935 | 5 | 150 | 1420 | 733 15 | 391 | 2964 | 28899 | 6 | 180 | 1600 | 856 16 | 436 | 3112 | 32011 | 6 | 180 | 1780 | 1001 17 | 458 | 3260 | 35271 | 7 | 210 | 1990 | 1168 18 | 480 | 3408 | 38680 | 8 | 240 | 2230 | 1365 19 | 502 | 3556 | 42237 | 8 | 240 | 2470 | 1595 20 | 524 | 3705 | 45942 | 9 | 270 | 2740 | 1862 21 | 569 | 3853 | 49795 | 10 | 300 | 3040 | 2176 22 | 591 | 4001 | 53796 | 11 | 330 | 3370 | 2541 23 | 613 | 4149 | 57946 | 12 | 360 | 3730 | 2969 24 | 635 | 4297 | 62244 | 13 | 390 | 4120 | 3468 25 | 657 | 4446 | 66690 | 15 | 450 | 4570 | 4050 26 | 702 | 4594 | 71284 | 16 | 480 | 5050 | 4732 27 | 724 | 4742 | 76026 | 18 | 540 | 5590 | 5526 28 | 746 | 4890 | 80917 | 19 | 570 | 6160 | 6455 29 | 768 | 5038 | 85956 | 21 | 630 | 6790 | 7540 30 | 790 | 5187 | 91143 | 23 | 690 | 7480 | 8806 31 | 835 | 5335 | 96478 | 26 | 780 | 8260 | 10286 32 | 858 | 5483 | 101961 | 28 | 840 | 9100 | 12014 33 | 881 | 5631 | 107593 | 31 | 930 | 10030 | 14033 34 | 904 | 5779 | 113373 | 34 | 1020 | 11050 | 16390 35 | 927 | 5928 | 119301 | 37 | 1110 | 12160 | 19145 36 | 972 | 6076 | 125377 | 41 | 1230 | 13390 | 22361 37 | 995 | 6224 | 131601 | 45 | 1350 | 14740 | 26118 38 | 1018 | 6372 | 137974 | 49 | 1470 | 16210 | 30505 39 | 1041 | 6520 | 144495 | 54 | 1620 | 17830 | 35630 40 | 1064 | 6669 | 151164 | 59 | 1770 | 19600 | 41616 41 | 1109 | 6817 | 157981 | 65 | 1950 | 21550 | 48608 42 | 1132 | 6965 | 164946 | 71 | 2130 | 23680 | 56774 43 | 1155 | 7113 | 172060 | 77 | 2310 | 25990 | 66313 44 | 1178 | 7261 | 179322 | 85 | 2550 | 28540 | 77454 45 | 1201 | 7410 | 186732 | 93 | 2790 | 31330 | 90465 46 | 1246 | 7558 | 194290 | 102 | 3060 | 34390 | 105665 47 | 1270 | 7706 | 201996 | 112 | 3360 | 37750 | 123416 48 | 1294 | 7854 | 209851 | 122 | 3660 | 41410 | 144150 49 | 1318 | 8002 | 217854 | 134 | 4020 | 45430 | 168368 50 | 1342 | 8151 | 226005 | 147 | 4410 | 49840 | 196653 51 | 1387 | 8299 | 234304 | 161 | 4830 | 54670 | 229691 52 | 1411 | 8447 | 242751 | 176 | 5280 | 59950 | 268279 53 | 1435 | 8595 | 251347 | 193 | 5790 | 65740 | 313350 54 | 1459 | 8743 | 260091 | 211 | 6330 | 72070 | 365994 55 | 1483 | 8892 | 268983 | 231 | 6930 | 79000 | 427481 Final score with game time bonus: 710456 difficulty very hard wave | time | score | cum score | per creep gold | wave gold | cum gold | per creep health ---------------------------------------------------------------------------------------------- 1 | 45 | 1333 | 1333 | 1 | 30 | 280 | 120 2 | 65 | 1556 | 2889 | 1 | 30 | 310 | 139 3 | 85 | 1778 | 4668 | 2 | 60 | 370 | 163 4 | 105 | 2000 | 6669 | 2 | 60 | 430 | 190 5 | 125 | 2223 | 8892 | 2 | 60 | 490 | 222 6 | 170 | 2445 | 11337 | 2 | 60 | 550 | 260 7 | 190 | 2667 | 14004 | 3 | 90 | 640 | 304 8 | 210 | 2889 | 16894 | 3 | 90 | 730 | 355 9 | 230 | 3112 | 20007 | 3 | 90 | 820 | 414 10 | 250 | 3334 | 23341 | 4 | 120 | 940 | 484 11 | 295 | 3556 | 26898 | 4 | 120 | 1060 | 566 12 | 316 | 3779 | 30677 | 4 | 120 | 1180 | 660 13 | 337 | 4001 | 34678 | 5 | 150 | 1330 | 772 14 | 358 | 4223 | 38902 | 5 | 150 | 1480 | 902 15 | 379 | 4446 | 43348 | 6 | 180 | 1660 | 1054 16 | 424 | 4668 | 48016 | 6 | 180 | 1840 | 1232 17 | 445 | 4890 | 52907 | 7 | 210 | 2050 | 1438 18 | 466 | 5112 | 58020 | 8 | 240 | 2290 | 1680 19 | 487 | 5335 | 63355 | 9 | 270 | 2560 | 1963 20 | 508 | 5557 | 68913 | 10 | 300 | 2860 | 2292 21 | 553 | 5779 | 74692 | 11 | 330 | 3190 | 2678 22 | 574 | 6002 | 80694 | 12 | 360 | 3550 | 3128 23 | 595 | 6224 | 86919 | 13 | 390 | 3940 | 3654 24 | 616 | 6446 | 93366 | 14 | 420 | 4360 | 4268 25 | 637 | 6669 | 100035 | 16 | 480 | 4840 | 4985 26 | 682 | 6891 | 106926 | 17 | 510 | 5350 | 5824 27 | 703 | 7113 | 114039 | 19 | 570 | 5920 | 6801 28 | 724 | 7335 | 121375 | 21 | 630 | 6550 | 7945 29 | 745 | 7558 | 128934 | 23 | 690 | 7240 | 9280 30 | 766 | 7780 | 136714 | 25 | 750 | 7990 | 10838 31 | 811 | 8002 | 144717 | 28 | 840 | 8830 | 12660 32 | 833 | 8225 | 152942 | 30 | 900 | 9730 | 14787 33 | 855 | 8447 | 161389 | 33 | 990 | 10720 | 17272 34 | 877 | 8669 | 170059 | 36 | 1080 | 11800 | 20172 35 | 899 | 8892 | 178951 | 40 | 1200 | 13000 | 23563 36 | 944 | 9114 | 188065 | 44 | 1320 | 14320 | 27521 37 | 966 | 9336 | 197402 | 48 | 1440 | 15760 | 32145 38 | 988 | 9558 | 206961 | 53 | 1590 | 17350 | 37545 39 | 1010 | 9781 | 216742 | 58 | 1740 | 19090 | 43852 40 | 1032 | 10003 | 226746 | 64 | 1920 | 21010 | 51220 41 | 1077 | 10225 | 236971 | 70 | 2100 | 23110 | 59825 42 | 1099 | 10448 | 247419 | 77 | 2310 | 25420 | 69876 43 | 1121 | 10670 | 258090 | 85 | 2550 | 27970 | 81616 44 | 1143 | 10892 | 268983 | 93 | 2790 | 30760 | 95328 45 | 1165 | 11115 | 280098 | 102 | 3060 | 33820 | 111342 46 | 1210 | 11337 | 291435 | 112 | 3360 | 37180 | 130049 47 | 1233 | 11559 | 302994 | 123 | 3690 | 40870 | 151897 48 | 1256 | 11781 | 314776 | 135 | 4050 | 44920 | 177416 49 | 1279 | 12004 | 326781 | 148 | 4440 | 49360 | 207222 50 | 1302 | 12226 | 339007 | 162 | 4860 | 54220 | 242035 51 | 1347 | 12448 | 351456 | 178 | 5340 | 59560 | 282697 52 | 1370 | 12671 | 364127 | 195 | 5850 | 65410 | 330190 53 | 1393 | 12893 | 377020 | 214 | 6420 | 71830 | 385662 54 | 1416 | 13115 | 390136 | 235 | 7050 | 78880 | 450454 55 | 1439 | 13338 | 403474 | 258 | 7740 | 86620 | 526131 Final score with game time bonus: 1110606 difficulty insane wave | time | score | cum score | per creep gold | wave gold | cum gold | per creep health ---------------------------------------------------------------------------------------------- 1 | 45 | 1778 | 1778 | 1 | 30 | 280 | 150 2 | 64 | 2074 | 3853 | 1 | 30 | 310 | 174 3 | 83 | 2371 | 6224 | 2 | 60 | 370 | 204 4 | 102 | 2667 | 8892 | 2 | 60 | 430 | 238 5 | 121 | 2964 | 11856 | 2 | 60 | 490 | 278 6 | 166 | 3260 | 15116 | 2 | 60 | 550 | 326 7 | 185 | 3556 | 18673 | 3 | 90 | 640 | 380 8 | 204 | 3853 | 22526 | 3 | 90 | 730 | 444 9 | 223 | 4149 | 26676 | 3 | 90 | 820 | 518 10 | 242 | 4446 | 31122 | 4 | 120 | 940 | 606 11 | 287 | 4742 | 35864 | 4 | 120 | 1060 | 708 12 | 307 | 5038 | 40903 | 4 | 120 | 1180 | 826 13 | 327 | 5335 | 46238 | 5 | 150 | 1330 | 966 14 | 347 | 5631 | 51870 | 6 | 180 | 1510 | 1128 15 | 367 | 5928 | 57798 | 6 | 180 | 1690 | 1318 16 | 412 | 6224 | 64022 | 7 | 210 | 1900 | 1540 17 | 432 | 6520 | 70543 | 7 | 210 | 2110 | 1798 18 | 452 | 6817 | 77360 | 8 | 240 | 2350 | 2100 19 | 472 | 7113 | 84474 | 9 | 270 | 2620 | 2454 20 | 492 | 7410 | 91884 | 10 | 300 | 2920 | 2866 21 | 537 | 7706 | 99590 | 11 | 330 | 3250 | 3348 22 | 557 | 8002 | 107593 | 12 | 360 | 3610 | 3910 23 | 577 | 8299 | 115892 | 14 | 420 | 4030 | 4568 24 | 597 | 8595 | 124488 | 15 | 450 | 4480 | 5336 25 | 617 | 8892 | 133380 | 16 | 480 | 4960 | 6232 26 | 662 | 9188 | 142568 | 18 | 540 | 5500 | 7280 27 | 682 | 9484 | 152053 | 20 | 600 | 6100 | 8502 28 | 702 | 9781 | 161834 | 22 | 660 | 6760 | 9932 29 | 722 | 10077 | 171912 | 24 | 720 | 7480 | 11600 30 | 742 | 10374 | 182286 | 27 | 810 | 8290 | 13548 31 | 787 | 10670 | 192956 | 29 | 870 | 9160 | 15826 32 | 808 | 10966 | 203923 | 32 | 960 | 10120 | 18484 33 | 829 | 11263 | 215186 | 36 | 1080 | 11200 | 21590 34 | 850 | 11559 | 226746 | 39 | 1170 | 12370 | 25216 35 | 871 | 11856 | 238602 | 43 | 1290 | 13660 | 29454 36 | 916 | 12152 | 250754 | 47 | 1410 | 15070 | 34402 37 | 937 | 12448 | 263203 | 52 | 1560 | 16630 | 40182 38 | 958 | 12745 | 275948 | 57 | 1710 | 18340 | 46932 39 | 979 | 13041 | 288990 | 63 | 1890 | 20230 | 54816 40 | 1000 | 13338 | 302328 | 69 | 2070 | 22300 | 64026 41 | 1045 | 13634 | 315962 | 76 | 2280 | 24580 | 74782 42 | 1066 | 13930 | 329893 | 84 | 2520 | 27100 | 87346 43 | 1087 | 14227 | 344120 | 92 | 2760 | 29860 | 102020 44 | 1108 | 14523 | 358644 | 102 | 3060 | 32920 | 119160 45 | 1129 | 14820 | 373464 | 112 | 3360 | 36280 | 139178 46 | 1174 | 15116 | 388580 | 123 | 3690 | 39970 | 162562 47 | 1196 | 15412 | 403993 | 135 | 4050 | 44020 | 189872 48 | 1218 | 15709 | 419702 | 148 | 4440 | 48460 | 221770 49 | 1240 | 16005 | 435708 | 163 | 4890 | 53350 | 259028 50 | 1262 | 16302 | 452010 | 179 | 5370 | 58720 | 302544 51 | 1307 | 16598 | 468608 | 197 | 5910 | 64630 | 353372 52 | 1329 | 16894 | 485503 | 217 | 6510 | 71140 | 412738 53 | 1351 | 17191 | 502694 | 238 | 7140 | 78280 | 482078 54 | 1373 | 17487 | 520182 | 262 | 7860 | 86140 | 563068 55 | 1395 | 17784 | 537966 | 288 | 8640 | 94780 | 657664 Final score with game time bonus: 1544483 Here is the code I used: import math # Get the amount of time to wait between waves as a building/cooldown time def get_wave_delay(difficulty, wave): # source game/dota_addons/element_td/scripts/kv/gamesettings.kv time_between_waves = { "normal": ((1, 10, 7), (11, 30, 8), (31, 45, 9), (46, 55, 10)), "hard": ((1, 10, 6), (11, 30, 7), (31, 45, 8), (46, 55, 9)), "very hard": ((1, 10, 5), (11, 30, 6), (31, 45, 7), (46, 55, 8)), "insane": ((1, 10, 4), (11, 30, 5), (31, 45, 6), (46, 55, 7)), } for wave_delay in time_between_waves[difficulty]: start, end, delay = wave_delay if wave >= start and wave <= end: return delay # Get the time for a break, this is given every 5 waves to give you time to # kill the element you pick def get_break_time(): # source game/dota_addons/element_td/scripts/vscripts/wavedata.lua StartBreakTime() return 30.0 # Get the amount of time between each creep spawn def get_per_creep_delay(): # source game/dota_addons/element_td/scripts/vscripts/awave.lua Wave:SpawnWave() return 0.5 # Get the total time from the start of a wave, to when the final creep spawns. # This includes the break/delay time as well as the creep wave spawn time. def get_wave_total_time(difficulty, wave): # Time to spawn 30 creeps time = get_per_creep_delay() * 30 if (wave - 1) % 5 == 0: # One out of 5 waves we have a break (currently always 30 sec) time += get_break_time() else: # Otherwise, apply the wave delay (changes based on wave) time += get_wave_delay(difficulty, wave) return time # Get the amount of gold per creep at this difficulty and this wave def get_per_creep_bounty(difficulty, wave): # source game/dota_addons/element_td/scripts/kv/gamesettings.kv bounty = { "normal": 1.093, "hard": 1.095, "very hard": 1.097, "insane": 1.099 } return int(bounty[difficulty] ** (wave + 5)) # Get the score per creep def get_per_creep_score(wave): # source https://forums.eletd.com/topic/95539-score/ return wave + 5 # Get the difficulty bonus multiplier def get_score_bonus_difficulty(difficulty): # source https://forums.eletd.com/topic/95539-score/ difficulty_scaler = { "normal": 1, "hard": 2, "very hard": 3, "insane": 4 } return difficulty_scaler[difficulty] # Get the bonus for this wave given the time it took to kill it # wave_time is the time taken (in seconds) to finish the wave, starting from # when the final (30th) creep spawns def get_score_bonus_speed(wave_time): # source https://forums.eletd.com/topic/95539-score/ multiplier = 1.9 return max(0.0, multiplier - (wave_time * 0.03)) # Get the health for a given greep on a difficulty and wave def get_per_creep_health(difficulty, wave): # source game/dota_addons/element_td/scripts/kv/gamesettings.kv health_scaler = { "normal": 1.0, "hard": 1.3, "very hard": 1.6, "insane": 2.0 } return int(health_scaler[difficulty] * int(75 * (1.168 ** (wave - 1)))) # For each difficulty mode print out a stats table for difficulty in ("normal", "hard", "very hard", "insane"): # Initialize values score = 0 time = 0.0 gold = 250 print "\n\ndifficulty %s" % difficulty print "wave | time | score | cum score | per creep gold | wave gold | cum gold | per creep health" print "----------------------------------------------------------------------------------------------" # For each wave for wave in xrange(1, 56): # Cumulative time time += get_wave_total_time(difficulty, wave) # Total score we got from this wave wavescore = get_per_creep_score(wave) * 30 * get_score_bonus_speed(0.0) * get_score_bonus_difficulty(difficulty) # Clean wave (no leaks) bonus wavescore *= 1.3 # Bounty per creep bounty = get_per_creep_bounty(difficulty, wave) # Cumulative gold earned gold += bounty * 30 # Cumulative score score += wavescore # Per creep health health = get_per_creep_health(difficulty, wave) # Print out stats for this wave print "%4d | %5d | %7d | %9d | %14d | %9d | %8d | %16d" % (wave, time, wavescore, score, bounty, bounty * 30, gold, health) # Game time bonus score *= (((45.0 / (time / 60.0)) - 1) * 2) + 1 print "Final score with game time bonus: %d" % int(score)