Пример #1
0
 public bool BossTypeCheck(bool isBoss, ref Random rnd)
 {
     if (isBoss)
     {
         return(RandomizerHelper.ChancePass(Defs.BOSS_CHECK, ref rnd));
     }
     else
     {
         return(false);
     }
 }
Пример #2
0
        public void EventSet(ref Random rnd, DataTbls dataTbls)
        {
            // Post Randomize battle modifiers
            var eventCount = RandomizerHelper.eventDistribution[rnd.Next(RandomizerHelper.eventDistribution.Count)];


            for (int j = 1; j <= eventCount; j++)
            {
                if (RandomizerHelper.ChancePass(dataTbls.config.chaos, ref rnd))
                {
                    var randEvent = GetRandomBattleEvent(ref rnd, dataTbls);
                    BuildEvent(randEvent, j);
                }
            }
        }
Пример #3
0
        public void HealthCheck(ref Random rnd, DataTbls dataTbls)
        {
            // Check if init HP is lower than init damage (?)
            if (basic_init_hp < basic_init_damage)
            {
                var hold = basic_init_damage;
                basic_init_damage = basic_init_hp;
                basic_init_hp     = hold;
            }

            // If HP battle, and player hass less than 30 hp, and they pass chaos chance, give em extra health.
            if (battle_type == "hp" || battle_type == "hp_time")
            {
                basic_init_hp += (ushort)(RandomizerHelper.ChancePass(100 - dataTbls.config.chaos, ref rnd) && basic_init_hp < Defs.PLAYER_LOW_HP_CUTOFF ? Defs.PLAYER_LOW_HP_MOD : 0);
            }
        }
Пример #4
0
        public void HealthCheck(bool isLoseEscort, ref Random rnd)
        {
            // Check if init HP is lower than init damage (?)
            if (hp < init_damage)
            {
                var hold = init_damage;
                init_damage = hp;
                hp          = hold;
            }

            if (isLoseEscort)
            {
                // Losing from low health escorts sucks.  Either add HP, or add Stocks.
                if (RandomizerHelper.ChancePass(50, ref rnd))
                {
                    hp += Defs.ALLY_LOW_HP_MOD;
                }
                stock += Defs.ALLY_LOW_STOCK_MOD;
            }
        }
Пример #5
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);
            }
        }