state("universe") { int percentage : "UnityPlayer.dll", 0x01A68008, 0x28, 0x20, 0xB8, 0x158, 0x20, 0x20, 0x10; } startup { //vars.percDict = new Dictionary<int, int>(); int[] literlPercs = { 0, 2, 3, 5, 6, 8,10,11,13,14,16,17,19,21,22,24,25,27,29, 30, 32, 33, 35, 37, 38, 40, 41, 43, 44, 46, 48, 49, 51, 52, 54, 56, 57, 59, 60, 62, 63, 65, 67, 68, 70, 71, 73, 75, 76, 78, 79, 81, 83, 84, 86, 87, 89, 90, 92, 94, 95, 97, 98,100}; vars.litPercs = literlPercs; int[] memoryPercs = {10,20,27,40,42,45,50,52,55,57,60,70,71,80,90,91,93,94,96,100,110,113,120,130,131,133,136,138,140,142,148,150,152,154,160,170,172,174,175,176,180,190,195,197,199,200,210,211,215,216,220,223,230,233,235,238,250,260,263,280,281,284,290,300}; vars.memPercs = memoryPercs; vars.speciallyPercentally = new Dictionary<int, String>() { {16, "(Boss 1)"}, {30, "(Boss 2)"}, {54, "(Boss 3)"}, {71, "(Boss 4)"}, {79, "(Final 1)"}, {83, "(Final 2)"}, {90, "(Final 3)"} }; settings.Add("pcenties", true, "Percentaroonies"); settings.SetToolTip("pcenties", "Choose which percentaroni to split on."); String tmp = ""; for(int i = 0; i < vars.litPercs.Length; i++){ int lp = vars.litPercs[i]; int mp = vars.memPercs[i]; settings.Add(mp.ToString(), true, String.Format("{0}% {1}" , lp,(vars.speciallyPercentally.TryGetValue(lp, out tmp) ? tmp : "")), "pcenties"); } //i think i'm overcomplicating the current best percentage shit vars.best_perc = 0; //i don't know how to access OnReset this is so beyond my paygrade dude //OnReset += (s,e) => vars.best_perc = 0; } init { } update { //print(current.percentage.ToString()); } start { if((old.percentage == 10) && (current.percentage == 20)){ vars.best_perc = 20; return true; } } split { //check if it's increased and the current memory value is a percentage split and if we haven't reached it before and the tickbox it set to split on this. if(old.percentage < current.percentage && (Array.IndexOf(vars.memPercs,current.percentage) != -1) && vars.best_perc < current.percentage && settings[current.percentage.ToString()]){ vars.best_perc = current.percentage; return true; } }