public void ThrowFrisbee(ThrowDataContainer moveData, bool isSpecial, float powerMult) { if (catchTransform != null) { lastThrownBy = catchTransform.transform.root.GetComponent <NPC>().dialogue.name; if (powerMult > 1) { speedMultiplier += powerMult; } else { speedMultiplier = powerMult; } speedMultiplier = Mathf.Min(speedMultiplier, 2); if (moveData.macroName == "Super") { speedMultiplier = Mathf.Min(speedMultiplier, 1.3f); } lastSpeedMult = powerMult; prevCatchTransform = catchTransform; catchTransform.transform.root.GetComponentInChildren <PlayerSoundManager>().PlaySound("SFX_InGame_DiscThrow"); if (isSpecial && moveData.macroName == "Super") { CheckMyName(lastThrownBy, catchTransform.transform.root.gameObject); } catchTransform = null; timer = Vector3.zero; inSpecial = isSpecial; movementData = moveData; useThrowData = true; //Debug.Log("THROW"); } }
void Start() { rbSelf.velocity = -Vector3.right * 20; movementData = null; useThrowData = false; //SET DEFAULT Y POSITION THAT SHOULD BE MAINTAINED WHILE IN THROWS// defaultY = transform.position.y; lobHeight = transform.position.y + 6; //SET DEFAULT LOB INDICATOR SCALE// if (lobIndicator != null) { lobScale = lobIndicator.transform.localScale.magnitude; } //RANDOMLY TOSS TO ONE OF THE PLAYERS// if (Random.value > .5f) { score.returntoPlayer2(); } else { score.returntoPlayer1(); } //MAKE THIS AUDIO SOURCE AUDIBLE BUT STILL SPACIAL// pSM.asSelf.spatialBlend = .2f; pSM.asSelf.minDistance = 25; }
/// <summary> /// Clear current throw data. /// </summary> public void CancelMoveData() { timer = Vector3.zero; movementData = null; inSpecial = false; useThrowData = false; tempLob = new Vector2(transform.position.x, transform.position.z); isLobbingToX = -1; isLobbingToZ = -1; transform.position = new Vector3(transform.position.x, defaultY, transform.position.z); zDirection = 1; }
public void LobFrisbee(Vector3 speed, int position, float powerMult, bool overrideCatchTransform = false) { if (catchTransform != null || overrideCatchTransform) { if (powerMult > 1) { speedMultiplier = Mathf.Max(1, speedMultiplier + ((powerMult / speedMultiplier) * .45f)); } else { speedMultiplier = powerMult; } speedMultiplier = Mathf.Min(speedMultiplier, 2); lastSpeedMult = powerMult; if (!overrideCatchTransform) { lastThrownBy = catchTransform.transform.root.GetComponent <NPC>().dialogue.name; prevCatchTransform = catchTransform; catchTransform = null; } timer = Vector3.zero; inSpecial = false; movementData = null; useThrowData = false; if (position != -1) { lobFrom = transform.position; isLobbingToX = position; if (speed.z > 0) { isLobbingToZ = 1; } if (speed.z < 0) { isLobbingToZ = 0; } } else { isLobbingToX = -2; isLobbingToZ = -2; lobFrom = Vector3.zero; } rbSelf.velocity = new Vector3(Mathf.Sign(speed.x) * Mathf.Min(Mathf.Abs(speed.x * Mathf.Max(1, speedMultiplier)), speedCap), 0, 0); //Debug.Log("LOB WITH"+rbSelf.velocity); } }