public void Register(Actor actor, GrantConditionOnPrerequisite u, string[] prerequisites) { var key = MakeKey(prerequisites); if (!upgradables.ContainsKey(key)) { upgradables.Add(key, new List <Pair <Actor, GrantConditionOnPrerequisite> >()); techTree.Add(key, prerequisites, 0, this); } upgradables[key].Add(Pair.New(actor, u)); u.PrerequisitesUpdated(actor, techTree.HasPrerequisites(prerequisites)); }
void Update() { enabled = !IsTraitDisabled; if (IsTraitDisabled) { return; } if (Info.Factions.Any()) { enabled = Info.Factions.Contains(faction); } if (Info.RequiresPrerequisites.Any() && enabled) { enabled = techTree.HasPrerequisites(Info.RequiresPrerequisites); } }