public void ResetShootAndMovement() { sailState = 0f; barrelCoolDown = 0f; currentShootInputState = ShootInputState.Idle; shotPowerLeft = leftSide.transform.childCount; shotPowerRight = rightSide.transform.childCount; frozen = false; }
/// <summary> /// shooting input handling /// </summary> /// <param name="m"></param> /// <param name="dir"></param> private void HandleShootInput(OnlinePlayerInput.PlayerControlMessage m, Vector3 dir) { if (playerRespawn.IsDead || frozen) return; if (currentProjIndex == 2) { if (m == OnlinePlayerInput.PlayerControlMessage.SHOOT_START_HOLD_DOWN && currentShootInputState == ShootInputState.Idle) { currentShootInputState = ShootInputState.Ready; return; } if (m == OnlinePlayerInput.PlayerControlMessage.SHOOT_RELEASE && currentShootInputState == ShootInputState.Ready) { currentShootInputState = ShootInputState.Idle; Shoot(null, 0f); } } else { if (m == OnlinePlayerInput.PlayerControlMessage.SHOOT_START_HOLD_DOWN && currentShootInputState == ShootInputState.Idle) { currentShootInputState = ShootInputState.Ready; return; } if (m == OnlinePlayerInput.PlayerControlMessage.SHOOT_RELEASE && currentShootInputState == ShootInputState.Ready) { currentShootInputState = ShootInputState.Idle; activeSide = (Vector3.Dot(dir, leftSide.forward) > 0f) ? leftSide : rightSide; activeCannons = activeSide.GetComponent<CannonGroup>(); if (activeSide == leftSide) { Shoot(leftSide, shotPowerLeft); shotPowerLeft = 0f; } else { Shoot(rightSide, shotPowerRight); shotPowerRight = 0f; } return; } } if (m == OnlinePlayerInput.PlayerControlMessage.CANCEL_START_HOLD && currentShootInputState == ShootInputState.Ready) { currentShootInputState = ShootInputState.Idle; return; } }