public BattleEvent GetRandomBattleEvent(ref Random rand, DataTbls dataTbls) { if (dataTbls.eventData.GetCount() == 0) { return(dataTbls.battleData.events[rand.Next(dataTbls.battleData.events.Count)]); } else { var properties = GetType().GetProperties(); IDataTbl pulledEvent = dataTbls.eventData.GetRandomEvent(ref rand); var randEvent = new BattleEvent(); // Chance to get a random event from label, vs random event from event type. Should help spread things out hopefully. if (RandomizerHelper.ChancePass(Defs.EVENT_CHECK, ref rand)) { randEvent.event_type = ((Event)pulledEvent).GetTypeName(); randEvent.event_label = pulledEvent.GetPropertyValueFromName("label"); } else { var event_types = dataTbls.eventData.event_type; randEvent.event_type = event_types[rand.Next(event_types.Count)]; var labels = dataTbls.eventData.GetLabelsOfType(randEvent.event_type); randEvent.event_label = labels[rand.Next(labels.Count)]; } randEvent.event_count = Byte.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_count"), ref rand, dataTbls, true)); randEvent.event_damage = UInt16.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_damage"), ref rand, dataTbls, true)); randEvent.event_start_time = Int32.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_start_time"), ref rand, dataTbls, true)); randEvent.event_range_time = Int32.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_range_time"), ref rand, dataTbls, true)); return(randEvent); } }
public void ReplaceItemAtIndex(IDataTbl item, int index) { _dataList[index] = item; }
public void AddDataTbl(IDataTbl tbl) { dataList.Add(tbl); }
public int GetItemIndex(IDataTbl item) { return(_dataList.IndexOf(item)); }