Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
            }
        }