Exemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        //Arrow Blank Start
        HeroArrow.SetActive(false);
        ArrowFull.SetActive(false);
        ArrowDull.SetActive(false);
        HeroSelectionFull.SetActive(false);
        HeroSelectionDull.SetActive(false);

        //Movement Baselines
        Vector3 translateSpot = MainCamera.camera.WorldToScreenPoint(Self.transform.position);

        startSpot = new Vector2(translateSpot.x, translateSpot.y);
        float distance = (startSpot.y / screenFraction);

        stableDistance = distance;

        //Gravity Modification
        Physics.gravity = new Vector3(0, -60, 0);
    }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        //Hero State Change
        if (heroStateChanged)
        {
            heroStateChange();
        }
        //Hero State Changed

        //Hero Render Rotate
        HeroRenderDirector.transform.position = new Vector3((Self.transform.position.x + Self.rigidbody.velocity.x), Self.transform.position.y, (Self.transform.position.z + Self.rigidbody.velocity.z));
        HeroRender.transform.LookAt(HeroRenderDirector.transform.position);
        //Hero Render Rotated

        //Stable Range Check + Position Update
        Vector3 translateSpot = MainCamera.camera.WorldToScreenPoint(HeroRender.transform.position);

        startSpot       = new Vector2(translateSpot.x, translateSpot.y);
        currentDistance = Vector2.Distance(startSpot, Input.mousePosition);

        if (currentDistance < stableDistance)
        {
            withinStableRange = true;
            //print ("Hero Selected");
            heroSelected = true;
        }
        else
        {
            withinStableRange = false;
            //print ("Hero Unselected");
            heroSelected = false;
        }
        //Stable Range Checked + Position Updated

        //Hero Selection

        if (heroSelected)
        {
            HeroSelectionFull.transform.LookAt(MainCamera.transform.position);
            HeroSelectionDull.transform.LookAt(MainCamera.transform.position);

            if (canShift)
            {
                HeroSelectionFull.SetActive(true);
                HeroSelectionDull.SetActive(false);
            }
            if (!canShift)
            {
                HeroSelectionDull.SetActive(true);
                HeroSelectionFull.SetActive(false);
            }
        }
        else if (!heroSelected)
        {
            HeroSelectionDull.SetActive(false);
            HeroSelectionFull.SetActive(false);
        }
        //Hero Selected

        //Launch
        if (Input.GetMouseButtonDown(0) && !shiftStarted && withinStableRange)
        {
            shiftStarted = true;
        }

        if (shiftStarted)
        {
            HeroArrow.SetActive(true);
            PredictLaunch();
        }

        if (canShift)
        {
            if (Input.GetMouseButtonUp(0) && shiftStarted)
            {
                if (withinStableRange)
                {
                    Self.rigidbody.velocity = new Vector3(0, 0, 0);
                    shiftStarted            = false;
                }
                else
                {
                    endSpot = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
                    ShiftVelocity();
                    shiftStarted = false;

                    //Stamina Recovery Adjustment
                    staminaRecovering = true;
                    sRecoveryTime     = Time.fixedTime;
                }
                HeroArrow.SetActive(false);
            }
        }
        if (Input.GetMouseButtonUp(0) && shiftStarted)
        {
            HeroArrow.SetActive(false);
            shiftStarted = false;
        }
        //Launched

        //Handle Cooldown
        if (staminaRecovering)
        {
            canShift = false;
            if ((Time.fixedTime - sRecoveryTime) >= sRecoveryRate)
            {
                staminaRecovering = false;
            }
        }
        else
        {
            canShift = true;
        }
        //Cooldown Handled
    }