Exemplo n.º 1
0
 void Update()
 {
     if (SpiffyInput.CheckAxis("Inventory"))
     {
         ToggleOpen(!open);
     }
 }
    protected virtual void Update()
    {
        var diff = player.transform.position - transform.position;

        if (diff.sqrMagnitude < interactDist * interactDist && looking /*&& Vector3.Dot( -diff.normalized,
                                                                        * ( cam.gameObject.transform.forward + Vector3.up * 0.2f ).normalized ) > interactTolerance*/)
        {
            // if( looking )
            {
                pickupText.gameObject.SetActive(true);
                pickupText.transform.position = transform.position + Vector3.up * heightOffset;

                if (SpiffyInput.CheckAxis("Interact"))
                {
                    Interact();
                    audSrc.PlayOneShot(interactSound);
                }
            }
        }
        else
        {
            UnInteract();
        }

        looking = false;
    }
Exemplo n.º 3
0
 void Update()
 {
     if (SpiffyInput.CheckAxis("Menu", true) /* || Input.GetKeyDown( KeyCode.Escape )*/)
     {
         ToggleOpen(!open);
     }
 }
Exemplo n.º 4
0
    void Update()
    {
        var diff = player.transform.position - transform.position;

        if (diff.sqrMagnitude < interactDist * interactDist)
        {
            pickupText.gameObject.SetActive(true);
            pickupText.transform.position = transform.position + Vector3.up * heightOffset;

            if (SpiffyInput.CheckAxis(interactAxis))
            {
                if (prefAdd.Length > 0)
                {
                    PlayerPrefs.SetInt(prefAdd, 1);
                }

                SceneManager.LoadScene(targetScene);
            }

            transform.Rotate(Vector3.up, spinSpd * Time.deltaTime);
            transform.position = origPos + Vector3.up * upHeight;
        }
        else
        {
            pickupText.gameObject.SetActive(false);
            transform.position = origPos;
        }
    }
Exemplo n.º 5
0
 void /*Fixed*/ Update()
 {
     move = new Vector3(
         SpiffyInput.GetAxis("Horizontal"),
         0.0f,
         SpiffyInput.GetAxis("Vertical")
         );
 }
Exemplo n.º 6
0
 void Update()
 {
     refire.Update(Time.deltaTime);
     if (SpiffyInput.CheckFree("Fire1") && refire.IsDone())
     {
         refire.Reset();
         var proj = Instantiate(projectile);
         proj.transform.position = shotSpot.position;
         proj.GetComponent <Rigidbody>().AddForce(cam.transform.forward * shotSpd, ForceMode.Impulse);
         proj.GetComponent <Projectile>().SetTeam(1);
     }
 }
Exemplo n.º 7
0
    public void OnPointerClick(PointerEventData eventData)
    {
        if (SpiffyInput.CheckFree("StackItem") && item.GetPrefab() != null)
        {
            // if( holder != invHand )
            // {
            //  invHand.TryStackItem( item );
            // }
            // else
            // {
            //  hotbar.TryStackItem( item );
            // }
            //
            // RemoveItem( CountItems() );

            // int leftover = ( holder == invHand
            //  ? hotbar.TryStackItem( item,nItems )
            //  : invHand.TryStackItem( item,nItems ) );

            int leftover = nItems;
            if (holder == hotbar)
            {
                leftover = invHand.TryStackExisting(item, leftover);
                if (leftover > 0)
                {
                    leftover = invHand.TryStackItem(item, leftover);
                }
            }
            else
            {
                if (hotbar.CheckExisting(item))
                {
                    leftover = hotbar.TryStackExisting(item, leftover);
                }
                /*else */ if (invHand.CheckExisting(item))
                {
                    leftover = invHand.TryStackExisting(item, leftover);
                }
                // else
                {
                    leftover = hotbar.TryStackItem(item, leftover);
                    if (leftover > 0)
                    {
                        invHand.TryStackItem(item, leftover);
                    }
                }
            }

            RemoveItem(nItems - leftover);
            hotbar.RefreshSlot();
        }
    }
