private void gridCodes_SelectionChanged(object sender, SelectionChangedEventArgs e) { var item = gridCodes.SelectedItem; if (item != null && item is SingleEntry) { SingleEntry entry = item as SingleEntry; txtAddress.Text = entry.Address.ToString("x8"); txtValue.Text = entry.Value.ToString("x8"); chkRandomUcm.IsChecked = entry.IsRandomUCM; RandomizerValue eR = entry.eRand; switch (eR) { case RandomizerValue.Enemy: rdEnemy.IsChecked = true; break; case RandomizerValue.Boss: rdBoss.IsChecked = true; break; case RandomizerValue.Any: rdAny.IsChecked = true; break; default: break; } } }
public SingleEntry(SerializationInfo info, StreamingContext ctxt) { Address = (int)info.GetValue("Address", typeof(int)); Value = (int)info.GetValue("Value", typeof(int)); IsRandomUCM = (bool)info.GetValue("RandomUcm", typeof(bool)); eRand = (RandomizerValue)info.GetValue("RandomizerType", typeof(RandomizerValue)); }
public void Add(int address, int value, bool bRandom, RandomizerValue eRand) { SingleEntry en = new SingleEntry(); en.Address = address; en.Value = value; en.IsRandomUCM = bRandom; en.eRand = eRand; _entries.Add(en); }
private void btnAddCode_Click(object sender, RoutedEventArgs e) { if (_trigger == null) { _trigger = new Trigger(); } if (txtAddress.Text == string.Empty) { return; } int addr = Convert.ToInt32(txtAddress.Text, 16); int val = 0; RandomizerValue eRand = RandomizerValue.Undefined; if (chkRandomUcm.IsChecked == true) { if (rdEnemy.IsChecked == true) { eRand = RandomizerValue.Enemy; } else if (rdBoss.IsChecked == true) { eRand = RandomizerValue.Boss; } else if (rdAny.IsChecked == true) { eRand = RandomizerValue.Any; } val = GetRandomUCM(eRand); } else { if (txtValue.Text == string.Empty) { return; } val = Convert.ToInt32(txtValue.Text, 16); } if (chkRandomUcm.IsChecked == true) { _trigger.CodeEntries.Add(addr, val, chkRandomUcm.IsChecked ?? false, eRand); } else { _trigger.CodeEntries.Add(addr, val, chkRandomUcm.IsChecked ?? false); } Update(); }
private List <GameObject> FromTable(EncounterData data) { var table = new RandomizerTable(data.UnitTable.Count); foreach (var episodeUnitData in data.UnitTable.Units) { var value = new RandomizerValue <int>( episodeUnitData.UnitId, episodeUnitData.Probability, episodeUnitData.IsUnique, episodeUnitData.IsGuaranteed, episodeUnitData.IsEnabled ); table.Add(value); } return(table.Evaluate() .OfType <RandomizerValue <int> >() .Select(value => value.Value) .Select(unitId => this.unitRepository.Find(unitId)) .ToList()); }
private int GetRandomUCM(RandomizerValue eRand) { Random rnd = new Random(); switch (eRand) { case RandomizerValue.Boss: goto getBoss; case RandomizerValue.Enemy: goto getEnemy; case RandomizerValue.Any: int x = rnd.Next(0, 2); if (x == 0) { goto getBoss; } else { goto getEnemy; } default: return(0); } getBoss: int i = rnd.Next(0, WorldInfo.dictBosses.Count); return(WorldInfo.dictBosses.ElementAt(i).Key); getEnemy: int j = rnd.Next(0, WorldInfo.dictEnemies.Count); return(WorldInfo.dictEnemies.ElementAt(j).Key); }