change: Finished MushroomVillage

This includes changes such as putting enemies in levels, adding
projectiles, and finalizing the bounces for the moving platforms

The cymbal has been implemented, and provides a short immunity to
projectiles

Every section is playable, and includes a final ending object, although there
is no transistion to the level from the previous level yet
This commit is contained in:
Nicholas Novak 2023-05-05 10:44:42 -07:00
parent ba01db1051
commit d3dfe2acac
10 changed files with 2458 additions and 221 deletions

View File

@ -383,7 +383,7 @@
{ {
"name": "", "name": "",
"id": "167cc771-c2e4-4ab1-ba58-31e6e6730adf", "id": "167cc771-c2e4-4ab1-ba58-31e6e6730adf",
"path": "<Keyboard>/l", "path": "<Keyboard>/i",
"interactions": "", "interactions": "",
"processors": "", "processors": "",
"groups": "", "groups": "",

BIN
Assets/SFX/cymbal.mp3 Normal file

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: f37bef8154eaa8adcbf8a6527c653b0b
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -10,21 +10,26 @@ public class GameUIController : MonoBehaviour
public GameObject trumpetBackground; public GameObject trumpetBackground;
public GameObject tambourineBackground; public GameObject tambourineBackground;
public GameObject clarinetBackground; public GameObject clarinetBackground;
public GameObject cymbalBackground;
[HideInInspector] public GameObject trumpetUI; [HideInInspector] public GameObject trumpetUI;
[HideInInspector] public GameObject tambourineUI; [HideInInspector] public GameObject tambourineUI;
[HideInInspector] public GameObject clarinetUI; [HideInInspector] public GameObject clarinetUI;
[HideInInspector] public GameObject cymbalUI;
void Awake() void Awake()
{ {
this.trumpetUI = trumpetBackground.transform.GetChild(0).gameObject; this.trumpetUI = trumpetBackground.transform.GetChild(0).gameObject;
this.tambourineUI = tambourineBackground.transform.GetChild(0).gameObject; this.tambourineUI = tambourineBackground.transform.GetChild(0).gameObject;
this.clarinetUI = clarinetBackground.transform.GetChild(0).gameObject; this.clarinetUI = clarinetBackground.transform.GetChild(0).gameObject;
this.cymbalUI = this.cymbalBackground.transform.GetChild(0).gameObject;
} }
void Start() { void Start()
{
this.trumpetBackground.SetActive(StateController.Instance.HasTrumpet()); this.trumpetBackground.SetActive(StateController.Instance.HasTrumpet());
this.tambourineBackground.SetActive(StateController.Instance.HasTambourine()); this.tambourineBackground.SetActive(StateController.Instance.HasTambourine());
this.clarinetBackground.SetActive(StateController.Instance.HasClarinet()); this.clarinetBackground.SetActive(StateController.Instance.HasClarinet());
this.cymbalBackground.SetActive(StateController.Instance.HasCymbal());
} }
public void ToggleTrumpet(bool toggleState) public void ToggleTrumpet(bool toggleState)
@ -54,10 +59,20 @@ public class GameUIController : MonoBehaviour
} }
} }
public void ToggleCymbal(bool desiredState)
{
bool curEnabled = clarinetUI.GetComponent<Image>().enabled;
if (curEnabled != desiredState)
{
cymbalUI.GetComponent<Image>().enabled = desiredState;
}
}
public void UpdateInstrumentUI() public void UpdateInstrumentUI()
{ {
this.ToggleTrumpet(StateController.Instance.HasTrumpet()); this.ToggleTrumpet(StateController.Instance.HasTrumpet());
this.ToggleTambourine(StateController.Instance.HasTambourine()); this.ToggleTambourine(StateController.Instance.HasTambourine());
this.ToggleClarinet(StateController.Instance.HasClarinet()); this.ToggleClarinet(StateController.Instance.HasClarinet());
this.ToggleCymbal(StateController.Instance.HasCymbal());
} }
} }

View File

@ -49,6 +49,7 @@ public class PlayerBehavior : MonoBehaviour
[Header("Sound")] [Header("Sound")]
[SerializeField] public AudioClip footstepSound; [SerializeField] public AudioClip footstepSound;
[SerializeField] public AudioClip deathSound; [SerializeField] public AudioClip deathSound;
[SerializeField] public AudioClip cymbalSound;
AudioSource audioSource; AudioSource audioSource;
@ -75,6 +76,10 @@ public class PlayerBehavior : MonoBehaviour
void Update() void Update()
{ {
if (this.cymbalActiveTime < 0)
{
this.gameUI.ToggleCymbal(true);
}
this.cymbalActiveTime -= Time.deltaTime; this.cymbalActiveTime -= Time.deltaTime;
unlockedTambourine = StateController.Instance.HasTambourine(); unlockedTambourine = StateController.Instance.HasTambourine();
@ -145,6 +150,13 @@ public class PlayerBehavior : MonoBehaviour
{ {
if (this.playerInput.actions["CymbalCrash"].WasPressedThisFrame()) if (this.playerInput.actions["CymbalCrash"].WasPressedThisFrame())
{ {
// Play the sound
this.gameUI.ToggleCymbal(false);
this.audioSource.clip = cymbalSound;
this.audioSource.loop = false;
this.audioSource.Play();
// Set the cymbal active for the equivalent of one second
this.cymbalActiveTime = 1; this.cymbalActiveTime = 1;
} }
} }
@ -370,7 +382,12 @@ public class PlayerBehavior : MonoBehaviour
Destroy(collision.gameObject); Destroy(collision.gameObject);
if (this.cymbalActiveTime > 0) if (this.cymbalActiveTime > 0)
{ {
Debug.Log("Reflected!"); Vector2 projVel = collision.gameObject.GetComponent<Rigidbody2D>().velocity;
collision.gameObject.GetComponent<Rigidbody2D>().velocity =
new Vector2(
-projVel.x,
-projVel.y
);
} }
else else
{ {

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -0,0 +1,124 @@
fileFormatVersion: 2
guid: 63a3d46853315bc328c2f7cb7734498c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Sprites/UI/star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View File

@ -0,0 +1,124 @@
fileFormatVersion: 2
guid: 733f090fd96b8349b9c4c48ba17882b6
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant: