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);
}
}
}
}
|