Beispiel #1
0
        public override void DeInit()
        {
            Entoids.Clear();
            Target    = null;
            Increment = 0;
            RiseSpeed = 2;
            //Managers.Game.IsPaused = false;
            Time.timeScale = 1;

            Managers.Game.IsPlaying    = true;
            Managers.Game.IsPaused     = false;
            Managers.Display.ShowDelay = 6;
            Managers.Display.ShowState = true;

            Managers.Audio.Music.volume = prevVolume;
            gSkinB.label.fontSize       = Mathf.RoundToInt(Screen.width * 0.035f);
        }
Beispiel #2
0
        public override void Init()
        {
            Managers.Game.IsPaused     = true;
            Managers.Display.ShowDelay = 0;
            Managers.Display.ShowState = false;

            prevVolume = Managers.Audio.Music.volume;
            Managers.Audio.Music.volume = 0.15f;
            Time.timeScale = 0.00000000000001f;


            gSkinB = Resources.Load("GUI/GUISkin B") as GUISkin;
            gSkinB.label.fontSize = Mathf.RoundToInt(Screen.width * 0.035f);

            //Managers.Game.PlayerPrefab.active = false;
            //Managers.Game.IsPlaying = false;
            //Managers.Game.PlayerPrefab.GetComponent<PlayerProperties>().enabled = false;
            Managers.Game.IsPaused = true;


            ///////////////////////////////////////////////////////////////////////////////////////////////////////


            currentState = FishState.Start;
            if (Briefing)
            {
                currentState = FishState.Brief;
            }

            Limits = new Rect((Screen.width * .5f) - (Background.width * .5f),
                              (Screen.height * .5f) - (Background.height * .5f),
                              Background.width, Background.height);


            BoxPos = new Rect(Screen.width * .1f, Screen.height * .025f, Screen.width * .8f, Screen.height * .975f);

            Back = new BonusObjects.Entity();                                       // Background Init
            Back.Init(Background);

            Bubbles = new BonusObjects.Entity();                                    // Bubbles Foreground
            Bubbles.Init(BubblesText);
            Bubbles.Position = Back.Position;

            Player = new BonusObjects.Player();                                     // Player Fisher Bass
            Player.Init(FishText);
            Target = null;

            if (Briefing)
            {
                var Entity = new BonusObjects.Dorado();
                Entity.Init(FishText);
                Entity.Position = new Rect(Entity.Position.x, 512, Entity.Position.width, Entity.Position.height);
                Entoids.Add(Entity);
            }

            for (int i = 1; i < 51; i++)
            {
                if (i % 5 == 0)
                {
                    if (i == 50)
                    {
                        if (Managers.Register.Treasure3 == false)
                        {
                            var Entity = new BonusObjects.Treasure();
                            Entity.Init(FishText);
                            Entity.Position = new Rect(Entity.Position.x, 524 + i * 250, Entity.Position.width, Entity.Position.height);
                            Entoids.Add(Entity);
                        }
                        else
                        {
                            var Entity = new BonusObjects.Item();
                            Entity.Init(FishText);
                            Entity.Position = new Rect(Entity.Position.x, 524 + i * 250, Entity.Position.width, Entity.Position.height);
                            Entoids.Add(Entity);
                        }
                    }
                    else
                    {
                        var Entity = new BonusObjects.Dorado();
                        Entity.Init(FishText);
                        Entity.Position = new Rect(Entity.Position.x, 512 + i * 250, Entity.Position.width, Entity.Position.height);
                        Entoids.Add(Entity);
                    }
                }
                else
                {
                    var Entity = new BonusObjects.Palomet();
                    Entity.Init(FishText);
                    Entity.Position = new Rect(Entity.Position.x, 512 + i * 250, Entity.Position.width, Entity.Position.height);
                    Entoids.Add(Entity);
                }
            }

            LastTime = Time.realtimeSinceStartup;
        }
