예제 #1
0
    void Stage0()
    {
        DancerManager.dancerManagerRef.tutorialActive = true;
        DancerManager.dancerManagerRef.SpawnDancerAtDestiny(new Vector3(0.5f, 1, 5.5f), initialCustomerPrefab);
        moodInitialCustomer = DancerManager.dancerManagerRef.dancers[0].GetComponent <DancerMood>();

        StartCoroutine(Stage1());
    }
예제 #2
0
 void CheckEnterDanceArea()
 {
     if (manager.IsDancerInsideDancingArea(transform))
     {
         stateName = GameEnums.DancerStateNames.MoodActive;
         DancerMood dancerMoodComponent = GetComponent <DancerMood>();
         dancerMoodComponent.enabled = true;
     }
 }
예제 #3
0
 public void TooSoonChange(GameEnums.MusicColor musicColor)
 {
     foreach (GameObject dancer in dancers)
     {
         DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
         if (dancerMoodComp.enabled)
         {
             dancerMoodComp.TooSoonChange(musicColor);
         }
     }
 }
예제 #4
0
    public void LeaveDancer(GameObject dancer)
    {
        Vector3     dancerExit      = GetDancerExit();
        DancerState dancerStateComp = dancer.GetComponent <DancerState>();

        dancerStateComp.SetState(GameEnums.DancerStateNames.Leaving);
        dancerStateComp.MoveToDestination(dancerExit);
        DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();

        dancerMoodComp.PlayWalkAnimation();
    }
예제 #5
0
 public void PerfectChange(GameEnums.MusicColor musicColor)
 {
     // Add screen shake here
     foreach (GameObject dancer in dancers)
     {
         DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
         if (dancerMoodComp.enabled)
         {
             dancerMoodComp.MusicChanged(musicColor);
         }
     }
 }
예제 #6
0
    void CheckDistanceToDanceSpot()
    {
        Vector3 groundPosition = new Vector3(transform.position.x, 0f, transform.position.z);
        float   distance       = Vector3.Distance(groundPosition, destination);

        if (Mathf.Abs(distance) < 0.5f)
        {
            stateName = GameEnums.DancerStateNames.Dancing;
            GetComponent <NavMeshAgent>().isStopped = true;
            DancerMood dancerMoodComp = GetComponent <DancerMood>();
            dancerMoodComp.enabled = true;
            dancerMoodComp.StopWalkAnimation();
            RotateToDJ();
        }
    }
예제 #7
0
    public void SpawnDancerAtDestiny(Vector3 position, GameObject dancerPrefab)
    {
        GameObject dancer = Instantiate(dancerPrefab, position, Quaternion.identity);

        DancerState dancerStateComp = dancer.GetComponent <DancerState>();

        dancerStateComp.SetState(GameEnums.DancerStateNames.Dancing);
        dancerStateComp.manager = this;
        DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();

        dancerMoodComp.manager = this;
        dancerMoodComp.enabled = true;

        dancers.Add(dancer);
    }
예제 #8
0
    void SilencePenalty()
    {
        if (dancersOnFire > 0)
        {
            AudioManager.audioManagerRef.PlaySound("sfx_nooo");
        }

        dancersOnFire = 0;
        foreach (GameObject dancer in dancers)
        {
            DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
            if (dancerMoodComp.enabled)
            {
                dancerMoodComp.SilencePenalty();
            }
        }
    }
예제 #9
0
    public void TooLateChange()
    {
        if (dancersOnFire > 0)
        {
            AudioManager.audioManagerRef.PlaySound("sfx_nooo");
        }

        dancersOnFire = 0;
        foreach (GameObject dancer in dancers)
        {
            DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
            if (dancerMoodComp.enabled)
            {
                dancerMoodComp.TooLateChange();
            }
        }
    }
예제 #10
0
    public void SpawnDancerAtDestiny()
    {
        if (dancers.Count < MAX_DANCERS)
        {
            Vector3    dancerDestination = GetDancingSpot();
            GameObject randomDancer      = GetRandomDancer();
            GameObject dancer            = Instantiate(randomDancer, dancerDestination, Quaternion.identity);

            DancerState dancerStateComp = dancer.GetComponent <DancerState>();
            dancerStateComp.SetState(GameEnums.DancerStateNames.Dancing);
            dancerStateComp.manager = this;
            DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
            dancerMoodComp.manager = this;
            dancerMoodComp.enabled = true;

            dancers.Add(dancer);
        }
    }
예제 #11
0
    public void SpawnDancer()
    {
        if (dancers.Count < MAX_DANCERS)
        {
            Vector3    dancerEntrance    = GetDancerEntrance();
            Vector3    dancerDestination = GetDancingSpot();
            GameObject randomDancer      = GetRandomDancer();
            GameObject dancer            = Instantiate(randomDancer, dancerEntrance, Quaternion.identity);

            DancerState dancerStateComp = dancer.GetComponent <DancerState>();
            dancerStateComp.SetState(GameEnums.DancerStateNames.Created);
            dancerStateComp.MoveToDestination(dancerDestination);
            dancerStateComp.manager = this;
            DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
            dancerMoodComp.manager = this;
            dancerMoodComp.PlayWalkAnimation();

            dancers.Add(dancer);
        }
    }
예제 #12
0
 void CheckWinCondition()
 {
     if (dancersOnFire < MAX_DANCERS - 5)
     {
         currentOnFireTime = 0.0f;
     }
     else
     {
         currentOnFireTime += Time.deltaTime;
         if (currentOnFireTime >= timeToWin)
         {
             foreach (GameObject dancer in dancers)
             {
                 DancerMood dancerMoodComp = dancer.GetComponent <DancerMood>();
                 dancerMoodComp.enabled = false;
             }
             Initiate.Fade("WinScene", Color.black, 2.0f);
             enabled = false;
         }
     }
 }