Elin Decompiled Documentation EA 23.286 Nightly
Loading...
Searching...
No Matches
GameLang.cs
Go to the documentation of this file.
1using System;
2using System.Text;
3
4public class GameLang : EClass
5{
6 public static string refDrama1;
7
8 public static string refDrama2;
9
10 public static string refDrama3;
11
12 public static string refDrama4;
13
14 public static string refDrama5;
15
16 public static void ClearDramaRef()
17 {
18 refDrama1 = (refDrama2 = (refDrama3 = (refDrama3 = (refDrama5 = null))));
19 }
20
21 public static string ConvertDrama(string text, Chara c = null)
22 {
24 {
25 return text;
26 }
27 StringBuilder stringBuilder = new StringBuilder();
28 string newValue = "";
29 string newValue2 = "";
30 string newValue3 = "";
31 string name = EClass.game.religions.GetRandomReligion(onlyJoinable: false).Name;
32 string @ref = "-";
33 if (c != null)
34 {
35 newValue = c.NameBraced;
36 newValue2 = (c.IsMale ? "his" : "her").lang();
37 newValue3 = (c.IsMale ? "him" : "her").lang();
38 name = c.faith.Name;
39 @ref = CalcGold.Hire(c).ToString() ?? "";
40 }
41 bool flag = false;
42 string text2 = "";
43 for (int i = 0; i < text.Length; i++)
44 {
45 if (flag)
46 {
47 if (text[i] == ']')
48 {
49 flag = false;
50 if (text2 == "qFriend" && EClass._zone.IsPCFaction)
51 {
52 text2 = "qFriendHome";
53 }
54 string[] list = Lang.GetList(text2);
55 if (list != null)
56 {
57 stringBuilder.Append(list.RandomItem());
58 }
59 else
60 {
61 stringBuilder.Append(text2);
62 }
63 }
64 else
65 {
66 text2 += text[i];
67 }
68 }
69 else if (text[i] == '[')
70 {
71 text2 = "";
72 flag = true;
73 }
74 else
75 {
76 stringBuilder.Append(text[i]);
77 }
78 }
79 if ((bool)LayerDrama.Instance && LayerDrama.Instance.drama.tg != null)
80 {
81 int gender = LayerDrama.Instance.drama.tg.gender;
82 stringBuilder.Replace("#tg_his", ((gender == 2) ? "his" : "her").lang());
83 stringBuilder.Replace("#tg_him", ((gender == 2) ? "him" : "her").lang());
84 }
85 if (DramaManager.TG != null)
86 {
87 stringBuilder.Replace("#tg", DramaManager.TG.Name);
88 }
89 if (DramaChoice.lastChoice != null)
90 {
91 stringBuilder.Replace("#last_choice", DramaChoice.lastChoice.text);
92 }
93 stringBuilder.Replace("#newline", Environment.NewLine);
94 stringBuilder.Replace("#costHire", "costHire".lang(@ref));
95 stringBuilder.Replace("#self", newValue);
96 stringBuilder.Replace("#his", newValue2);
97 stringBuilder.Replace("#him", newValue3);
98 stringBuilder.Replace("#me", newValue);
99 if (int.TryParse(refDrama1, out var result))
100 {
101 refDrama1 = result.ToFormat();
102 }
103 if (int.TryParse(refDrama2, out var result2))
104 {
105 refDrama2 = result2.ToFormat();
106 }
107 if (int.TryParse(refDrama3, out var result3))
108 {
109 refDrama3 = result3.ToFormat();
110 }
111 if (int.TryParse(refDrama4, out var result4))
112 {
113 refDrama4 = result4.ToFormat();
114 }
115 if (int.TryParse(refDrama5, out var result5))
116 {
117 refDrama5 = result5.ToFormat();
118 }
119 if (!refDrama1.IsEmpty())
120 {
121 stringBuilder.Replace("#1", refDrama1);
122 }
123 if (!refDrama2.IsEmpty())
124 {
125 stringBuilder.Replace("#2", refDrama2);
126 }
127 if (!refDrama3.IsEmpty())
128 {
129 stringBuilder.Replace("#3", refDrama3);
130 }
131 if (!refDrama4.IsEmpty())
132 {
133 stringBuilder.Replace("#4", refDrama4);
134 }
135 if (!refDrama5.IsEmpty())
136 {
137 stringBuilder.Replace("#5", refDrama5);
138 }
139 stringBuilder.Replace("#god", name);
140 stringBuilder.Replace("#player", EClass.player.title);
141 stringBuilder.Replace("#title", EClass.player.title);
142 stringBuilder.Replace("#zone", EClass._zone.Name);
143 stringBuilder.Replace("#guild_title", Guild.CurrentDrama.relation.TextTitle);
144 stringBuilder.Replace("#guild", Guild.CurrentDrama.Name);
145 stringBuilder.Replace("#race", EClass.pc.race.GetName());
146 stringBuilder.Replace("#pc_full", EClass.pc.NameBraced);
147 stringBuilder.Replace("#pc", EClass.pc.NameSimple);
148 stringBuilder.Replace("#aka", EClass.pc.Aka);
149 stringBuilder.Replace("#bigdaddy", "bigdaddy".lang());
150 stringBuilder.Replace("#festival", EClass._zone.IsFestival ? (EClass._zone.id + "_festival").lang() : "_festival".lang());
151 stringBuilder.Replace("#brother2", (EClass.pc.IsMale ? "brother" : "sister").lang());
152 stringBuilder.Replace("#brother", Lang.GetList(EClass.pc.IsMale ? "bro" : "sis").RandomItem());
153 stringBuilder.Replace("#onii2", Lang.GetList(EClass.pc.IsMale ? "onii2" : "onee2").RandomItem());
154 stringBuilder.Replace("#onii", Lang.GetList(EClass.pc.IsMale ? "onii" : "onee").RandomItem());
155 stringBuilder.Replace("#gender", Lang.GetList("gendersDrama")[EClass.pc.bio.gender]);
156 stringBuilder.Replace("#he", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang());
157 stringBuilder.Replace("#He", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang().ToTitleCase());
158 return Convert(stringBuilder);
159 }
160
161 public static string Convert(string text)
162 {
163 StringBuilder stringBuilder = new StringBuilder();
164 stringBuilder.Append(text);
165 return Convert(stringBuilder);
166 }
167
168 public static string Convert(StringBuilder sb)
169 {
170 sb.Replace("#player", EClass.player.title);
171 sb.Replace("#pc_him", EClass.pc.IsMale ? "him".lang() : "her".lang());
172 sb.Replace("#pc_his", EClass.pc.IsMale ? "his".lang() : "her".lang());
173 sb.Replace("#pc_race", EClass.pc.race.GetName());
174 sb.Replace("#pc", EClass.pc.NameSimple);
175 return sb.ToString();
176 }
177
178 public static string Parse(string text, bool thirdPerson, string val1, string val2 = null, string val3 = null, string val4 = null)
179 {
180 StringBuilder stringBuilder = new StringBuilder(text);
181 if (val1 != null)
182 {
183 if (Lang.articlesToRemove.Count > 0)
184 {
185 string text2 = val1;
186 foreach (char[] item in Lang.articlesToRemove)
187 {
188 text2 = text2.TrimStart(item);
189 }
190 stringBuilder.Replace("-#1", text2);
191 }
192 stringBuilder.Replace("#1", val1 ?? "");
193 }
194 if (val2 != null)
195 {
196 if (Lang.articlesToRemove.Count > 0)
197 {
198 string text3 = val2;
199 foreach (char[] item2 in Lang.articlesToRemove)
200 {
201 text3 = text3.TrimStart(item2);
202 }
203 stringBuilder.Replace("-#2", text3);
204 }
205 stringBuilder.Replace("#2", val2);
206 }
207 if (val3 != null)
208 {
209 stringBuilder.Replace("#3", val3);
210 }
211 if (val4 != null)
212 {
213 stringBuilder.Replace("#4", val4);
214 }
215 if (int.TryParse(val1, out var result))
216 {
217 stringBuilder.Replace("#(s)", (result <= 1) ? "" : "_s".lang());
218 }
220 {
221 stringBuilder.Replace("#your2", Msg.thirdPerson2.your);
222 stringBuilder.Replace("#himself2", Msg.thirdPerson2.himself);
223 stringBuilder.Replace("#him2", Msg.thirdPerson2.him);
224 stringBuilder.Replace("#his2", Msg.thirdPerson2.his);
225 stringBuilder.Replace("#he2", Msg.thirdPerson2.he);
226 stringBuilder.Replace("(s2)", Msg.thirdPerson2.thirdperson ? "s" : "");
227 }
229 {
230 stringBuilder.Replace("#your", Msg.thirdPerson1.your);
231 stringBuilder.Replace("#himself", Msg.thirdPerson1.himself);
232 stringBuilder.Replace("#him", Msg.thirdPerson1.him);
233 stringBuilder.Replace("#his", Msg.thirdPerson1.his);
234 stringBuilder.Replace("#he", Msg.thirdPerson1.he);
235 }
237 {
238 return ConvertThirdPerson(stringBuilder.ToString(), thirdPerson);
239 }
240 return Convert(stringBuilder);
241 }
242
243 public static string ConvertThirdPerson(string text, bool thirdPerson)
244 {
245 string[] array = text.Split(' ');
246 StringBuilder stringBuilder = new StringBuilder();
247 bool flag = true;
248 string[] array2 = array;
249 foreach (string text2 in array2)
250 {
251 if (flag)
252 {
253 flag = false;
254 }
255 else
256 {
257 stringBuilder.Append(' ');
258 }
259 if (text2.Contains('/') && !text2.Contains('<'))
260 {
261 string[] array3 = text2.Split('/');
262 stringBuilder.Append(thirdPerson ? array3[1] : array3[0]);
263 }
264 else
265 {
266 stringBuilder.Append(text2);
267 }
268 }
269 stringBuilder.Replace("(s)", thirdPerson ? "s" : "");
270 stringBuilder.Replace("(es)", thirdPerson ? "es" : "");
271 return Convert(stringBuilder);
272 }
273}
int gender
Definition: Biography.cs:29
static int Hire(Chara c)
Definition: CalcGold.cs:8
bool IsMale
Definition: Card.cs:2424
Biography bio
Definition: Card.cs:45
string Name
Definition: Card.cs:2177
string NameSimple
Definition: Card.cs:2179
Definition: Chara.cs:10
string NameBraced
Definition: Chara.cs:516
string Aka
Definition: Chara.cs:218
SourceRace.Row race
Definition: Chara.cs:466
bool IsGameStarted
Definition: Core.cs:84
static DramaChoice lastChoice
Definition: DramaChoice.cs:5
string text
Definition: DramaChoice.cs:9
static Chara TG
Definition: DramaManager.cs:11
Definition: EClass.cs:6
static Game game
Definition: EClass.cs:9
static Core core
Definition: EClass.cs:7
static Zone _zone
Definition: EClass.cs:21
static Player player
Definition: EClass.cs:13
static Chara pc
Definition: EClass.cs:15
string Name
Definition: FACTION.cs:150
FactionRelation relation
Definition: FACTION.cs:126
static string ConvertDrama(string text, Chara c=null)
Definition: GameLang.cs:21
static string refDrama1
Definition: GameLang.cs:6
static string refDrama2
Definition: GameLang.cs:8
static string Convert(string text)
Definition: GameLang.cs:161
static string refDrama4
Definition: GameLang.cs:12
static void ClearDramaRef()
Definition: GameLang.cs:16
static string Convert(StringBuilder sb)
Definition: GameLang.cs:168
static string refDrama5
Definition: GameLang.cs:14
static string ConvertThirdPerson(string text, bool thirdPerson)
Definition: GameLang.cs:243
static string Parse(string text, bool thirdPerson, string val1, string val2=null, string val3=null, string val4=null)
Definition: GameLang.cs:178
static string refDrama3
Definition: GameLang.cs:10
ReligionManager religions
Definition: Game.cs:159
Definition: Guild.cs:2
static Guild CurrentDrama
Definition: Guild.cs:24
bool thirdperson
Definition: LangSetting.cs:42
Definition: Lang.cs:7
static LangSetting setting
Definition: Lang.cs:55
static List< char[]> articlesToRemove
Definition: Lang.cs:45
static string[] GetList(string id)
Definition: Lang.cs:117
static LayerDrama Instance
Definition: LayerDrama.cs:20
DramaManager drama
Definition: LayerDrama.cs:28
Definition: Msg.cs:5
static ThirstPersonInfo thirdPerson2
Definition: Msg.cs:8
static ThirstPersonInfo thirdPerson1
Definition: Msg.cs:6
int gender
Definition: Person.cs:23
string title
Definition: Player.cs:1047
Religion GetRandomReligion(bool onlyJoinable=true, bool includeMinor=false)
string Name
Definition: Religion.cs:30
virtual string Name
Definition: Spatial.cs:509
string id
Definition: Spatial.cs:13
virtual bool IsFestival
Definition: Zone.cs:211
bool IsPCFaction
Definition: Zone.cs:475