summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/BarricadeDamage.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/BarricadeDamage.cs')
-rw-r--r--Thronefall_v1.0/Decompile/BarricadeDamage.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/BarricadeDamage.cs b/Thronefall_v1.0/Decompile/BarricadeDamage.cs
new file mode 100644
index 0000000..09842f3
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/BarricadeDamage.cs
@@ -0,0 +1,63 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class BarricadeDamage : MonoBehaviour
+{
+ public float preSelectRadius = 4f;
+
+ public float slowTime = 3f;
+
+ public List<DamageModifyer> damage;
+
+ public LayerMask lmTakeDamage;
+
+ private Collider[] overlapColliders = new Collider[50];
+
+ private float timeSinceLastCollisionCheck;
+
+ private BoxCollider myCollider;
+
+ private void Start()
+ {
+ myCollider = GetComponent<BoxCollider>();
+ timeSinceLastCollisionCheck = Random.value;
+ }
+
+ private void Update()
+ {
+ timeSinceLastCollisionCheck += Time.deltaTime;
+ if (timeSinceLastCollisionCheck < 0.2f)
+ {
+ return;
+ }
+ timeSinceLastCollisionCheck = 0f;
+ foreach (TaggedObject enemyUnit in TagManager.instance.EnemyUnits)
+ {
+ if (!(Vector3.Distance(base.transform.position, enemyUnit.transform.position) <= preSelectRadius) || enemyUnit.Hp.PathfindMovement.IsSlowed)
+ {
+ continue;
+ }
+ overlapColliders = Physics.OverlapBox(base.transform.position, myCollider.size, base.transform.rotation, lmTakeDamage);
+ Collider[] array = overlapColliders;
+ for (int i = 0; i < array.Length; i++)
+ {
+ TaggedObject componentInParent = array[i].GetComponentInParent<TaggedObject>();
+ if (!componentInParent || !componentInParent.Tags.Contains(TagManager.ETag.EnemyOwned))
+ {
+ continue;
+ }
+ Hp hp = componentInParent.Hp;
+ if ((bool)hp)
+ {
+ PathfindMovement pathfindMovement = hp.PathfindMovement;
+ if ((bool)pathfindMovement && !pathfindMovement.IsSlowed)
+ {
+ pathfindMovement.Slow(slowTime);
+ hp.TakeDamage(DamageModifyer.CalculateDamageOnTarget(componentInParent, damage));
+ }
+ }
+ }
+ break;
+ }
+ }
+}