public bool IsSameSpecies(GameObject mobToCheck) { if (mobToCheck.TryGetComponent <PlayerScript>(out var playerScript) == false) { return(false); } var race = CharacterSettings.GetRaceData(playerScript.characterSettings); if (race == null || allowedSpecies.Contains(race) == false) { return(false); } return(true); }
/// <summary> /// Responsible for making sure the right audio plays /// for the correct body type. /// </summary> protected List <AddressableAudioSource> GetBodyTypeAudio(GameObject player) { if (player.TryGetComponent <PlayerScript>(out var playerScript) == false) { return(defaultSounds); } var bodyType = playerScript.characterSettings.BodyType; //Get the player's species var race = CharacterSettings.GetRaceData(playerScript.characterSettings); VoiceType voiceTypeToUse = new VoiceType(); foreach (var voice in TypedSounds) { if (race != voice.VoiceRace) { continue; } voiceTypeToUse = voice; } List <AddressableAudioSource> GetSounds(BodyType bodyTypeToCheck) { foreach (var sound in voiceTypeToUse.VoiceDatas) { if (sound.VoiceSex != bodyTypeToCheck) { continue; } return(sound.Sounds); } return(defaultSounds); } switch (bodyType) { case (BodyType.Male): return(GetSounds(BodyType.Male)); case (BodyType.Female): return(GetSounds(BodyType.Female)); default: //for body types other than Male and Female (ex : Non-binary) return(defaultSounds); } }