using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; public class UpgradeBuildersGuild : MonoBehaviour, DayNightCycle.IDaytimeSensitive { private List mustHaveTags = new List(); private List mayNotHaveTags = new List(); private List allHousesTaggedObjs = new List(); private List allHousesTaggedObjsSorted = new List(); private void OnEnable() { mustHaveTags.Add(TagManager.ETag.House); DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this); } public void OnDusk() { } public void OnDawn_BeforeSunrise() { } public void OnDawn_AfterSunrise() { StartCoroutine(AfterSunriseDelayed()); } public IEnumerator AfterSunriseDelayed() { yield return null; yield return null; TagManager.instance.FindAllTaggedObjectsWithTags(allHousesTaggedObjs, mustHaveTags, mayNotHaveTags); allHousesTaggedObjsSorted = allHousesTaggedObjs.OrderBy((TaggedObject o) => (o.transform.position - base.transform.position).magnitude).ToList(); for (int i = 0; i < allHousesTaggedObjsSorted.Count; i++) { BuildSlot componentInParent = allHousesTaggedObjs[i].GetComponentInParent(); if (componentInParent.Level == 1) { componentInParent.TryToBuildOrUpgradeAndPay(null, _presentChoice: false); break; } } } }