12 foreach (
Policy policy
in this.list)
14 policy.SetOwner(this.owner);
16 this.RefreshEffects();
20 public void AddPolicy(
string id)
22 this.AddPolicy(
EClass.sources.elements.alias[
id].id,
true);
26 public Policy AddPolicy(
int id,
bool show =
true)
28 if (this.owner.elements.GetElement(
id) ==
null)
30 this.owner.elements.SetBase(
id, 1, 0);
36 policy.SetOwner(this.owner);
37 this.list.Add(policy);
40 WidgetPopText.Say(
"rewardPolicy".lang(
EClass.sources.elements.map[
id].GetName(),
null,
null,
null,
null), FontColor.Default,
null);
42 if (policy.source.tag.Contains(
"globalPolicy"))
44 EClass.pc.faction.AddGlobalPolicy(policy.id);
50 public void Activate(
int id)
52 foreach (
Policy policy
in this.list)
62 public void SetActive(
int id,
bool active)
64 foreach (
Policy policy
in this.list)
68 policy.active = active;
74 public bool IsActive(
int id,
int days = -1)
76 foreach (
Policy policy
in this.list)
78 if (policy.active && policy.id ==
id && (days == -1 || policy.days >= days))
87 public bool HasPolicy(
int id)
89 using (List<Policy>.Enumerator enumerator = this.list.GetEnumerator())
91 while (enumerator.MoveNext())
93 if (enumerator.Current.id ==
id)
105 foreach (
Policy policy
in this.list)
109 policy.OnAdvanceHour(date);
123 public int GetValue(
int id)
125 foreach (
Policy policy
in this.list)
127 if (policy.id ==
id && policy.active)
129 return policy.Ele.Value;
136 public int CurrentAP()
139 foreach (
Policy policy
in this.list)
150 public void RefreshEffects()
152 foreach (
Happiness happiness
in this.owner.happiness.list)
154 happiness.OnRefreshEffect();
158 baseHomeResource.OnRefreshEffect();
160 foreach (
Policy policy
in this.list)
164 policy.RefreshEffect(
null);
167 this.owner.resources.SetDirty();
171 public void Validate()
177 public List<Policy> list =
new List<Policy>();