Ejemplo n.º 1
0
    void Start()
    {
        GameObject co = GameObject.Find("UICam");
        if (co != null)
            guiCam = (Camera)co.GetComponent("Camera");
        co = GameObject.FindGameObjectWithTag("Player");
        if (co != null)
            player = (CH_Player)co.GetComponent("CH_Player");
        co = GameObject.Find("UI_PauseMenu");
        if (co != null)
        {
            menu = co.transform;
        }
        if (menu != null)
        {
            menu.gameObject.SetActive(false);
            Color c1 = Color.white, c2 = Color.white;
            for (int i = 0; i < 4; i++)
            {
                Transform ss = menu.GetChild(i).Find("Background");
                if (i == 0)	// Equip
                {
                    c1 = new Color(.039216f, .196078f, .156863f);
                    c2 = new Color(.352941f, .392157f, .235294f);
                }
                else if (i == 1) // Select
                {
                    c1 = new Color(.039216f, .196078f, .313725f);
                    c2 = new Color(.327451f, .392157f, .509804f);
                }
                else if (i == 2) // Map
                {
                    c1 = new Color(.313725f, .156863f, .117647f);
                    c2 = new Color(.549020f, .156863f, .156863f);
                }
                else if (i == 3) // Quest
                {
                    c1 = new Color(.313725f, .313725f, .196078f);
                    c2 = new Color(.470588f, .470588f, .327451f);
                }
                for (int j = 0; j < 3; j++)
                {
                    Transform p = ss.GetChild(j);
                    MeshFilter mf = (MeshFilter)p.GetComponent("MeshFilter");
                    mf.mesh = new Mesh();
                    mf.mesh.vertices = new Vector3[]
                    {
                        new Vector3(5f, 0f,  5f),
                        new Vector3(5f, 0f, -5f),
                        new Vector3(-5f, 0f,-5f),
                        new Vector3(-5f, 0f, 5f)
                    };
                    if (j == 0)
                        mf.mesh.colors = new Color[] { c1, c1, c2, c2 };
                    else if (j == 1)
                        mf.mesh.colors = new Color[] { c2, c2, c2, c2 };
                    else
                        mf.mesh.colors = new Color[] { c2, c2, c1, c1 };
                    mf.mesh.uv = new Vector2[]
                    {
                        new Vector2(0f, 0f),
                        new Vector2(0f, 1f),
                        new Vector2(1f, 1f),
                        new Vector2(1f, 0f)
                    };
                    mf.mesh.triangles = new int[]
                    {
                        0, 1, 2,
                        2, 3, 0
                    };
                    mf.mesh.Optimize();
                }
            }
        }

        // Initialize sound effects
        menuSounds = new AudioSource[4];
        menuSounds[0] = gameObject.AddComponent<AudioSource>();
        menuSounds[0].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Open");
        menuSounds[1] = gameObject.AddComponent<AudioSource>();
        menuSounds[1].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Close");
        menuSounds[2] = gameObject.AddComponent<AudioSource>();
        menuSounds[2].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Turn_Left");
        menuSounds[3] = gameObject.AddComponent<AudioSource>();
        menuSounds[3].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Turn_Right");

        scaleBoost = 1.0f;
        scaleDir = 0.5f;
        //Debug.Log(player.health);
        playerOldHearts = player.health;

        GameObject heartContainerObject = GameObject.Find("Health");
        for (int i = 0; i < heartContainerObject.transform.childCount; i++)
        {
            GameObject.DestroyObject(heartContainerObject.transform.GetChild(i).gameObject);
        }
    }
