using System; public class Program { private static int[,] redsAndBlues = new int[2,3]; public static void Main() { //===USER ENTERED=== int simulations = 250000; //Efficiency Values int steelPath = 1; //Set this to 1 for Steel Path, or 0 for normal mode int bonusCrystals = 8; //How many times you expect to get extra crystals per colour per rotation C. Very low is 0, low is 4, medium is 8, high is 12 //Construction Variables int crystalsGained = 40 + 20*steelPath + (5+2*steelPath)*bonusCrystals; Random rnd = new Random(); double roll; //RotA double steflosBlueprint = 0.1; double corufellBlueprint = 0.1; //RotB double corufellBarrel = 0.06; double corufellHandle = 0.06; double corufellReceiver = 0.06; double steflosBarrel = 0.06; double steflosReceiver = 0.06; double steflosStock = 0.06; double primaryPlatedRound = 0.054; double secondaryKinship = 0.054; //RotC double citrineBlueprint = 0.068; double chassis = 0.045; double neuroptics = 0.045; double systems = 0.045; double secondaryEncumber = 0.051; double arcaneDoubleBack = 0.051; double arcaneSteadfast = 0.051; //Trackers int redsForCitrine = 1550; //Number of red crystals to get Citrine only int redsForWeapons = 3550; //Number of red crystals to get Citrine and Weapons int redsForArcanes = 9850; //Number of red crystals to get Citrine, Weapons, and Arcanes int bluesForCitrine = 1500; int bluesForWeapons = 3550; int bluesForArcanes = 9850; bool citrineGot = false; bool weaponsGot = false; bool arcanesGot = false; int runs; string rotation; //Output arrays int[,] totalRuns = new int[250,4];//run count,no. of sims with full citrine,no of sims with full weapons,no of sims with full arcanes too double[,] rewards = new double[17,5]; //drop rate,red crystals to buy,blue crystals to buy,number obtained,category (1=arcane,2=weapon,3=frame) //Array values - combines the drop rates and crystal costs for each rewards into the array //Drop rates are given their own value for easier reference in case of changes rewards[0,0] = steflosBlueprint; rewards [0,1] = 300; rewards [0,2] = 500; rewards [0,4] = 2; rewards[1,0] = corufellBlueprint; rewards [1,1] = 500; rewards [1,2] = 300; rewards [1,4] = 2; rewards[2,0] = corufellBarrel; rewards [2,1] = 250; rewards [2,2] = 150; rewards [2,4] = 2; rewards[3,0] = corufellHandle; rewards [3,1] = 250; rewards [3,2] = 150; rewards [3,4] = 2; rewards[4,0] = corufellReceiver; rewards [4,1] = 250; rewards [4,2] = 150; rewards [4,4] = 2; rewards[5,0] = steflosBarrel; rewards [5,1] = 150; rewards [5,2] = 250; rewards [5,4] = 2; rewards[6,0] = steflosReceiver; rewards [6,1] = 150; rewards [6,2] = 150; rewards [6,4] = 2; rewards[7,0] = steflosStock; rewards [7,1] = 150; rewards [7,2] = 150; rewards [7,4] = 2; rewards[8,0] = primaryPlatedRound; rewards [8,1] = 60; rewards [8,2] = 60; rewards [8,4] = 1; rewards[9,0] = secondaryKinship; rewards [9,1] = 60; rewards [9,2] = 60; rewards [9,4] = 1; rewards[10,0] = citrineBlueprint; rewards[10,1] = 500; rewards[10,2] = 500; rewards [10,4] = 3; rewards[11,0] = chassis; rewards[11,1] = 350; rewards[11,2] = 350; rewards [11,4] = 3; rewards[12,0] = neuroptics; rewards[12,1] = 350; rewards[12,2] = 350; rewards [12,4] = 3; rewards[13,0] = systems; rewards[13,1] = 350; rewards[13,2] = 300; rewards [13,4] = 3; rewards[14,0] = secondaryEncumber; rewards [14,1] = 60; rewards [14,2] = 60; rewards [14,4] = 1; rewards[15,0] = arcaneDoubleBack; rewards [15,1] = 60; rewards [15,2] = 60; rewards [15,4] = 1; rewards[16,0] = arcaneSteadfast; rewards [16,1] = 60; rewards [16,2] = 60; rewards [16,4] = 1; for (int i = 0; i<250;i++) { totalRuns[i,0] = i; totalRuns[i,1] = 0; totalRuns[i,2] = 0; totalRuns[i,3] = 0; } //SIMULATION for (int i = 0; i 1 || rewards[x,3] <21 && rewards[x,4] == 1)//If first instance of a blueprint, or 21st instance of an arcane { for (int y = 0; y