summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/PowerTowerPerk.cs
blob: 09466d49e2e14cac0078a06bb8fba319e9131a27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System.Collections.Generic;
using UnityEngine;

public class PowerTowerPerk : MonoBehaviour
{
	[SerializeField]
	private Equippable powerTowerPerk;

	[SerializeField]
	private List<TagManager.ETag> mustHaveTags = new List<TagManager.ETag>();

	[SerializeField]
	private List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();

	private TagManager tagManager;

	private float attackSpeedBonus;

	private float nextRefreshIn = 0.2f;

	private TaggedObject closestTower;

	private void Start()
	{
		if (!PerkManager.IsEquipped(powerTowerPerk))
		{
			Object.Destroy(this);
			return;
		}
		tagManager = TagManager.instance;
		attackSpeedBonus = PerkManager.instance.powerTower_attackSpeedBonus;
	}

	private void Update()
	{
		nextRefreshIn -= Time.deltaTime;
		if (nextRefreshIn <= 0f)
		{
			closestTower = tagManager.FindClosestTaggedObjectWithTags(base.transform.position, mustHaveTags, mayNotHaveTags);
			nextRefreshIn = 0.2f;
		}
		if (closestTower != null)
		{
			AutoAttack[] componentsInChildren = closestTower.GetComponentsInChildren<AutoAttack>();
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				componentsInChildren[i].ReduceCooldownBy(attackSpeedBonus * Time.deltaTime);
			}
			HotOilTower[] componentsInChildren2 = closestTower.GetComponentsInChildren<HotOilTower>();
			for (int i = 0; i < componentsInChildren2.Length; i++)
			{
				componentsInChildren2[i].ReduceCooldownBy(attackSpeedBonus * Time.deltaTime);
			}
		}
	}
}