public void SayDialogFor(int playerID, CharacterDefinition character, DialogContext context, string conditional = "") { CharacterDialogDefinition dialogDefinition = character.dialogDefinition; List <CharacterDialog> allDialog = dialogDefinition.dialogDictionary[context]; List <CharacterDialog> relevantDialog = new List <CharacterDialog>(); for (int i = 0; i < allDialog.Count; i++) { if (allDialog[i].useDialogConditional && allDialog[i].dialogConditional.ToLower() == conditional.ToLower()) { relevantDialog.Add(allDialog[i]); } else if (!allDialog[i].useDialogConditional) { relevantDialog.Add(allDialog[i]); } } if (relevantDialog.Count > 0) { CharacterDialog nextDialog = relevantDialog[Random.Range(0, relevantDialog.Count - 1)]; if (nextDialog.priority >= currentPriority) { if (currentChain != null) { CoroutineServer.StopCoroutine(currentChain); } currentPriority = nextDialog.priority; currentChain = CoroutineServer.StartCoroutine(StartDialogChain(playerID, nextDialog)); } } }
public static void PlayOneOff(AudioObject audio) { AudioSource source = GetSource(); source.pitch = audio.Pitch; source.volume = audio.Volume; source.PlayOneShot(audio.clip); CoroutineServer.StartCoroutine(StopAfterClip(audio.clip, source)); }
public void Setup() { TankProjectile.poolHolder = new GameObject("Projectile Pool Holder").transform; for (int i = 0; i < _tankProjectiles.Count; i++) { _tankProjectiles[i].OnInit(); CoroutineServer.StartCoroutine(UpdateProjectileEnumerator(_tankProjectiles[i])); } }
public void ChangeLevel(int levelIndex) { if (!alreadyLoading) { loadTimeStart = Time.time; alreadyLoading = true; var op = SceneManager.LoadSceneAsync(loadingSceneIndex); op.completed += (AsyncOperation o) => { CoroutineServer.StartCoroutine(DelayLoading(levelIndex)); }; } }