Exemplo n.º 8
0
    void Update()
    {
        refire.Update(Time.deltaTime);
        if (SpiffyInput.CheckAxis("Fire1") && canFire && refire.IsDone())
        {
            var        knockbackDir = -cam.transform.forward;
            RaycastHit hit;
            if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, 999.0f, shotMask))
            {
                playerMoveScr.ApplyForceMove(knockbackDir.normalized * Mathf.Min(
                                                 knockbackForce * (2.0f / hit.distance), maxForce));

                canFire = false;
                refire.Reset();

                var curPellets = pelletCount.Rand();
                for (int i = 0; i < curPellets; ++i)
                {
                    SpawnTrail(hit.point + new Vector3(
                                   Random.Range(0.0f, 1.0f),
                                   Random.Range(0.0f, 1.0f),
                                   Random.Range(0.0f, 1.0f)) *
                               Mathf.Max(minSpread, pelletSpread * Mathf.Sqrt(hit.distance)));
                }

                audSrc.PlayOneShot(shootAud);
            }
        }

        if (charCtrl.isGrounded)
        {
            if (!canFire)
            {
                audSrc.PlayOneShot(reloadAud);
            }
            canFire = true;
        }
    }
Exemplo n.º 9
0
    void Update()
    {
        if (PauseMenu.IsOpen())
        {
            return;
        }

        var move = new Vector3(
            Input.GetAxis("Horizontal"),
            0.0f,
            Input.GetAxis("Vertical"));

        move.Normalize();
        var ang = cam.transform.eulerAngles.y * Mathf.Deg2Rad - Mathf.PI / 2.0f;

        var xMove = Mathf.Cos(ang) * move.z + Mathf.Sin(ang + Mathf.PI) * move.x;
        var yMove = -Mathf.Sin(ang) * move.z + Mathf.Cos(ang + Mathf.PI) * move.x;

        if (Mathf.Abs(xMove) > 0.0f || Mathf.Abs(yMove) > 0.0f)
        {
            var rot = transform.eulerAngles;
            rot.y = Mathf.Atan2(xMove, yMove) * Mathf.Rad2Deg;
            rot.y = Mathf.LerpAngle(transform.eulerAngles.y, rot.y, rotSpeed * Time.deltaTime);
            transform.eulerAngles = rot;
        }

        bodyMove = new Vector3(xMove, 0.0f, yMove);

        animCtrl.SetBool("attack", false);
        if (SpiffyInput.CheckFree("Fire1"))
        {
            var forward = cam.transform.forward;
            forward.y         = 0.0f;
            transform.forward = forward;

            animCtrl.SetBool("attack", true);
        }
    }
Exemplo n.º 10
0
    void Update()
    {
        refire.Update(Time.deltaTime);
        if (SpiffyInput.CheckFree("Fire2"))
        {
            if (canFire && refire.IsDone())
            {
                if (hitObj == null)
                {
                    RaycastHit hit;
                    if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, range, shotMask))
                    {
                        hitObj    = hit.transform;
                        hitOffset = hit.point - hitObj.position;

                        Destroy(curTrail?.gameObject);
                        curTrail = Instantiate(trailPrefab).GetComponent <LineRenderer>();

                        Destroy(hookParticles);
                        hookParticles = Instantiate(particlePrefab);
                        hookParticles.transform.position = hit.point;
                        hookParticles.transform.up       = (hit.point - transform.position);

                        playerParticles.SetActive(true);

                        hook.SetActive(false);

                        // canFire = false;
                        // refire.Reset();

                        // var curPellets = pelletCount.Rand();
                        // for( int i = 0; i < curPellets; ++i )
                        // {
                        //  SpawnTrail( hit.point + new Vector3(
                        //      Random.Range( 0.0f,1.0f ),
                        //      Random.Range( 0.0f,1.0f ),
                        //      Random.Range( 0.0f,1.0f ) ) *
                        //      Mathf.Max( minSpread,pelletSpread * Mathf.Sqrt( hit.distance ) ) );
                        // }
                        //
                        // audSrc.PlayOneShot( shootAud );
                    }
                }
                else
                {
                    var hitPos       = (hitObj.position + hitOffset);
                    var knockbackDir = hitPos - transform.position;
                    playerMoveScr.ApplyForceMove(knockbackDir.normalized * knockbackForce * Time.deltaTime);

                    curTrail.SetPosition(0, transform.position);
                    curTrail.SetPosition(1, hitPos);

                    if (pullDuration.Update(Time.deltaTime))
                    {
                        FireReset();
                    }
                }
            }
        }
        else
        {
            if (hitObj != null)
            {
                FireReset();
            }
        }

        if (charCtrl.isGrounded)
        {
            if (!canFire)
            {
                // audSrc.PlayOneShot( reloadAud );
                canFire = true;
                hook.SetActive(true);
            }
        }
    }
