aboutsummaryrefslogtreecommitdiffstats
path: root/Assets/Scripts
diff options
context:
space:
mode:
authorcross28 <45377355+cross28@users.noreply.github.com>2022-04-18 05:06:16 -0500
committerGitHub <noreply@github.com>2022-04-18 05:06:16 -0500
commitb11db6ce1af50c7f76f17b3797c76275f81801d2 (patch)
tree4bad1628cc223bbd40bd5a593c8bf9576fda0402 /Assets/Scripts
parentea94c8f0bdb549de1d50b471ac022965f20cdd72 (diff)
parenta4d4850cd3e2d17ffa952203f86bf4fbe54a01c2 (diff)
Merge pull request #5 from MontanaJohns/projectile-improvements
Projectile improvements
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/Actors/Actor.cs6
-rw-r--r--Assets/Scripts/Actors/Player.cs3
-rw-r--r--Assets/Scripts/AudioManager.cs48
-rw-r--r--Assets/Scripts/AudioManager.cs.meta11
-rw-r--r--Assets/Scripts/Items/Whip.cs2
-rw-r--r--Assets/Scripts/Projectile.cs10
-rw-r--r--Assets/Scripts/Sound.cs20
-rw-r--r--Assets/Scripts/Sound.cs.meta11
8 files changed, 105 insertions, 6 deletions
diff --git a/Assets/Scripts/Actors/Actor.cs b/Assets/Scripts/Actors/Actor.cs
index 96c67c2..eb8185e 100644
--- a/Assets/Scripts/Actors/Actor.cs
+++ b/Assets/Scripts/Actors/Actor.cs
@@ -1,6 +1,4 @@
-using System;
using System.Collections;
-using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using MontanaJohns.Core;
@@ -23,9 +21,11 @@ namespace MontanaJohns.Actors
protected SpriteRenderer _renderer;
protected Animator _animator;
protected Transform _transform;
+ protected AudioManager _audio;
protected Active activeItem;
protected bool isGrappling;
+ protected bool isMoving;
protected Vector2? grapplePoint = null;
protected LayerMask groundLayers;
protected Collection<Item> items;
@@ -44,6 +44,7 @@ namespace MontanaJohns.Actors
_transform = GetComponent<Transform>();
_renderer = GetComponent<SpriteRenderer>();
_animator = GetComponent<Animator>();
+ _audio = FindObjectOfType<AudioManager>();
groundLayers = LayerMask.GetMask("Grapple", "Ground");
_rigidBody.freezeRotation = true;
@@ -75,6 +76,7 @@ namespace MontanaJohns.Actors
var target = new Vector2(input * stats.speedMultiplier * 10, _rigidBody.velocity.y);
_rigidBody.velocity = Vector2.SmoothDamp(_rigidBody.velocity, target, ref acceleration, .05f);
_animator.SetBool("moving", Mathf.Abs(_rigidBody.velocity.x) > 1);
+ isMoving = Mathf.Abs(_rigidBody.velocity.x) > 1;
if (_rigidBody.velocity.x < -0.1) {
_renderer.flipX = true;
diff --git a/Assets/Scripts/Actors/Player.cs b/Assets/Scripts/Actors/Player.cs
index 589d661..8535a41 100644
--- a/Assets/Scripts/Actors/Player.cs
+++ b/Assets/Scripts/Actors/Player.cs
@@ -55,6 +55,8 @@ namespace MontanaJohns.Actors
else
{
base.Move(move.ReadValue<Vector2>().x);
+ if (isMoving && !_animator.GetBool("airborn") && !_audio.isPlaying("RunningOnGrass")) _audio.Play("RunningOnGrass");
+ else if (!isMoving || _animator.GetBool("airborn")) _audio.Stop("RunningOnGrass");
}
DeathCheck();
}
@@ -78,6 +80,7 @@ namespace MontanaJohns.Actors
protected void Fire()
{
Instantiate(projectilePrefab, firePoint.position, firePoint.rotation);
+ _audio.Play("Gunshot");
}
}
} \ No newline at end of file
diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs
new file mode 100644
index 0000000..ccb8ebc
--- /dev/null
+++ b/Assets/Scripts/AudioManager.cs
@@ -0,0 +1,48 @@
+using System;
+using UnityEngine;
+using UnityEngine.Audio;
+
+public class AudioManager : MonoBehaviour
+{
+ public Sound[] sounds;
+
+ private void Awake()
+ {
+ foreach (Sound s in sounds) {
+ s.source = gameObject.AddComponent<AudioSource>();
+ s.source.clip = s.clip;
+ s.source.volume = s.volume;
+ s.source.pitch = s.pitch;
+ s.source.loop = s.loop;
+ }
+ }
+
+ private void Start()
+ {
+ Play("BackgroundMusic");
+ }
+
+ public void Play(string name)
+ {
+ Sound s = Array.Find(sounds, sound => sound.name == name);
+ if (s == null) {
+ Debug.LogWarning("Sound Error: " + name + " could not be played");
+ return;
+ }
+ s.source.Play();
+ }
+
+ public void Stop(string name)
+ {
+ Sound s = Array.Find(sounds, sound => sound.name == name);
+ if (s == null) return;
+ s.source.Stop();
+ }
+
+ public bool isPlaying(string name)
+ {
+ Sound s = Array.Find(sounds, sound => sound.name == name);
+ if (s == null) return false;
+ return s.source.isPlaying;
+ }
+}
diff --git a/Assets/Scripts/AudioManager.cs.meta b/Assets/Scripts/AudioManager.cs.meta
new file mode 100644
index 0000000..c012381
--- /dev/null
+++ b/Assets/Scripts/AudioManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 19069c1158b5efd4492ea38fcb2aa53c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Items/Whip.cs b/Assets/Scripts/Items/Whip.cs
index b826794..b482f8d 100644
--- a/Assets/Scripts/Items/Whip.cs
+++ b/Assets/Scripts/Items/Whip.cs
@@ -42,6 +42,7 @@ namespace MontanaJohns.Items
if (LayerMask.LayerToName(collisionGameObject.layer) == "Grapple")
{
currentHook = Instantiate(hook, collisionGameObject.transform.position, Quaternion.identity);
+ FindObjectOfType<AudioManager>().Play("WhipSwoosh");
return clickLocation;
}
else
@@ -63,6 +64,7 @@ namespace MontanaJohns.Items
{
currentHook = Instantiate(hookNoSwing, collisionGameObject.transform.position, Quaternion.identity);
collisionGameObject.GetComponent<Actor>().TakeDamage(player.GetComponent<Player>().stats.damage);
+ FindObjectOfType<AudioManager>().Play("WhipSwoosh");
yield return new WaitForSeconds(0.1f);
Destroy(currentHook);
ropeExists = false;
diff --git a/Assets/Scripts/Projectile.cs b/Assets/Scripts/Projectile.cs
index 7692917..1573d2c 100644
--- a/Assets/Scripts/Projectile.cs
+++ b/Assets/Scripts/Projectile.cs
@@ -1,7 +1,4 @@
-using System.Collections;
-using System.Collections.Generic;
using UnityEngine;
-using MontanaJohns.Actors;
public class Projectile : MonoBehaviour
{
@@ -9,11 +6,16 @@ public class Projectile : MonoBehaviour
public Rigidbody2D rb;
// Start is called before the first frame update
- void Start()
+ private void Start()
{
rb.velocity = transform.right * speed;
}
+ private void Update()
+ {
+ Destroy(gameObject, 4f);
+ }
+
private void OnCollisionEnter2D(Collision2D collision)
{
Destroy(gameObject);
diff --git a/Assets/Scripts/Sound.cs b/Assets/Scripts/Sound.cs
new file mode 100644
index 0000000..cfe26a4
--- /dev/null
+++ b/Assets/Scripts/Sound.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using UnityEngine.Audio;
+
+[System.Serializable]
+public class Sound
+{
+ public string name;
+ public AudioClip clip;
+
+ [Range(0f, 1f)]
+ public float volume;
+
+ [Range(.1f, 3f)]
+ public float pitch;
+
+ public bool loop;
+
+ [HideInInspector]
+ public AudioSource source;
+}
diff --git a/Assets/Scripts/Sound.cs.meta b/Assets/Scripts/Sound.cs.meta
new file mode 100644
index 0000000..37b81f6
--- /dev/null
+++ b/Assets/Scripts/Sound.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d61e3f443c2315b45a4a8326c6491504
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: