summaryrefslogtreecommitdiff
path: root/GameCode/DealDamageToPlayer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/DealDamageToPlayer.cs')
-rw-r--r--GameCode/DealDamageToPlayer.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/GameCode/DealDamageToPlayer.cs b/GameCode/DealDamageToPlayer.cs
new file mode 100644
index 0000000..bfad181
--- /dev/null
+++ b/GameCode/DealDamageToPlayer.cs
@@ -0,0 +1,47 @@
+using Sonigon;
+using UnityEngine;
+
+public class DealDamageToPlayer : MonoBehaviour
+{
+ public enum TargetPlayer
+ {
+ Own,
+ Other
+ }
+
+ [Header("Sounds")]
+ public SoundEvent soundDamage;
+
+ [Header("Settings")]
+ public float damage = 25f;
+
+ public bool lethal = true;
+
+ public TargetPlayer targetPlayer;
+
+ private CharacterData data;
+
+ private Player target;
+
+ private void Start()
+ {
+ data = GetComponentInParent<CharacterData>();
+ }
+
+ public void Go()
+ {
+ if (!target)
+ {
+ target = data.player;
+ if (targetPlayer == TargetPlayer.Other)
+ {
+ target = PlayerManager.instance.GetOtherPlayer(target);
+ }
+ }
+ if (soundDamage != null && target != null && target.data != null && target.data.isPlaying && !target.data.dead && !target.data.block.IsBlocking())
+ {
+ SoundManager.Instance.Play(soundDamage, target.transform);
+ }
+ target.data.healthHandler.TakeDamage(damage * Vector2.up, base.transform.position, null, data.player, lethal);
+ }
+}