public bool BossTypeCheck(bool isBoss, ref Random rnd) { if (isBoss) { return(RandomizerHelper.ChancePass(Defs.BOSS_CHECK, ref rnd)); } else { return(false); } }
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); } } }
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); } }
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; } }
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); } }