mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Black hole fixes (#653)
<!-- A new module or something else important --> ## Major features - <!-- A new parameter added to a module, or API feature --> ## Minor features - <!-- Some improvement that requires no action on the part of add-on creators i.e., improved star graphics --> ## Improvements - Black hole vanish effects now tied to the size of the black hole. Fixes #215. - Black hole ambience pitch isn't weirdly high for large black holes anymore. Fixes #226. - Change system black holes now make a sound when entering them. <!-- Be sure to reference the existing issue if it exists --> ## Bug fixes -
This commit is contained in:
commit
2082884e02
@ -175,6 +175,10 @@ namespace NewHorizons.Builder.Body
|
||||
var singularityAudioSource = singularityAmbience.GetComponent<AudioSource>();
|
||||
singularityAudioSource.maxDistance = distort * 2.5f;
|
||||
singularityAudioSource.minDistance = horizon;
|
||||
|
||||
// Sounds really weird on large black holes but isn't noticeable on small ones. #226
|
||||
singularityAudioSource.dopplerLevel = 0;
|
||||
|
||||
singularityAmbience.transform.localPosition = Vector3.zero;
|
||||
if (sizeController != null) sizeController.audioSource = singularityAudioSource;
|
||||
|
||||
@ -193,7 +197,15 @@ namespace NewHorizons.Builder.Body
|
||||
sphereCollider.isTrigger = true;
|
||||
if (sizeController != null) sizeController.sphereCollider = sphereCollider;
|
||||
|
||||
if (hasDestructionVolume) destructionVolumeGO.AddComponent<BlackHoleDestructionVolume>();
|
||||
var audio = destructionVolumeGO.AddComponent<AudioSource>();
|
||||
audio.spatialBlend = 1f;
|
||||
audio.maxDistance = distort * 2.5f;
|
||||
destructionVolumeGO.AddComponent<OWAudioSource>();
|
||||
|
||||
if (hasDestructionVolume)
|
||||
{
|
||||
destructionVolumeGO.AddComponent<BlackHoleDestructionVolume>();
|
||||
}
|
||||
else if (targetStarSystem != null)
|
||||
{
|
||||
var wormholeVolume = destructionVolumeGO.AddComponent<BlackHoleWarpVolume>();
|
||||
@ -213,8 +225,19 @@ namespace NewHorizons.Builder.Body
|
||||
|
||||
var blackHoleVolume = Object.Instantiate(_blackHoleVolume, singularity.transform);
|
||||
blackHoleVolume.name = "BlackHoleVolume";
|
||||
blackHoleVolume.SetActive(true);
|
||||
|
||||
// Scale vanish effect to black hole size
|
||||
var bhVolume = blackHoleVolume.GetComponent<BlackHoleVolume>();
|
||||
foreach (var ps in bhVolume._vanishEffectPrefab.GetComponentsInChildren<ParticleSystem>())
|
||||
{
|
||||
#pragma warning disable CS0618 // Type or member is obsolete - It tells you to use some readonly shit instead
|
||||
ps.scalingMode = ParticleSystemScalingMode.Hierarchy;
|
||||
#pragma warning restore CS0618 // Type or member is obsolete
|
||||
}
|
||||
bhVolume._vanishEffectPrefab.transform.localScale = Vector3.one * horizon / 100f;
|
||||
|
||||
blackHoleVolume.SetActive(true);
|
||||
|
||||
bhVolume._audioSector = sector;
|
||||
bhVolume._emissionSource = oneShotOWAudioSource;
|
||||
var blackHoleSphereCollider = blackHoleVolume.GetComponent<SphereCollider>();
|
||||
|
||||
@ -1,21 +1,28 @@
|
||||
using NewHorizons.OtherMods.AchievementsPlus.NH;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Components.Volumes
|
||||
{
|
||||
public class BlackHoleDestructionVolume : DestructionVolume
|
||||
{
|
||||
protected OWAudioSource _audio;
|
||||
|
||||
public override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
_deathType = DeathType.BlackHole;
|
||||
_audio = GetComponent<OWAudioSource>();
|
||||
}
|
||||
|
||||
public override void VanishProbe(OWRigidbody probeBody, RelativeLocationData entryLocation)
|
||||
{
|
||||
SurveyorProbe requiredComponent = probeBody.GetRequiredComponent<SurveyorProbe>();
|
||||
if (requiredComponent.IsLaunched())
|
||||
var probe = probeBody.GetRequiredComponent<SurveyorProbe>();
|
||||
|
||||
_audio.PlayOneShot(AudioType.BH_BlackHoleEmission, 1f);
|
||||
|
||||
if (probe.IsLaunched())
|
||||
{
|
||||
Destroy(requiredComponent.gameObject);
|
||||
Destroy(probe.gameObject);
|
||||
ProbeLostAchievement.Earn();
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ namespace NewHorizons.Components.Volumes
|
||||
|
||||
public override void VanishPlayer(OWRigidbody playerBody, RelativeLocationData entryLocation)
|
||||
{
|
||||
Locator.GetPlayerAudioController().PlayOneShotInternal(AudioType.BH_BlackHoleEmission);
|
||||
Main.Instance.ChangeCurrentStarSystem(TargetSolarSystem, PlayerState.AtFlightConsole());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user