public static bool GetHeldType(ItemHeldType heldtype, out Type type) { switch (heldtype) { case ItemHeldType.HeldEntity: type = typeof(BaseHeldEntity); return(true); case ItemHeldType.BaseProjectile: type = typeof(BaseProjectile); return(true); case ItemHeldType.BaseMelee: type = typeof(BaseMelee); return(true); default: type = typeof(BaseHeldEntity); return(false); } }
// Update is called once per frame void Update() { if (lowHealth && lowHealthOverlay.alpha < 1f) { lowHealthOverlay.alpha += (Time.deltaTime * lowHealthFadeSpeed); } else if (!lowHealth && lowHealthOverlay.alpha > 0f) { lowHealthOverlay.alpha -= (Time.deltaTime * lowHealthFadeSpeed); } if (gInput.GetInput()) { if (!inputDisabled) { //Debug.Log(isShowingCellTargetting + " || " + isPlacingPlant); if (!isShowingCellTargetting && isPlacingPlant) { isShowingCellTargetting = true; myCellTargetting.showTargetting(); } if (isTryingToParry && !isParrying) { isParrying = true; anim.SetBool("IsGuarding", true); } calcWalkSpeed(); Vector2 moveDirXY = gInput.getMovementInput(); Vector3 moveDir = new Vector3(moveDirXY.x, 0, moveDirXY.y); if (rb.velocity.magnitude < maxSpeed && !isParrying) { rb.AddForce(moveDir * currWalkSpeed); } //anim.SetFloat("MoveSpeed",moveDir.magnitude*(currWalkSpeed/walkSpeed)); Vector2 aimDir = gInput.getAimInput(); if (moveDir != Vector3.zero) { anim.SetFloat("Speed", 1f); lastMoveDir = moveDir; } else { anim.SetFloat("Speed", 0f); } if (aimDir != Vector2.zero) { lastAimDir = aimDir; } rotationZ = calcZ(moveDirXY); canvasRotTransf.rotation = Quaternion.Euler(0, 0, rotationZ); regularRotTransf.rotation = Quaternion.Euler(0, rotationZ, 0); if (gInput.getFireDown()) { Fire(); } if (gInput.getDashDown()) { inputDisabled = true; currWalkSpeed = walkSpeed * dashMultiplier; //anim.SetBool("Dashing",true); Invoke("endDash", dashTime); startDash = Time.time; } } else { if (attackNumber > 0) { float timeSinceFire = Time.time - startFireTarget; Vector2 moveDirXY = gInput.getMovementInput(); Vector3 moveDir = new Vector3(moveDirXY.x, 0, moveDirXY.y); if (moveDir != Vector3.zero) { directionWhileAttacking = moveDir; } if (timeSinceFire < timeAttackMove) { if (rb.velocity.magnitude < maxSpeed * speedAttackMultiplier) { rb.AddForce(lastMoveDir * currWalkSpeed); } } if (timeSinceFire < singleAttackCD) { if (timeSinceFire > singleAttackWaitStart) { if (gInput.getFireDown()) { Fire(); } } } else if (timeSinceFire < lastAttackCD && attackNumber == 3) { } else { attackNumber = 0; timeSinceFire = -1; directionWhileAttacking = Vector3.zero; inputDisabled = false; } } if (startDash != -1) { if (rb.velocity.magnitude < maxSpeed * dashMultiplier) { rb.AddForce(lastMoveDir * currWalkSpeed); } } } if (gInput.getLeftActionDown()) { if (currItemType == ItemHeldType.Seed) { currItemType = ItemHeldType.Weapon; plantAndShield.SetActive(true); isShowingCellTargetting = false; isPlacingPlant = false; myCellTargetting.hideTargetting(); } else { currItemType = ItemHeldType.Seed; plantAndShield.SetActive(false); isPlacingPlant = true; if (!inputDisabled) { isShowingCellTargetting = true; myCellTargetting.showTargetting(); } } } if (gInput.getRightActionDown()) { Heal(); } if (gInput.getParryDown()) { isTryingToParry = true; if (!inputDisabled) { isParrying = true; anim.SetBool("IsGuarding", true); } } if (gInput.getParryUp()) { isTryingToParry = false; isParrying = false; anim.SetBool("IsGuarding", false); } } aimTarget(); setHPBar(); setUI(); }