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); } }
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(); } }
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); } }
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); } } }
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; }
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 ); // } }