Example #1
0
    public void SetupFace(Face f, FIRL frame, GrandData g)
    {
        f.AddAction(TouchAction.Up, () =>
        {
            if (ginfo_target != g)
            {
                if (ginfo != null)
                {
                    ginfo.PoolDestroy();
                }
                ginfo_face   = f;
                ginfo_target = g;
                ginfo        = GameManager.UI.GrandInfo(g);
                Vector3 pos  = new Vector3(this.transform.position.x, f.transform.position.y - 10, 0.0F);
                ginfo.SetUIPositionFromWorld(pos);
                ginfo.FitOnScreen();
                ginfo.SetActive(false);
                ginfo.TweenActive(true);

                lastsmiles = g.Smiles.Value;
                lastgrumps = g.Grumps.Value;
                Tweens.Bounce(f.transform);
            }
            else if (ginfo != null)
            {
                ginfo.PoolDestroy();
                ginfo_target = null;
            }
        });
    }
Example #2
0
    IEnumerator StartGame()
    {
        EndButton.TweenActive(false);
        EndInfo.TweenActive(false);
        FitnessObj.SetActive(false);

        yield return(new WaitForSeconds(0.4F));

        for (int i = 3; i > 0; i--)
        {
            MUI.Txt[0].text = "" + i;
            Tweens.Bounce(MUI.Txt[0].transform);
            yield return(new WaitForSeconds(0.8F));
        }
        MUI.Txt[0].text = "";
        FitnessObj.TweenActive(true);
        FitnessObj.Img[0].transform.localScale = new Vector3(
            Mathf.Clamp(TargetGrand.Data.Fitness.Max / 200, 0.4F, 2.0F), 1, 1);
        FitnessObj.Img[1].transform.localScale = new Vector3(
            TargetGrand.Data.Fitness.Ratio, 1, 1);
        yield return(new WaitForSeconds(0.1F));

        GameTime = 0.0F;
        Running  = true;
    }
Example #3
0
    public void Init()
    {
        int index = 0;

        for (int i = 0; i < Modules.Length; i++)
        {
            Modules[i].Init(index, null);
            index++;
        }
        Sprites.Init();
        Prefabs.Init();

        UIObj._UICamera = Camera.main;
        UIObj._UICanvas = Canvas;

        Options.Init(index++, null);
        PermUI.Init(index++, null);
        ResUI.Init(index++, null);
        FaceParent.Init(index++, null);
        WorldObjects.Init(index++, null);
        QuoteObjects.Init(index++, null);

        QuoteMat = QuoteObjects.Img[0].material;
        QuoteObjects.Img[0].DOColor(new Color(1, 1, 1, 0), 0.35F);

        PermUI["options"].AddAction(UIAction.MouseUp, () =>
        {
            Options.TweenActive();
        });

        PermUI["exit"].AddAction(UIAction.MouseUp, () =>
        {
            StartCoroutine(GameManager.instance.LoadModule("Menu"));
        });

        Options["resetintros"].AddAction(UIAction.MouseUp, () =>
        {
            for (int i = 0; i < GameManager.instance.AllModules.Length; i++)
            {
                GameManager.instance.AllModules[i].SetIntro(false);
            }
        });


        Options["resetgrands"].AddAction(UIAction.MouseUp, () =>
        {
            PlayerPrefs.SetInt("FirstTime", 0);
        });


        CheckResourcesUI();
    }
Example #4
0
    public UIObj Quote(string s, string name)
    {
        GameObject o = Prefabs.GetObject("quote") as GameObject;

        UIObj final = Instantiate(Prefabs.GetObject("quote") as GameObject).GetComponent <UIObj>();

        QuoteObjects[0].AddChild(final);
        final.ResetRect();
        final["textbox"].Txt[0].text = s;
        final.Txt[0].text            = name;

        final.TweenActive(true);
        return(final);
    }
Example #5
0
    IEnumerator StartGame(int [] index)
    {
        yield return(new WaitForSeconds(0.3F));

        MUI["endgame"][0].Txt[0].text = "DINNERTIME!";
        MUI["endgame"][0].TweenActive(true);
        //yield return new WaitForSeconds(1.0F);


        //yield return null;
        for (int i = 0; i < Grands.Length; i++)
        {
            Faces[i].SetActive(true);
            Faces[i].transform.position = _TableManager.EntryDoor.position;
        }

        for (int i = Grands.Length - 1; i >= 0; i--)
        //for(int i = 0; i < _TableManager.Seat.Length; i++)
        {
            StartCoroutine(_TableManager.DoorToSeat(Grands[i], index[i], 0.35F));
            //yield return new WaitForSeconds(Time.deltaTime * 10);
        }

        while (!AllSeated)
        {
            yield return(null);
        }

        MUI["endgame"][0].TweenActive(false);

        Ability_ThirdEye(1.3F);
        Running  = true;
        GameTime = 0.0F;

        timerobj.Txt[0].text          = "";
        timerobj.transform.localScale = Vector3.one;
        timerobj.TweenActive(true);

        yield return(null);
    }
