Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
PolicyManager.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using Newtonsoft.Json;
3
4public class PolicyManager : EClass
5{
6 [JsonProperty]
7 public List<Policy> list = new List<Policy>();
8
10
11 public void SetOwner(FactionBranch _owner)
12 {
13 owner = _owner;
14 foreach (Policy item in list)
15 {
16 item.SetOwner(owner);
17 }
19 }
20
21 public void AddPolicy(string id)
22 {
23 AddPolicy(EClass.sources.elements.alias[id].id);
24 }
25
26 public Policy AddPolicy(int id, bool show = true)
27 {
28 if (owner.elements.GetElement(id) == null)
29 {
30 owner.elements.SetBase(id, 1);
31 }
32 Policy policy = new Policy
33 {
34 id = id
35 };
36 policy.SetOwner(owner);
37 list.Add(policy);
38 if (show)
39 {
40 WidgetPopText.Say("rewardPolicy".lang(EClass.sources.elements.map[id].GetName()));
41 }
42 if (policy.source.tag.Contains("globalPolicy"))
43 {
45 }
46 return policy;
47 }
48
49 public void Activate(int id)
50 {
51 foreach (Policy item in list)
52 {
53 if (item.id == id)
54 {
55 item.active = true;
56 }
57 }
58 }
59
60 public void SetActive(int id, bool active)
61 {
62 foreach (Policy item in list)
63 {
64 if (item.id == id)
65 {
66 item.active = active;
67 }
68 }
69 }
70
71 public bool IsActive(int id, int days = -1)
72 {
73 foreach (Policy item in list)
74 {
75 if (item.active && item.id == id && (days == -1 || item.days >= days))
76 {
77 return true;
78 }
79 }
80 return false;
81 }
82
83 public bool HasPolicy(int id)
84 {
85 foreach (Policy item in list)
86 {
87 if (item.id == id)
88 {
89 return true;
90 }
91 }
92 return false;
93 }
94
95 public void OnSimulateHour(VirtualDate date)
96 {
97 foreach (Policy item in list)
98 {
99 if (item.active)
100 {
101 item.OnAdvanceHour(date);
102 if (date.hour == 0)
103 {
104 item.days++;
105 }
106 }
107 else
108 {
109 item.days = 0;
110 }
111 }
112 }
113
114 public int GetValue(int id)
115 {
116 foreach (Policy item in list)
117 {
118 if (item.id == id && item.active)
119 {
120 return item.Ele.Value;
121 }
122 }
123 return 0;
124 }
125
126 public int CurrentAP()
127 {
128 int num = 0;
129 foreach (Policy item in list)
130 {
131 if (item.active)
132 {
133 num += item.Cost;
134 }
135 }
136 return num;
137 }
138
139 public void RefreshEffects()
140 {
141 foreach (Happiness item in owner.happiness.list)
142 {
143 item.OnRefreshEffect();
144 }
145 foreach (BaseHomeResource item2 in owner.resources.list)
146 {
147 item2.OnRefreshEffect();
148 }
149 foreach (Policy item3 in list)
150 {
151 if (item3.active)
152 {
153 item3.RefreshEffect();
154 }
155 }
157 }
158
159 public void Validate()
160 {
161 }
162}
Faction faction
Definition: Chara.cs:412
Definition: EClass.cs:5
static SourceManager sources
Definition: EClass.cs:42
static Chara pc
Definition: EClass.cs:14
Element SetBase(string alias, int v, int potential=0)
Element GetElement(string alias)
HappinessManager happiness
HomeResourceManager resources
ElementContainerZone elements
void AddGlobalPolicy(int id)
Definition: FACTION.cs:431
List< Happiness > list
List< BaseHomeResource > list
void RefreshEffects()
Policy AddPolicy(int id, bool show=true)
FactionBranch owner
Definition: PolicyManager.cs:9
int GetValue(int id)
void Activate(int id)
void AddPolicy(string id)
List< Policy > list
Definition: PolicyManager.cs:7
bool HasPolicy(int id)
void SetActive(int id, bool active)
bool IsActive(int id, int days=-1)
void OnSimulateHour(VirtualDate date)
void SetOwner(FactionBranch _owner)
void RefreshEffect(UINote note=null)
Definition: POLICY.cs:153
int id
Definition: POLICY.cs:121
bool active
Definition: POLICY.cs:127
SourceElement.Row source
Definition: POLICY.cs:133
void SetOwner(FactionBranch _branch)
Definition: POLICY.cs:143
SourceElement elements
static void Say(string text, FontColor fontColor=FontColor.Default, Sprite sprite=null)