Esempio n. 1
0
    // Use this for initialization
    void Start()
    {
        // load information from saved data, which is updated whenever a new character is bought
        for (int i = 0; i < numChars; i++)
        {
            CharInfo c = models[i].GetComponent <CharInfo>();
            if (c != null)
            {
                c.Purchased = GameSaver.gSaver.charBought[i];
                c.level     = GameSaver.gSaver.charLevel[i];
            }
        }


        cam   = Camera.main;
        plane = new Plane(Vector3.up, player.transform.position);         //creates a plane at the players base for player rotation

        //init the distance halo... not really for dragon warning
        HaloScript dScript = dragWarn.GetComponent <HaloScript>();

        if (dScript == null)
        {
            Debug.Log("InitPlayer() couldnt get a reference to the halo script for dragon warning");
        }
        else
        {
            dScript.InitHalo(1);
            dragWarn.SetActive(false);
        }

        // init the arrows
        HaloScript laScript = lArr.GetComponent <HaloScript>();

        if (laScript == null)
        {
            Debug.Log("InitPlayer() couldnt get a reference to the halo script for left arrow");
        }
        else
        {
            laScript.InitHalo(1);
            lArr.SetActive(false);
        }

        HaloScript raScript = rArr.GetComponent <HaloScript>();

        if (raScript == null)
        {
            Debug.Log("InitPlayer() couldnt get a reference to the halo script for right arrow");
        }
        else
        {
            raScript.InitHalo(1);
            rArr.SetActive(false);
        }
    }
Esempio n. 2
0
    private void Update()
    {
        teleportTimer -= Time.deltaTime;
        attackCharge  += Time.deltaTime * 1.5f;
        Vector2 mp = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        if (mp.y > transform.position.y + .75f)
        {
            facing.SetBool("front", false);
        }
        else
        {
            facing.SetBool("front", true);
        }
        if (attackCharge > 5)
        {
            attackCharge = 5;
        }
        if (Input.GetMouseButtonDown(0) && attackCharge > 0 && !dead && !win)
        {
            if (attackCharge == 5)
            {
                manager.PlaySound("ps");
                attackCharge -= 5;
                Transform  singleHalo = Instantiate(ultimateHalo, new Vector3(transform.position.x, transform.position.y, -1), Quaternion.identity);
                Vector2    pos        = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                Vector2    dir        = new Vector2(pos.x - transform.position.x, pos.y - transform.position.y);
                HaloScript hs         = singleHalo.GetComponent <HaloScript>();
                hs.Setup(dir, true);
            }
            else if (attackCharge > 3)
            {
                manager.PlaySound("ps");
                attackCharge -= 3;
                Vector2    pos       = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                Vector2    dir       = new Vector2(pos.x - transform.position.x, pos.y - transform.position.y);
                float      spread    = 15f * Mathf.Deg2Rad;
                float      radius    = Vector2.Distance(pos, transform.position);
                float      sign      = (dir.y >= 0) ? 1 : -1;
                float      offset    = (sign >= 0) ? 0 : 360;
                float      angle     = (Vector2.Angle(Vector2.right, dir) * sign + offset) * Mathf.Deg2Rad;
                Transform  multiHalo = Instantiate(halo, new Vector3(transform.position.x, transform.position.y, -1), Quaternion.identity);
                HaloScript hs        = multiHalo.GetComponent <HaloScript>();
                hs.Setup(dir, false);
                pos       = new Vector2(radius * Mathf.Cos(angle - spread) + transform.position.x, radius * Mathf.Sin(angle - spread) + transform.position.y);
                dir       = new Vector2(pos.x - transform.position.x, pos.y - transform.position.y);
                multiHalo = Instantiate(halo, new Vector3(transform.position.x, transform.position.y, -1), Quaternion.identity);
                hs        = multiHalo.GetComponent <HaloScript>();
                hs.Setup(dir, false);
                pos       = new Vector2(radius * Mathf.Cos(angle + spread) + transform.position.x, radius * Mathf.Sin(angle + spread) + transform.position.y);
                dir       = new Vector2(pos.x - transform.position.x, pos.y - transform.position.y);
                multiHalo = Instantiate(halo, new Vector3(transform.position.x, transform.position.y, -1), Quaternion.identity);
                hs        = multiHalo.GetComponent <HaloScript>();
                hs.Setup(dir, false);
            }
            else if (attackCharge > 1)
            {
                manager.PlaySound("ps");
                attackCharge--;
                Transform  singleHalo = Instantiate(halo, new Vector3(transform.position.x, transform.position.y, -1), Quaternion.identity);
                Vector2    pos        = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                Vector2    dir        = new Vector2(pos.x - transform.position.x, pos.y - transform.position.y);
                HaloScript hs         = singleHalo.GetComponent <HaloScript>();
                hs.Setup(dir, false);
            }
        }
        if (!dead)
        {
            if (transform.position.x > 30 || transform.position.x < -25 || transform.position.y > 26 || transform.position.y < -23)
            {
                manager.PlaySound("pd");
                dead = true;
                StartCoroutine(DeathAnimation());
            }
        }
        if (win)
        {
            speed = 0;
            AudioSource source = GameObject.Find("SoundManager").GetComponent <AudioSource>();
            source.mute = true;
        }
    }