Exemplo n.º 11
0
    void FixedUpdate()
    {
        // if( PauseMenu.IsOpen() ) return;

        if (CanJump())
        {
            canJump = true;
            jumpLeniency.Reset();
            yVel = 0.0f;
        }
        else if (jumpLeniency.Update(Time.fixedDeltaTime))
        {
            canJump = false;
        }

        // if( canJump ) forwardAxisPower = vertAxis;
        // move.Normalize();
        var ang = cam.transform.eulerAngles.y * Mathf.Deg2Rad - Mathf.PI / 2.0f;

        var xMove = Mathf.Cos(ang) * move.z + Mathf.Sin(ang + Mathf.PI) * move.x;
        var yMove = -Mathf.Sin(ang) * move.z + Mathf.Cos(ang + Mathf.PI) * move.x;

        vel.x += xMove * moveSpeed * Time.fixedDeltaTime;
        vel.y += yMove * moveSpeed * Time.fixedDeltaTime;

        // xMove *= bhMod * bhStrafeMod;
        // yMove *= bhMod;

        // if( Mathf.Abs( xMove ) > 0.0f || Mathf.Abs( yMove ) > 0.0f )
        // {
        //  var rot = transform.eulerAngles;
        //  rot.y = Mathf.Atan2( xMove,yMove ) * Mathf.Rad2Deg;
        //  rot.y = Mathf.LerpAngle( transform.eulerAngles.y,rot.y,rotSpeed * Time.fixedDeltaTime );
        //  // transform.eulerAngles = rot;
        //
        //  // animCtrl.SetBool( "walk",true );
        // }
        // else
        // {
        //  // animCtrl.SetBool( "walk",false );
        // }

        if (SpiffyInput.GetAxis("Jump") > 0.0f)
        {
            if (!jumping && canJump)
            {
                jumping = true;

                if (yVel < 0.2f)
                {
                    audSrc.PlayOneShot(jumpSound);
                }
            }
        }
        else if (variableJump)
        {
            if (jumping && minJump.Update(Time.fixedDeltaTime))
            {
                StopJumping();
            }
        }

        if (jumping)
        {
            yVel = jumpPower;

            if (jumpTimer.Update(Time.fixedDeltaTime))
            {
                StopJumping();
            }
        }
        else
        {
            yVel -= gravAcc * Time.fixedDeltaTime;
        }

        if (vel.magnitude > maxSpeed)
        {
            vel = vel.normalized * maxSpeed;
        }

        if (resetPos == Vector3.zero)
        {
            charCtrl.Move((new Vector3(vel.x, yVel, vel.y) * moveSpeed + forceMove) * Time.fixedDeltaTime);

            if (footstepTimer.Update(Time.fixedDeltaTime) && charCtrl.isGrounded && move.sqrMagnitude > 0.2f)
            {
                footstepTimer.Reset();
                audSrc.PlayOneShot(footstepSounds[Random.Range(0, footstepSounds.Count)]);
            }
        }
        else
        {
            var diff = resetPos - transform.position;
            charCtrl.Move(diff);
            resetPos         = Vector3.zero;
            gameObject.layer = LayerMask.NameToLayer("Player");
        }

        // animCtrl.SetBool( "jump",yVel > 0.0f );
        // animCtrl.SetBool( "jump",!canJump );

        if (charCtrl.isGrounded)
        {
            if (stopForceMove || !SpiffyInput.CheckFree("Sprint"))
            {
                forceMove.Set(0.0f, 0.0f, 0.0f);
            }
        }

        if (canSprint)
        {
            if (SpiffyInput.CheckFree("Sprint"))
            {
                footstepTimer.Update(Time.fixedDeltaTime);
                if (forceMove.sqrMagnitude < maxSprintSpd * maxSprintSpd)
                {
                    forceMove += (cam.transform.forward + Vector3.up * sprintUpBias) *
                                 sprintAccel * Time.fixedDeltaTime;
                    // forceMove.x += xMove * sprintAccel * Time.fixedDeltaTime;
                    // forceMove.z += yMove * sprintAccel * Time.fixedDeltaTime;
                }
            }
        }

        if (canJetpack)
        {
            if (SpiffyInput.CheckFree("Jump"))
            {
                var forceDir = cam.transform.forward + Vector3.up * jetpackUpBias;
                forceMove += forceDir * jetpackAccel * Time.fixedDeltaTime;
            }
        }

        vel       *= decel;
        forceMove *= forceDecay;
    }