Beispiel #3
0
        public override void OnUpdate()
        {
            if (Input.GetKeyDown("escape") || Input.GetButtonDown("Start") || Input.GetButtonDown("Select"))
            {
                Managers.Game.PopState();
            }

            //Calculate the time elapsed in seconds
            ActualTime = Time.realtimeSinceStartup;
            float TimeStep = (ActualTime - LastTime) * 4;

            LastTime = ActualTime;
            Managers.Display.DebugText = " FixeddeltaTime: " + Time.fixedDeltaTime + " Time: " + TimeStep;

            switch (currentState)
            {
            case FishState.Brief:
                //////////////////////////////////
                Increment    += TimeStep;
                Back.Coord    = new Rect(0, Increment * -.1f, 1, .1f); // La textura debe estar SI o SI en Wrap: REPEAT!
                Bubbles.Coord = new Rect(0, Increment * -.1f, 1, 1);   // La textura debe estar SI o SI en Wrap: REPEAT!

                Player.Update(TimeStep);

                if (Input.GetButtonDown("Fire1") || Input.GetKeyDown("return") || Input.GetButtonDown("Start"))
                {
                    Increment    = 0;
                    currentState = FishState.Start;
                }
                break;


            case FishState.Start:
//////////////////////////////////
                Increment    += TimeStep;
                Back.Coord    = new Rect(0, Increment * -.1f, 1, .1f); // La textura debe estar SI o SI en Wrap: REPEAT!
                Bubbles.Coord = new Rect(0, Increment * -.1f, 1, 1);   // La textura debe estar SI o SI en Wrap: REPEAT!

                Player.Update(TimeStep);

                if (Increment > 10)
                {
                    Increment    = 0;
                    currentState = FishState.Falling;
                }
                break;

            case FishState.Falling:
//////////////////////////////////
                Increment    += TimeStep;
                Back.Coord    = new Rect(0, Increment * -.1f, 1, .1f); // La textura debe estar SI o SI en Wrap: REPEAT!
                Bubbles.Coord = new Rect(0, Increment * -.1f, 1, 1);   // La textura debe estar SI o SI en Wrap: REPEAT!

                Player.Update(TimeStep);

                for (int i = Entoids.Count - 1; i >= 0; i--)
                {
                    Entoids[i].Update(TimeStep);
                    Entoids[i].Position.y -= TimeStep * 100;

                    if (Entoids[i].Position.center.y <Limits.yMax && Entoids[i].Position.center.y> Limits.yMin + 32)
                    {
                        //if (Player.CheckCollision(Entoids[i]) > 0)
                        switch (Player.CheckCollision(Entoids[i]))
                        {
                        case 1:         // Palomet
                            currentState = FishState.Lose;
                            break;

                        case 2:         // Dorado
                            Target       = Entoids[i];
                            Deep         = Increment;
                            currentState = FishState.Rising;
                            break;

                        case 3:         // Treasure
                            Target = Entoids[i];
                            //Briefing = false;
                            currentState = FishState.Rising;
                            break;

                        case 4:         // ItemFire
                            Target       = Entoids[i];
                            currentState = FishState.Rising;
                            break;

                        case 5:         // ItemHat
                            Target       = Entoids[i];
                            currentState = FishState.Rising;
                            break;

                        case 6:         // ItemWhistler
                            Target       = Entoids[i];
                            currentState = FishState.Rising;
                            break;
                        }
                    }
                }

                if (Increment > 135)
                {
                    currentState = FishState.Lose;
                }
                break;

            case FishState.Rising:
//////////////////////////////////
                //Increment -= TimeStep;

                if (Input.GetButtonDown("Fire1") || Input.GetButtonDown("Fire2") || Input.GetButtonDown("Jump")) // Like JUmp
                {
                    RiseSpeed = 1;
                }

                RiseSpeed -= TimeStep;                                                          // Like Gravity
                RiseSpeed  = Mathf.Clamp(RiseSpeed, -1, 2);

                Increment -= RiseSpeed * TimeStep;
                if (Increment < 0)
                {
                    timeLapse    = 15;
                    Briefing     = false;
                    currentState = FishState.Win;
                }


                if (Increment > 135)
                {
                    currentState = FishState.Lose;
                }

                Back.Coord    = new Rect(0, Increment * -.1f, 1, .1f); // La textura debe estar SI o SI en Wrap: REPEAT!
                Bubbles.Coord = new Rect(0, Increment * -.1f, 1, 1);   // La textura debe estar SI o SI en Wrap: REPEAT!


                if (Player.Position.y < (Screen.height * .5f))
                {
                    Player.Position.y += TimeStep * 30;                      // Update
                }
                Player.Update(TimeStep);                                     // Update


                for (int i = Entoids.Count - 1; i >= 0; i--)
                {
                    if (Entoids[i] != Target)
                    {
                        Entoids[i].Update(TimeStep);                        // Update
                        Entoids[i].Position.y += RiseSpeed * 100 * TimeStep;

                        //Position.y += -timeStep * 100 * Speed;
                    }
                    else
                    {
                        if (Entoids[i].myId == BonusObjects.Entity.typeId.Dorado)
                        {
                            if (Mathf.Sin(Time.realtimeSinceStartup * 24) > 0)
                            {
                                Entoids[i].Coord = new Rect(.25f, .5f, .25f, .25f);
                            }
                            else
                            {
                                Entoids[i].Coord = new Rect(.5f, .5f, -.25f, .25f);
                            }
                        }

                        Entoids[i].Position = new Rect(Player.Position.center.x - (Entoids[i].Sprite.width * .25f),
                                                       Player.Position.yMin,
                                                       Entoids[i].Position.width,
                                                       Entoids[i].Position.height);
                    }
                    if (Entoids[i].Position.center.y <Limits.yMax && Entoids[i].Position.center.y> Limits.yMin + 32)
                    {
                        if (Player.CheckCollision(Entoids[i]) == 1)
                        {
                            currentState = FishState.Lose;
                        }
                    }
                }


                break;

            case FishState.Win:
                timeLapse -= TimeStep;

                if (timeLapse < 0)
                {
                    switch (Target.myId)
                    {
                    case BonusObjects.Entity.typeId.Dorado:         // Dorado
                        if (Deep < 60)
                        {
                            Managers.Register.Health++;             // Give one Health plus
                        }
                        //else if (Deep < 80)
                        //    Managers.Register.Health += 2;
                        else
                        {
                            Managers.Register.Health = 3;           // Give Full Health plus
                        }
                        break;

                    case BonusObjects.Entity.typeId.Treasure:    // Treasure
                        Managers.Register.Treasure3 = true;      // Give Treasure3
                        break;

                    case BonusObjects.Entity.typeId.ItemFire:
                        Managers.Register.FireGauge++;
                        Managers.Register.FireGauge = Mathf.Clamp(Managers.Register.FireGauge, 0, 3);
                        Managers.Game.PlayerPrefab.renderer.material.SetFloat("_KeyY", 0.25f);
                        Managers.Register.Inventory = DataManager.Items.Fire;
                        break;

                    case BonusObjects.Entity.typeId.ItemHat:
                        Managers.Game.PlayerPrefab.renderer.material.SetFloat("_KeyY", 0.05f);
                        Managers.Register.Inventory = DataManager.Items.Hat;
                        break;

                    case BonusObjects.Entity.typeId.ItemWhistler:
                        Managers.Game.PlayerPrefab.renderer.material.SetFloat("_KeyY", 0.25f);
                        Managers.Register.Inventory = DataManager.Items.Whistler;
                        break;
                    }
                    timeLapse = 15;
                    Managers.Game.PopState();
                }
                break;

            case FishState.Lose:
                timeLapse -= TimeStep;

                if (timeLapse < 0)
                {
                    timeLapse = 5;
                    Managers.Game.PopState();
                }
                break;
            }
        }