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));
            }
        }
    }
Exemple #2
0
    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));
    }
Exemple #3
0
 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]));
     }
 }
Exemple #4
0
 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)); };
     }
 }