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