Exemplo n.º 12
0
    void FixedUpdate()
    {
        var move = new Vector3(
            Input.GetAxis("Horizontal"),
            0.0f,
            Input.GetAxis("Vertical")
            );

        move.Normalize();
        if (PauseMenu.IsOpen())
        {
            move.Set(0.0f, 0.0f, 0.0f);
        }
        var ang = cam.transform.eulerAngles.y * Mathf.Deg2Rad - Mathf.PI / 2.0f;

        var xMove = Mathf.Cos(ang) * move.z + Mathf.Sin(ang + Mathf.PI) * move.x;
        var yMove = -Mathf.Sin(ang) * move.z + Mathf.Cos(ang + Mathf.PI) * move.x;

        if (Mathf.Abs(xMove) > 0.0f || Mathf.Abs(yMove) > 0.0f)
        {
            var rot = transform.eulerAngles;
            rot.y = Mathf.Atan2(xMove, yMove) * Mathf.Rad2Deg;
            rot.y = Mathf.LerpAngle(transform.eulerAngles.y, rot.y, rotSpeed * Time.deltaTime);
            transform.eulerAngles = rot;

            animCtrl.SetBool("walk", true);
        }
        else
        {
            animCtrl.SetBool("walk", false);
        }

        bool canJump = CanJump();

        if (canJump)
        {
            yVel = 0.0f;
        }

        if (SpiffyInput.CheckFree("Jump"))
        {
            if (!jumping && canJump)
            {
                jumping = true;

                // todo play jumping animation
                // body.AddForce( Vector3.up * jumpForce,ForceMode.Impulse );
            }
        }
        else
        {
            if (jumping && minJump.Update(Time.deltaTime))
            {
                StopJumping();
            }
        }

        if (jumping)
        {
            // var jumpForce = Vector3.up * jumpPower;

            // body.MovePosition( body.position + jumpForce * Time.deltaTime );
            // var vel = body.velocity;
            // vel.y = jumpPower;
            // body.velocity = vel;
            yVel = jumpPower;

            if (jumpTimer.Update(Time.deltaTime))
            {
                StopJumping();
            }
        }
        else
        {
            yVel -= gravAcc * Time.deltaTime;
        }

        // body.MovePosition( transform.position + new Vector3( xMove,yVel,yMove ) * moveSpeed * Time.deltaTime );
        charCtrl.Move((new Vector3(xMove, yVel, yMove) +
                       Vector3.Lerp(knockbackForce, Vector3.zero, knockbackDuration.GetPercent())) *
                      moveSpeed * Time.deltaTime);

        curVel.Set(xMove, yVel, yMove);
        // animCtrl.SetBool( "jump",yVel > 0.0f );
        animCtrl.SetBool("jump", !canJump);

        if (SpiffyInput.CheckFree("Fire1"))
        {
            if (!playerInv.IsOpen())
            {
                wepHolder.TryAttack(cam.transform.eulerAngles.y);
            }

            // var rot = transform.eulerAngles;
            // // // rot.y = Mathf.Atan2( xMove,yMove ) * Mathf.Rad2Deg;
            // // // rot.y = Mathf.LerpAngle( transform.eulerAngles.y,rot.y,rotSpeed * Time.deltaTime );
            // rot.y = cam.transform.eulerAngles.y;
            // transform.eulerAngles = rot;

            // animCtrl.SetBool( "aim",true );
        }
        else
        {
            wepHolder.CancelAttack();
        }

        wepHolder.SetTargetDir(cam.transform.eulerAngles.y);

        knockbackDuration.Update(Time.deltaTime);
        // if( Input.GetKeyDown( KeyCode.Q ) )
        // {
        //  ApplyKnockback( -cam.transform.forward,13.0f );
        // }
    }
