Elin Decompiled Documentation EA 23.331 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("#aka", EClass.pc.Aka);
148 stringBuilder.Replace("#bigdaddy", "bigdaddy".lang());
149 stringBuilder.Replace("#festival", EClass._zone.IsFestival ? (EClass._zone.id + "_festival").lang() : "_festival".lang());
150 stringBuilder.Replace("#brother2", (EClass.pc.IsMale ? "brother" : "sister").lang());
151 stringBuilder.Replace("#brother", Lang.GetList(EClass.pc.IsMale ? "bro" : "sis").RandomItem());
152 stringBuilder.Replace("#onii2", Lang.GetList(EClass.pc.IsMale ? "onii2" : "onee2").RandomItem());
153 stringBuilder.Replace("#onii", Lang.GetList(EClass.pc.IsMale ? "onii" : "onee").RandomItem());
154 stringBuilder.Replace("#gender", Lang.GetList("gendersDrama")[EClass.pc.bio.gender]);
155 stringBuilder.Replace("#he", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang());
156 stringBuilder.Replace("#He", ((EClass.pc.bio.gender == 2) ? "he" : "she").lang().ToTitleCase());
157 return Convert(stringBuilder);
158 }
159
160 public static string Convert(string text)
161 {
162 StringBuilder stringBuilder = new StringBuilder();
163 stringBuilder.Append(text);
164 return Convert(stringBuilder);
165 }
166
167 public static string Convert(StringBuilder sb)
168 {
169 sb.Replace("#player", EClass.player.title);
170 sb.Replace("#pc_him", EClass.pc.IsMale ? "him".lang() : "her".lang());
171 sb.Replace("#pc_his", EClass.pc.IsMale ? "his".lang() : "her".lang());
172 sb.Replace("#pc_race", EClass.pc.race.GetName());
173 sb.Replace("#pc", EClass.pc.NameSimple);
174 return sb.ToString();
175 }
176
177 public static string Parse(string text, bool thirdPerson, string val1, string val2 = null, string val3 = null, string val4 = null)
178 {
179 StringBuilder stringBuilder = new StringBuilder(text);
180 if (val1 != null)
181 {
182 if (Lang.articlesToRemove.Count > 0)
183 {
184 string text2 = val1;
185 foreach (char[] item in Lang.articlesToRemove)
186 {
187 text2 = text2.TrimStart(item);
188 }
189 stringBuilder.Replace("-#1", text2);
190 }
191 stringBuilder.Replace("#1", val1 ?? "");
192 }
193 if (val2 != null)
194 {
195 if (Lang.articlesToRemove.Count > 0)
196 {
197 string text3 = val2;
198 foreach (char[] item2 in Lang.articlesToRemove)
199 {
200 text3 = text3.TrimStart(item2);
201 }
202 stringBuilder.Replace("-#2", text3);
203 }
204 stringBuilder.Replace("#2", val2);
205 }
206 if (val3 != null)
207 {
208 stringBuilder.Replace("#3", val3);
209 int num = val3.ToInt();
210 stringBuilder.Replace("(s3)", (num > 1) ? "s" : "");
211 }
212 if (val4 != null)
213 {
214 stringBuilder.Replace("#4", val4);
215 int num2 = val4.ToInt();
216 stringBuilder.Replace("(s4)", (num2 > 1) ? "s" : "");
217 }
218 if (int.TryParse(val1, out var result))
219 {
220 stringBuilder.Replace("#(s)", (result <= 1) ? "" : "_s".lang());
221 }
223 {
224 stringBuilder.Replace("#your2", Msg.thirdPerson2.your);
225 stringBuilder.Replace("#himself2", Msg.thirdPerson2.himself);
226 stringBuilder.Replace("#him2", Msg.thirdPerson2.him);
227 stringBuilder.Replace("#his2", Msg.thirdPerson2.his);
228 stringBuilder.Replace("#he2", Msg.thirdPerson2.he);
229 stringBuilder.Replace("(s2)", Msg.thirdPerson2.thirdperson ? "s" : "");
230 }
232 {
233 stringBuilder.Replace("#your", Msg.thirdPerson1.your);
234 stringBuilder.Replace("#himself", Msg.thirdPerson1.himself);
235 stringBuilder.Replace("#him", Msg.thirdPerson1.him);
236 stringBuilder.Replace("#his", Msg.thirdPerson1.his);
237 stringBuilder.Replace("#he", Msg.thirdPerson1.he);
238 }
240 {
241 return ConvertThirdPerson(stringBuilder.ToString(), thirdPerson);
242 }
243 return Convert(stringBuilder);
244 }
245
246 public static string ConvertThirdPerson(string text, bool thirdPerson)
247 {
248 string[] array = text.Split(' ');
249 StringBuilder stringBuilder = new StringBuilder();
250 bool flag = true;
251 string[] array2 = array;
252 foreach (string text2 in array2)
253 {
254 if (flag)
255 {
256 flag = false;
257 }
258 else
259 {
260 stringBuilder.Append(' ');
261 }
262 if (text2.Contains('/') && !text2.Contains('<'))
263 {
264 string[] array3 = text2.Split('/');
265 stringBuilder.Append(thirdPerson ? array3[1] : array3[0]);
266 }
267 else
268 {
269 stringBuilder.Append(text2);
270 }
271 }
272 stringBuilder.Replace("(s)", thirdPerson ? "s" : "");
273 stringBuilder.Replace("(es)", thirdPerson ? "es" : "");
274 return Convert(stringBuilder);
275 }
276}
int gender
Definition: Biography.cs:29
static int Hire(Chara c)
Definition: CalcGold.cs:8
bool IsMale
Definition: Card.cs:2454
Biography bio
Definition: Card.cs:45
string Name
Definition: Card.cs:2191
string NameSimple
Definition: Card.cs:2193
Definition: Chara.cs:10
string NameBraced
Definition: Chara.cs:520
string Aka
Definition: Chara.cs:220
SourceRace.Row race
Definition: Chara.cs:468
bool IsGameStarted
Definition: Core.cs:87
static DramaChoice lastChoice
Definition: DramaChoice.cs:5
string text
Definition: DramaChoice.cs:9
static Chara TG
Definition: DramaManager.cs:12
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:160
static string refDrama4
Definition: GameLang.cs:12
static void ClearDramaRef()
Definition: GameLang.cs:16
static string Convert(StringBuilder sb)
Definition: GameLang.cs:167
static string refDrama5
Definition: GameLang.cs:14
static string ConvertThirdPerson(string text, bool thirdPerson)
Definition: GameLang.cs:246
static string Parse(string text, bool thirdPerson, string val1, string val2=null, string val3=null, string val4=null)
Definition: GameLang.cs:177
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:113
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:1071
Religion GetRandomReligion(bool onlyJoinable=true, bool includeMinor=false)
virtual string Name
Definition: Religion.cs:37
virtual string Name
Definition: Spatial.cs:509
string id
Definition: Spatial.cs:13
virtual bool IsFestival
Definition: Zone.cs:213
bool IsPCFaction
Definition: Zone.cs:477