private void UpdateRowInfo( StealFutureRngInstance rngInstance, DataGridViewRow row) { row.Cells[0].Value = rngInstance.Index; row.Cells[1].Value = rngInstance.CurrentHeal; row.Cells[2].Value = rngInstance.RandToPercent; row.Cells[5].Value = rngInstance.Lv99RedChocobo; row.Cells[3].Value = ConvertStealRewardToString(rngInstance.NormalReward); row.Cells[4].Value = ConvertStealRewardsToString(rngInstance.CuffsReward); }
public void TestGetRngInstanceAt() { StealFutureRng future = new StealFutureRng(); future.AddNextRngInstance(GetStealFutureRngInstance()); future.AddNextRngInstance(GetStealFutureRngInstance()); StealFutureRngInstance instance = GetStealFutureRngInstance(); instance.Lv99RedChocobo = true; instance.NormalReward = StealType.Rare; future.AddNextRngInstance(instance); StealFutureRngInstance copy = future.GetRngInstanceAt(2); Assert.AreEqual(instance.Lv99RedChocobo, copy.Lv99RedChocobo); Assert.AreEqual(instance.NormalReward, copy.NormalReward); }
private void UpdateDataGridView() { int positionsCalculated = _futureRng.GetTotalFutureRngPositions(); for (int i = 0; i < positionsCalculated; i++) { StealFutureRngInstance rngInstance = _futureRng.GetRngInstanceAt(i); int rowNumber = dataGridView.Rows.Add(); DataGridViewRow row = dataGridView.Rows[rowNumber]; UpdateRowInfo(rngInstance, row); if (rngInstance.IsPastRng) { row.DefaultCellStyle.BackColor = Color.LightGreen; } } }
protected override void CalculateRngHelper() { int rarePosition = -1; int rarePositionCuffs = -1; bool rareSteal = false; bool rareStealCuffs = false; _futureRng = new StealFutureRng(); // Use these variables to check for first punch combo ComboFound = false; ComboPosition = -1; uint firstRngVal = DisplayRng.genrand(); uint secondRngVal = DisplayRng.genrand(); uint thirdRngVal = DisplayRng.genrand(); // We want to preserve the character index, since this loop is just for display: int indexStatic = Group.GetIndex(); Group.ResetIndex(); int start = GetLoopStartIndex(); int end = start + HealVals.Count + FutureRngPositionsToCalculate; for (int index = start; index < end; index++) { // Index starting at 0 LoopIndex = index - start; // Get the heal value once int currentHeal = Group.GetHealValue(firstRngVal); int nextHeal = Group.PeekHealValue(secondRngVal); // Set the next expected heal value if (index == start + HealVals.Count - 1 || index == 1) { NextHealValue = nextHeal; } // Advance the RNG before starting the loop in case we want to skip an entry uint firstRngValTemp = firstRngVal; uint secondRngValTemp = secondRngVal; uint thirdRngValTemp = thirdRngVal; firstRngVal = secondRngVal; secondRngVal = thirdRngVal; thirdRngVal = DisplayRng.genrand(); // Skip the entry if it's too long ago if (LoopIndex < HealVals.Count - HistoryToDisplay) { continue; } // Start actually collating data StealFutureRngInstance newRngInstance = new StealFutureRngInstance(); // check if we are calculating past RNG if (index < start + HealVals.Count) { newRngInstance.IsPastRng = true; } // Set useful information newRngInstance.Index = index; newRngInstance.CurrentHeal = currentHeal; newRngInstance.RandToPercent = Utils.RandToPercent(firstRngValTemp); newRngInstance.Lv99RedChocobo = firstRngValTemp < 0x1000000; // Handle stealing newRngInstance.NormalReward = Steal.CheckSteal2( firstRngValTemp, secondRngValTemp, thirdRngValTemp); newRngInstance.CuffsReward = Steal.CheckStealCuffs2( firstRngValTemp, secondRngValTemp, thirdRngValTemp); // Stealing directions CalculateStealDirections(firstRngValTemp, false, ref rareSteal, ref rarePosition); CalculateStealDirections(firstRngValTemp, true, ref rareStealCuffs, ref rarePositionCuffs); // Check for combo during string of punches CheckForCombo(firstRngValTemp); _futureRng.AddNextRngInstance(newRngInstance); } WriteStealDirectionsInfo(rarePosition, rarePositionCuffs); AttacksBeforeNextCombo = ComboPosition; Group.SetIndex(indexStatic); }