Exemplo n.º 13
0
    void Update()
    {
        // if( SpiffyInput.CheckAxis( "Menu" ) )
        // {
        //  Cursor.lockState = CursorLockMode.None;
        //  Cursor.visible = true;
        //  escape = true;
        // }
        if (SpiffyInput.CheckAxis("Fire1") && !playerInv.IsOpen() && !PauseMenu.IsOpen())
        {
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible   = false;
            escape           = false;
        }

        if (!escape && !playerInv.IsOpen() && !PauseMenu.IsOpen())
        {
            var aim = new Vector2(Input.GetAxis("Mouse X"),
                                  Input.GetAxis("Mouse Y"));

            // aim.y = aim.y * rotationSpeed * sensitivity * Time.deltaTime;
            aim = aim * rotationSpeed * sensitivity * Time.deltaTime;
            if (aim.y > maxAimMove)
            {
                aim.y = maxAimMove;
            }
            if (aim.y < -maxAimMove)
            {
                aim.y = -maxAimMove;
            }

            var tempAng = transform.eulerAngles;
            tempAng.x = tempAng.x - aim.y;
            if (tempAng.x > 90.0f - verticalCutoff && tempAng.x < 180.0f)
            {
                tempAng.x = 90.0f - verticalCutoff;
            }
            if (tempAng.x < 270.0f + verticalCutoff && tempAng.x > 180.0f)
            {
                tempAng.x = 270.0f + verticalCutoff;
            }
            tempAng.y             = tempAng.y + aim.x /* * rotationSpeed * Time.deltaTime*/;
            transform.eulerAngles = tempAng;

            // distToPlayer -= Input.GetAxis( "Mouse ScrollWheel" ) *
            //  scrollSpeed * Time.deltaTime;

            // distToPlayer = Mathf.Max( minDistToPlayer,distToPlayer );
            // distToPlayer = Mathf.Min( maxDistToPlayer,distToPlayer );
        }

        transform.position = player.transform.position +
                             transform.right * offset.x +
                             transform.up * offset.y +
                             transform.forward * offset.z;
        transform.position -= transform.forward * distToPlayer;

        var        clipRay = new Ray(player.transform.position, transform.position - player.transform.position);
        RaycastHit clipHit;

        if (Physics.Raycast(clipRay, out clipHit, distToPlayer, worldMask))
        {
            transform.position = clipHit.point + clipHit.normal * cam.nearClipPlane * 1.5f;
        }

        var        interactRay = new Ray(transform.position + transform.forward * distToPlayer / 2.0f, transform.forward);
        RaycastHit interactHit;

        if (Physics.Raycast(interactRay, out interactHit, 100.0f, itemMask))
        {
            interactHit.transform.GetComponent <InteractiveBase>()?.Look();
        }
    }