Elin Decompiled Documentation EA 23.102 Nightly
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Pages
ContentPolicy.cs
Go to the documentation of this file.
1using System.Linq;
2using UnityEngine;
3
4public class ContentPolicy : EContent
5{
7
9
11
13
15
16 public override void OnSwitchContent(int idTab)
17 {
20 }
21
22 public void RefreshPolicy()
23 {
24 RefreshPolicyList(listPolicyLaw, "law", "department_law");
25 RefreshPolicyList(listPolicyEconomy, "economy", "department_economy");
26 RefreshPolicyList(listPolicyLife, "life", "department_life");
27 RefreshPolicyList(listUtility, "utility", "department_utility");
28 listUtility.SetActive(EClass.Branch.lv >= 2 || EClass.debug.enable);
30 GetComponentInParent<Layer>().RebuildLayout(recursive: true);
31 this.RebuildLayout(recursive: true);
32 }
33
34 public void RefreshPolicyList(UIList list, string cat, string plan)
35 {
36 list.callbacks = new UIList.Callback<Policy, UIButton>
37 {
38 onClick = delegate
39 {
40 },
41 onInstantiate = delegate(Policy a, UIButton b)
42 {
44 b.onClick.AddListener(delegate
45 {
46 if (!a.active)
47 {
48 if ((a.Cost > 0 && EClass.Branch.policies.CurrentAP() + a.Cost > EClass.Branch.MaxAP) || !CanActivate(a))
49 {
50 SE.Beep();
51 return;
52 }
53 if (a.id == 2514 && EClass.pc.faction.CountTaxFreeLand() >= 3)
54 {
55 SE.Beep();
56 return;
57 }
58 }
59 SE.ClickOk();
60 a.active = !a.active;
61 if (a.id == 2705)
62 {
63 EClass.pc.faction.SetGlobalPolicyActive(2705, a.active);
64 }
65 if (a.id == 2708)
66 {
67 EClass.pc.faction.SetGlobalPolicyActive(2708, a.active);
68 }
69 if (a.id == 2710)
70 {
71 EClass.pc.faction.SetGlobalPolicyActive(2710, a.active);
72 }
73 if (a.id == 2711)
74 {
75 EClass.pc.faction.SetGlobalPolicyActive(2711, a.active);
76 }
77 if (a.id == 2712)
78 {
79 EClass.pc.faction.SetGlobalPolicyActive(2712, a.active);
80 }
83 });
84 b.refObj = a;
85 b.tooltip.onShowTooltip = delegate(UITooltip tp)
86 {
87 a.WriteNote(tp.note);
88 };
89 },
90 onList = delegate
91 {
92 foreach (Policy item in EClass.Branch.policies.list.Where((Policy p) => p.source.categorySub == cat))
93 {
94 list.Add(item);
95 }
96 },
97 onSort = (Policy a, UIList.SortMode m) => a.GetSortVal(m),
98 onRefresh = null
99 };
100 list.List();
101 list.GetComponentInChildren<CanvasGroup>().alpha = ((list.items.Count > 0) ? 0.9f : 0.4f);
102 static bool CanActivate(Policy p)
103 {
104 if (p.id == 2515 && EClass.Branch.policies.IsActive(2516))
105 {
106 return false;
107 }
108 if (p.id == 2516 && EClass.Branch.policies.IsActive(2515))
109 {
110 return false;
111 }
112 if (p.id == 2814 && EClass.Branch.policies.IsActive(2823))
113 {
114 return false;
115 }
116 if (p.id == 2823 && EClass.Branch.policies.IsActive(2814))
117 {
118 return false;
119 }
120 return true;
121 }
122 }
123
124 public void RefreshPolicyIcons()
125 {
126 int num = EClass.Branch.policies.CurrentAP();
127 UIList[] array = new UIList[4] { listPolicyLaw, listPolicyLife, listPolicyEconomy, listUtility };
128 for (int i = 0; i < array.Length; i++)
129 {
130 UIButton[] componentsInChildren = array[i].GetComponentsInChildren<UIButton>();
131 foreach (UIButton obj in componentsInChildren)
132 {
133 Policy policy = obj.refObj as Policy;
134 obj.icon.material = (policy.active ? null : matGrayscale);
135 obj.imageCheck.SetActive(policy.active);
136 obj.subText.SetText(policy.Cost.ToString() ?? "", (num + policy.Cost <= EClass.Branch.MaxAP || policy.active) ? FontColor.Good : FontColor.Bad);
137 }
138 }
139 }
140}
FontColor
Definition: FontColor.cs:2
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
Faction faction
Definition: Chara.cs:412
void RefreshPolicy()
void RefreshPolicyIcons()
UIList listPolicyLife
UIList listUtility
Material matGrayscale
UIList listPolicyLaw
Definition: ContentPolicy.cs:6
UIList listPolicyEconomy
Definition: ContentPolicy.cs:8
override void OnSwitchContent(int idTab)
void RefreshPolicyList(UIList list, string cat, string plan)
bool enable
Definition: CoreDebug.cs:285
Definition: EClass.cs:5
static FactionBranch Branch
Definition: EClass.cs:22
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
PolicyManager policies
int CountTaxFreeLand()
Definition: FACTION.cs:544
void RefreshEffects()
List< Policy > list
Definition: PolicyManager.cs:7
bool IsActive(int id, int days=-1)
int Cost
Definition: POLICY.cs:141
string Name
Definition: POLICY.cs:135
int id
Definition: POLICY.cs:121
int GetSortVal(UIList.SortMode m)
Definition: POLICY.cs:200
bool active
Definition: POLICY.cs:127
void WriteNote(UINote n)
Definition: POLICY.cs:185
SourceElement.Row source
Definition: POLICY.cs:133
UIText subText
Definition: UIButton.cs:104
Image imageCheck
Definition: UIButton.cs:112
UIText mainText
Definition: UIButton.cs:102
Definition: UIList.cs:9
SortMode
Definition: UIList.cs:27
override void Add(object item)
Definition: UIList.cs:302
void SetText(string s)
Definition: UIText.cs:159
UINote note
Definition: UITooltip.cs:21