Example #6
0
    IEnumerator EndGame()
    {
        while (!AllSeated)
        {
            yield return(null);
        }

        UIObj endgame = MUI["endgame"];

        Running = false;
        GameManager.IgnoreInput = true;
        timerobj.Txt[0].text    = "";
        timerobj.Txt[1].text    = "";

        if (!GameManager.WorldRes.Funds.Charge(DinnerCost))
        {
            endgame[0].TweenActive(true);
            endgame[1].SetActive(false);
            endgame[2].SetActive(false);

            endgame[0].Txt[0].text = "No Funds!";

            FinalScore = 0;

            yield return(new WaitForSeconds(0.8F));

            endgame[0].TweenActive(false);

            yield return(StartCoroutine(FinishDinner()));

            yield break;
        }

        endgame[0].TweenActive(true);
        endgame[1].SetActive(false);
        endgame[2].SetActive(false);

        endgame[0].Txt[0].text = "Let's Eat!";

        FinalScore = 0;

        yield return(new WaitForSeconds(0.85F));

        endgame[0].TweenActive(false);

        List <FOBJ> correct = new List <FOBJ>();
        List <FOBJ> wrong   = new List <FOBJ>();

        for (int i = 0; i < _TableManager.Seat.Length; i++)
        {
            GreatGrand grand = _TableManager.Seat[i].Target;

            if (grand == null)
            {
                continue;
            }

            int targ_grumps = grand.GetGrumps(false);
            yield return(new WaitForSeconds(Time.deltaTime * 5));

            Sprite s = targ_grumps >= 0 ? Alert_Right :  Alert_Wrong;

            FOBJ a = Instantiate(GameManager.UI.Prefabs.GetObject("FOBJ_Default") as GameObject).GetComponent <FOBJ>();
            (a as FIRL).IMG[0].sprite = s;
            a.SetActive(false);
            a.transform.position   = grand.TargetFace.pos - Vector3.forward * 1;
            a.transform.localScale = Vector3.one * 1.8F;
            a.TweenActive(true);

            if (targ_grumps >= 0)
            {
                correct.Add(a);
            }
            else
            {
                wrong.Add(a);
            }

            yield return(new WaitForSeconds(0.12F));
        }

        UIObj info = MUI["kitchen"];

        info.Txt[1].text = "HAPPY\nGRANDS";
        info.Txt[0].text = FinalScore + "";

        Tweens.Bounce(info.transform);
        info.TweenActive(true);
        yield return(new WaitForSeconds(0.5F));

        bool isCounting = true;

        for (int i = 0; i < correct.Count; i++)
        {
            SendCorrectAlert(correct[i], info.transform);
        }

        for (int i = 0; i < wrong.Count; i++)
        {
            wrong[i].transform.DOScale(Vector3.zero, 0.3F).OnComplete(() => {});
        }

        while (isCounting)
        {
            info.Txt[0].text = FinalScore + "";
            bool complete = true;
            for (int i = 0; i < correct.Count; i++)
            {
                if (correct[i] != null)
                {
                    complete = false;
                    break;
                }
            }
            if (complete)
            {
                isCounting = false;
            }
            yield return(null);
        }

        int rep = (int)((FinalScore * 5) * (1.0F + (Difficulty * Bonus_DifficultyMultiplier)));

        info.Txt[0].text = rep + "";

        if (GameTime < Timer)
        {
            yield return(new WaitForSeconds(0.4F));

            float mult = 1.0F - (GameTime / Timer * Bonus_TimerDecay);
            mult              = Mathf.Clamp(1.0F + mult, 1.0F, Bonus_TimerMax);
            rep               = (int)((float)rep * mult);
            info.Txt[0].text  = rep + "";
            info.Txt[1].text  = "TIME\nBONUS";
            info.Txt[1].color = Color.green;

            Tweens.Bounce(info.transform);
            yield return(null);
        }

        if (FinalScore == GGNum)
        {
            yield return(new WaitForSeconds(0.4F));

            rep = (int)((float)rep * Bonus_Perfect);
            info.Txt[0].text  = rep + "";
            info.Txt[1].text  = "PERFECT!";
            info.Txt[1].color = Color.blue;

            Tweens.Bounce(info.transform);
            yield return(null);
        }

        yield return(new WaitForSeconds(0.4F));

        StartCoroutine(GameManager.UI.ResourceAlert(GameManager.WorldRes.Rep, rep));

        List <FIRL> alerts = new List <FIRL>();

        for (int i = 0; i < _TableManager.Seat.Length; i++)
        {
            GrandData g = _TableManager.Seat[i].Target.Data;
            FIRL      a = GameManager.UI.MeterAlert(g, AlertType.Hunger);
            alerts.Add(a);
            Tweens.Bounce(a.transform);
            yield return(null);
        }

        //FUTURE ANIMATION OF GRANDS EATING
        yield return(new WaitForSeconds(0.3F));

//$$$$$$$
        int   hungerticks = 10 + FinalScore * 10;
        int   ticks       = 0;
        float tickrate    = 1;

        while (true)
        {
            for (int i = 0; i < _TableManager.Seat.Length; i++)
            {
                GrandData g = _TableManager.Seat[i].Target.Data;
                g.Hunger.Add((int)tickrate);
                alerts[i][0].transform.localScale = new Vector3(g.Hunger.Ratio, 1.0F, 1.0f);
            }
            ticks    += (int)tickrate;
            tickrate *= 1.1F;
            if (ticks >= hungerticks)
            {
                break;
            }
            yield return(null);
        }
        yield return(new WaitForSeconds(0.3F));

        for (int i = 0; i < alerts.Count; i++)
        {
            alerts[i].PoolDestroy();
        }

        yield return(new WaitForSeconds(0.5F));

        yield return(StartCoroutine(FinishDinner()));
    }