public void PrepareWildEncounter(GrassEncounter encounter) { float randomChoice = Random.Range(0f, 100f); float searcher = 0f; int index = -1; while (searcher < randomChoice && index < encounter.possibleEncounters.Count - 1) { index++; searcher += encounter.possibleEncounters[index].chanceWeight; } GenerateWildEncounter(encounter.possibleEncounters[index].lunen, Random.Range(encounter.possibleEncounters[index].LevelRange.Min, encounter.possibleEncounters[index].LevelRange.Max + 1)); EnterBattle(); }
public bool TryWildEncounter(GrassEncounter encounter) { float chance = Random.Range(0f, 100f); if (SinceLastEncounter < 0f) { if (chance < encounter.chanceModifier) { PrepareWildEncounter(encounter); return(true); } else { SinceLastEncounter = 0.25f; return(false); } } else { return(false); } }