Esempio n. 3
0
    public void InitPlayer(int index)
    {
        //adjust the Character Controller to fit the Box Collider that SHOULD be included with the suriyan models
        box = player.GetComponent <BoxCollider>();
        Vector3 vec  = new Vector3(1, 1, 1);
        Vector3 vec2 = new Vector3(1, 1, 1);

        if (box == null)
        {
            Debug.Log("Could not Get Box Collider component.");
        }
        else
        {
            vec  = box.size;
            vec2 = box.center;
        }
        charControl = player.AddComponent <CharacterController> () as CharacterController;
        if (charControl != null)
        {
            charControl.radius = (vec.x + vec.y + vec.z) * 0.33f * 0.33f;             // average all three box collider dimensions, then take a third of that
            charControl.center = new Vector3(0, (vec2.y), 0);
            charControl.height = vec2.y + 0.3f;
            //set the y value for when player block comes back up
            yStandCapture = box.center.y;
            yStandLatch   = false;
        }

        anim   = player.GetComponent <Animator>();
        animId = Animator.StringToHash("animation");

        moveDirClamp  = player.transform.position;
        lookDirClamp  = player.transform.position;
        moveDirection = Vector3.zero;
        jumpCtr       = 0;   // may be redundant. im paranoid at this point
        jumpDist      = 0.0f;
        //setPlaneOnce = true;
        landOnce           = true;
        player.tag         = "Player";
        jumpAmp            = 2.0f;
        playerStuckOnce    = false;
        playerDieSoundOnce = false;

        //character info stuff
        CharInfo c = player.GetComponentInChildren <CharInfo>();

        if (c == null)
        {
            Debug.Log("No Character Info found");
        }

        cName           = c.Name;
        scaleFactor     = c.ScaleFactor;
        colorA          = c.colorA;
        colorB          = c.colorB;
        DoAvatarScaling = c.DoAvatarScaling;
        musicLoop       = c.MusicLoop;
        maxDistance     = c.Distance;
        jumpTimes       = c.JumpTimes;
        frozen          = c.worldBottomColor;
        c.level         = GameSaver.gSaver.charLevel[index];
        charLevel       = c.level;

        //calculate end level coin counter
        endLevelCoinCounter  = 0;
        maxEndRoundCoinCount = 3 * 5 * charLevel;

        skyBox = GameObject.FindGameObjectWithTag("SkyBoxController").GetComponent <SkyboxController>();
        if (skyBox == null)
        {
            Debug.Log("Player Controller couldnt get a reference to the skybox controller.");
        }
        else
        {
            skyBox.TopColor    = c.worldTopColor;
            skyBox.BottomColor = c.worldBottomColor;
        }



        //init the distance halo. Need to call InitHalo() below the character info
        HaloScript hScript = halo.GetComponent <HaloScript>();

        if (hScript == null)
        {
            Debug.Log("InitPlayer() couldnt get a reference to the halo script");
        }
        else
        {
            hScript.InitHalo(maxDistance);
            halo.SetActive(true);
        }



        //update the jump x side bar ui text
        Text jumpX = GameObject.FindGameObjectWithTag("uiJumpTimes").GetComponent <Text>();

        if (jumpX != null)
        {
            string str = "Jump X" + jumpTimes.ToString();
            jumpX.text = str;
        }

        //god im not proud of this. shitty design work
        //update the sprite for the progress bar
        Image           bar = GameObject.FindGameObjectWithTag("uiProgressIndicator").GetComponent <Image>();
        MenuButton      foo = GameObject.FindGameObjectWithTag("MenuButton").GetComponent <MenuButton>();
        CharacterButton b;

        GameObject[] butts = GameObject.FindGameObjectsWithTag("uiCharButton");
        if (butts != null)
        {
            foreach (GameObject g in butts)
            {
                b = g.GetComponent <CharacterButton>();
                if (b != null)
                {
                    if (b.charIndex == gScript.GetPlayerIndex())
                    {
                        if (bar != null)
                        {
                            bar.sprite = b.GetSprite();
                        }
                        if (foo != null)
                        {
                            foo.SetCharSelected(gScript.GetPlayerIndex(), b.GetSprite());
                        }
                    }
                }
            }
        }

        SetCharacterName(cName);
        //SetNumLivesUI();
    }