Ejemplo n.º 2
0
        void Start()
        {
            int i;

            GameObject equipmentPanel = GameObject.Find("UI_PauseMenu/Equip/Items");
            GameObject itemPanel = GameObject.Find("UI_PauseMenu/Select/Items");
            GameObject questPanel = GameObject.Find("UI_PauseMenu/Quest/Items");
            player = GameObject.Find("CH_Player").GetComponent<CH_Player>();

            InitCursor();

            items = new Item[90];
            items[0] = new Item(0, "DekuStick");
            items[1] = new Item(1, "DekuNut");
            items[2] = new Item(2, "Bomb");
            items[3] = new Item(3, "BowFairy");
            items[4] = new Item(4, "ArrowFire1");
            items[5] = new Item(5, "MagicDinsFire");
            items[6] = new Item(6, "SlingshotFairy");
            items[7] = new Item(7, "OcarinaFairy");
            items[8] = new Item(8, "OcarinaOfTime");
            items[9] = new Item(9, "Bombchu");
            items[10] = new Item(10, "Hookshot1");
            items[11] = new Item(11, "Longshot");
            items[12] = new Item(12, "ArrowIce1");
            items[13] = new Item(13, "MagicFaroresWind");
            items[14] = new Item(14, "Boomerang");
            items[15] = new Item(15, "LensOfTruth");
            items[16] = new Item(16, "MagicBeans");
            items[17] = new Item(17, "HammerMegaton");
            items[18] = new Item(18, "ArrowLight1");
            items[19] = new Item(19, "MagicNayrusLove");
            items[20] = new Item(20, "Bottle");
            items[21] = new Item(21, "BottlePotionRed");
            items[22] = new Item(22, "BottlePotionGreen");
            items[23] = new Item(23, "BottlePotionBlue");
            items[24] = new Item(24, "BottleFairy");
            items[25] = new Item(25, "BottleFish");
            items[26] = new Item(26, "BottleMilkFull");
            items[27] = new Item(27, "BottleLetter");
            items[28] = new Item(28, "BottleBlueFire");
            items[29] = new Item(29, "BottleBug");
            items[30] = new Item(30, "BottlePoeBig");
            items[31] = new Item(31, "BottleMilkHalf");
            items[32] = new Item(32, "BottlePoe");
            items[33] = new Item(33, "EggWeird");
            items[34] = new Item(34, "Cucco");
            items[35] = new Item(35, "ZeldasLetter");
            items[36] = new Item(36, "MaskKeaton");
            items[37] = new Item(37, "MaskSkull");
            items[38] = new Item(38, "MaskSpooky");
            items[39] = new Item(39, "MaskBunny");
            items[40] = new Item(40, "MaskGoron");
            items[41] = new Item(41, "MaskZora");
            items[42] = new Item(42, "MaskGerudo");
            items[43] = new Item(43, "MaskOfTruth");
            items[44] = new Item(44, "SoldOut");
            items[45] = new Item(45, "EggPocket");
            items[46] = new Item(46, "CuccoPocket");
            items[47] = new Item(47, "Cojiro");
            items[48] = new Item(48, "OddMushroom");
            items[49] = new Item(49, "OddPotion");
            items[50] = new Item(50, "PoachersSaw");
            items[51] = new Item(51, "BrokenGoronsSword");
            items[52] = new Item(52, "Prescription");
            items[53] = new Item(53, "EyeballFrag");
            items[54] = new Item(54, "Eyedrops");
            items[55] = new Item(55, "ClaimCheck");
            items[56] = new Item(56, "ArrowFire1");
            items[57] = new Item(57, "ArrowIce1");
            items[58] = new Item(58, "ArrowLight1");
            items[59] = new Item(59, "SwordKokiri1");
            items[60] = new Item(60, "SwordMaster");
            items[61] = new Item(61, "SwordBiggorons");
            items[62] = new Item(62, "ShieldDeku");
            items[63] = new Item(63, "ShieldHylian");
            items[64] = new Item(64, "ShieldMirror2");
            items[65] = new Item(65, "TunicKokiri");
            items[66] = new Item(66, "TunicGoron");
            items[67] = new Item(67, "TunicZora");
            items[68] = new Item(68, "BootsKokiri");
            items[69] = new Item(69, "BootsIron");
            items[70] = new Item(70, "BootsHover");
            items[71] = new Item(71, "BulletBagSmall");
            items[72] = new Item(72, "BulletBagMedium");
            items[73] = new Item(73, "BulletBagLarge");
            items[74] = new Item(74, "QuiverSmall");
            items[75] = new Item(75, "QuiverMedium");
            items[76] = new Item(76, "QuiverLarge");
            items[77] = new Item(77, "BombBagSmall");
            items[78] = new Item(78, "BombBagMedium");
            items[79] = new Item(79, "BombBagLarge");
            items[80] = new Item(80, "BraceletGorons");
            items[81] = new Item(81, "GauntletsSilver");
            items[82] = new Item(82, "GauntletsGolden");
            items[83] = new Item(83, "ScaleSilver");
            items[84] = new Item(84, "ScaleGolden");
            items[85] = new Item(85, "BrokenGiantsKnife");
            items[86] = new Item(86, "WalletAdults");
            items[87] = new Item(87, "WalletGiants");
            items[88] = new Item(88, "DekuSeeds");
            items[89] = new Item(89, "FishingPole");

            int[] equipment = new int[] { 72, 59, 60, 61, 77, 62, 63, 64, 80, 65, 66, 67, 84, 68, 69, 70 };
            int[] inventory = new int[] { 0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 55, 44 };

            GameObject item;
            float xOffset;
            Texture2D texture;
            Sprite sprite;
            SpriteRenderer renderer;
            for (i = 0; i < equipment.Length; i++)
            {
                if (equipment[i] == 0xFF)
                {
                    continue;
                }
                if (i % 4 == 0)
                {
                    xOffset = 6;
                }
                else
                {
                    xOffset = 134 + (33 * ((i % 4) - 1));
                }
                item = new GameObject();
                item.name = "Slot_" + (i % 4) + "_" + Mathf.Floor(i / 4);
                item.transform.parent = equipmentPanel.transform;
                item.transform.localPosition = new Vector3(xOffset, -24 - (32 * (Mathf.Floor(i / 4))), 0);
                item.transform.localRotation = Quaternion.identity;
                item.transform.localScale = new Vector3(28, 28, 1);
                item.layer = LayerMask.NameToLayer("TransparentFX");

                texture = UnityEngine.Resources.Load<Texture2D>(items[equipment[i]].icon);
                sprite = Sprite.Create(texture, new Rect(0, 0, 32, 32), new Vector2(0, 1), 32);
                renderer = item.AddComponent<SpriteRenderer>();
                renderer.sprite = sprite;
            }

            for (i = 0; i < inventory.Length; i++)
            {
                if (inventory[i] == 0xFF)
                {
                    continue;
                }
                item = new GameObject();
                item.name = "Slot_" + (i % 6) + "_" + Mathf.Floor(i / 6);
                item.transform.parent = itemPanel.transform;
                item.transform.localPosition = new Vector3(-28 - (32 * (i % 6)), -24 - (32 * (Mathf.Floor(i / 6))), 0);
                item.transform.localRotation = Quaternion.AngleAxis(180, Vector3.up);
                item.transform.localScale = new Vector3(28, 28, 1);
                item.layer = LayerMask.NameToLayer("TransparentFX");

                texture = UnityEngine.Resources.Load<Texture2D>(items[inventory[i]].icon);
                sprite = Sprite.Create(texture, new Rect(0, 0, 32, 32), new Vector2(0, 1), 32);
                renderer = item.AddComponent<SpriteRenderer>();
                renderer.sprite = sprite;
            }

            string[] qsName = new string[] { "MedallionForest", "MedallionFire", "MedallionWater", "MedallionSpirit", "MedallionShadow", "MedallionLight", "", "", "", "", "", "", "", "", "", "", "", "", "SSKokirisEmerald", "SSGoronsRuby", "SSZorasSapphire", "StoneOfAgony", "GerudoCard", "GoldSkulltula", "" };
            int itemSize;
            for (i = 0; i < 25; i++)
            {
                if (i < 24)
                {
                    itemSize = 24;
                }
                else if (i == 24)
                {
                    itemSize = 48;
                }
                else
                {
                    itemSize = 16;
                }
                item = new GameObject();
                item.name = "Slot_" + i;
                item.transform.parent = questPanel.transform;
                item.transform.localPosition = new Vector3(qsX[i] - 40, -1 * (qsY[i] - 40), 0);
                item.transform.localRotation = Quaternion.identity;
                item.transform.localScale = new Vector3(itemSize, itemSize, 1);
                item.layer = LayerMask.NameToLayer("TransparentFX");

                texture = UnityEngine.Resources.Load<Texture2D>("OoT/Actors/Interface/PauseMenu/Textures/QI_" + qsName[i]);
                sprite = Sprite.Create(texture, new Rect(0, 0, itemSize, itemSize), new Vector2(0, 1), itemSize);
                renderer = item.AddComponent<SpriteRenderer>();
                renderer.sprite = sprite;
            }
        }
