public void BuildEvent(BattleEvent randEvent, int index) { var eventNum = String.Format("event{0}_", index); // event1_type, event1_ label, event1_ start_time, event1_ range_time, event1_ count, event1_ damage this.SetValueFromName(eventNum + "type", randEvent.event_type); this.SetValueFromName(eventNum + "label", randEvent.event_label); this.SetValueFromName(eventNum + "start_time", randEvent.event_start_time.ToString()); this.SetValueFromName(eventNum + "range_time", randEvent.event_range_time.ToString()); this.SetValueFromName(eventNum + "count", randEvent.event_count.ToString()); this.SetValueFromName(eventNum + "damage", randEvent.event_damage.ToString()); }
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); } }