Screenshake
This commit is contained in:
parent
3fefb5278f
commit
46e1d0e05b
@ -18,12 +18,14 @@ public class BloodSucker : MonoBehaviour {
|
|||||||
VampireEntity vampireEntity;
|
VampireEntity vampireEntity;
|
||||||
bool isSucking;
|
bool isSucking;
|
||||||
float currentSuckTimer;
|
float currentSuckTimer;
|
||||||
|
[HideInInspector] public ScreenShaker screenShaker;
|
||||||
[HideInInspector] public SoundManager soundManager;
|
[HideInInspector] public SoundManager soundManager;
|
||||||
|
|
||||||
void Awake() {
|
void Awake() {
|
||||||
vampireEntity = GetComponent<VampireEntity>();
|
vampireEntity = GetComponent<VampireEntity>();
|
||||||
bloodParticles.Stop(true, ParticleSystemStopBehavior.StopEmitting);
|
bloodParticles.Stop(true, ParticleSystemStopBehavior.StopEmitting);
|
||||||
soundManager = FindObjectOfType<SoundManager>();
|
soundManager = FindObjectOfType<SoundManager>();
|
||||||
|
screenShaker = FindObjectOfType<ScreenShaker>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixedUpdate() {
|
void FixedUpdate() {
|
||||||
@ -101,6 +103,7 @@ public class BloodSucker : MonoBehaviour {
|
|||||||
currentTarget.bloodTokens -= 1;
|
currentTarget.bloodTokens -= 1;
|
||||||
vampireEntity.HealDamage(healthGainFromSuck);
|
vampireEntity.HealDamage(healthGainFromSuck);
|
||||||
// print("One token sucked");
|
// print("One token sucked");
|
||||||
|
screenShaker.Shake();
|
||||||
soundManager.PlaySound(suckSource, suckSounds, randomPitch:true, createTempSourceIfBusy:true);
|
soundManager.PlaySound(suckSource, suckSounds, randomPitch:true, createTempSourceIfBusy:true);
|
||||||
if (currentTarget.bloodTokens == 0) {
|
if (currentTarget.bloodTokens == 0) {
|
||||||
SetIsSucking(false);
|
SetIsSucking(false);
|
||||||
|
|||||||
@ -21,6 +21,7 @@ public class PlayerMovement : MonoBehaviour {
|
|||||||
VampireEntity vampireEntity = null!;
|
VampireEntity vampireEntity = null!;
|
||||||
Animator animator = null!;
|
Animator animator = null!;
|
||||||
public bool facingRight { get; private set; } = true;
|
public bool facingRight { get; private set; } = true;
|
||||||
|
[HideInInspector] public ScreenShaker screenShaker;
|
||||||
|
|
||||||
[SerializeField] AudioSource jumpSource;
|
[SerializeField] AudioSource jumpSource;
|
||||||
[SerializeField] AudioClip[] jumpSounds;
|
[SerializeField] AudioClip[] jumpSounds;
|
||||||
@ -40,6 +41,7 @@ public class PlayerMovement : MonoBehaviour {
|
|||||||
animator = GetComponentInChildren<Animator>();
|
animator = GetComponentInChildren<Animator>();
|
||||||
currentState = new ImmobileMovementState(this);
|
currentState = new ImmobileMovementState(this);
|
||||||
soundManager = FindObjectOfType<SoundManager>();
|
soundManager = FindObjectOfType<SoundManager>();
|
||||||
|
screenShaker = FindObjectOfType<ScreenShaker>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Start() {
|
void Start() {
|
||||||
@ -193,11 +195,13 @@ public class PlayerMovement : MonoBehaviour {
|
|||||||
// playerMovement.animator.SetBool("Jumping", true);
|
// playerMovement.animator.SetBool("Jumping", true);
|
||||||
playerMovement.animator.Play("Player_Jump");
|
playerMovement.animator.Play("Player_Jump");
|
||||||
playerMovement.soundManager.PlaySound(playerMovement.jumpSource, playerMovement.jumpSounds, randomPitch: true, createTempSourceIfBusy: true);
|
playerMovement.soundManager.PlaySound(playerMovement.jumpSource, playerMovement.jumpSounds, randomPitch: true, createTempSourceIfBusy: true);
|
||||||
|
playerMovement.screenShaker.Shake();
|
||||||
}
|
}
|
||||||
public override void LeaveState() {
|
public override void LeaveState() {
|
||||||
// playerMovement.animator.SetBool("Jumping", false);
|
// playerMovement.animator.SetBool("Jumping", false);
|
||||||
playerMovement.animator.Play("Player_Idle");
|
playerMovement.animator.Play("Player_Idle");
|
||||||
playerMovement.soundManager.PlaySound(playerMovement.landSource, playerMovement.landSounds, randomPitch: true, createTempSourceIfBusy: true);
|
playerMovement.soundManager.PlaySound(playerMovement.landSource, playerMovement.landSounds, randomPitch: true, createTempSourceIfBusy: true);
|
||||||
|
playerMovement.screenShaker.Shake();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BaseState? FixedUpdateState() {
|
public override BaseState? FixedUpdateState() {
|
||||||
|
|||||||
@ -2,40 +2,46 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class VampireEntity : Entity {
|
public class VampireEntity : Entity {
|
||||||
[SerializeField] [field: Required]
|
[SerializeField]
|
||||||
PlayerStats playerStats = null!;
|
[field: Required]
|
||||||
|
PlayerStats playerStats = null!;
|
||||||
|
|
||||||
// [SerializeField] [Required]
|
// [SerializeField] [Required]
|
||||||
// HealthBar healthBar;
|
// HealthBar healthBar;
|
||||||
[HideInInspector] public PlayerMovement playerMovement;
|
[HideInInspector] public PlayerMovement playerMovement;
|
||||||
|
[HideInInspector] public ScreenShaker screenShaker;
|
||||||
|
|
||||||
protected override void Awake() {
|
protected override void Awake() {
|
||||||
base.Awake();
|
base.Awake();
|
||||||
transform.SetParent(arena.minionParent);
|
transform.SetParent(arena.minionParent);
|
||||||
|
screenShaker = FindObjectOfType<ScreenShaker>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Start() {
|
|
||||||
base.Start();
|
|
||||||
base.entityType = EntityFlag.Vampire;
|
|
||||||
playerMovement = GetComponent<PlayerMovement>();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Update() {
|
protected override void Start() {
|
||||||
base.Update();
|
base.Start();
|
||||||
|
base.entityType = EntityFlag.Vampire;
|
||||||
|
playerMovement = GetComponent<PlayerMovement>();
|
||||||
|
}
|
||||||
|
|
||||||
if (gameFlowManager.CanDoAction)
|
protected override void Update() {
|
||||||
TakeDamage(playerStats.bloodLossRate * Time.deltaTime, this, sound:false);
|
base.Update();
|
||||||
}
|
|
||||||
|
|
||||||
// public override void TakeDamage(float amount) {
|
if (gameFlowManager.CanDoAction)
|
||||||
// base.TakeDamage(amount);
|
TakeDamage(playerStats.bloodLossRate * Time.deltaTime, this, sound: false);
|
||||||
// healthBar.SetHealthFraction(Health / initialHealth);
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
public bool IsInSafeZone() => playerMovement.IsInSafeZone;
|
public override bool TakeDamage(float amount, Entity other, bool sound = true) {
|
||||||
|
if (sound) {
|
||||||
|
screenShaker.Shake();
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnDied() {
|
return base.TakeDamage(amount, other, sound);
|
||||||
OnEmpty();
|
}
|
||||||
gameFlowManager.GameOver();
|
|
||||||
}
|
public bool IsInSafeZone() => playerMovement.IsInSafeZone;
|
||||||
|
|
||||||
|
protected override void OnDied() {
|
||||||
|
OnEmpty();
|
||||||
|
gameFlowManager.GameOver();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user