Ejemplo n.º 3
0
    void Start()
    {
        GameObject co = GameObject.Find("UICam");

        if (co != null)
        {
            guiCam = (Camera)co.GetComponent("Camera");
        }
        co = GameObject.FindGameObjectWithTag("Player");
        if (co != null)
        {
            player = (CH_Player)co.GetComponent("CH_Player");
        }
        co = GameObject.Find("UI_PauseMenu");
        if (co != null)
        {
            menu = co.transform;
        }
        if (menu != null)
        {
            menu.gameObject.SetActive(false);
            Color c1 = Color.white, c2 = Color.white;
            for (int i = 0; i < 4; i++)
            {
                Transform ss = menu.GetChild(i).Find("Background");
                if (i == 0)     // Equip
                {
                    c1 = new Color(.039216f, .196078f, .156863f);
                    c2 = new Color(.352941f, .392157f, .235294f);
                }
                else if (i == 1) // Select
                {
                    c1 = new Color(.039216f, .196078f, .313725f);
                    c2 = new Color(.327451f, .392157f, .509804f);
                }
                else if (i == 2) // Map
                {
                    c1 = new Color(.313725f, .156863f, .117647f);
                    c2 = new Color(.549020f, .156863f, .156863f);
                }
                else if (i == 3) // Quest
                {
                    c1 = new Color(.313725f, .313725f, .196078f);
                    c2 = new Color(.470588f, .470588f, .327451f);
                }
                for (int j = 0; j < 3; j++)
                {
                    Transform  p  = ss.GetChild(j);
                    MeshFilter mf = (MeshFilter)p.GetComponent("MeshFilter");
                    mf.mesh          = new Mesh();
                    mf.mesh.vertices = new Vector3[]
                    {
                        new Vector3(5f, 0f, 5f),
                        new Vector3(5f, 0f, -5f),
                        new Vector3(-5f, 0f, -5f),
                        new Vector3(-5f, 0f, 5f)
                    };
                    if (j == 0)
                    {
                        mf.mesh.colors = new Color[] { c1, c1, c2, c2 }
                    }
                    ;
                    else if (j == 1)
                    {
                        mf.mesh.colors = new Color[] { c2, c2, c2, c2 }
                    }
                    ;
                    else
                    {
                        mf.mesh.colors = new Color[] { c2, c2, c1, c1 }
                    };
                    mf.mesh.uv = new Vector2[]
                    {
                        new Vector2(0f, 0f),
                        new Vector2(0f, 1f),
                        new Vector2(1f, 1f),
                        new Vector2(1f, 0f)
                    };
                    mf.mesh.triangles = new int[]
                    {
                        0, 1, 2,
                        2, 3, 0
                    };
                    mf.mesh.Optimize();
                }
            }
        }

        // Initialize sound effects
        menuSounds         = new AudioSource[4];
        menuSounds[0]      = gameObject.AddComponent <AudioSource>();
        menuSounds[0].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Open");
        menuSounds[1]      = gameObject.AddComponent <AudioSource>();
        menuSounds[1].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Close");
        menuSounds[2]      = gameObject.AddComponent <AudioSource>();
        menuSounds[2].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Turn_Left");
        menuSounds[3]      = gameObject.AddComponent <AudioSource>();
        menuSounds[3].clip = GameEngine.GetSound("OoT:Interface/PauseMenu_Turn_Right");

        scaleBoost      = 1.0f;
        scaleDir        = 0.5f;
        playerOldHearts = player.health;

        GameObject heartContainerObject = GameObject.Find("Health");

        for (int i = 0; i < heartContainerObject.transform.childCount; i++)
        {
            GameObject.DestroyObject(heartContainerObject.transform.GetChild(i).gameObject);
        }
    }

    void Update()
    {
        if (guiCam != null)
        {
            transform.localScale = new Vector3(guiCam.aspect, 1, 1);
            if (menu != null)
            {
                menu.localScale = new Vector3(guiCam.aspect, 1, guiCam.aspect);
            }
            DrawHearts();
            AButtonDraw();
        }
        if (menu != null)
        {
            if (Input.GetKeyDown(KeyCode.Return))
            {
                isShowing      = !isShowing;
                player.enabled = !isShowing;
                menu.gameObject.SetActive(isShowing);
                if (isShowing)
                {
                    menuSounds[0].Play();
                }
                else
                {
                    menuSounds[1].Play();
                }
            }
            if (menu.gameObject.activeSelf)
            {
                if (rotSpeed == 0.0f)
                {
                    if (Input.GetKeyDown(KeyCode.A))
                    {
                        rotSpeed  = 175.0f;
                        targetRot = rotation + 90.0f;
                        menuSounds[2].Play();
                    }
                    else if (Input.GetKeyDown(KeyCode.S))
                    {
                        rotSpeed  = -175.0f;
                        targetRot = rotation - 90.0f;
                        menuSounds[3].Play();
                    }
                }
                else if (!Mathf.Approximately(rotation, targetRot))
                {
                    rotation += rotSpeed * Time.deltaTime;
                    if ((rotSpeed > 0.0f && rotation > targetRot) || (rotSpeed < 0.0f && rotation < targetRot))
                    {
                        rotSpeed = 0.0f;
                        rotation = targetRot;
                        if (rotation >= 360.0f)
                        {
                            rotation -= 360.0f;
                        }
                        else if (rotation < 0.0f)
                        {
                            rotation += 360.0f;
                        }
                    }
                    menu.localRotation = Quaternion.AngleAxis((float)(rotation), Vector3.up);
                }
                else
                {
                    rotSpeed = 0.0f;
                }
            }
        }
    }

    // Todo: Clean code.
    void AButtonDraw()
    {
        GameObject aButtonObject = GameObject.Find("AButton");

        //GameObject aButtonTextObject = GameObject.Find("AButtonText");

        if (aFlip == false)
        {
            if (player.state != oldPlayerState)
            {
                aFlip  = true;
                aBoost = 2;
                aButtonObject.transform.Rotate(7, 0, 0);
                oldPlayerState = player.state;
            }
        }
        if (aFlip == true)
        {
            if (aButtonObject.transform.localEulerAngles.x >= 90)
            {
                aBoost = -4;
            }
            if (aButtonObject.transform.localEulerAngles.x <= 4)
            {
                aBoost = 4;
                aFlip  = false;
                return;
            }
            aButtonObject.transform.Rotate(aBoost, 0, 0);
        }
        oldPlayerState = player.state;
    }

    void DrawHearts()
    {
        if (scaleBoost > 1.2f)
        {
            scaleDir = -0.5f;
        }
        if (scaleBoost < 1.0f)
        {
            scaleDir = 0.5f;
        }
        scaleBoost += scaleDir * Time.deltaTime;

        int desiredHearts = player.maxHealth / 4;
        // Check if we need to add heart objects
        // This code is a mess...
        GameObject heartContainerObject = GameObject.Find("Health");

        if (heartContainerObject.transform.childCount != desiredHearts || playerOldHearts != player.health)
        {
            for (int i = 0; i < heartContainerObject.transform.childCount; i++)
            {
                GameObject.DestroyObject(heartContainerObject.transform.GetChild(i).gameObject);
            }
            for (int i = 0; i < desiredHearts; i++)
            {
                GameObject heartObject = new GameObject("Heart " + i);
                heartObject.transform.parent        = heartContainerObject.transform;
                heartObject.transform.localPosition = new Vector3(0.0f + ((i % 10) * 0.415f), 0.0f - ((i / 10) * 0.415f), 0.0f);
                heartObject.transform.localRotation = Quaternion.identity;
                heartObject.transform.localScale    = baseScale;
                SpriteRenderer spriteRenderer = heartObject.AddComponent <SpriteRenderer>();
                if (i > (player.health / 4))
                {
                    spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "0-4 Heart1");
                    Debug.Log("Upper " + i);
                }
                else if (i == (player.health / 4))
                {
                    switch (player.health % 4)
                    {
                    case 0:
                        spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "0-4 Heart1");
                        break;

                    case 1:
                        spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "1-4 Heart1");
                        break;

                    case 2:
                        spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "2-4 Heart1");
                        break;

                    case 3:
                        spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "3-4 Heart1");
                        break;

                    case 4:
                        spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "4-4 Heart1");
                        break;
                    }
                }
                else
                {
                    spriteRenderer.sprite = GameEngine.GetSprite(GameEngine.GetActorPath("OoT:UI_HUD"), "4-4 Heart1");
                    Debug.Log(i);
                }
                spriteRenderer.GetComponent <Renderer>().material.shader = Resources.Load <Shader>("_All_/Data/Static/Shaders/Default/Sprite");
                spriteRenderer.GetComponent <Renderer>().material.SetColor("_Color", new Color32(253, 98, 98, 255));
                heartObject.layer = 5;
            }
        }
        playerOldHearts = player.health;
        // Make the last heart scale dynamically
        //Debug.Log(((float)player.health / 4));
        GameObject lastHeart = GameObject.Find("Heart " + Mathf.CeilToInt(((float)player.health / 4) - 1));

        if (lastHeart == null)
        {
            return;
        }
        lastHeart.transform.localScale = baseScale * scaleBoost;
    }
}