//Returns a character (informations, not instantiation) public CharacterInfo GenerateRandomCharacterInfo() { CharacterInfo characterInfo = new CharacterInfo(); //Reference key-generation data for comfort SO_Race referenceRace = _races[Random.Range(0, _races.Length)]; SO_Class referenceClass = referenceRace._classes[Random.Range(0, referenceRace._classes.Length)]; characterInfo.race = referenceRace._race; characterInfo.gender = referenceRace._genders[Random.Range(0, referenceRace._genders.Length)]; characterInfo.name = GetRandomName(characterInfo.gender, referenceRace); characterInfo.title = GetRandomTitle(); characterInfo.class_ = referenceClass._class; characterInfo.level = 1; //Collect levellingInfo for the race and class/level LevelInfo raceLevelInfo = GetRaceLevelInfo(characterInfo.race); LevelInfo classLevelInfo = GetClassLevelInfo(characterInfo.class_, 1); characterInfo.experienceThreshold = classLevelInfo._XPThreshold; //Set attributes by cumulating level info stats, made at least positive characterInfo.maxHP = EnsurePositiveValue(raceLevelInfo.GetRandomizedHP() + classLevelInfo.GetRandomizedHP()); characterInfo.strength = EnsurePositiveValue(raceLevelInfo.GetRandomizedStrength() + classLevelInfo.GetRandomizedStrength()); characterInfo.dexterity = EnsurePositiveValue(raceLevelInfo.GetRandomizedDexterity() + classLevelInfo.GetRandomizedDexterity()); characterInfo.intelligence = EnsurePositiveValue(raceLevelInfo.GetRandomizedIntelligence() + classLevelInfo.GetRandomizedIntelligence()); characterInfo.charisma = EnsurePositiveValue(raceLevelInfo.GetRandomizedCharisma() + classLevelInfo.GetRandomizedCharisma()); return(characterInfo); }
//Returns a random name based on a Gender, within a RaceInfo data set public string GetRandomName(Gender gender, SO_Race raceInfo) { string result; List <NamesImporter> nameList = GetNameList(raceInfo._race, gender); result = nameList[Random.Range(0, nameList.Count)].name_; return(result); }