public void SetSize(Player.Sizes size) { if (Player.currentSize != size && ValidSize(size) && Player.currentState == Player.State.Idle) { if (CheckSpace(Player.GetSizeScale(size))) { Player.State state; if (Player.getSizeIndex(Player.currentSize) > Player.getSizeIndex(size)) { state = Player.State.Growing; audioSource.clip = growingSFX; } else { state = Player.State.Shrinking; audioSource.clip = shrinkingSFX; } audioSource.Play(); Player.currentState = state; Player.currentSize = size; } } }
public void SetScale(Player.Sizes newScale) { objectScale = newScale; float scale = Player.GetSizeScale(objectScale); rb.mass = density * Mathf.Pow(scale / Player.GetSizeScale(Player.Sizes.Normal), 3); extraGravity = Vector3.Scale(Physics.gravity, new Vector3(scale, scale, scale)) - Physics.gravity; }
public bool ValidSize(Player.Sizes size) //Checks if the size is within the min-max sizes { if (Player.getSizeIndex(size) >= Player.getSizeIndex(maxSize) && Player.getSizeIndex(size) <= Player.getSizeIndex(minSize)) { return(true); } else { return(false); } }
public static float GetSizeScale(Player.Sizes size) { if (size == Player.Sizes.Giant) { return(giantSize); } else if (size == Player.Sizes.Normal) { return(normalSize); } else if (size == Player.Sizes.Midget) { return(midgetSize); } return(0); }